Settings

Theme

High-level emulator for iPhone OS apps

github.com

141 points by bexsella 2 years ago · 59 comments

Reader

callalex 2 years ago

Almost every program that I bought on the Steam store in 2009 runs flawlessly today on the latest Windows version, and even on new Linux distros that couldn’t have even been imagined in 2009.

Exactly zero software that I purchased on the App Store since 2009 still functions at all, on the exact same platform. What a pathetic showing by Apple.

  • jwells89 2 years ago

    Is that really a fair comparison, though? The changes seen by smartphones (both hardware and software) in that period of time are much more dramatic than PCs saw in the same period. In 2009, PCs as a device category were mature already while smartphones were just getting started.

    Windows (and thus anything mimicking it) is also a bit of on outlier when it comes to backwards compatibility anyway. There aren’t too many other systems still being developed that a 14 year old binary will run on, let alone run correctly.

    • jeswin 2 years ago

      > Is that really a fair comparison, though?

      GP is highlighting a problem with Apple, and it's quite true. I have a licenses to Macomedia Fireworks (from 2010) for macOS and Windows. Windows version works still flawlessly. macOS dropped 32-bit support after Mojave (2018). I paid good money for Fireworks, and more importantly I loved that app.

      • devnullbrain 2 years ago

        I can run x86 Steam games on Windows for Arm because Microsoft added x86 emulation.

        I can't run Mac Steam games on Mac because Apple dropped 32-bit support.

        • BirAdam 2 years ago

          Binaries from just a few releases ago may not run on macOS due to OS changes, but Apple isn’t alone in this. With a Linux system, your distro may change so rapidly that something from 6 months ago may not run. In both cases, an adept user may be able to make most things work, but it is annoying.

          The flip side of this is that both Linux and macOS are typically a bit more reliable than Windows. The heavy focus on backwards compatibility limits what Microsoft can do to push NT forward. Also, Microsoft should more heavily leverage NT’s personalities… that’d be fun.

      • MrRolleyes 2 years ago

        Not much of a problem though outside of archiving concerns. Anyway, this is also the main reason windows sucks ass to use. Or used to be anyway; no idea if they've fixed the keybindings or reliance on the registry yet.

    • TazeTSchnitzel 2 years ago

      > The changes seen by smartphones (both hardware and software) in that period of time are much more dramatic than PCs saw in the same period.

      They certainly got a lot more powerful, but the fundamental software architecture hasn't radically changed. An iPhone OS app from 2008 can be recompiled for 2023's iOS and will still work. iPhone OS inherited its whole architecture from OS X, which gave it room to grow into more powerful devices without radical changes. Pre-iPhone smartphones were a different beast.

    • dr_kiszonka 2 years ago

      Perhaps it's a matter of priorities. Given how much more powerful today's iPhones are compared to those from 2009, Apple could run older apps in an emulator.

      • Shawnj2 2 years ago

        There’s nearly 0 demand for this why is why you can’t do this. If there was this would either be an OS feature or a very popular third party app.

        • mplewis 2 years ago

          Here's a data point: I am demanding it. I purchased software and I'd like it to continue to work.

          The Ace Attorney collection was excellently packaged for iOS, and I want to keep playing one of the best-published versions of this trilogy, but now the UI doesn't render properly.

          I'm not saying that it's trivial, but we both know it is absolutely possible. Apple keeps putting the focus on "gaming" in its iPhone keynotes, but if they were serious about gaming, they'd make the games I already bought continue to work.

          • seam_carver 2 years ago

            The original iOS release is widely regarded to be the worst version of ace attorney, they have a remaster for iOS now released recently.

          • crystaln 2 years ago

            Idk man. It might be time to move on.

        • scheeseman486 2 years ago

          It's not an OS feature because Apple has an aversion to maintaining any kind of compatibility layer for more than a few years, it's not a third party app because Apple doesn't allow JIT code (eg. high performance emulators) in third party applications on iOS.

          Demand isn't the only reason to make a feature, sometimes customers might want something only after they're given the opportunity to recognize it's value.

          • Shawnj2 2 years ago

            There are hacky ways to get JIT to work and you can run Dolphin and other emulators that way.

        • seeknotfind 2 years ago

          Designing an app to emulate iOS games would be extemely difficult, let alone allowed on the app store. Backwards compatibility requires deep forethought and careful engineering as well as draconian enforcement. I think the technical difficulty plays a huge role here, when weighed against Apple's culture (sleek, minimalist) and the impact it would have on profit.

          • Shawnj2 2 years ago

            A modern iPhone sure but what about the iPhone 2/3G? That’s basically a low power ARM chip and we have Nintendo Switch emulators with very good performance. Anything pre-security chip should not be that difficult to emulate.

            • kylebyte 2 years ago

              My guess is that while it may not be too much effort to get a mostly accurate emulator that works well enough for hobbyist use, it'd be a lot of effort to get something up to the compatibility and usability standards of an official product.

              Many older apps may use undocumented functionality or non obvious quirks of the system that an emulator may miss, which means you'd need to have a QA team testing individual apps for compatibility.

              Part of Apple's brand is usability and a lack of rough edges. The downside of that is that building a tool like this up to their standards would be prohibitively costly.

            • jwells89 2 years ago

              I think the main problem would actually be the added storage consumption of hauling around old iOS system images, as would probably be necessary to keep the mainline version of iOS unencumbered from the constraints placed by backwards compatibility — it’d probably just be virtualizing old versions of iOS similar to how Mac OS 9 was virtualized in the early days of OS X.

              • Shawnj2 2 years ago

                Sure but even then storage space isn’t that terrible. The iPhone 4S had 8 GB of storage and supported iOS 5-9 as an example.

        • layer8 2 years ago

          Emulators aren't allowed on the App Store, so it couldn't be a third-party app.

    • gorkish 2 years ago

      > Is that really a fair comparison, though? The changes seen by smartphones [..]

      I am pretty sure this is referring to the Mac App Store, and would also apply to Steam for Mac or really trying to run any mac software from more than a couple of years ago. Apple's aggressive deprecation of Carbon and 32-bit have personally caused me maddening frustration a very large number of times. As much of a technical achievement as Rosetta 2 is, I also expect them to drive a nail through its heart at the first opportunity. I think Apple should have allowed their compatibility layers and deprecated libraries to flow into open source or community maintained projects instead of simply being abandoned.

      • jwells89 2 years ago

        Apple seems to see compatibility layers as exclusively transitionary, being something that’s kept around only long enough to give devs a chance to move over to the new thing.

        Carbon was likely kept alive longer than Apple wanted to due to heavy usage from major players (MS, Adobe, etc). In fact I wouldn’t be surprised if the short lifetimes and hard cutoffs on newer compatibility tech is a result of their experience with Carbon… they really don’t want devs leaning on these things for significant amounts of time, and as nice as it would be if they open sourced those technologies it’d run counter to their goals of getting devs migrated over to the current stack.

    • yjftsjthsd-h 2 years ago

      On the one hand, yeah, Windows can claim compatibility back so far that it does extend into the PC platform's early-ish days. After that, we quickly fall into emulators; a copy of dosbox will happily run the great hits of the 90s... I'm not actually sure how to count that, though, since it is an emulator, but also it's a relatively easy emulator to support because the platform was so much more open than iPhone (and also just simpler).

  • anotherhue 2 years ago

    The contrast is remarkable, if there was any desire for backwards compatibility it would have presented itself.

    They simply don't care.

  • hedora 2 years ago

    About half the MacOS software I had in 2009 still works, but only because it has Windows ports that I can run in Linux via Steam.

    About 10% still works on MacOS.

  • mchanson 2 years ago

    Apple doesn't prioritize it. And it is a bummer. Leaves it to the community, but then their OSes are so locked down that its probably a harder problem than on other platforms.

    History matters and Apple could invest a bit here to go a long way.

  • jitl 2 years ago

    Compare to similarly priced Windows Phone and Nokia apps

  • astrange 2 years ago

    You probably shouldn't run anything from 2009 that might try to connect to the internet.

  • KerrAvon 2 years ago

    How much battery and storage do you want to burn for the privilege of emulating old ARMv6 binaries?

  • fuzzy2 2 years ago

    Yes, Microsoft is incredibly (read: ridiculously) focused on backwards-compatibility. It is Windows’ USP. It’s also a huge driver in making Windows suck so much.

    Apple appears to be rather focused on not keeping legacy stuff around too long. Good on them.

  • vasdae 2 years ago

    >Almost every program that I bought on the Steam store in 2009 runs flawlessly today on the latest Windows version

    I don't believe this. Perhaps you meant "Every single program"? ;)

