Install Pi-hole on your Mac in 5 minutes

    Adblockers: I assume a majority of my audience uses them, such as Ublock Origin, 1blocker, Ghostery, and so on. The problem is that these require browser extensions, but how will I block ads on my Sony TV or make sure my Hue lights aren't spying on me?

    Well, we have an answer: Pi-hole. As the name implies, Pi-hole is a web utility originally designed to run on a Raspberry Pi, although we can run it almost anywhere. I'll cover first on a Mac and then a few other devices, and it's really set up. Like, we are talking about 5 minutes.


    Pi-hole blocks pesky advertisements and data harvesting by replacing your domain name server with your own self-hosted option that intercepts DNS requests before passing them to another DNS server. To break that down into plain speak, when you type in "YouTube.com," a domain name server functions like a phone book for every name and returns a number, something I now realize my younger audience probably hasn't ever seen before... I think I have a better analogy: it's like a digital map. Ask it where Jacksonville, Oregon is, and it returns coordinates as a long and lat from a database of all the cities in the world. The same thing happens with a DNS. It contains a list of all the IPs associated with every domain name worldwide.

    Pi-hole maintains lists of known hosts for advertisements. If a request asks for a domain on the blocklist, it returns a null or fake address, thus preventing an advertisement or tracking script from loading.

    This approach is awesome because it's platform agnostic. It requires manually configuring your devices or home network to use the Pihole instead of a regular DNS.

    Pi-hole has a nice, easy-to-use interface that is also easy to adjust so you can whitelist potential sites.

    The Tutorial

    I have a MacBook 2017, and like all Intel Macs, it'll soon be unable to run modern macOS, even with OpenCore. The MacBook 2017 is an oddball model. I love this machine, but it's pretty underpowered, so there's not really a huge use case for it. It has one thing that makes it exceptionally attractive: a power draw. This guy can only draw 29w max but generally draws more than 10w even with the display on. Plus, its CPU is positively monstrous compared to the CPUs found in Raspberry Pis.

    If you don't have an old Mac, I suggest getting a Raspberry Pi Zero 2 W as they're under $25, and the official Raspbery Pi website has an excellent tutorial/

    Step 1: We need docker. Grab it from the official site Docker is a utility that lets you run containers and think of micro virtual machines. Download it and install it. Docker has Linux and Windows versions as well and I'll touch on the Linux using two different NAS systems.

    Step 2: Run the following command below, also on github gist and embedded at the bottom.

    docker run -d --name pihole \
     -e TZ=America/Los_Angeles \
     -e FTLCONF_webserver_api_password=MakeSureYouChangeThis \
     -e FTLCONF_dns_upstreams='1.1.1.1;1.0.0.1' \
     -e FTLCONF_dns_listeningMode=all \
     -p 80:80 -p 53:53/tcp -p 53:53/udp -p 443:443 \
     -v ~/pihole/:/etc/pihole/ \
     --dns=127.0.0.1 --dns=1.1.1.1 \
     --cap-add=NET_ADMIN \
     --restart=unless-stopped \
     pihole/pihole:latest
      

    What each Docker setting does:

    • -d - Runs the container in detached mode (in the background)
    • --name pihole - Names the container "pihole" for easy reference
    • -e TZ=America/Los_Angeles - Sets the timezone. Other examples: America/New_York, Europe/London, Asia/Tokyo, Australia/Sydney. Find your timezone on Wikipedia's TZ database list
    • -e FTLCONF_webserver_api_password=MakeSureYouChangeThis - Sets the admin password for the web interface (change this!)
    • -e FTLCONF_dns_upstreams='1.1.1.1;1.0.0.1' - Sets upstream DNS servers (Cloudflare in this case)
    • -e FTLCONF_dns_listeningMode=all - Allows Pi-hole to listen on all network interfaces
    • -p 80:80 -p 53:53/tcp -p 53:53/udp -p 443:443 - Maps ports from host to container (web interface on 80/443, DNS on 53)
    • -v ~/pihole/:/etc/pihole/ - Mounts a local directory to store Pi-hole configuration and data
    • --dns=127.0.0.1 --dns=1.1.1.1 - Sets DNS servers for the container itself
    • --cap-add=NET_ADMIN - Gives the container network administration capabilities
    • --restart=unless-stopped - Automatically restarts the container unless manually stopped
    • pihole/pihole:latest - The Docker image to use (Pi-hole's official image)

    This will go fast, as this project is very lean.

    Step 3: Go to http://127.0.0.1/ and use the password to confirm it's working. We can also see our application in the Docker.

    Step 4: On your Mac, change your DNS to 127.0.0.1.

    This is done in the system settings, see Apple's documentation as it covers how to, from High Sierra to current.

    Step 5: Get your Mac's local IP. Select your network, and then click on details. Click TCP/IP and make a note of your IP address. This is your Mac's IP address. Alternatively you can grab it via the terminal, for most Macs this will be the wifi interface, ipconfig getifaddr en0 however if you have wired internet and wifi, your internet connection could be different. Use ifconfig | grep "inet " | grep -v 127.0.0.1 and make note of the inet addresses.

    You can assign this as your DNS server to any device on your internal network, be it a Roku, Smart appliance, or another computer. However, you can set the DNS server to your Mac's IP address if you have a router. This way, all devices on your network will use the Pi-hole as their DNS server.

    From my router, I can configure my DNS to use the PiHole. Just point the DNS setting to the Mac. Now, if you're on DHCP, which almost everyone is, your router likely has a setting to reserve an IP for a device. DHCP leases out IPs so they can change. That means a computer might one day be 192.168.10.105 and, after reconnecting or a router reboot, assigned a different IP, 192.168.10.124. If your DNS is set to the old address, this would be a problem, as you wouldn't have a DNS server until it was manually changed. Reserving an IP prevents a device from ever getting a different IP on the local network.

    By pointing your home network at your Mac’s Pi-hole, you’ll enjoy ad-free browsing on any device. Go ahead—reserve that Mac’s IP in your router, and reclaim your bandwidth today.

    You don't need a Mac

    Pi-hole can be run almost anywhere due to it's lightweight nature, and being designed for a Raspberry Pi. This means you can set it up on any Linux machine, Windows, NAS or even in a virtual machine on your existing hardware.

    For example, if you have a Synology or Ugreen NAS, you can run Pi-hole in Docker. The process is similar to the Mac setup, but you'll need to use the Synology Docker interface to create and manage your containers.

    Instead of using the docker command, you'll want to create a container using a docker-compose file. This is a YAML file that defines the services, networks, and volumes for your application. Here's an example of a docker-compose file for Pi-hole:

    version: '3.8'
    
    services:
      pihole:
        container_name: pihole
        image: pihole/pihole:latest
        ports:
          # DNS Ports (using alternative ports to avoid conflicts)
          - "1053:53/tcp"
          - "1053:53/udp"
          # HTTP Port (using alternative port to avoid DSM conflict)
          - "8080:80/tcp"
          # HTTPS Port (using alternative port to avoid DSM conflict)
          - "8443:443/tcp"
        environment:
          # Timezone 
          TZ: 'America/Los_Angeles'
          # Web interface password from your original command
          FTLCONF_webserver_api_password: 'MakeSureYouChangeThis'
          # DNS upstreams (DNS servers you'd like to use)
          FTLCONF_dns_upstreams: '1.1.1.1;1.0.0.1'
          # DNS listening mode
          FTLCONF_dns_listeningMode: 'all'
        volumes:
          # Volume mapping - using full NAS path
          - '/volume1/docker/pihole:/etc/pihole'
        dns:
          # DNS settings from your original command
          - 127.0.0.1
          - 1.1.1.1
        cap_add:
          # Capabilities for network administration
          - NET_ADMIN
        restart: unless-stopped
      

    This is a basic example, and you may need to adjust the configuration based on your specific setup and requirements. Once you have your docker-compose file ready, you can use the Docker interface on your NAS to deploy the Pi-hole container. As a pro-tip, AI is excellent for interpreting and diagnosing issues, bew it Claude, ChatGPT, or Gemini.


    GitHub Gist versions


    Moving away from the Mac Pro: Sonnet Echo II DV Review

    In the evolving landscape of professional computing, the traditional workstation is radically transforming. For years, the Mac Pro represented the pinnacle of expandability in Apple's ecosystem—a tower of power where professionals could add specialized PCIe cards for everything from video capture to audio processing. Yet Apple Silicon has rewritten the rules, delivering astonishing performance in smaller packages while leaving professional users with a critical question: what about expansion?


    For the past several years, I've dedicated much of my content to the Mac Pro lineup—writing guides and producing videos. However, after my 2019 Mac Pro, I'm likely not buying another Mac Pro. The single Mac Pro entry in the Apple Silicon era has been woefully underwhelming, offering PCIe slots for a $3,000 premium that can only be used for expansion cards. YouTuber Luke Miani aptly described it as "Expandable, not upgradeable.

    But what if there was a way to bring true PCIe expansion to any Mac? The advent of Thunderbolt 5 now enables 4x PCIe 4.0 speeds through external connections. For professionals in video production, audio engineering, and scientific computing who rely on specialized PCIe hardware, this opens intriguing possibilities: Could a Mac Studio or even a Mac mini paired with the right expansion chassis replace a Mac Pro?

    This is where the Sonnet Echo II DV enters the picture—a dual-slot Thunderbolt PCIe expansion chassis with a unique twist: each PCIe slot gets its own dedicated Thunderbolt bus. This approach promises to eliminate the bandwidth bottlenecks that have historically plagued external expansion solutions. This design could be a game-changer for professionals who need to run bandwidth-intensive cards like BlackMagic DeckLink 8K Pro or AJA KONA 5 capture cards alongside high-speed storage.

    Sonnet Echo II DV

    Disclosure: Sonnet provided a review unit, but I was not compensated or sponsored, and I maintain complete editorial control.

    Feature list

    • Dual PCIe slots with dedicated Thunderbolt buses
    • Each slot supports Thunderbolt pass-through for daisy-chaining
    • No power switch needed—it powers up/down automatically when Thunderbolt cables are connected
    • Built-in 400-watt power supply with two auxiliary power cables (75 watts each)
    • Can charge power-hungry laptops like my 16-inch MacBook M4 Pro via Thunderbolt
    • Features dual Noctua fans—the top shelf of PC cooling—rated at just 17 dBA
    • All-metal construction with no cheap plastic feel

    The Sonnet Echo dv2 is a dual PCIe Thunderbolt enclosure with a unique advantage—each PCIe slot has its own dedicated Thunderbolt port. This means you get the full bandwidth of a complete Thunderbolt channel per card. Despite Sonnet explicitly stating that this case is not for GPUs, I still managed to wedge a single-slot GPU into it. It's not pretty, but it worked. You can also dongle the PCIe slots if you'd like a single cable experience, and it can deliver 100w to charge a laptop. Conversely you can also connect two computers to the Sonnet II DV allowing each computer to access a single PCIe slot.

    Thunderbolt technology offers PCIe connectivity over a cable, but with limitations. A single Thunderbolt 4 connection provides approximately 2,880 MB/s of PCIe bandwidth. When multiple PCIe cards share a single Thunderbolt bus (as in most expansion chassis), they must compete for this bandwidth, potentially creating bottlenecks.

    By providing each slot with its own dedicated Thunderbolt bus, the Echo II DV ensures that both cards can simultaneously utilize full bandwidth—provided your computer has Thunderbolt ports on separate buses. All Apple Silicon Macs meet this requirement, with each Thunderbolt port getting its own PCIe lanes.

    The Echo II DV is Thunderbolt 3/4 and not 5. However, it does feature a modular Thunderbolt design, which represents perhaps its most forward-thinking feature. The Thunderbolt interfaces are implemented as daughtercards, which Sonnet refers to as "Thunderbolt upgrade cards" on their website. When I contacted Sonnet about potential Thunderbolt 5 upgrades, they confirmed that it would indeed be possible to swap the card and avoid buying a whole new enclosure. Ironically, this makes the Thunderbolt enclosure more upgradeable than Apple Silicon Macs—a critical consideration for professionals making long-term investment decisions.

    sonnet open case

    Inside is a modular design with two PCIe slots plus Cubo AR X3 Thunderbolt daughter cards. Interestingly, Sonnet refers to these as "Thunderbolt upgrade cards" on their website—suggesting potential future upgrades.

    sonnet speed benchmark

    Thunderbolt 5 is not PCIe 5.0 based, instead PCIe 4.0. A single thunderbolt port represents roughly a 4x PCIe slot. While PCIe 5.0 offers double the theoretical bandwidth of PCIe 4.0, real-world storage performance gains are much smaller. The Samsung 990 Pro (PCIe 5.0) vs. 980 Pro (PCIe 4.0) shows only about a 17% improvement in IOPS (47,419 vs. 40,580) according to Tom's Hardware metrics. Of course, NVMe storage will improve and be able to saturate PCIe 5.0 more over time; as of writing this, there are few practical applications where PCIe 4.0 speeds are prohibitive, let alone 3.0. All of this is a very roundabout way to say I don't see the Thunderbolt 4.0 speeds as much of an issue. I hope that a Thunderbolt 5.0 upgrade is around the corner, but for most users, it won't be a game changer.

    Thunderbolt 3 vs. Thunderbolt 4

    Thunderbolt 3 and Thunderbolt 4 are both high-speed connectivity standards developed by Intel, but they have some key differences. Thunderbolt 3 was introduced in 2015 and supports data transfer speeds of up to 40 Gbps, while Thunderbolt 4, introduced in 2020, maintains the same maximum speed but adds several enhancements.

    One of the main differences is that Thunderbolt 4 requires support for USB4, which means it can work with a wider range of devices and peripherals. Thunderbolt 4 also mandates support for daisy-chaining up to six devices, while Thunderbolt 3 does not have this requirement. Additionally, Thunderbolt 4 includes improved power delivery capabilities, allowing for charging devices at higher wattages.

    Feature Thunderbolt 3 Thunderbolt 4
    Maximum Bandwidth 40 Gbps 40 Gbps
    Display Support Minimum: Single 4K display
    Maximum: Can support dual 4K @ 60Hz or single 5K
    Minimum: Dual 4K displays @ 60Hz or single 8K @ 30Hz
    PCIe Data Transfer 16 Gbps minimum 32 Gbps minimum
    Power Delivery Optional 100W charging Required 100W charging on at least one computer port
    Security DMA protection optional Intel VT-d-based DMA protection required
    Wake from Sleep Not guaranteed Required (PC can wake from sleep via connected Thunderbolt accessories)
    Dock/Hub Support Limited downstream ports Support for docks with up to 4 Thunderbolt ports
    USB4 Compatibility Compatible Compatible
    Cable Length Limited certified length options Universal 40Gbps cables up to 2 meters
    Connector Type USB-C USB-C


    For all intents and purposes, the Sonnet Echo II DV is a Thunderbolt 4 device, as most of the action for Thunderbolt 4 exists on the controller side of things. It supports daisy chaining and power delivery.

    Performance: Real-World Testing

    Internal vs external benchmark sonnet echo dv

    There's not a massive story when it comes to performance. Internal is faster than external, and that should not come as a surprise. Thunderbolt does have a higher protocol overhead; there is signal conversion between PCIe to Thunderbolt and latency due to distance. That said, it's in the ballpark of "close enough".

    m4 pro vs M1 max speed benchmark

    Comparing against the Thunderbolt 5 M4 Pro and Thunderbolt 4 M1 Max yeilded virtually no performance differences, with the M1 Max performing fractionally better. Amorphous tends to deliver inconsistent random tests and thus shouldn't be taken as exact but rather a rough estimate.

    Being a Thunderbolt device, it's plug-and-play like USB. When I plugged it into my M1 Max, System Preferences showed six PCIe devices: four NVMe drives, two USB ports, and Ethernet from the McFiver card. For a secondary real-world test, for gigabit ethernet, I was able to achieve 450 MB/s read/writes to my Synology D923+ via the McFiver, identical to my Mac Pro 2019. The limitation is the NAS and not the card. 10 GBe is only 1250 MB/s max, something that was achievable even on Thunderbolt 2.

    sonnet back of dv

    As previously mentioned, one of the wackier use cases that the Sonnet Echo II DV supports is the ability to connect two computers. This is feasible as literally each PCIe slot is an independent Thunderbolt device, complete with it's own thunderbolt controller. This is a feature that I don't think many people will use, but it does work. You can connect two computers to the Sonnet Echo II DV and have each computer access a single PCIe slot. This could be useful for certain workflows.

    One minor complaint I have is that the cabling extenrally doesn't doesn't include a fused cable akin to the Ivnaky Thunderbolt dock, that makes connecting and disconnecting easier, as it's simple as plugging in a singular cable. That said, Apple does not keep it's orientation and spacing of Thunderbolt ports uniform between laptops and desktops. It's an insignificant gripe but it's something as a laptop user I've become pretty spoiled by.

    Ivanky dock

    Not an eGPU case

    installing an eGPU

    It should be abundantly clear that the II DV is not a GPU case, with its single slot design, limited power capability, and cooling focus on low noise instead of maximum heat dissipation. However, this didn't stop me from trying. I was able to find a modern-ish single-slot GPU in the form of the AMD Radeon RX 6400. The card's specs are pretty abysmal, only 4 GB of VRAM, based on RNDA2 with the processor and RAM clocked at 2 GHz, a tiny 64-bit bus, 7 TFLOPs for FP16, making it performance wise roughly that of a GeForce 770 from 2013. However, it is bus-powered and is a single slot.

    macOS does not have drivers for this GPU, so I was limited to Windows testing. It was moderately better than my Geekom MiniPC's very poor Intel Iris Xe

    eGPU benchmark

    So yes, you can jam a very shoddy GPU into this enclosure, but the sort of GPUs you can use are pretty abysmal. I wouldn't recommend it.

    Market Alternatives: How the Echo II DV Compares

    With several Thunderbolt expansion options available, it's important to understand how the Sonnet Echo II DV stacks up against alternatives. Here's a comparison of available solutions.

    Sonnet's Own Product Line:

    The Echo II DV positions itself as a premium offering in Sonnet's lineup. The price jump from the Echo Express III-D to the Echo II DV ($700 to $900) buys you dedicated Thunderbolt buses for each slot—a substantial advantage for bandwidth-intensive applications even though you get one fewer slot.

    Sonnet Technologies

    • Sonnet Echo Express (three-slot with shared bus): $700
      • Advantages: Three PCIe slots, lower price point
      • Disadvantages: All slots share a single Thunderbolt bus, limiting combined bandwidth
    • Sonnet Echo Express SEL (single PCIe port): $300
      • Advantages: Single slot
      • Disadvantages: Single slot

    OWC Solutions:

    OWC's offerings tend to focus on storage expansion, with PCIe capabilities added as a secondary feature. None offer the dual Thunderbolt bus architecture that sets the Echo II DV apart.

    • OWC Mercury Helios 3S ($399)
      • Advantages: Lower price, includes a PCIe slot plus storage expansion bay
      • Disadvantages: Single thunderbolt bus
    • OWC Flex 8 ($649)
      • Advantages:Combines PCIe expansion with 8 storage bays
      • Disadvantages: Single Thunderbolt bus, shared bandwidth

    Razer

    • Razer Core X ($399)
      • Advantages: Designed for GPUs, includes 650W power supply
      • Disadvantages: Single Thunderbolt bus, optimized for GPUs

    This is by no means a comprehensive list, but alternatives exist ready to meet the consumers' needs at various price points. The Echo II DV is slotted at the upper echelon of external enclosures. It's not a cheap solution by any stretch. Its stiffest competition is from Sonnet itself, as I imagine for the majority of users; the Sonnet Echo Express probably represents the best value if they're looking to port over as much flexibility as possible. It brings a 3rd PCIe slot but relies on a shared bus. Most users rarely push more than one PCIe device at a time, and probably the only times users would feel the limits would be when transferring large files between SSDs (assuming both were in the enclosure).

    Apple Mac Pro

    Apple's Mac Pro starts at $6,999 and includes seven PCIe slots. However, these advantages come with significant caveats:

    1. The base model uses the M2 Ultra, which is now outdated compared to the M4 Pro/Max and M3 Ultra
    2. Internal slots don't support user-upgradable GPUs or CPU upgrades
    3. Total cost is significantly higher than a Mac Studio ($3,999) plus Echo II DV ($900)

    Beyond the cost savings, the Mac Studio + Echo II DV route offers greater flexibility, as you can take your expansion cards to a future computer—something impossible with the Mac Pro's internal slots once the system is obsolete.

    As of writing this, due to Apple's very odd market positioning of a M4 Max and M3 Ultra, for many users the M4 Max Mac Studio represents the better value, as the CPU is faster in single and low threaded tasks. In fact the M4 Max, only about 15% faster, granted the M3 Ultra offers a much more powerful GPU, and the ability to toss gobs of RAM into the system.

    The $2k price jump probably isn't worth it for the majority of buyers, and the extra money could be spent on accessories like the Echo II DV to expand the storage well beyond Apple's meager offerings.

    Conclusion: Rethinking Professional Mac Setups

    After extensively testing the Sonnet Echo II DV, I've come to a conclusion that might have seemed heretical just a few years ago: for many professionals, the Mac Pro is no longer necessary.

    The combination of Apple Silicon performance and external PCIe expansion creates a compelling alternative to the traditional workstation model. A Mac Studio, MacBook Pro, or even a Mac mini or MacBook Air paired with the Echo II DV, and you're getting most of the benefits of the Apple Silicon Mac Pro 2023 at a steep savings. Sadly, outside of a few exotic PCIe cards, there isn't much point to PCIe now that dGPUs have been sunsetted by Apple. Their switch to shared memory has yielded some impressive results for applications like AI, as VRAM can be dynamically assigned. However, in terms of raw performance, it hasn't materialized and plays deeply into Apple's hands for planned obsolescence.


    Blog Updates

    For personal record, I like to keep a running log of what few updates I do under-the-hood with this site on the rare chance someone actually is a regular reader. This time I added JSON-LD and limited the index pages now to 15 posts as I have a habit of writing VERY long blog posts that can be extremely brutal on the homepage.

    removing jQuery, stupid spam bot solution, complianing about AI, adding dark mode, or general changes


    It's time to jailbreak your audible library

    Libation: Free Your Audiobooks from DRM Protection

    If you're an audiobook enthusiast who uses Audible, you've likely encountered the frustration of being unable to access your purchased content outside of Audible's ecosystem or have had content removed. While Audible offers a convenient service, their DRM protection limits how and where you can enjoy your audiobooks. Enter Libation, a powerful, open-source tool that allows you to download and decrypt your Audible library, giving you true ownership of your purchases.

    What is Libation?

    Libation is a free, open-source application that helps you manage your Audible library and liberate your audiobooks from DRM restrictions. With Libation, you can download, decrypt, and convert your Audible content into standard formats like MP3 or M4B, allowing you to listen on any device or player of your choice.

    Key Features of Libation

    • Complete Library Management: View and organize your entire Audible library
    • Batch Processing: Download and decrypt multiple books at once
    • Format Options: Convert to MP3 or M4B with chapter information preserved
    • Metadata Handling: Maintain all book details including cover art
    • Cross-Platform: Available for Windows, macOS, and Linux

    Installation Guide

    Getting started with Libation is straightforward:

    1. Visit the Libation GitHub repository
    2. Download the latest release for your operating system
    3. Extract the downloaded file to a location of your choice
    4. Run the Libation executable

    Note: Libation does not require installation in the traditional sense. It's a portable application that runs directly from the extracted folder.

    Setting Up Libation

    When you first launch Libation, you'll need to authenticate with your Audible account:

    1. Click on the "Login" button
    2. Enter your Audible/Amazon credentials
    3. Complete any verification steps if prompted
    4. Upon successful login, Libation will scan and display your Audible library

    Privacy Note: Libation connects directly to Audible's servers using your credentials. Your login information is stored locally and securely on your device.

    Using Libation to Liberate Your Audiobooks

    Basic Usage

    Once your library is loaded, you can:

    1. Select one or multiple books from your library
    2. Right-click and choose "Download and Decrypt" or click the dedicated button in the toolbar
    3. Specify your preferred output format (MP3 or M4B)
    4. Choose the destination folder for your decrypted audiobooks
    5. Click "Start" to begin the process

    Advanced Options

    Libation offers several customization options to fine-tune your experience:

    • Audio Quality: Adjust bitrate settings for the output files
    • Metadata Customization: Edit book details before conversion
    • File Naming: Configure naming patterns for your decrypted files
    • Chapter Handling: Choose how chapter information is preserved

    To access these settings, navigate to the "Settings" tab within Libation.

    Managing Your Liberated Collection

    After decrypting your audiobooks, you can:

    • Play them with any standard audio player (VLC, iTunes, Windows Media Player, etc.)
    • Transfer them to portable devices, including MP3 players, smartphones, and tablets
    • Create backups to ensure you never lose access to your purchases
    • Use them with audiobook-specific apps like Listen Audiobook Player (Android) or Bookmobile (iOS)

    Troubleshooting Common Issues

    Authentication Problems

    If you encounter difficulties logging in:

    • Ensure your Audible/Amazon credentials are correct
    • Try clearing cached credentials in Libation (Settings → Account → Clear Saved Credentials)
    • Check if your account requires two-factor authentication

    Download Failures

    If downloads are failing:

    • Verify your internet connection is stable
    • Ensure you have sufficient disk space
    • Try downloading one book at a time
    • Check if your antivirus or firewall is blocking Libation

    Conversion Issues

    For problems with the decryption or conversion process:

    • Update to the latest version of Libation
    • Try a different output format
    • Check the application logs for specific error messages
    • Visit the Libation community forum for assistance

    Alternatives

    While not covered in this post, there are other tools available for managing your Audible library, such as openaudible which is available for macOS/Windows/Linux as well.

    Legal Considerations

    It's important to understand that Libation is designed for personal use with audiobooks you've legally purchased. The tool allows you to exercise your fair use rights by removing DRM for personal backup and format-shifting purposes. Always respect copyright law and use your decrypted audiobooks responsibly.

    Recommended Audiobook Players

    macOS

    • Books - macOS comes pre-bundled with Books, which will playback audiobooks, supports chapters and will resume where last left off.
    • BookPlayer - A wonder application that is pay-optional, core features are all free to use.

    iOS

    • Books - iOS comes pre-bundled with Books, which will playback audiobooks, supports chapters and will resume where last left off.
    • BookPlayer - A wonder application that is pay-optional, core features are all free to use.

    Android

    • Smart Audiobook Player - A very loved and popular audibook application
    • Voice - A free and open-source audiobook player that supports chapters and bookmarks.

    Windows

    • Windows Media Player - A built-in media player that can handle various audio formats, including MP3 and M4B.
    • Audiobook shelf - Open source player that is working on syncing to Android and iOS.
    • VLC Media Player - A versatile media player that can handle various audio formats, including MP3 and M4B.

    Linux

    • Cozy - Modern, dedicated audiobook player for Linux
    • VLC Media Player - A versatile media player that can handle various audio formats, including MP3 and M4B.

    Conclusion

    Libation empowers you to take full control of your audiobook collection, freeing you from the limitations of Audible's ecosystem. By decrypting your purchases, you ensure long-term access to content you've paid for, regardless of changes to Audible's policies or services.

    Whether you're concerned about preserving your library, want the flexibility to use different playback devices, or simply prefer to have true ownership of your purchases, Libation provides a straightforward solution that respects both your rights as a consumer and the intellectual property of content creators.


    Fake Legal Threats for SEO Backlinking scam

    I get a lot of spam as I have a public email address on my blog. I ignore 99.99%, but here's one that's found in my inbox a few times and ticks me off. The first time it happened, I took enough time to actually look at the image in question. Within seconds, I realized it was an absolute farce as the image they linked was AI slop. I figured I should sound the alarm on this scam as my blog has solid domain authority and gets a surprising amount of traffic. Another blogger, Mark Carrigan has seen this exact template, jabardasti on Twitter and variations have been seen on Reddit.

    Here's how it works:

    1. They find a blog post with an image that they claim is theirs and use AI slop that has a similar-ish image. It always seems to be linked to Imgur and not another website. I imagine in time, they'll bot it to steal your image and upload it to Imgur as 'proof.' Don't fall for it.
    2. They send a legal threat to the blog owner, demanding a backlink to their site.
    3. If you don't comply, they threaten legal action.

    Shitty ai slop image
    Pictured: This is the slop iamge that I received and I stole so that I'm actually now committing IP theft and defaced it.

    How can I confidently say it's a scam? I've ignored this at least three times now and its been over a year. Absolutely nothing has happened. It's a variation of the old "You have a broken link on your blog. You should link X instead" backlinking scheme.

    Here's the email I received, complete with spelling errors and grammar mistakes:

    James Harris | Citi Legal Services <james@clexperts.org>
    3:45 AM (5 hours ago)
    Dear owner of https://blog.greggant.com/posts/2021/09/24/mac-osx-snow-leopard-nature-desktop-backgrounds-in-5k.html,
    We're reaching out on behalf of the Intellectual Property Division of a notable entity in relation to an image connected to our associated client: Big Cat Snow Leopard.

    Image Reference: https://i.imgur.com/wid2Pil.png
    Image Placement: https://blog.greggant.com/posts/2021/09/24/mac-osx-snow-leopard-nature-desktop-backgrounds-in-5k.html
    We've observed the above image being used at the above specified placement. We are emailing you to insist our client is correctly credited. A visible link to [fake link removed some big cat facts website, I don't even want to acknowledge them in print as I don't want to give them any benefit] is necessary, placed either below the image or in the page's footer. The anchor text should be "Big Cat Snow Leapard". This needs to be addressed within the next five business days.

    We're sure you recognize the urgency of this request. Kindly understand that simply removing the image does not rectify the issue. Should we not see appropriate action within the given timeframe, we will reference case No. 82831 and implement legal proceedings as outlined in DMCA Section 512(c).

    For your convenience, past usage records can be reviewed using the Wayback Machine at https://web.archive.org, the main recognized digital web archive.

    Take this communication as a formal notice. We value your swift action and expect your cooperation.

    Regards

    James Harris
    Trademark Attorney

    Citi Legal Services
    1 Beacon St 12th floor
    Boston, MA 02108

    james@clexperts.org
    www.clexperts.org

    James I assume is not a real person. The website impressively has multiple pages, a few blog posts, and even a phone number and office location. That said, I know multiple real-life lawyers and real estate lawyers would not be dabbling in intellectual property law on the side.

    If you receive emails from clexperts.org, clexperts.site, clexperts.info etc, it's a bullshit law firm. Ignore it. Move on. Don't take my word for it, you can google what real DMCA take down notices look like.


    You probably don't want to stick an Intel GPU into a Mac Pro 2019...

    I tend to do silly stuff with my Mac Pros. This time, I jammed an Intel Sparkle OC ROC A770 into my Mac Pro 2019. It worked well enough in Windows until it caused issues with macOS. The video contains the entire adventure.


    As expected, the Arc A770 wouldn't work in macOS - the system recognized it only as a generic display adapter with no ability to output even unaccelerated video. This isn't surprising since Apple hasn't allowed third-party GPU drivers since macOS 10.13.

    The card performed reasonably well in Windows 10, though benchmarks showed it lagging about 70% behind my Radeon 6900 XT. That performance gap makes sense given the price difference, but the Arc does have some impressive encoding capabilities that make it interesting for certain workflows.

    Things went south when the A770 would enter full leaf blower mode whenever Windows went to sleep. Even worse, after my Windows testing, the Mac wouldn't boot into macOS at all. I don't know if the Intel Arc drivers somehow corrupted my EFI partitions, but when iBoot attempted to load, it failed completely.

    Another thing learned from this experiment is that out of the box, the Mac Pro 2019 does not support Rebar (Resizable bar). Resizable BAR (Base Address Register) is a PCIe feature that enhances how CPUs access GPU memory by allowing them to view the entire GPU VRAM at once instead of in limited 256MB chunks. This technology enables faster data transfers between the CPU and GPU, potentially improving gaming and graphics performance, especially in memory-intensive tasks. AMD markets their implementation as Smart Access Memory (SAM) while Intel and NVIDIA simply call it Resizable BAR, but all function similarly by removing memory addressing limitations in the PCIe interface. There might be ways to enable it, but that's a battle for another day.


    LTT Magnetic Cable Management System Review: Taming My Cable Chaos

    Introduction: The Cable Challenge

    About six months ago, LTT (Linus Tech Tips) generously sent me their Magnetic Cable Management system (MCM), but I've been avoiding the inevitable pain of reorganizing my entire setup.

    Let's be honest - if you're anything like me, organization isn't our strongest point. So today I'm putting the LTT magnetic cable management system to the test on my mess of cables.

    The Setup Challenge

    my items

    My setup isn't extreme, but it's definitely complex. Here's what needs cable management:

    • Five computer speakers
    • Home theater receiver
    • Two displays
    • Three MIDI controllers
    • Two audio interfaces
    • Five external drives
    • USB hubs and various devices
    • Ethernet connections
    • Power banks
    • Hue Lights
    • And many more components...

    my desk

    The centerpiece is a steel McDowell & Craig Tanker desk from the 1950s that belonged to my grandfather. While I'm not usually sentimental about objects, this desk does hold special meaning. The fact that it's steel works perfectly with the MCM's magnetic design, though I'll be testing the system on wood surfaces as well.

    Product Overview: What's in the Box

    box

    The MCM system is straightforward but impressively engineered. Here's what LTT sent me:

    The Arches

    These come in four sizes, and I received the small, medium, and large. The magnets are surprisingly powerful - I can actually open my desk drawers just by attaching these magnetic arches.

    Strength Test: The smallest arch can hold my Cloud Lifter preamp (11.3 oz/320g) with just one magnet. The larger arches could likely hold several pounds. They're so strong that prying them off a surface takes real effort - definitely a good feature.

    Power Bar Keys

    These might be the secret weapon of the entire system. Power bars/surge protectors typically come with screw mounting options, and these keys simply take advantage of what's already there. With a simple twisting motion, you can attach your power supply to any magnetic surface.

    Mounting Plates

    LTT also sent various mounting plates, which are essential if you want to attach the system to non-metal surfaces like wood. Each plate has an adhesive back (though I opted to bolt mine for extra security).

    The Organization Process

    My strategy was to:

    1. Consolidate my mess by relocating my home theater receiver
    2. Attach one power strip to the bottom of my IKEA stand
    3. Organize cables using only what LTT provided

    Step 1: Starting Fresh

    To give my past self credit, I had made some attempts at organization with cable ties, but it was still a mess. Clearing my desk gave me the opportunity to vacuum and clean - keeping your space clean is just part of being a responsible adult.

    Step 2: Tackling Ethernet

    I started with my ethernet situation, tucking the cable between the bevel and garage floor lip, securing it with painter's tape for now (though I'll revisit this for a cleaner solution later).

    Step 3: Power Management

    box

    Next came attaching the power bar keys to my surge protectors:

    • My trusty 10-15 year old Belkin surge protector attached with a simple twist-and-slide motion
    • My ancient (25+ year old) Surge Master with phone line protection (now apparently "rare" according to some optimistic eBay sellers)

    I attached the larger surge protector to the back of my desk and the smaller one to the bottom of my IKEA furniture using the mounting plates. For the wood surface, I bolted the plate down rather than relying solely on the adhesive.

    Step 4: Cable Routing

    One cautionary note: these magnets can scratch metal surfaces! I tried using felt pads to prevent scratching, but they were too thick and reduced the magnetic strength significantly. A product suggestion for LTT would be integrating silicone grips directly into the arches.

    The Results

    I kept my goals realistic, knowing I'd never be able to hide all cables in a setup this complex. When viewed from most angles, the cable mess is considerably reduced. I prioritized functionality over perfect presentation since this setup serves as both my work-from-home station and my creative outlet for YouTube and music.

    One area that turned out particularly well was my Power Mac G4 setup, which is located several feet away from my other electronics. It was already fairly organized, but the MCM made it even better.

    results

    Final Verdict

    LTT drove a money truck to my house for this review, I'm genuinely impressed with the MCM system. (No, they didn't pay me anything.

    Yes, it's somewhat expensive, but I'll be buying more components with my own money for future projects. It's simply the best cable management system I've found so far.

    If you're on a budget, start with the power bar keys - they're likely to be the most impactful first step in organizing your setup. Then you can gradually add more components as your budget allows.

    Disclaimer: LTT provided the products for this review but did not compensate me otherwise. All opinions are my own.


    I just got a PowerPC Mac! ... now what?

    So... the retro computing bug just got you, and you had to get that iBook; maybe it was an iMac G3, a sleek PowerBook G4 12" or PowerMac G5? In any case, this is a guide for you to make the most out of your new-but-old computer.

    PowerMac G5 in Southern Oregon

    Upgrades!... Okay, now what?

    There are too many models and upgrades to cover, and finding information on the upgrades is actually the easy part; between LowEndMac, EveryMac, MacRumors Forums, archived XLR8yourMac articles and posts, ActionRetro, Mac1984, This Does Not Compute, and so on. Therefore, I'm going to pass on this or hardware recommendations. CPU upgrades for the old computers are non-existent, RAM can be maxed out, HDDs can be replaced with SSDs and video cards can be swapped. There's a joy to modular computing, and for some the hunt for rare CPU upgrades or flashing video cards is part of the joy. Even the less-modular Macs of the day are much more hackable than today's computers.

    Therefore, this is a map of recommended software and hopefully an inspiration board to make use of your old hardware. PowerPC computers are too dated and power sipping to have practical value, seeing as a Raspberry Pi has more raw processing power than almost anything in the PowerPC sphere.

    Modern Software

    Believe it or not, there are still people developing retro software for old PowerPC Macs, including Discord, web browsers, and even Chat GPT, as who doesn't want to be gaslit even in the world of retro computing? The video contains a deeper breakdown of the software listed below.


    • Discord Lite - A lightweight Discord client for PowerPC Macs
    • Legacy AI - A modern AI for PowerPC Macs
    • PPCAppStore - A app store for PowerPC Macs
    • Newsstand - A news reader for PowerPC Macs, OS 9 only
    • 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

    There's always Linux...

    Adelie Linux is a Linux distribution that supports PowerPC Macs and still being developed. Popular YouTubers like Action Retro have made videos demoing Adelie on PowerPC Macs, but you bought a Mac to be a Mac.

    Okay.... but really, what now? Project ideas!

    Gaming

    Gaming is an obvious first stop for any retro computer enthusiast to experience games as they were. Apple used to be able to pull in major releases sans the time when Valve canceled the Half-Life port.

    I've compiled a list of 100+ Games worth checking out on your PowerPC Mac. This list is not exhaustive, but it's a good starting point. I've tried to include a mix of genres and games. I've also tried to include games that are still fun to play today. It's a topic within itself.

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

    Music creation

    This is one I'm particularly fond of, as there's a lot of quality retro software be it Logic, Ableton or Cubase for a DAW and oddball apps like Reason, plus a lot of plugins to boot. If you're a digital musician, you're able to make studio quality music on your Mac on the extreme cheap. USB midi is supported in OS X out of the box and it doesn't take a maxed out PowerMac G5 to be able to create quality tunes.

    OS X supports low latency USB midi out of the box, and it's a compelling way to get into digital audio as you can score hardware cheaply, and the limitations can be a blessing. There are musicians (although dwindling) still using PowerPC Macs for audio, building multitrack Protools setups on the cheap. Unlike, say, video, where technology becomes a huge limiter, audio is much freer of restrictions (given you embrace freeze tracks, and RAM caps).

    Reason 4.0 is intuitive, and also a great learning tool for understanding routing and wiring and for people who are new to digital audio and MIDI, it is a great "my first audio app" if you're looking to make music.

    If you've never really messed with music creation, Reason is a brilliantly beautiful

    Digital Photography Workflow

    As of late, early digital photography has had a boom in popularity, partly for the aesthetics and partly for the art. A modern iPhone performs thousands of pre-baked calculations to tune, balance, color correct, and otherwise sweeten a photograph. Old digital cameras have radically less as they mostly take data from a CCD or CMOS and record it to a file. For some, this also means eschewing modern digital darkroom solutions for a more "pure" digital photography experience.

    Programming / Scripting

    Retro software development isn't easier than modern as the barrier for software creation has lowered drastically with the rise of various frameworks and open-source projects that can turn a full-stack web developer into an app developer. For the hardcore, you can take a crack at learning Objective-C or Carbon for classic Mac development.

    Retro Web Development

    Web development might not be the first thing on your mind with a retro computer, but being a much simpler time, much easier to understand. Creating a simple web page was a rite of passage in days past, before social media. If you're feeling particularly inclined, Set up a local web server and build sites with period-appropriate tools or Create a retro webpage or website using the limitation of the early 2000s with CSS 1.0 / Javascript ES3, and embrace Create websites using Dreamweaver MX or GoLive.

    Retrocomputing Documentation and communities

    A bit of ironic self-awareness for this suggestion. One of the big draws is to map out what's feasible and possible. There's an entire world of YouTube, blogs, forums, and Reddit groups dedicated to the pursuits of retro computing that even result in expos.

    Vintage Software

    There's a lot of classic software that's worth checking out. I've compiled a list of some of the best software for PowerPC Macs. This list is not exhaustive, but it's a good starting point. I've tried to include a mix of genres and software. I've also tried to include software that is still useful today.

    Games

    There's so much to cover in Mac gaming (no really, I'm serious) that it demands an entire article of it's own: The best games for late PowerPC G4/G5 Macs - OS 9 and OS X (100+ games)

    Audio

    • Ableton Live 5 - Ableton still had some growing to do, but PowerPC Macs can enjoy Ableton.
    • Apple Logic Pro 7 - Logic Pro 7 is a full-fledged DAW that's still very capable today. Entire albums were recorded on this. It, however, is a bit of a resource hog
    • Audion - Audion was a popular MP3 player that was ahead of its time and offered the most amazing skins of any software. Beautiful, and still a masterclass in Mac software.
    • Cubase LE 1.08/1.04 - Cubase is a powerful DAW that's still used today. The light version caps tracks to 48 audio tracks and 64 midi tracks.
    • Propellerhead Recycle 2.0 - Recycle is a loop editor that allows you to slice up audio for use in other audio applications, allowing you to sample in a unique way. Recycle "REX" loops are still used to this day. It has a short learning curve.
    • Propellerhead Reason 4 - It runs on relatively modest hardware very nicely and features a beautiful skeuomorphic design, allowing you to construct and wire virtual instrument racks. It's a blast and a good way to get into digital music. Highly recommended.
    • Propellerhead Rebirth - ReBirth emulates two Roland TB-303 synthesizers, a Roland TR-808, and a Roland TR-909 drum machine, and paved the way to Reason.
    • Sound Studio 3 - Sound Studio is a simple two-track audio editor that's still very capable today. It's fast, stupidly easy to use, and a good complement to any audio suite.

    Audio Plugins

    Emulation / Virtualization

    Emulation was very popular in OS 9 and OS X. Thus, a wide range of emulators were ported to OS X and OS 9. One of the most impressive is Virtual PC, although requires a beefier Mac as it emulates an x86 CPU. Virtual PC is surprisingly usable on late gen PowerPC G4s and G5s and will also make you thankful for modern virtualization software like Parallels. Connectix VGS is super impressive, as even iMac G3s can join in on PlayStation gaming with near flawless emulation for most titles. It's actually a viable way to play PSX games to this day. I highly recommend trying it out.

    • Boycott - A Gameboy / GameBoy Color emulator for OS 9.
    • Boycott Advance - A Gameboy Advance emulator for OS 8 - OS X.
    • bsnes - A SNES emulator for OS X, only for the PowerMac G5.
    • Connectix Virtual Game Station - Kicked off a major lawsuit by Sony which established emulators as legal, PlayStation games on your PowerPC Mac in OS 9.
    • DGen and Dgen OS 9 - A later emulator for Sega Genesis / Megadrive games on your PowerPC Mac in OS X.
    • GenEm - Play Sega Genesis / Megadrive games on your PowerPC Mac in OS 9.
    • Genesis Plus - A Sega Genesis / MegaDrive emulator for OS 8 - OS X.
    • Generator - A Sega Genesis / MegaDrive emulator for OS 8 - OS X.
    • GrayBox - A NES emulator built for System 7 - OS 9.
    • Handy - An Atari Lynx emulator for OS 8 and OS X.
    • iNES - iNES is an NES emulator that allows you to play NES games on your PowerPC Mac in OS 9.
    • KiGB - Gameboy emulator for OS 8 - OS X.
    • Mini vMac - Mini vMac is a Mac Plus emulator that allows you to run classic Mac software on your PowerPC Mac.
    • M1 multi-platform arcade music emulator - play music from videogame ROMS for OS 8 - OS X.
    • MAME OS X - MAME is an arcade emulator that allows you to play arcade games on your PowerPC Mac in OS X.
    • MasterGear - A Sega Master System / Game Gear emulator for OS 7 to OS 9.
    • Mupen64 - A Nintendo 64 emulator for OS X, limited compatibility.
    • NeoPocott - A Neo Geo Pocket Color emulator for OS 9 and OS X.
    • Nestopia - A NES emulator for OS X.
    • PCSX - The PowerPC version of the popular PlayStation emulator
    • RockNes - OS 8 to OS X NES emulator
    • SMSPlus - A Sega Master System / Game Gear emulator for OS 9 and OS X.
    • Snes9x - A powerful SNES emulator that worked on relatively modest hardware.
    • QuickNES - An NES emulator that works both on OS X and OS 9.
    • Virtual PC 7 + Windows XP - Virtual PC is virtualization software that opened up the world of emulating Windows on a Mac.
    • VisualBoyAdvance - A Gameboy Advance emulator for OS X.
    • Blitter Library - visual enhancements for many popular OS 9 emulators
    • Emulation Enhancer - visual enhancements for many popular OS X emulators

    Graphic Design

    We've both come a long way and are not terribly far in the world of graphic design software as Photoshop 9 is still more than capable today, even if it lacks some of the ML/AI features of upscaling, content-aware replacements, focus correction and so on. If you get good with Photoshop 9, you're basically ready-to-go on the current version of Photoshop CC.

    • Adobe Creative Suite 1 & Adobe Creative Suite 2 - The suite were much smaller with Adobe Acrobat Professional, GoLive, Illustrator, ImageReady, InDesign, & Photoshop. Even today, Illustrator and Photoshop 9 remain capable as they feature HDR support, warping tools, and smart objects (still lacking from virtually all competitors). Photoshop 9 is a beast and, while intensive, is surprisingly nimble compared to its bloated modern versions. Most everything you'd ever need is in this version.
    • Aperture - Apple's professional photo editing software that developed a small cult following.
    • Cinema 4D R9 XL - Cinema 4D is a 3D modeling and animation software. It's robust for its time.
    • Macromedia Studio MX - Macromedia Studio MX is a suite of software that includes Dreamweaver, Fireworks, Flash, and Freehand. This is mostly a nostalgia binge, but Freehand, in my opinion, was much easier to use the vector illustration app.

    Productivity

    It's unlikely you'll be using your PowerPC Mac for writing the next great American novel, but there are still a few productivity software packages you may want to experience.

    • Microsoft Office 2004 - Yep. It's Microsoft Office, and that means Word, Excel, PowerPoint but also Virtual PC 7
    • OmniGraffle - If you're after some 2000s-era diagramming and flowcharting in a native Mac-only experience, OmniGroup has you covered.

    Utilities & Enhancements

    OS X was infinitely more hackable than modern macOS due to less OS security. OS customizations were popular and varied. It's one of the more senseless and fun things to explore for early OS X.

    • Diskwarrior 3.x - Absolutely a must. HFS+ is pretty awful and prone to a lot of errors. Diskwarrior saved my ass many a time back in the day and makes retro computing more enjoyable as it's able to fix the by far and away the most problems with disk corruption, and much better than Apple's own disk utility.
    • Drag Thing - A dock alternative that predates OS X
    • Drop Drawers - A lesser-known but useful utility that allowed for spring-loaded folders on any side of the screen and could house links, application aliases, text, etc
    • FruitMenu - customize the Apple menu
    • Kaleidoscope - An OS 9 theming application
    • Onyx - Onyx is an OS X system maintenance tool that allows you to clean up your system, repair permissions, and optimize your system. It's a good way to keep your system running smoothly. Depending on the OS X version, lets you modify the dock appearance and default behaviors.
    • Roxio Toast 6 Titanium - Toast is a CD/DVD burning software that allows you to burn CDs and DVDs and mount disk images. Highly recommended.
    • OmniDiskSweeper- quickly find and delete large files.
    • Shapeshifter - early OS X was wildly themeable, and Shapeshifter offered awesome theming capabilities. It only worked until 10.4 Tiger.
    • QuickSilver - application launcher
    • TinkerTool - exposes hidden system customization
    • Window Shade X - Staple of OS 9, allowing for collapsible windows that made its way to OS X

    Development & Programming

    Many developers have fond memories of coding on PowerPC Macs, and some might want to relive that experience. Modern devs might want to take a swing at writing a new app with the challenges of retro software.

    Networking & Internet

    Less "fun" than more practical as FTPs are a surefire way to transfer software, especially to OS 9 computers.

    Video and Media

    PowerPC Macs were the go-to for video editing and media production, although they struggled during the High-definition transition as even the mightiest of G5s were somewhat ill-equipped for 1080p editing. If you have an old DV camera, they'll chew through 480i and 480p video.

    • Final Cut Studio - Apple's professional video editing suite, including Final Cut Pro, DVD Studio Pro, Motion, Live Type, Compressor, Cinema Tools, and Soundtrack.
    • iLife - iLife is a suite of software that includes iPhoto, iMovie, iDVD, and GarageBand that makes any Mac user a multimedia wizard.
    • iMove HD - Who doesn't love editing 1080i video?
    • VLC - The legendary open source media player

    What is even happening?

    You wake up one day to find yourself with unfathomable wealth. You're not sure how it happened, but you're not going to question it. You have enough riches that your children's children's children will live a life of utter opulence and decadence. You're not sure what to do with all this money, it's unearned. You were born into incredible wealth so you were free to take risks. Even if you failed, you'd still in the 0.1%. However, mostly blind luck, you invested and made a few gambles, and it paid out. Sure, you had to lie, cheat, and steal a bit, but you're not going to think about that. The world is your oyster. People flock to you. They swarm, looking to you for guidance as one of the richest people who ever lived. People hang on to your every word. You start to believe that maybe, after all, you are chosen. Your humility and humanity start to leave as you choose flattery over honest feedback. Sycophantic, desperate men idolize you as you are an avatar for their own mediocrity and lack of acuity. Whether they or you realize it or not, your own mediocrity represents the escape fantasy. A line gets crossed; maybe it's the psychedelics, lack of sleep, and alcohol, or maybe it's the isolation and sadness as you start to stare down your own mortality, but your id takes control, impulse over consideration. Rather than self-actualization, you choose self-infantilization. You buy your way into a despotic government run by a clueless old man who you can easily woo with flattery and fame. You can reform this world in your making.... and you lie about video game and cry publicly about a beef with twitch streamer.

    What is even happening?

    Even this mental exercise of trying to explain the world I lived in to my past self in 2015 is too stupid to even take seriously. This goddamn timeline.... I swear...

    Elon sucks. Also, 🇺🇦🇺🇦🇺🇦


    Blog Updates

    Not that I have regular readers, keeping with the tradition of announcing changes, like my stupid spam bot solution, complianing about AI, adding dark mode, or general changes, I finally removed jQuery. That's a 70k JS payload down to 7k. The only reason it existed was for FitVidJS, which I converted to vanilla JS.

    Also, now my slogan changes with well over 100 phrases; some are a bit spicy... well, only if you're the sort of low-acuity person who still thinks Elon is cool. It's okay, I'm just a mean guy who doesn't use Twitter. My opinions don't count.

    I'll probably look at integrating this blog into ActivityPub to continue supporting the open internet.


    Setting up a Synology VPN for your Mac

    I know why you're here. It's because you want to connect to your local network via WWW, but Synology's guides aren't complete, and a bit out of date, right? I don't know why I'm asking, as you can't respond. Anyhow, let's get to it.

    Step 1: Setting up the your Router

    Router Config

    In your router, you'll need to set up port forwarding or "Virtual Server" or "NAT Settings":

    • UDP port 500 (IKE)
    • UDP port 1701 (L2TP)
    • UDP port 4500 (IPSec NAT-Traversal)

    These must be pointed to your Synology's internal IP address, like 192.168.x.x or 10.10.x.x. You also may need to unblock these in your Firewall.

    Step 2: Setting up the VPN Server

    Synology VPN Config

    If you haven't installed the VPN Server package from Synology on your NAS, you'll need to do this.

    You have three main options for setting up a VPN, only two of which are real options: OpenVPN and L2TP over IPSec. The path of least resistance is L2TP over IPSec. You'll only need to configure the IP address, which should be in the same host range (the last two octlets). My network is 192.168.50.x. To avoid any IP conflicts, I just add +1, so my VPNed devices will be 192.168.51.x.

    The second piece is the Pre-shared key. Assign this to whatever you'd like, but you will need this password.

    Step 3: Setting up your Mac

    Locate VPN in the system settings; in modern macOS, search "VPN," and it'll appear in the sidebar. Click add VPN configuration, and select L2TP over IPsec.

    VPN Config in macOS for Synology

    You'll need to configure the following:

    • Display name: This can be anything
    • Server address: This is your network's external IP. I couldn't get the quickconnect URL to work, but there is probably a way. The easiest way to determine your IP is to use a "What's my IP" search in a web browser when connected to the same network as your Synology.
    • Account name: This must be a Synology user on your NAS. You can create an account just for VPN or use an existing account
    • Password: This is your password for the Synology user.
    • Shared Secret: This is the pre-shared key you set up in the Synology VPN server.

    To test the connection, you'll need to use an external network; if you have an iPhone, a quick and easy way is to connect your Mac to your iPhone as a hotspot and test the VPN connection.

    If you have issues connecting anything on your network, in your VPN configuration, click options and select "Send all traffic over VPN connection". This is a brute force method that'll do exactly what it says. Your Mac essentially exists on the same network as the rest of your devices.


    The Definitive Guide to iOS/iPadOS emulation

    As of April 2024, Apple has allowed emulation as long as they don't use JIT. This has opened up the floodgates to a technology that virtually every other modern platform in existence allows. Emulation can be used for many things, but gaming is the most popular use case for average users, and thus, this guide will focus entirely on gaming.

    This guide is a living guide and is in the process of being built out. The goal is to demystify iOS emulation and make it accessible. Thanks to the r/EmulationOniOS community.

    Also available in video!

    If you prefer a video version of this guide, I've made a video version that covers everything you need to get started with iOS emulation.

    8 Bits of Power

    Does this guide seem familiar? Perhaps you've seen my The Definitive Classic Mac Pro (2006-2012) Upgrade Guide, The Definitive Trashcan Mac Pro 6.1 (Late 2013) Upgrade Guide or The Definitive Mac Pro 2019 7,1 Upgrade Guide. These are all free of charge, free of advertisements and annoying trackers, labors of love. You can find me on YouTube and patreon.




    Glossary

    Emulation has a lot of jargon that comes with it. As a quick refresher, here's a list of terms that will be used throughout this guide.

    • BIOS (Basic Input/Output System) – A small program essential for some emulators to replicate the original hardware's startup process and functionality. Required for systems like PlayStation and Game Boy Advance.
    • Core – A specific emulator module within a front-end system (like RetroArch) designed to emulate a particular console. It is an application within an application.
    • Emulator - software or hardware system that mimics the behavior of another system, allowing one device or platform to run software or applications designed for a different environment. It replicates the original system's functionality, including hardware and software interactions, without requiring the original hardware.
    • Firmware – Low-level software stored in a device's ROM or flash memory that controls hardware functions. Some consoles require firmware files for proper emulation.
    • Frame Skip – A feature that skips rendering frames to improve performance, reducing the number of frames displayed per second and affecting lower frames-per-second (FPS). This was a common technique with underpowered hardware. Modern iOS/iPadOS devices almost never need to make this compromise. Generally, poor performance is due to other factors like using too many game enhancements.
    • Front-End – A graphical user interface that simplifies the process of using multiple emulators and managing game libraries. RetroArch is a popular front-end for multiple emulators.
    • JIT (Just-In-Time compilation) - A method that dynamically compiles code during execution, improving emulation performance but restricted by Apple's policies
    • IPA (iOS App Store Package) – A file format used for iOS apps that can be sideloaded onto devices using tools like AltStore or Cydia Impactor.
    • ISO (International Standards Organization file) – Files distributed with a .iso suffix adhere to the ISO 9660 standard. A .iso is a disk image file that contains a complete copy of a CD/DVD game commonly used for PlayStation, Dreamcast, and other disc-based consoles.
    • libretro - An open-source development interface that allows for the easy creation of emulators, games, and multimedia applications that can plug straight into any libretro-compatible frontend. RetroArch and Provenance are a front-ends that uses libretro cores. Libretro cores have been ported to an incredibly diverse set of operating systems like Linux, Windows, macOS, Android, iOS/iPadOS/tvOS/visionOS, and CPU architectures like x86 (Intel/AMD), ARM, Risc-V, and even PowerPC. Almost all iOS/iPadOS emulators are based on libretro and is the backbone of iOS emulation.
    • Native Resolution - the original display resolution of the emulated console.
    • ROM - (Read-Only Memory) is a type of non-volatile memory that stores firmware or software permanently and cannot be easily modified or erased. In emulation, a ROM refers to a digital copy of a game's software extracted from a physical cartridge or disc, allowing it to be played on an emulator.
    • Save State – A snapshot of a game's current state that can be saved and loaded at any time, allowing players to resume gameplay from that point.
    • Side Load – Sideloading is the process of installing apps on iOS/iPadOS devices from sources other than the official App Store, typically by using tools like AltStore, which allows access to emulators that use JIT compilation and other features restricted by Apple's App Store policies.



    Getting Started /Requirements

    Emulation is software that mimics another device's hardware and software environment, allowing your iOS device to run games and applications originally designed for different systems like the Nintendo Game Boy, PlayStation, or Sega Genesis.

    Requirements:

    • A device running iOS 17, iPad OS 17 or later
    • Free space on your device
    • Optional but recommended: A gamepad
    • A bit of patience

    Modern iPhones and iPads are powerful machines; the iPhone 16 Pro in raw CPU computing bests an 8-Core Mac Pro 2019. Any device capable of running modern iOS has enough processing power to emulate many different platforms. In the late 1990s, an iMac G3 233 MHz could emulate a NES and do reasonably well at SNES emulation. The biggest impediment for most devices will be storage as 32-bit era consoles like the Sony Playstation, Sega Saturn, or PPSSPP games can easily eat 600 MB per game, and in the case of the PSP, over 1 GB.

    An emulator cannot understand interactions the console was not programmed for, such as touching menu items in an SNES game. While emulators feature touch controls, gamepads are highly recommended as console games are designed specifically for controllers; thus, all touch controls are mapped to key presses. Touch controls are either unable or very difficult to use for some interactions, such as analog triggers.




    Legal Considerations for ROMs and BIOS Files

    The video above is a video I made about the story of Connectix VGS and how it enshrined emulators as legal

    The legal status of game ROMs and console BIOS files exists in a complex gray area that varies by country and jurisdiction. While emulators themselves are generally legal software, the content they run often raises copyright concerns.

    ROM Files

    ROMs (Read-Only Memory) are digital copies of game cartridges, discs, or other media. From a legal standpoint:

    • Personal Backups: In many jurisdictions, making personal backup copies of games you legitimately own is considered legal under fair use doctrines.
    • Downloaded ROMs: Downloading ROMs of games you don't physically own is generally considered copyright infringement, even if you previously owned the game but no longer do.
    • Time Limitations: There is a common misconception that games become "abandonware" after a certain period. However, copyright protection typically lasts for decades (in the US, copyright extends 95 years for corporate works), and most classic games are still under copyright protection.

    Of course, said files are often distributed openly on the internet and found via search engines.

    See the ROM Dumping and Creating ISOs section on how to make legal backups of your games library.

    BIOS Files

    BIOS files are even more legally sensitive than ROMs:

    • Copyright Protection: Console BIOS files are protected by copyright and are generally not intended for distribution.
    • No Abandonment Provisions: Even for discontinued consoles, the BIOS copyright remains in effect.
    • Reverse-Engineered Alternatives: This is why many emulators (like those mentioned in this guide) offer reverse-engineered open-source BIOS alternatives that don't infringe on copyrights.

    Best Practices

    To stay on the safer side of the legal spectrum:

    1. Only create backups of games you legally own.
    2. Don't distribute ROMs or BIOS files to others.
    3. Support developers by purchasing games when they're available on modern platforms.
    4. Consider using legal alternatives like official re-releases or subscription services that offer classic games.

    Many companies now offer legal ways to play classic games:

    • Nintendo Switch Online (NES, SNES, N64, Game Boy games)
    • PlayStation Plus (PlayStation classics)
    • Virtual Console and classic collections
    • GOG.com and other digital stores that sell classic games

    This guide is not intended to encourage copyright infringement. The technical information provided is for educational purposes and for those who wish to play games they legally own on modern devices.

    Note: This section provides general information, not legal advice. Laws vary by location and interpretation. When in doubt, consult legal resources specific to your region.




    iOS/iPadOS vs Android

    This guide will likely never feature a comprehensive breakdown comparing iOS vs Android, but Android has a considerable advantage compared to iOS.

    Due to its more open nature, Android has a decisive advantage. While iOS/iPadOS emulation dates back to the jailbreaking era of iOS, Android app stores have officially allowed emulation from virtually the beginning, meaning there are many more mature emulators. Android also places fewer restrictions on emulation; thus, emulators exist for more modern consoles, like the Sony PlayStation 2, Sega Dreamcast, GameCube, Wii, and even the Swìtch.

    The diversity of the Android ecosystem has spawned full-blown console-like Android devices such as the Odin 2, a high-end device that features a built-in gamepad akin to a portable videogame console. Devices like the Odin 2 feature memory cards, allowing for a relatively inexpensive way to store game collections.

    Android is also more forgiving about 3rd party controller mapping, whereas iOS has a much more limited ability to map 3rd party controllers. This gives Android an accessibility edge as less conventional layouts and input devices can be mapped according to user preference.

    Mainstream iOS/iPadOS emulation, while relatively young by comparison, still offers a great experience. Apple's hardware is second to none, as there are few devices that can match an M3 iPad in raw performance. Android does not make the setup easier in my experience, but rather, it offers a lot more options. This guide will help you get the most out of your iOS or iPadOS device.

    Android is the superior option if emulation is your primary concern.




    File Management

    wifi

    iOS has a very locked-down file system, but it does provide multiple ways to transfer data to and from your device. The most common methods are:

    • USB File Transfer - USB File Transfer is the most reliable and recommended method, but it requires a computer.
    • iCloud Drive - iCloud Drive allows for dynamic file management but requires a subscription for more than 5 GB of storage
    • AirDrop - Airdrop is the most convenient but is limited to Apple devices.

    Transferring via USB

    Transferring files via USB, as stated, is the preferred method due to speed, reliability, and accessibility.

    1. Connect your iPhone or iPad to your computer via cable. You may need to authorize the device on your computer and/or device.
    2. Open Finder on your Mac or File Explorer on your Windows PC.
    3. Your device should appear in the sidebar or as a drive in the finder. Click on it to bring up the iPhone pane.
    4. Click on the Files tab to access the file system. You should see a list of installed applications that support file transfers, including your emulators. Due to the limitations of Apple, you cannot access any files within a folder
    5. Drag and drop files to your device on the Application icon. You can drag and drop entire folders.

    Regardless of file transfer type, file management is almost entirely handled on the device using the Files app. For detailed instructions, see Organize files and folders in Files on iPhone. Files can be accessed between applications. This is very useful for sharing ROM libraries between emulations such as RetroArch and Delta, which can both emulate a subset of the same consoles (NES, SNES, GameBoy, Gameboy Advance, DS, and N64). They can share files rather than storing duplicate copies of the same game.

    To select all, tap a file, and then from the lower left corner, click select all.

    To move a folder or file, long press it, and then select move.

    Third Party File Management

    Dude, to the arbitrary limitations Apple places on file management, there is a cottage economy of phone management applications, the most prominent being iMazing. These applications allow for viewing and editing the contents of directories that exist on an iPhone. Unfortunately, these applications do cost money but are easier to use than Apple's Files app.

    Adding games to Emulators

    Once games have been transferred, adding games to the emulator in question is relatively easy.

    Every emulator follows the same pattern for adding ROMs to its library by clicking some sort of add + or Add games button, then locating the files and selecting all or pointing a scan function to the directory. A few emulators have default locations like PPSSPP that will auto-scan. Only DolphiniOS requires the ROMs to be located in an exact directory.




    Emulators

    Pick a Path

    Emulators on iOS exist in two camps: App Store and Sideloaded (see lists below). iOS's emulation selection is slim, but fortunately, almost all of the major consoles are covered up to the 32-bit era. Here is the list of consoles supported, all of which have RetroArch support. Emulators like Delta use the same cores that are found in RetroArch.

    • Amstrad - CPC
    • Arcade - MAME / NeoGeo / CPS 1-2-3
    • Atari - 2600, 5200, 7800, Jaguar, Lynx
    • Bandai - WonderSwan
    • ColecoVision
    • Commodore - C64,C128, Plus4, Vic20, Amiga
    • DOS - DOSBox
    • GCE - Vectrex
    • Magnavox - Odyssey 2 / Phillips Videopac+ (O2EM)
    • Microsoft - MSX+
    • MNec - PC Engine / TurboGrafx-16 / CD, PC-98, PC-FX
    • Nintendo - NES, SNES, N64, DS, Gameboy, Gameboy Color, Game Boy Advance, Virtual Boy, 3DS
    • Palm OS
    • Sega - MasterSystem, Game Gear, SG-1000, Genesis / MegaDrive, Saturn
    • Sharp - X68000
    • Sinclair - ZX 81, ZX Spectrum
    • SNK - NeoGeo Pocket / Color
    • Sony - PlayStation, PSP
    • 3DO
    • Thomas - MO/TO
    • Uzebox

    App Store Emulators

    There are several emulators available on the App Store that Apple sanctions. These emulators are limited in scope and are generally focused on older consoles.

    Delta, Consoles, Provenance, PPSSPP, and RetroArch are recommended emulators. Delta/Provenance both offer a very low-resistance, native iOS experience at no charge. The PPSSPP core powers iOS emulation, but the dedicated app exposes the most features and makes configuring the advanced graphical options exceptionally easy. RetroArch is the most popular and powerful front end for LibRetro.

    Side Loaded Emulators

    There are several emulators that exist outside of the Apple App Store due to the policies Apple imposes, chiefly around the usage of JIT runtimes. The author responsible for porting DolphiniOS has a short blog post that explains the state of JIT and iOS in more depth.

    The current roster of non-App Store iOS apps are:




    iOS / iPadOS Emulator Compatibility Table

    The table below shows which consoles are supported by each emulator available on iOS/iPadOS. This can help you quickly determine which emulator to use based on the systems you want to play.

    Multi-console

    Multi-console emulators are largely LibRetro front-ends that expose varying degrees of support and options.

    Console RetroArch Delta Folium Consoles Ignited Provenance Sideloaded
    Only
    Nintendo (NES)
    Super Nintendo (SNES)
    Nintendo 64 (N64)
    Nintendo DS
    Nintendo 3DS
    GameCube / WiiDolphiniOS
    Nintendo SwitchMelonX
    Game Boy
    Game Boy Color
    Game Boy Advance
    Virtual Boy
    PlayStation (PS1)
    PlayStation 2 (PS2)Play!
    PlayStation Portable (PSP)
    Sega Master System
    Sega Genesis/Mega Drive
    Sega CD
    Sega Saturn
    Sega DreamcastFlycast
    Sega Game Gear
    Sega SG-1000
    TurboGrafx-16/PC Engine
    TurboGrafx-CD/PC Engine CD
    NeoGeo Pocket/Color
    WonderSwan
    Arcade (MAME/FBA)
    Atari 2600
    Atari Lynx
    3DO
    Intellivision

    Notes:

    • ✓ = Supported in App Store version
    • ✗ = Not supported
    • Sideloaded = Requires installation outside the App Store using AltStore or similar methods
    • RetroArch supports many additional systems not listed, including various computer platforms (Commodore 64, Amiga, DOS) and more arcade systems
    • Provenance may support additional systems in its sideloaded version with JIT support
    • Emulation quality can vary significantly between emulators for the same platform
    • The Consoles app has announced future updates that will add support for Nintendo DS, Sega Master System, Sega CD, Sega Saturn, SG-1000, 3DO, and Intellivision
    • 3DS support for Provnance may still be only in the side loaded version

    Single / Limited Console

    There are a plethora of NES or Gameboy targetted emulators to choose from.

    Console AdBoy ArcEmu iGBA eNES Gamma LinkingBoy Nin10 PPSSPP Retroman SameBoy Super16bit YabaSanshiro2
    Nintendo (NES)
    Super Nintendo (SNES)
    Nintendo DS
    Game Boy
    Game Boy Color
    Game Boy Advance
    PlayStation (PS1)
    PlayStation Portable (PSP)
    Sega Genesis/Mega Drive
    Sega Saturn

    Notes:

    • ✓ = Supported in App Store version
    • ✗ = Not supported

    Supported OSes and Pricing Chart

    All side-loaded emulators are currently free. Mac versions of side-loaded emulators do not require side-loading. Not listed Mac emulators include PCSX2, and RPSC3.

    Emulator macOS iOS iPadOS watchOS tvOS visionOS Pricing
    AdBoy🟢
    ArcEmu💰
    Consoles💰
    Delta🛍️
    iGBA🛍️
    eNES🛍️
    Folium💰
    Gamma🛍️
    LinkingBoy🛍️
    NiN10💰
    PPSSPP🟡
    Provenance🛍️
    RetroArch🟢
    Retroman💰
    SameBoy🛍️
    Super16bit🟢
    UNDS🛍️
    Yaba Sanshiro 2💰
    • 💰 = Requires Purchase
    • 🛍️ = Offers In-App Purchase(s)
    • 🟢 = Free
    • 🟡 = Free. Completely optional purchase. Mac App is not in App Store.



    Delta

    Links: App Store, Official website

    Delta

    Delta is a multi-emulator that supports a wide range of consoles, including the Nintendo Entertainment System (NES), Super Nintendo Entertainment System (SNES), Nintendo 64 (N64), Nintendo DS, Game Boy, Game Boy Color, and Game Boy Advance and provides a very-iOS native experience for its UI making it the easiest to use emulator in this list. It is free on the App Store. It's a minimalist emulator that focuses on ease-of-use above customization and seems entirely focused on Nintendo consoles.

    Adding ROMs

    Transfer ROMs to your iPhone; from the main screen, click the + menu and locate your ROMs. Delta will automatically sort them between the supported consoles

    Save States

    In Delta, save states are triggered by clicking the menu button during gameplay. This will allow you to bring up the load state or save state menus. When saving a state, click the save state option and then click the + button to save a new state. Loading states is even easier; just tap Load State from the menu, locate the save you'd like to load, and tap it. Your game will resume in the exact place depicted in the screenshot.

    Optional Nintendo DS BIOS

    Delta uses the MelonDS core, which uses, by default, reversed-engineered open-BIOS and does not require Nintendo DS BIOS to function. However, there may be extreme edge cases where this might cause minor issues (likely saving games). You can provide your own BIOS files by transferring the three required files to your iPhone. In Settings, locate Core Settings and tap the Nintendo DS. You'll need to provide a bios7.bin, a bios9.bin and thefirmware.bin. Tap and link them.

    Nintendo (NES) Games not loading

    If you have a problem loading NES cores, quit the emulator and relaunch it. Swipe to your NES collection. Long press and hold on to a game to bring up a preview. You should see the game running in a preview. From there, tap open. NES games should be playable




    Folium

    Links: App Store, official website

    Folium

    Folium is another multi-console emulator which can emulate - Game Boy Advance, Nintendo DS, Nintendo Entertainment System, Super Nintendo Entertainment System, PlayStation 1, and most interestingly, the Nintendo 3DS. It is a paid app, costing $4.99, and has mixed reviews. It supports optional JIT hook-ins for 3DS emulation performance enhancements.

    The emulation author has chosen to obfuscate some of the emulation cores and what services they are providing, making it a bit... odd. The developer is active on r/EmulationOniOS

    Adding ROMs

    TBA

    Save States

    TBA

    Optional BIOS

    Folium Missing Files

    Under Folium's settings is a "missing files". These are the BIOS files that are required for certain emulation cores.

    Cytrus - AES keys (3DS)

    AES (Advanced Encryption Standard) keys for the 3DS are cryptographic keys that Nintendo uses to encrypt various system files, game data, and content on the Nintendo 3DS platform. These keys are essential for decryption and proper handling of 3DS content in emulators. Cytrus is a relatively new emulation core. In order to play encrypted content, which most games are, you'll need to provide an AES Key.

    Grape - Nintendo DS emulation

    The Nintendo DS requires three bios files, the bios7.bin, bios9.bin and firmware.bin. This is based on the NooDS core.

    The author recommends placing the cores in Grape/sysdata, although the application allows for linking.

    Lychee - PlayStation 1

    PlayStation 1 emulation requires a BIOS file. There are many options, such as scph5500.bin. The Emulation core is currently unknown.

    Tomato - Game Boy Advance

    The GameBoy Advance requires a bios.bin. The Emulation core is currently unknown.




    Consoles

    Links: App Store, Official website

    Gamma

    Information coming soon.




    Gamma

    Links: App Store, Official website

    Gamma

    Gamma is a semi-paid emulator that offers an advertisement-supported free tier. It has received criticism as it collects some personal data (almost certainly for the advertisements). It is a reasonable one-time $5 purchase and is continually being improved.

    Adding ROMs

    Transfer ROMs to your iPhone; from the main screen, click the + menu and locate your ROMs. Gamma supports bin/cues and ISOs. The paid version will support compressed files but seems only auto-decompress them.

    Save States

    In Delta, save states are triggered by clicking the menu button during gameplay. This will allow you to bring up the load state or save state menus. When saving a state, click the save state option and then click the + button to save a new state. Loading states is even easier. Just tap Load State from the menu, locate the save you'd like to load, and tap it. Your game will resume in the exact place depicted in the screenshot.

    Optional BIOS

    Gamma uses the PCSX-ReARMed core, which uses, by default, reversed-engineered open-BIOS and does not require a BIOS to function. However, there may be extreme edge cases where this might cause minor issues (likely saving games). You can provide your own BIOS files by transferring a BIOS file to your iPhone. In Settings, locate Core Settings and tap the PlayStation. You must provide a bios.bin file. Tap and link them. It does not need to be named bios.bin




    PPSSPP

    Links: App Store, App Store (Gold), Official website

    PPSSPP

    PPSSPP is the gold standard for emulation experience as it cannot only play PPSSPP games but also enhance them beyond the original console's ability. Modern iPhones have enough horsepower to greatly enhance the graphics output of the PPSSPP titles.

    Adding ROMs

    Transfer ROMs to your iPhone; from the main screen, click the refresh menu and locate your ROMs. PPSSPP supports .iso, .cso, .pbp, and .chd.

    Save States

    In PPSSPP, save states are triggered by clicking the menu button or tapping the screen to bring up touch controls. This will allow you to bring up the load state or save state menus.

    Graphics Options

    Rendering Mode

    • Backend: Determines the graphics API used for rendering; different backends may offer varying performance and compatibility on your device.
    • Rendering Resolutions: Controls the internal resolution at which games are rendered; higher values provide sharper visuals but require more processing power.
    • Software Rendering (Slow accurate): Uses CPU instead of GPU for rendering, providing better compatibility for problematic games at the cost of significantly lower performance.
    • Display Layout and Effects: Controls how the game is displayed on the screen and allows the application of visual effects like shaders or filters.

    Framerate Control

    • Frame skipping: Skips rendering certain frames to maintain game speed on slower hardware; helps performance but may cause visual stuttering.
    • Frame Skipping Type: Determines the method used when skipping frames, affecting how smoothly animations appear during performance optimization.
    • Auto frameskip: Automatically adjusts frame skipping based on current performance to maintain target speed; provides dynamic optimization without manual adjustment.
    • Alternative speed (in %, 0 - unlimited): Allows custom adjustment of emulation speed as a percentage of normal; useful for speed runs or slowing down challenging sections.
    • Alternative speed 2 (in %, 0 - unlimited): Provides a second preset speed option that can be quickly toggled; convenient for switching between different emulation speeds.

    Speed Hacks (Can cause rendering errors!)

    • Skip buffer effects: Bypasses certain visual effects that require buffer operations; improves performance but may cause visual glitches in some games.
    • Disable Culling: Turns off the removal of non-visible polygons; can fix broken visuals in some games but may reduce performance.
    • Skip GPU readbacks: Prevents the GPU from sending data back to the CPU; can significantly improve performance but may cause graphical issues or crashes.
    • Lazy texture caching (speedup): Delays texture loading until absolutely necessary; reduces memory usage and improves performance but may cause brief texture pop-in.
    • Spine/bezier curves quality: Controls the precision of curved surface rendering; lower values improve performance, while higher values enhance the visual quality of curved objects.

    Performance

    • Render duplicate frames to 60 Hz: Repeats frames as needed to maintain smooth 60Hz output even when the game runs at lower framerates; reduces stutter but doesn't affect actual game speed.
    • Buffer graphics commands (faster, input lag): Queues up graphics commands for batch processing to improve performance; may introduce slight input delay as a trade-off.
    • Hardware Transform: Uses GPU acceleration for geometry transformations instead of CPU; typically provides significant performance gains but may cause visual glitches in some games.
    • Hardware Tessellation (greyed out): Would use GPU to generate additional geometric detail on surfaces; currently unavailable on iOS devices.

    Texture Scaling

    • Upscale Type: Determines the algorithm used to enhance texture quality; different methods offer varying balances between quality and performance.
    • Upscale Level: Controls how much textures are enhanced in resolution; higher values provide sharper textures but require more processing power and memory.
    • Deposterize: Reduces the banding effect in textures that have limited color gradients; smooths out color transitions but may slightly blur sharp edges.
    • Texture Shader (Greyed out): Would apply custom effects to textures; currently unavailable on iOS devices.

    Hack Settings (May cause glitches)

    • Lower resolution for effects (reduces artifacts): Renders certain visual effects at a lower resolution than the main game can improve performance and reduce visual artifacts in some games.



    Provenance

    Links: App Store, Official website

    Provenance

    Provenance is one of the oldest iOS emulators, going back to jailbreaking days, going back at least to 2016. Provenance is a much more 'iOSified' front end of libretro, supporting roughly the same set of cores as RetroArch. Due to its history in iOS emulation, it has a strong user base.

    Adding ROMs

    Provenance has the ability to use a Web Server UI, akin to older iOS applications like GoodReader and Airdrop. Provenance's official website has a guide on how to use this feature. It works by creating a temporary web server that is accessible via HTTP (Web browser) on your local network and offers a simple upload solution.

    Web Server

    1. Make sure your device's WiFi is turned on and connected to the same network as your computer.

    2. In Provenance: Turn on the Web Server:

      • Select the + button in the Game Library, or…

      • In Settings, select the Import/Export option.)

    3. Web Server Active. Make note of the [device-ip]

      • Access from a web browser, Web UI : http://[device-ip]

      • WebDAV: http://[device-ip]:81

    AirDrop

    • Open the AirDrop window via macOS Finder.
    • Drag & Drop file(s) onto yourself/your device.
    • Locate and tap Copy to Provenance option. Done

    File Sharing

    Like other emulators, Provenance supports USB transfer. The ROMs go into Documents/Import

    Save States

    Press the menu button while playing a game. Choose the Save States option. From here, you can press the + button to create a new save state. You can also tap on an existing save state and choose to overwrite that state with a new one. This cannot be undone, so be sure that you back up the save state before doing this if you wish to keep it.

    To load from an existing save state, press the menu button after loading a ROM. Here, you will find all of the save states you've manually created, as well as the automatic states. Tapping on a save state will present a menu allowing you to load the state.

    Optional BIOS

    Provenance uses the libretro cores, which require BIOS files for certain systems. These are the BIOS files required for certain systems:

    • Atari 5200 - 5200.rom
    • Atari Lynx - lynxboot.img
    • CBS ColecoVision - coleco.rom
    • Nintendo Famicom Disk System - disksys.rom
    • Nintendo Game Boy Advance - gba_bios.bin Optional!
    • NEC PC Engine Super CD-ROM² System / TurboGrafx-CD - syscard3.pce
    • NEC PC-FX - pcfx.rom
    • Palm PalmOS - bootloader-dbvz.rom + OS ROM palmos41-en-m515.rom*, palmos40-en-m500.rom, palmos52-en-t3.rom, palmos60-en-t3.rom
      *Only palmos41-en-m515.rom is required
    • Philips CD-i - cdimono1.zip Must manually put in RetroArch/system/same_cdi/bios/
    • Sega CD - bios_CD_U.bin, bios_CD_E.bin, bios_CD_J.bin
    • Sega Saturn - saturn_bios.bin
    • Sony PlayStation - scph5500.bin, scph5501.bin, scph5502.bin



    • RetroArch

      Links: App Store, Official website

      RetroArch

      RetroArch is a powerful front-end for emulation cores. The best way to think of it is as a bunch of separate emulators that a GUI glues together, built on Libretro. The advantage of this is that emulators can improve and focus entirely on emulation and not user interfaces. It also means that certain aspects of configuration can be shared, such as user inputs, save-state preferences, and so on.

      Recommended configuration steps

      RetroArch out of the box is a bit daunting, nor is it the most user-friendly. These are the recommended steps to getting the most out of RetroArch and are covered in this guide

      • Copy over ROMs - required if you want to play any games
      • Copy over BIOS files - required for certain consoles
      • Change the User interface - the default interface is designed for touch controls. The XMB interface is much better suited for gamepads
      • Update the assets - RetroArch pulls support files for several of its features that are important to update as soon as possible after downloading
      • Scan Directory(s) - Add games so RetroArch can list the games
      • Configure Cores - this can be done as needed, but it's important to understand the capabilities to enhance emulation
      • Shaders - completely optional but can enhance the visual experience
      • Enjoy!- At this point you are ready to enjoy your library of games on your iPhone. Be sure to check out features like Save States

      This section is a work in progress!

      Adding ROMs

      RetroArch Adding ROMs

      RetroArch can add individual games by using Load Content, but also, from the add menu, can scan entire directories, multiple folders deep. However, it will not monitor the directory; thus, a scan will be required if games are added or removed from a directory.

      1. Transfer ROMs to your iPhone
      2. From the main screen, click the + menu and locate your ROMs. RetroArch supports .zip files.
      3. Locate the directory your ROMs are in. You'll need to click the directory to bring up the file navigator. Any folders copied into the root of the RetroArch Directory will be in the parent directory.
      4. Open the folder on your iPhone and select "Scan Directory". Depending on how many ROMs you have, this can take a bit. ROMs will not show up until all directories have been scanned.

      Changing the user interface

      Change UI

      Out of the box, RetroArch is configured to use the GLUI, a user interface that is touch-friendly. If you intend to use a controller, I highly recommend changing the user interface.

      Tap "Settings" then "User Interface," scroll to the bottom of the screen, and tap "Menu." Select XMB. You'll need to quit RetroArch and relaunch it before the changes take effect.

      iOS RetroArch running XMB

      After the change, you should see the more visually appealing XMB interface. For a full menu map, see docs.libretro.com: XMB menu map as this contains the full list of where all the menu options live.




      BIOS Files

      The consoles that require bios for operation currently for iOS in RetroArch are:

      • Gameboy Advance - gba_bios.bin
      • NeoGeo - neogeo.zip (Placed in ROMs folder as well)
      • Nintendo DS - ios7.bin, bios9.bin, firmware.bin
      • Sega CD - bios_CD_E.bin, bios_CD_J.bin, bios_CD_U.bin
      • Playstation - scph5501.bin (you can use many different bios)
      • TurboGraphix-CD - syscard1.pce, syscard2.pce, syscard3.pce

      Installing BIOS

      BIOS

      RetroArch's default location is /RetroArch/system, this can be changed in the preferences however it's recommended that you move using the Files app on your phone the BIOS into this folder.

      RetroArch maintains a list for every platform it supports and the BIOS required.




      Online updater

      Online Updater

      RetroArch pulls support files for several of its important features to update as soon as possible after downloading.

      From the main menu, tap "Online Updater." From here, you can update the following:

      Online Updater

      • Update Assets: Downloads graphical interface elements like menu icons, fonts, and background images that enhance RetroArch's visual appearance.
      • Update Controller Profiles: Retrieves predefined button mapping configurations for various controllers, making it easier to set up your gamepad without manual configuration.
      • Update Cheats: Downloads cheat databases for different games, allowing you to activate classic cheats and modifications like infinite lives or level skips.
      • Update Databases: Retrieves game information databases that help RetroArch identify your ROMs, display correct metadata, and enable game-specific optimizations.
      • Update Overlays: Downloads on-screen button layouts and visual frames, useful for touchscreen devices or for adding aesthetic borders around your gameplay.
      • Update Slang Shaders: Retrieves graphic filters and effects that can enhance visuals by simulating CRT displays, smoothing pixels, or adding various visual enhancements to your games.

      It's recommended that you update all of these, especially following this guide




      Recommended Cores & Configurations

      Select a Core

      Retro Arch often has multiple cores performing the same function. In the cases where these exist, I've tried to narrow them down to what I've found to be the "best," in my opinion. Do experiment and read up on the core differences, as your priorities might differ. Some cores are designed for accuracy, some for speed, and some for enhancements.

      • Game Boy / Game Boy Color - Gambatte
      • Game Boy Advance - mGBA
      • NEC PCEngine / TurboGGraphix-16 / PCEngine-CD / TurboGraphix-CD - Beetle PCE
      • NES - Nestopia
      • Nintendo DS - Melon DS
      • Sega Master / System Genesis (Mega Drive)/ Sega CD - Genesis Plus GX / Genesis Plus GX Widescreen (may not work with all games)
      • Sega Saturn - Yabause
      • SNES - BSNES / BSNES HD Beta (for Mode 7 Games)
      • Playstation - Beetle PSX HW

      Select A Core and Core Configuration

      Select a Core

      When you first select a ROM, you'll be presented with a variety of options, and you'll likely need to select a core. You can always change this by using "Set a Core Association" or "Reset Core Association"

      Core Options

      Core Options in RetroArch are game system-specific settings that allow you to customize how each emulation core functions. Unlike global RetroArch settings that apply to all systems, Core Options are tailored to the specific emulated console or computer system you're using. Every core has its own set of options. From the menu when running a game, go to Core Options.

      Core Options

      Some of the emulator options exist outside of the Core Options, for example, BSNES's HD Mode 7 options exist in a menu outside of Core Option as do some settings for Beetle PSX HW.

      Each core has its own unique settings, which may include:
      • Graphics enhancements (resolution scaling, texture filtering)
      • Performance adjustments (speed hacks, frame-skipping)
      • Audio quality settings
      • System-specific features (PGXP for PlayStation, HD Mode 7 for SNES)
      • Region options (NTSC/PAL)
      • Input latency adjustments

      Recommended Core Options for BSNES and BSNES HD Beta

      Mode 7 Enhancement

      BSNES is a cycle-accurate SNES emulator that aims to provide the most accurate emulation possible but also offers the ability to enhance Mode 7 games. Mode 7 titles include Pilot Wings, Mario Kart, and F-Zero. For a complete list, see wikipedia.org: Mode 7, Both BSNES and BSNES HD Beta can enhance Mode 7 rendering, with the HD Beta adding the ability to render games in widescreen during Mode 7 sequences.

      Core Options

      HD Mode 7 enhancement menu

      As of writing this, the HD Mode 7 for BSNES exists in different places depending on the version of BSNES you are using. In BSNES, this is listed in the core menu as HD Mode 7, whereas in BSNES HD Beta, it is in the core options. HD Beta is much more CPU intensive, so you may need to lower the scaling, especially depending on your device.

      • Scale - 3x (720p) for HD Beta and older phones, 5x (1200p) for BSNES on newer phones
      • Perspective Correction - On
      • Super Sampling - On

      Recommended Core Options for Beetle PSX HW

      Hardware comparison

      Beetle PSX HW is an emulation core that offers quite a bit of customization options to enhance PlayStation graphics, such as increasing the resolution, better polygon processing, anti-aliasing, and more. Here are some recommended settings:

      Core Options

      • Internal GPU resolution - 2x or 4x
      • Texture filtering - SABR
      • MSAA - 2x or 4x or 8x

      Emulation Hacks

      Beetle PSX HW has the ability to manipulate the way the PlayStation renders polygons to help improve visual fidelity. Beetle PSX HW's PGXP (PlayStation Geometry Precision) capabilities correct the polygon jitter and texture warping that occurs in PlayStation games due to the console's limited floating-point precision. This feature enhances 3D rendering by maintaining proper polygon alignment and improving texture mapping accuracy, resulting in a much more stable and visually pleasing image without the "wobbling" effect seen in original PlayStation games. PGXP can be enabled in the core options and offers various levels of correction, from basic coordinate precision to advanced perspective-correct texturing.

      Go to the Emulation Hacks menu and select PGXP. Enable the following:

      • PGXP Operation Mode - Memory Only
      • PGXP Primitive Culling - On
      • PGXP Perspective Correct Texturing - On



      Shaders

      Shader comparison

      Shaders in RetroArch are visual filters that can transform the appearance of games by applying post-processing effects, such as CRT scanlines to mimic old TVs, smooth scaling to reduce pixelation, or various color adjustments to enhance visuals. They allow players to either recreate the authentic look of the original hardware or dramatically improve and modernize the appearance of retro games without affecting the actual gameplay. They can be chained together.

      Shaders are performed post-emulation when a single frame enters the frame buffer. This means they are agnostic or unaware of the emulator that produced them. A good way to think of shaders in RetroArch is as filters similar to filters you can apply to a photograph after it's taken. You can't adjust the shutter speed, aperture, or what's in frame or focus, but you can simulate some of these things with a filter. The same goes for shaders. They cannot fundamentally change how a console is emulated to increase its output resolution; rather, they can take the image it outputs and manipulate it.

      Users on popular forums and places like Reddit will often post their preferred settings, which can yield incredible results. See Reddit: Shaders are game-changing for retro games and emulation for a good example.

      1. While playing a game, bring up the RetroArch menu
      2. Navigate to Quick MenuShaders
      3. Enable the Shaders
      4. Select Load Shader Preset to browse available shader presets
      5. Choose a shader from the list (e.g., CRT shaders are in the "crt" folder)
      6. Once loaded, select Apply Changes to see the effect immediately

      Chaining Multiple Shaders

      1. From the Shaders menu, select Prepend Shader or Append Shader
      2. To save your chain, select Save Shader Preset from the Shaders menu

      Order matters! Place scaling shaders before visual effect shaders. >Common chains include an upscaler (like "xbrz") followed by a CRT effect. Some popular combinations:

      • Scale2x + CRT-Royale (good balance of sharpness and authenticity)
      • SABR + Lottes (excellent for 16-bit era games)
      • xBRZ + Dot Matrix (perfect for handheld console emulation)
      • ScaleFX + CRT-Geom-Deluxe (for a more realistic CRT look)

      Shaders can be configured per console and title basis. Generally, shaders are more popular on non-polygon-based titles or 16-bit titles as many modern emulators offer more opportunities to enhance visuals at the emulation level than post-processing the image.




      Save states

      While playing a game, bring up the RetroArch menu by tapping the screen with two fingers simultaneously (or using your configured menu button). In the Quick Menu, scroll down to find "Save States" and tap to enter this section. RetroArch provides 10 save slots (0-9) for each game. In the Save States menu, select "Save Slot" and choose your preferred slot number. To load a save state, from the Load State, select the save state from the slot you'd like to use.

      Auto Saves

      Auto Saves are a feature that will automatically save your game when you exit it, akin to how an iOS game can resume to where you last were when tabbing between apps. To enable auto saves, go to System Settings and then Saving. Toggle both.




      Hide overlay when Control is connected

      Retro Arch iOS hide overlay

      A default behavior that most users will want to enable is auto-hiding the on-screen overlays when a gamepad is connected.

      Tab to settings and select "User Interface," and then to "On-Screen Overlay." Locate "Hide Overlay when the controller is connected" and toggle it on. You can still access the touchscreen overlay by tapping the screen during gameplay.




      Sideloading: Interpretation vs JIT

      Sideloading

      Sideloading takes a bit of self-education. Please read this section carefully before asking for help on forums.. Also, please consult the earlier sections like the Glossary, Getting Started and Emulation sections if you are new to emulation.

      Sideloading is the act of installing applications outside of Apple's app store. The two main paths are downloading IPAs (applications) and signing them or using a Sideloading application like Sideload AltStore to sign the applications.

      Apple only allows for interpretation. The emulator reads and decodes each instruction from the emulated system one at a time and then executes a corresponding routine on the host machine. It is easier to implement and debug since each instruction is handled individually. However, since every instruction is processed individually, it results in slower overall execution because of repeated decoding and function calls.

      Just-In-Time (JIT) Compilation groups sequences of instructions (often basic blocks or functions) and compiles them on the fly into native code for the host CPU. This compiled code is then executed directly. Apple does not allow JIT Compilation due to security concerns and platform control. An application that featured JIT Compilation would be able to run any code on the device, which is a security risk and also would allow for applications within applications, a way to skirt around Apple's App Store monopoly. There's an upfront cost for compiling code blocks, which may not be worthwhile if the code is executed only a few times, but for newer systems where repeated functions are executed many times, this becomes a larger performance advantage.

      Important: Enable Developer Mode

      Developer Mode is required for sideloading emulators outside the App Store, regardless of what method you pick. Follow these steps:

      1. Open the Settings app on your iOS device
      2. Navigate to Privacy & Security
      3. Scroll to the bottom and tap Developer Mode
      4. Toggle the Developer Mode switch to ON
      5. Tap Restart when prompted
      6. After your device restarts, you'll need to unlock it and confirm that you want to enable Developer Mode
      7. Your device may need to restart once more

      Note: Developer Mode remains enabled until you manually turn it off or restore your device.

      Sideloading IPAs - Your Choices

      The very first step in sideloading is getting an application (.IPA) onto your iPhone, which is the act of sideloading. There are two main methods for sideloading IPAs on iOS devices:

      • Signing them yourself
      • using a third-party app like AltStore

      Both methods have their pros and cons, and the choice depends on your preferences and technical expertise.

      Due to security provisions in iOS, the only apps that you can debug processes of are ones that have the correct certifications in iOS, even with developer mode enabled. This prevents an application like AltStore from enabling JIT in an emulator like Dolphin. Whereas if you sign your own application with your own provisions, you can then debug the application and enable JIT on the device.

      AltStore is an application designed to allow users to sideload apps on iOS devices without jailbreaking. It uses a unique method of sideloading that allows users to install apps directly from the iPhone by downloading them and signing them.

      • Option 1: Signing IPAs and installing them via Xcode. This is best done with the $ 99-a-year Apple account. You do not need a 3rd party place to run a JIT streamer (an external service that funnels the recompiled code to a device).
      • Option 2: Sideloading via AltStore or SideStore. This method gets around every seven days resigning requirement that a free developer account has. It also doesn't involve manually creating your own certification. Post iOS17, JIT cannot be enabled on the device. Once the application is installed, you will need to use a VPN to connect to the JIT streamer. There are two main options for JIT streaming:
        • JIT Streamer - a popular website that allows users to stream JIT code via the internet to their device.
        • SideJITServer - a local server that allows users to stream JIT code via a local network to their device. It must be connected to the server, but private VPNs can achieve this.
        • stikjit - a newcomer that promises to allow on-device JIT for iOS 18

      Option 1: Signing IPAs and Installing via Xcode

      The most surefire way to sideload an IPA is to sign it yourself with your own developer profile. Using debug modes with your phone, you'll be able to enable on-device JIT with this method. One of the better set of instructions was originally posted Reddit.com: DolphiniOS works.

      Note: Sideloaded apps expire after 7 days with a free Apple ID. You'll need to reconnect to your computer and reinstall them. An Apple Developer Program membership ($99/year) extends this to one year.

      Part 1: Setting up developer app

      1. Log into your Apple Developer account.
      2. Go to the Certificates, Identifiers & Profiles section.
      3. Click on "Identifiers" in the sidebar.

        Developer Identifiers screen

      4. Click the + Identifiers.

        Create Identifiers screen

      5. Give the name of the description something like DolphiniOS and the identifier something like DolphiniOS.
      6. After the Identifier has been created, go to Provision, click Register New Profile, and select iOS.

        Create Identifiers screen

      7. Select the Identifier we just created

      8. Check the boxes for your device(s) and click continue.
      9. Give the provision a name like "DolphiniOS".

      10. Download the provision file and save it to your computer.

      Part 2: Signing the App

      1. Download iosappsigner for your computer and install it.
      2. Open iosappsigner and select the IPA file you downloaded, for example dolphiniOS.ipa
      3. Select the provision profile you generated,

        iOS app Signer

      4. Leave everything else and click Start.

      Part 3: Installing the App

      1. Open Xcode and connect your iPhone to your computer.
      2. In Xcode, go to Window > Devices and Simulators (or press Shift+Command+2).
      3. Select your iPhone from the list of devices on the left panel.
      4. It may take a bit for the first time to set up, but once finished, click the + button.

        Xcode Add App

      5. Add your newly signed IPA

      Option 2: Sideloading via AltStore or SideStore

      Sideloading apps via the Alt Store allows IPAs to be signed and authorized on the device. In my emulation video, at the 20-minute mark, I demonstrate the process. Requirements:

      • An Apple developer account (free)
      • Developer mode enabled (See above)
      1. Download and install AltStore on your Mac or Windows computer and JitterBug. faq.altstore.com: How to install AltStore (macOS) or faq.altstore.com: How to install AltStore (Windows). Users in the EU can use Altstore PAL.
      2. Open AltStore and click the icon in the menu bar (Mac) or system tray (Windows).
      3. Connect your iOS device to your computer via USB
      4. Click Install AltStore to sideload the AltStore app onto your device
      5. Enter your Apple ID and password when prompted
      6. The AltServer should inform you that it has been installed but may not. Wait about 10 minutes. If nothing has happened, check your phone to see if the AltStore was installed. If you do not see it, reboot your phone and check again. If you cannot find the AltStore, go back to AltServer and try again.
      7. Open AltStore on your device and sign in with your Apple ID. Follow the onscreen prompts. Be sure to refresh the app as it instructs.
      8. In the Alt Store, click sources and add oatmealdome for DolphiniOS.

      Enabling JIT Streaming

      There are two ways to use JIT Streaming, via JIT stramer or SideJITServer. This process is demonstrated in the video version of this post in the DolphiniOS chapter at the 20:01 minute mark.

      JIT streamer has the instructions on its webpage. The steps are as follows:

      1. Download Wireguard VPN from the App Store
      2. Connect your phone and run Jitterbug.
        1. Open Jitterbug
        2. Authorize your phone
        3. Run a second time to generate a pairing file. It should land in ~/ AKA root of your current user folder
      3. Upload the file to the JITStreamer website. It should auto-download a .conf file for Wireguard
      4. Transfer the file to the iPhone or iPad
      5. Open Wireguard and import the .conf file
      6. Connect to the VPN
      7. From the Jitterbug website, download the shortcut and run it on your dive

      SideJITServer

      SideJITServer requires being on the same network; however, you can create your own VPN to your private network and connect to it remotely. Instructions are on the GitHub project. I plan to fork and dockerize this service. The advantages of hosting your own JIT service are security and performance, and it is the recommended way for people with a bit more technical aptitude.

      Please check back soon as I will be adding a guide on how to host your own JIT server using Docker.

      StikJIT

      Inevitably readers will skip straight to this section but I highly recommend reading entire Sideloading to give much needed context.

      StikJIT is very new as of writing this and promises on device JITs. It requires using a special VPN that redirects to itself as the JIT compiler is hosted on the device. This eliminates the issues of needing to host the JIT server externally or connect to someone else's hosted JIT streamer. It should deliver faster performance.

      Reddit.com: StikJIT Instructions using LiveContainer. Live Containers allows you to install more than 10 development apps to skirt around Altstore limitations.

      How to set up StikJit

      I haven't had the free time to set up StikJIT so, for now, I will defer to the current go-to guide: reddit.com - How to Setup StikJIT for iOS (On-Device-Offline-JIT). This is only for iOS 18.

      The Process is as follows:

      1. Install SideStore or sideloadly, or AltStore. (If you use Sideloadly or Altstore, you'll also need StosVPN. See guide for more dtails.)
      2. Download the StikJIT, direct link to the Nightly build
      3. Make sure you have quit SideStore. Use Jitterbug to create an pair file.
      4. Relaunch SideStore and enable JIT for the Apps you'd like to use

      You should also disable background refreshing for any JIT apps. iOS 18.4 beta 1 currently does not work and requires ankJIT.




      Controllers and iOS

      Controller

      iOS supports out-of-the-box various styles of controllers, both controllers designed specifically for phones and controllers designed for game consoles.

      Premium mobile gaming controller options include:

      • GameSir G8 - a very well-loved and often copied design by other makers.
      • Backbone controller - an ultra slim controller that has it's own companion app and audiojack
      • Razer Kishi V2 - game controller by the famed PC gaming, Razer.
      • 8Bitdo Ultimate - Retro controller mod specialist also makes game controllers

      There are also a host of clone controllers that are largely based on the Gamesir that are generally regarded as "good" and come in some different colorways and may be more price-friendly.

      Zike Controller in Cottonwood Canyon

      Console Supported controllers include:

      • PlayStation DualShock 4 Wireless Controller
      • PlayStation 5 DualSense Wireless Controller
      • PlayStation 5 DualSense Edge Wireless Controller
      • Xbox Wireless Controller with Bluetooth (Model 1708)
      • Xbox Wireless Controller Series S
      • Xbox Wireless Controller Series X
      • Xbox Elite Wireless Controller Series 2
      • Xbox Adaptive Controller
      • Nintendo Joycon Controllers*

      For more information, see: Apple.com: Connect a PlayStation wireless game controller to your Apple device and Apple.com: Connect an Xbox wireless game controller to your Apple device. *The Joycons do not seem to be officially supported, but they work. See TheVerge.com: iOS 16 supports Nintendo's Switch Pro and Joy-Con controllers.

      iOS, unfortunately, is limited in its ability to map buttons, and thus, not every button a controller may work.

      Controller clips

      If you already have a game console controller, one of the least expensive ways to add a hardware controller to your iPhone is via clip mechanisms. These allow you to use high-quality controllers with iOS, but they aren't the most ergonomic due to the weight distribution. However, they do let you explore the capabilities of mobile iOS gaming without spending much money. There are many to choose from, like OIVO PS4 Controller Phone Mount Clip, or OIVO PS5 Controller Phone Mount Clip. There are a lot of these on Amazon, like Orzero PS5 Magnetic Controller Phone Mount Clip that makes use of MagSafe or Orzero Magnetic Controller Phone Mount Clip for X box Series X/S, X box One/One S/One X. There are many to pick from; I suggest searching Mobile Gaming CLip and then appending whatever parameters from there.




      Dumping ROMs ...directly to an iPhone?

      One Up

      In the modern era, USB ROM dumping hardware exists for most platforms. Users with their own game libraries can archive their games using these devices. Prior to the USBization of such devices, generally, this was limited to Windows and Linux, and sometimes Mac OS/OS X. Today ROM dumping can be performed directly, even to an Android or iOS /iPadOS device. YouTuber, Will it work? Can you play physical N64 cartridges on the iPhone?, demostrates using a JoeyN64 cart flasher, directly with an iPhone.

      1. Connect the ROM dumping hardware to your iPhone via a USBc or Lightning to USB adapterr
      2. Open the Files app. Go to the root of the iPhone and navigate to the connected device
      3. Locate the ROM file and copy it to your iPhone's storage

      These are the basic three steps that any ROM dumping hardware will require. However, there's no guarantee that all ROM dumping hardware will be compatible with iOS/iPadOS, but it is now possible and very easy to make legal backups of your games.




      Creating your own ISOs from PlayStation 1 / Sega CD / NeoGeo games

      CD Rom

      Creating PSX backups is pretty simple if you are terminal savvy. All you need is a Mac with a disc drive. Disk utility can create disc images, but you can do this more quickly via the terminal. This process is often referred to as "Ripping,"

      Disk Utility

      Disk utility is an application located in Applications -> Utilities on every Mac computer.

      1. Insert the PSX game disc into your Mac's DVD drive.
      2. Open Disk Utility (located in Applications -> Utilities).
      3. Click on the PDX game disc in the left-hand column of Disk Utility.
      4. Click the "New Image" button in the toolbar.
      5. Choose "DVD/CD Master" as the Image Format and "None" as the encryption.
      6. Click "Save" and wait for the disc to be copied to your Mac.
      7. Once the disc has been copied, you can rename the .cdr file to .iso.

      Terminal

      Using the terminal is a bit quicker and more flexible than Disk Utility. The following command will create an ISO file from a PSX game disc:

      hdiutil makehybrid -iso -joliet -o ~/Desktop/PS1_Backup.bin /Volumes/PLAYSTATION

      Explanation of the command:

      • hdiutil makehybrid: The macOS utility for creating disc images
      • -iso: Creates a standard ISO9660 filesystem (required for PS1 games)
      • -joliet: Adds Joliet extensions for longer filenames
      • -o ~/Desktop/PS1_Backup.bin: Specifies the output file (note the .bin extension commonly used for PS1 game, .iso should also be supported by most emulators)
      • /Volumes/PLAYSTATION: The input directory (mounted PS1 CD)

      You will need to alter the paths listed. I highly recommend using AI to demystify terminal commands. While AI isn't the most reliable, it is when it comes to debugging terminal commands. Both Claude and ChatGPT, even at the free tiers, are great for copying and pasting error codes or asking for help when modifying commands.




      iOS Emulation Communities

      Emulation is a vast and complex topic and is ever-evolving. The best place to get help/lend help get the latest and greatest information is in communities.




      Version History

      cart

      • 04/08/2025 - Much needed copy editing and fixed broken Anchor. Added more info for StikJIT
      • 04/07/2025 - Stikjit tutorial linked.
      • 04/02/2025 - More info about Stikjit.
      • 03/31/2025 - prelimary info about Stikjit.
      • 03/30/2025 - Consoles correctioin on TubroGraphix support, responsive table, oversized header images on mobile, added a bit more organization to the controllers and recommendations
      • 03/28/2025 - Added more info about JIT Streaming and the differences between JIT and interpretation. Added instructions for Xcode and corrections. Added more images to the guide. The guide now roughly 10,000 words long.
      • 03/27/2025 - Added ROM dumping.
      • 03/26/2025 - Added info about JIT Streaming. Added Nin10 as I missed it in the compatibility chart. Updated the Consoles app to accurately reflect the compatibility state.
      • 03/25/2025 - Tables, tables and more tables. Thanks to Reddit feedback, I added a boatload more emulators. This required to break apart the table and add in a pricing / OS Table. Added a few more graphics to sections.
      • 03/24/2025 - Big update. Added rough draft of Folium information and communities, added support section, added Sideloading info, added Provenance. Already over 8000 words.
      • 03/23/2025 - Create ISOs, macOS emulation, editing, more images, added info about updater and default location for BIOS in RetroArch. Already crossed 6500+ words.
      • 03/22/2025 - Added to do, thanks to Reddit feedback; I didn't know Provenance was on the App Store. Added ISO section and Mac emulation links. There's plenty to do! Already nearly 6000 Words in 5 days of writing. This guide probably is going to be massive. It's unrelated, but I also cleaned up the JS on my blog to make it even more minimalist.
      • 03/21/2025 - Minor Edits
      • 03/20/2025 - Flycast info, started recommended settings for Retro Arch, added Yabause recommendation
      • 03/19/2025 - Expanding content (added controllers, more images, more on RetroArch)
      • 03/18/2025 - Initial Draft

      To do list:

      • More RetroArch explainers
      • More on shaders
      • Xcode App Signing
      • DolphiniOS / MeloNX coverage
      • Animated GIFs where it makes sense to illustrate behaviors or settings
      • Evenutally make a Mac version of this

      Mac Guides

      I've made quite a bit of emulation-related content related to macOS as well.


    WordPress Auth0 for All Users Without WP Accounts: A plugin

    Sometimes my blog actually covers web development, which is ostensibly what this blog is about instead of my random adventures in Mac geekiery.

    Recently, I needed to work on a portal site and integrate it into Auth0. The ask seemed simple: Users are required to use Auth0 to view a website. That's it. The problem was that the official Auth0 plugin assumes a few things:

    1. Users have a WordPress account
    2. Auth0 is only needed for the `wp-admin.`

    I am by no means any sort of security expert; thus, with a lot of googling and some AI-assisted development in about two partial days of development, I was able to create a simple solution in the `functions.php` and a must-use plugin. It'd force authentication on the front end, had a simple Auth0 callback, displayed a login screen if the user hadn't authenticated to our domain, and upon successful sign-in, redirected to the correct page.

    Then in the truest 2025 fashion, I copied my mess of code and pasted it into Claude, and after some fine-tuning, created a plugin, wp-auth0-for-all

    >
    1. Install and configure the Login by Auth0 plugin
    2. Download and install wp-auth0-for-all in your plugins.
    3. Activate wp-auth0-for-all
    4. Configure it in your settings
    Auth0 for All

    This also includes some bonus features like wildcard excluded domains, optional auto-redirect, ability to use custom Auth0 domains.

    That's it. It's a simple plugin that forces Auth0 for all users without a need for WP accounts. The plugin page has more information in the ReadMe.


    Running macOS using Docker... on a Synology Nas

    Docker lets you run macOS in the most unusual places, like a Synology NAS, a computer that lacks a dedicated HDMI output and uses an AMD chipset.

    Legal Disclaimer: According to Apple's EULA, virtualizing macOS is only permitted on genuine Apple computers. This guide is for educational purposes only.


    Why Docker and Not Synology's VM Manager?

    Synology provides its own virtual machine software, but it doesn't natively support macOS for two reasons:

    1. The legal restrictions mentioned above
    2. Until recently, it emulated an outdated chipset lacking USB 3.0 and PCIe support

    While Synology has updated their virtualization software to support the newer Q35 chipset for QEMU, I have not heard of anyone successfully installing macOS to run via it's virtual machine software.

    What is Docker?

    For those unfamiliar, Docker is a containerization platform that uses packages and small containers to run services. It's a lightweight form of virtualization popular among developers. The beauty of this approach is that someone has already created a Docker container for macOS, making our experiment possible.

    Setting Up macOS Ventura on Synology

    Prerequisites

    • A Synology NAS (I'm using a DS923+ with 32GB RAM)
    • Container Manager (Docker) installed on your Synology
    • At least 8GB of RAM to allocate to the virtual machine

    Installation Steps

    1. Open Container Manager on your Synology
    2. Click on Registry and search for "macOS"
    3. Locate "docker/macOS" and download the image
    4. Click Project, then Create
    5. Select your storage path
    6. Name your project (e.g., "ventura" or "sequoia")
    7. Create a Docker compose YAML file with the following configuration:
    version: '3'
    services:
    macos:
    container_name: ventura  # Or "sequoia" if using macOS Sequoia
    image: docker/macos
    environment:
        - MACOS_VERSION=ventura  # Change to "sequoia" for macOS Sequoia
    mem_limit: 8G  # Allocates 8GB RAM, default is 4GB if not specified
    ports:
        - "5999:5999"  # VNC port for accessing the virtual machine

    Once configured, access your virtualized macOS through a web browser using the IP address of your Synology followed by the port number specified in your YAML file (e.g., http://192.168.1.100:5999).

    Performance and Usability

    The DS923+ with its dual-core AMD Ryzen R600 isn't a performance monster, but it's surprisingly capable when running macOS Ventura:

    • It performed more than twice as fast as a Mac Mini 2010 in Geekbench 6 tests
    • The Weather app, which typically has graphical glitches on unsupported hardware, renders properly
    • Apple Maps, however, appears almost completely blank
    • Web browsing works well with Firefox (Safari experienced rendering issues)

    In my testing, the About This Mac page reported the system as an iMac Pro with a 2.6 GHz i3 processor, 7MB of VRAM, and 8GB of RAM (matching my allocation).

    Installation Note: During installation, the macOS installer may cause your Synology to reboot. Don't worry—just sign back in, restart the Container Manager, and continue where you left off. This might happen multiple times during the process.

    macOS Sequoia (macOS 15) Status

    As of this writing, macOS 15 Sequoia support is still problematic in this setup:

    • The installer background doesn't load properly
    • Performance is painfully slow
    • For now, older macOS versions like Ventura offer a better experience

    Running on Ubuntu

    The same approach works on Ubuntu (and potentially other Linux distributions) with a few additional terminal commands:

    # Install Docker
    sudo apt update
    sudo apt install docker.io
    
    # Start Docker
    sudo systemctl start docker
    
    # Add your user to the Docker group
    sudo usermod -aG docker $USER
    
    # Navigate to your Docker compose file directory
    cd ~/Documents/docker-macos
    
    # Run the container
    docker-compose up

    When running on more powerful hardware (like a Mini PC with an i9-12900H), performance can rival that of a Mac Mini M1, even without GPU acceleration.

    Conclusion

    While macOS is usable through this Docker method on a Synology NAS, it's still a bit of a novelty. For serious VM work on NAS hardware, a Linux distro would likely be a better choice. That said, it's an impressive technical achievement and demonstrates the flexibility of both Docker and modern NAS systems.

    As dockerized macOS continues to develop, we may see improved performance and compatibility with newer macOS versions. For now, it's a fun experiment for the technically curious.

    Note: Docker containers can consume significant storage space. Remember to clean up unused images and containers when you want to free up space.


    Transform Your Apple Silicon Mac into a Steam Deck with Asahi Linux, A Tutorial

    Pre-Requisites and Warnings

    Asahi Linux is for Apple Silicon Macs. Intel Mac users can dual boot into Windows or popular distributions of Linux, which is significantly easier. If you're looking for an easier method of playing PC games on your Mac, I'd suggest my Install Windows Steam games on Apple Silicon Macs Using Whisky (A free GPTK Front-End) tutorial. Also, Crossover offers an even greater range of compatibility than Whisky although is paid software.


    Warning: This is still fairly experimental, be sure to back up all your data as you can "brick" your Mac if you are not careful. This may leave the Mac unbootable and require a DFU restore.

    I need to reiterate the that this is an experimental process and may not work as expected and constantly changing. For support questions I'd recommend using communities like r/AsahiLinux.

    • Documentation: Check the official Asahi Linux docs for up-to-date support information (currently, only M1 and M2 series are supported; M3 series support is TBA).
    • Storage: Ensure you have a significant amount of free SSD space (e.g., at least 100 GB free). As of now, installation to an external drive is not supported.
    • Data Safety: This process can potentially render your Mac unbootable and may require a DFU recovery (which needs a secondary Mac). Back up all your data before proceeding.

    Step-by-Step Installation Guide

    Step 1: Download and Run the Installer

    1. Visit the official Asahi Linux website and copy the provided curl command.
    2. Open Terminal on your Mac and paste the command. This command downloads the installer script (typically alx.sh) and pipes it to sh for execution.
    3. The guided installer will launch. Choose to resize an existing partition to create space for Linux.

    Step 2: Partition Your SSD

    1. The installer will display your SSD capacity and free space. Decide on a partition size. Note that the value you enter represents the space to be kept for macOS, with the remainder allocated for Linux.
    2. For example, on a 2 TB drive, if you want to allocate 500 GB to Linux, enter 1500 GB for macOS.
    3. Wait patiently while the partitioning process completes (this may take up to 2 hours).

    Step 3: Install Asahi Linux

    1. Once partitioning is complete, select the option to install Linux into the free space. It will ask how much percentage of the free space you'd like to use for Linux. Typically most users will want to select 100%
    2. Choose your preferred desktop environment. Options typically include KDE Plasma (for customization) or GNOME (for simplicity).
    3. Decide how much of the free space to use for Linux (usually 100%) and assign a name to the new OS.
    4. Proceed with the installation by following the on-screen prompts.

    Step 4: Boot into Asahi Linux

    1. After installation, fully shut down your Mac. This should be done via the terminal as the installer prompt will ask you to hit enter to shut down.
    2. Hold down the power button while turning on your computer and release it when it lists the boot menu to access the boot selector, and choose Asahi Linux.
    3. Boot into recovery mode where a Terminal window will open. Enter your password and agree to add a custom boot object (this sets your security to permissive mode for Linux).
    4. Create your username and password if prompted.

    Step 5: Set Up the Linux Environment

    Congrats! You should now be in Redhat Asahi Linux! Proceed through the basic installation prompts (language, user account, timezone) etc. If you've made it here, you're past the difficult part. Now it's time to get things ready.

    1. Open Terminal in Asahi Linux.
    2. Update the system by running:
      sudo dnf upgrade
      This command updates all packages—including the latest Vulkan drivers.
    3. Install Steam by running:
      sudo dnf install steam
      The installation may take some time, and Steam should launch automatically once complete.

    Step 6: Configure Steam and Enable Proton

    You'll need to sign into your Steam account as you normally would and enable steam play.

    1. Log into Steam once it launches.
    2. To enable Proton (which allows Windows games to run), go to Steam Settings > Compatibility and check “Enable Steam Play.” Restart Steam or your computer if prompted.
    3. Before installing games, visit ProtonDB to verify compatibility. If a game isn’t listed as working, it will not function correctly under this configuration.

    Additional Notes

    • The first launch of a game may take longer due to shader compilation.
    • You can force different Proton versions per game. Right-click a game in Steam, select Properties > Compatibility, and choose your preferred Proton version.
    • Many games may still have issues due to the experimental nature of the setup.

    I need to reiterate that this is early stages of support, as it's only been recently where Vulkan drivers have matured enough to support Proton. Asahi Linux still has a long ways to go. It's a viable OS but has some beta-bugs, such as not sleeping properly. I found my M1 Max was warm when I pulled it out of my backpack despite having put it to sleep and the battery was mostly drained.