Hacker News new | ask | show | jobs
by Ecco 899 days ago
Curious as to why it took so long. Anybody around knows?
4 comments

I’d say it’s curious it happened at all. As others have mentioned Apple doesn’t allow emulators at all in their store, perhaps they are afraid of losing too much of the market after EU forces them to allow side-loading?

EDIT: I just checked the App Store listing for this app - I find it pretty hilarious (and for more than one reason) that it’s listed in the Adventure category which has a pirate flag for an icon.

I wonder if this is a case of an individual AppStore reviewer not actually understanding what the thing they are reviewing does.
I understand that new app launches need approval by someone who actually knows the rules, whereas new updates for already-published apps are run-by the rank-and-file reviewers.
This isn't necessarily true.
ScummVM isn't an emulator, it's a collection of game engines based on reverse engineering and, on occasion, original source code donations.
I stand corrected, although from a policy-making perspective ScummVM allows users to run software acquired through ways not sanctioned by Apple (or owners of the original IPs), which I believe is the major part of why emulators are not allowed on App Store and thus bears a similarity to them in that particular aspect.
It's trivial to purchase the games legally on GOG & Steam so this does not seem particularly relevant
Is there any philosophical difference in playing your game using ScummVM versus playing a JavaScript game on some website using Safari for iOS?
Since there are literal emulators written in JavaScript, the answer must be no.
Apple controls the JS sandbox in Safari, whereas they don’t control the ScummVM scripting sandbox. In theory it’d allow the execution of arbitrary scripts that can do anything native code can do, although I don’t know - maybe ScummVM checksums the games you load into it and will only run code it recognizes (and if so, maybe that’s why it’s allowed).
> Apple controls the JS sandbox in Safari, whereas they don’t control the ScummVM scripting sandbox.

AppStore apps themselves are sandboxed too. You can’t execute all arbitrary code just because it’s an app.

Isn't Apple very restrictive about apps that allow running arbitrary code like emulators? I'm also a bit perplexed, unless they have changed their policy recently.
That ship has long sailed. There’s an x86 Linux user space emulator capable of running unmodified Alpine Linux, a shell running WASM/WASI binaries…

It seems like the current bar is something like “can it plausibly run something other than pirated Nintendo ROMs”.

What's that x86 Linux emulator app?
That one runs WASM binaries interfacing (via WASI) with the native iOS AArch64 environment and some clever built-in bindings that make iOS look not entirely unlike a normal POSIX.

Very impressive (and faster than emulation, since WASM can be JIT compiled by iOS!), but not Linux :)

I wonder if it was determined that the code isn’t arbitrary, and nothing is being emulated. It’s more like a content engine.

Perhaps ScummVM is closer in concept to something like Super Mario Maker than to a full blown programming environment. You could argue that the custom content is “code” but it’s more like a limited set of actions accompanied with content.

It’s got interpreters that lets it execute arbitrary (?) code, which I thought was verboten. TBH I’m not sure how this got through Apple’s censors…?
Most game engines have scripting languages built in.
Yes, but those game engines are - on iOS especially - locked in to running bundled scripts that drive the specific game you’ve purchased from the App Store. ScummVM is running externally provided scripts.
I’m surprised it’s allowed at all. To my knowledge, Apple has never allowed general purpose virtualization software.
There's no general purpose virtualization involved in ScummVM. It's a collection of game engines derived mostly from reverse engineering old games.
Oh, well I stand corrected.