ianlevesque 2 years ago

Very interesting. The "why" context seems to be buried in an issue comment https://github.com/hikari-no-yume/touchHLE/issues/181#issuec... and I guess the purpose is to emulate old iOS games, from the early Cambrian explosion of ideas at the start of the App Store. This is also an era I am nostalgic for, with lots of new concepts, art pieces, and indie games, before anyone knew how to sustainably monetize, for better or worse. For example, Distant Shore is definitely a relic from a simpler time! https://johnnybgamer.com/2009/08/13/distant-shore/

  • kennywinker 2 years ago

    No need to hunt so deep into the repo, it's right there in the 3rd paragraph of the description: "The goal of this project is to run games from the early days of iOS"

  • layer8 2 years ago

    A lot of games were cut off by the 64-bit transition. I'm still a bit sour that Apple didn’t add a 32-bit compatibility layer.

    • astrange 2 years ago

      Everyone except game developers managed to come over just fine. This is a skill issue on the game devs' part that they can't stop themselves from doing bad pointer arithmetic.

      Note you can run 32-bit Windows games through WINE/Rosetta.

  • slimsag 2 years ago

    Distant shore was fantastic, I remember playing it a ton when I was younger and got an iPod touch for the first time. I've been thinking about that concept of game and how it could be integrated into other games

  • gmerc 2 years ago

    if this can run bookworm I am sold

hoherd 2 years ago

> The goal of this project is to run games from the early days of iOS

This is exciting! There are a bunch of great iOS and iPadOS games that no longer work that my kids and I would love to play again! It's disappointing that Apple can do things like Rosetta but didn't work hard enough on keeping compatibility with old iOS versions.

tech234a 2 years ago

The developers have begun asking for permission to legally redistribute some apps that are compatible with this emulator: https://touchhle.org/app-archive/

LegNeato 2 years ago

This is what osmeta did (bought by Facebook). I believe it shipped in whatsapp and messenger (see https://twitter.com/steipete/status/1007428817579859969, https://news.ycombinator.com/item?id=11599617) but later fell out of favor and was replaced with react native and pure native rewrites.

  • TazeTSchnitzel 2 years ago

    A little bird told me that they wanted to open-source it but they were waiting for the Oracle v Google lawsuit to conclude, and that dragged on a long time, so maybe they have up.

    • kridsdale3 2 years ago

      The team was folded in to the VR/AR org (I presume to develop an applications API that the universe of app developers would be familiar with), but it floundered and went nowhere.

      I heard this from someone who was on the team, I was not allowed to actually join or work with them, because I had worked for Apple previously and they were afraid of the Andy Rubin issue, where iOS's actual source code existed in my brain, so theoretically Apple could sue Facebook.

    • TazeTSchnitzel 2 years ago

      *gave up

  • saagarjha 2 years ago

    Massive shame, honestly. Interesting technology that basically got used once and then discarded.

lukeh 2 years ago

Wow, whatever is going on (macros?) to write ObjC class implementations in Rust with a hybrid syntax is very, very clever.

mkolassa 2 years ago

Defender Chronicles, ChainRxn, Zombie Wars 2, etc.

Maybe even all the games I purchased before they were updated to include all the IAP’s.

I am so looking forward to the possibilities.

  • 3ace 2 years ago

    I haven't heard or see someone mentioning Defender Chronicles for a long time now

    • mkolassa 2 years ago

      Definitely one of my all time favorites. I keep an iPad Mini 1st Gen around just for it. Sad that the sequel no longer works once their server went down.

  • terrycody 2 years ago

    But anywhere to find those vanished iAPs from old days?

qingcharles 2 years ago

This is a good community for finding old iPhone apps and games:

https://www.reddit.com/r/LegacyJailbreak/

flykespice 2 years ago

The only one game I'm looking forward to play on this emulator is the long forgotten Bioshock 1 port

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection