# Play MakeCode Arcade Game In App

**URL:** <https://forum.makecode.com/t/play-makecode-arcade-game-in-app/10787>\
**Category:** Help\
**Created:** [November 7, 2021, 8:27pm UTC](https://forum.makecode.com/t/play-makecode-arcade-game-in-app/10787 "2021-11-07T20:27:43Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![Pixiloom](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/pixiloom/32/5256_2.png) [@Pixiloom](https://forum.makecode.com/u/Pixiloom)\
**Post date:** [November 7, 2021, 8:27pm UTC](https://forum.makecode.com/t/play-makecode-arcade-game-in-app/10787/1 "2021-11-07T20:27:43Z")

</div>

How to make a MakeCode project an emulator which works like an app(exe)

---

<div class="post-metadata">

**Author:** ![Primal\_Nexus](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/primal_nexus/32/3540_2.png) [@Primal\_Nexus](https://forum.makecode.com/u/Primal_Nexus)\
**Post date:** [November 10, 2021, 1:43am UTC](https://forum.makecode.com/t/play-makecode-arcade-game-in-app/10787/2 "2021-11-10T01:43:59Z")

</div>

I don’t think you can @Pixiloom, you can only save the game on the arcade website, to your Microsoft account, or as a png which can be dragged and dropped into the editor to instantly load all of your code.

Opening arcade files as apps would be fun though… maybe the MakeCode Team could review this?

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [November 15, 2021, 4:36pm UTC](https://forum.makecode.com/t/play-makecode-arcade-game-in-app/10787/3 "2021-11-15T16:36:51Z")

</div>

Very interesting topic, @Pixiloom! I have been researching the same thing myself lately, without making any real progress.

But I have made some observations that I would like to share here as an attempt to answer your question(and maybe others could help us further?), where I understand “app” as a broader definition of a “one-click solution to launch a MakeCode Arcade(MCA) game/program on the desired system/platform”, even though you specifically mention exe(Windows executable) in your question:

**Executable:**

- _Windows executable:_ Though I still have not found out how to compile a simple native Win32-type executable, the open GitHub _pxt_ source code is full of references to _WinRT_, _UWP_ etc. I am not sure whether the functionality is restricted on [makecode.com](http://makecode.com) and if it might be possible with a local instance of the pxt server running, or if I just have not found the right [“magic” URL flags](https://forum.makecode.com/t/editor-magic-url-flags/10743) yet.
- _Linux executable(at least for ARM/RPi, haven’t tried x86/x64 yet):_ However, a solution for [compiling and running a standalone executable for Linux](https://forum.makecode.com/t/how-to-launch-makecode-arcade-uf2s-in-raspbian-retropie/2725), is already there:  
[https://github.com/Vegz78/McAirpos](https://github.com/Vegz78/McAirpos)
- _UWP app:_ There’s also an interesting GitHub project by @eanders for running MCA games as an UWP app: [https://github.com/eanders-ms/arcade-uwp-demo](https://github.com/eanders-ms/arcade-uwp-demo).  
I managed to compile and run this from Visual Studio, but I get an access violation referencing the provided _pxt.dll_ when I try to swap the included “castle-crawler” game with any other game(compiled with as experimental VM pxt64 file). I am not sure yet if there are other variations possible of the pxt64 files to compile to than the VM, if there are version differences or what is preventing this from working. It is also a very impractical solution, since every appx deployment has a size of 10-100MB for each MCA game file of 150-500kb, and the produced exe file in this project does not execute standalone with Windows standard shared libraries.

**VM**  
There is a VM solution included(but deprecated?) in MCA, which @mmoskal describes as:

- “[…a native SDL-based interpreter for MakeCode VM bytecode. That worked on Windows, macOS and Linux (all x86, but I see no reason it wouldn’t work on ARM)…](https://forum.makecode.com/t/how-to-launch-makecode-arcade-uf2s-in-raspbian-retropie/2725/2)”,
- “[…not really used by anyone (it’s 5x slower than normal native compilation), when it will be used we’ll fix it.](https://github.com/microsoft/pxt-arcade/issues/1418#issuecomment-545138787)”(The speed penalty should not be a problem on modern desktop hardware) when trying to compile at [makecode.com](http://makecode.com), and
- " [You may also see `"vm"` in future.](https://forum.makecode.com/t/check-whether-we-are-on-hardware-or-simulator/5597/3)"(Coming soon? VM already an [experimental feature/hardware](https://forum.makecode.com/t/makecode-arcade-for-n4/4499/2)…)

But the wheres, whats and hows regarding the VM simulator(a standalone app somewhere?), to actually run the pxt64 bytecode on Windows, MacOS and Linux is still unclear to me, and - as mentioned above - I am not sure how it is connected to @eanders’s project and whether they also could be compiled as standalone native Windows **exe** cutables?

**Web links**  
As a final suggestion for achieving a one-click solution, could be a collection of Web-links to the shared full screen playable web links of online MCA games, which would open be played in Microsoft’s web simulator inside your preferred or a minimal (kiosk) browser from the desktop, a folder, RetroPie/-Cake etc.

**Supported hardware**  
Just for completeness, I will mention the standard and well-known uf2 boot image solution for loading and playing MCA games on [various supported (handlheld microcontroller) devices](https://arcade.makecode.com/hardware).

Any new information about and solutions to this(especially the standalone Windows executables and a VM solution not requiring 100MB of UWP for each game) is very helpful and greatly appreciated!

---

<div class="post-metadata">

**Author:** ![personalnote](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/personalnote/32/31359_2.png) [@personalnote](https://forum.makecode.com/u/personalnote)\
**Post date:** [November 15, 2021, 5:21pm UTC](https://forum.makecode.com/t/play-makecode-arcade-game-in-app/10787/4 "2021-11-15T17:21:59Z")

</div>

You can just turn the website (share the game) into an app with this website.

[https://appmaker.xyz/web2desk](https://appmaker.xyz/web2desk)

---

<div class="post-metadata">

**Author:** ![Primal\_Nexus](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/primal_nexus/32/3540_2.png) [@Primal\_Nexus](https://forum.makecode.com/u/Primal_Nexus)\
**Post date:** [November 15, 2021, 10:16pm UTC](https://forum.makecode.com/t/play-makecode-arcade-game-in-app/10787/5 "2021-11-15T22:16:08Z")

</div>

Hmm yes but still it would be unsupported after you make it an app since it won’t be the official app, meaning that you’ll be stuck with the same glitches that the current version of MakeCode Arcade has.

Also if you were going to say just redownload it every time there’s a patch, think about the pain your computer has to go through to download something like Office apps, and multiply that by 10, that’s the torture you’re putting the computer through. (Jk do whatever you want with your computer lol)

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [November 22, 2021, 6:58pm UTC](https://forum.makecode.com/t/play-makecode-arcade-game-in-app/10787/6 "2021-11-22T18:58:02Z")

</div>

For anyone skilled enough to contribute and inclined to share, or just curious or interested enough to learn more about the _pxt_ build system and figure out how to make MakeCode Arcade games run as (experimental and as of yet unsupported)standalone apps/native executables on Windows, Mac and Linux etc., there is an ongoing GitHub issue about this in @eanders’ explorative UWP repo here:

> <https://github.com/eanders-ms/arcade-uwp-demo/issues/1>
>
> Hi Eric, and thanks for an interesting MakeCode Arcade(MCA) UWP project! 
> 
> I g…et it to build and run for the included \_castle-crawler\_ game. But unfortunately I am unable to swap out this game for other MCA games, even though I compile and download them as similar pxt64 VM files.
> 
> With reference to e.g. \[this forum thread\](https://forum.makecode.com/t/play-makecode-arcade-game-in-app/10787/3), there might be quite a few people out there apart from yourself and I, that are interested in finding ways to run MCA games as standalone apps/executables.
> 
> From what I have read\* and gathered from browsing the various pxt source codes and your projects, there seems to be at least 2 viable approaches to achieve this:
> 
> 1. \_VM\_: Like you have done here; to compile the MCA games to VM pxt64 files, which then somehow with a \[native SDL interpreter should be possible to run on Windows, MacOS and Linux\](https://forum.makecode.com/t/how-to-launch-makecode-arcade-uf2s-in-raspbian-retropie/2725/2) desktops.
> (I understand that this approach should also be possible on ARM and other platforms, and your UWP-approach is of course interesting, as the game would also run on XBox. But I have still not figured out how to get this SDL VM interpreter to work, and if it's like the web simulator/uf2 boot image, with a menu where you could choose among various games, or if each game needs to be bundled with its own interpreter...)
> 2. \_Native executables\_: Directly compile native x86\_64 executables on Windows(WIn32 exe), MacOS(Mach-O) and Linux(elf).
> (\[Already solved for ARM/RPi Linux .elf\](https://forum.makecode.com/t/how-to-launch-makecode-arcade-uf2s-in-raspbian-retropie/2725/25), but I have not yet figured out how to do this on Windows, MacOS and Linux x86\_64. But it should be possible, and maybe you know how?)
> 
> There might, of course, be other interesting approaches, like \[appifying online shared MCA games\](https://github.com/Microsoft/WindowsTemplateStudio), integrate the online shared MCA games or downloaded .js of the games with \[WebView2\](https://docs.microsoft.com/en-us/microsoft-edge/webview2/), get the simulator to run locally etc.
> 
> However, the 2nd alternative might be the most straight forward and with the smallest storage footprint per game? In any case, both approaches are very interesting to explore further, with many different applications and use cases.
> 
> On a local pxt server, I have managed to compile the following:
> \- binary.asm files with various contents(what looks like the IR(VM?) bytecode or ARM assembly, but I am unable to assemble)
> \- binary.js, which I understand is the file type that the web simulator runs
> \- binary.pxt64 which I understand is the VM bytecode
> \- binary.uf2 for all the listed handheld MCU hardware
> \- binary.elf for ARM/RPi native executable
> \- A dockercross folder with what seems to be the C++ source code for \`pxt.dll\`(or the game with \`pxt.dll\`?), which I am unable to compile yet, but I suspect might be possible to compile somehow with \[multiarch crossbuild\](https://github.com/multiarch/crossbuild).
> 
> But I have not yet found a way to get pxt to output x86\_64 executables for Windows, MacOS or Linux, nor a ready compiled \`pxt.dll\`.
> 
> Would you be interested to please help us make this \_black magic\_ work, document the various approaches, and maybe find the documentation for win32 binaries etc.?
> 
> Sources:
> - https://www.microsoft.com/en-us/research/publication/static-typescript/
> - https://www.microsoft.com/en-us/research/publication/makecode-and-codal-intuitive-and-efficient-embedded-systems-programming-for-education-jsa/
> - https://www.infoq.com/presentations/makecode/

As I understand it, this should definitely be possible, with such native and VM build targets already envisioned at some time and included in MakeCode/_pxt_, but with “a couple regressions” today that should be possible to fix.

For me, this looks a little like the perfect community project, befitting MakeCode’s open source, its mission statement\* and its friendly and knowledge thirsty users, where everyone can be creative and have fun together while learning from, and finding and developing new use cases for technology. -Maybe MakeCode Arcade even carries a little bit of the spirit of _[will it run Doom](https://itrunsdoom.tumblr.com)_? 😉

Looking forward to seeing the first MakeCode Arcade game playable on a bread toaster!!!

\*“[Microsoft MakeCode is a free, open source platform for creating engaging computer science learning experiences that support a progression path into real-world programming.](https://www.microsoft.com/en-us/makecode/about)”

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [July 7, 2022, 5:17pm UTC](https://forum.makecode.com/t/play-makecode-arcade-game-in-app/10787/7 "2022-07-07T17:17:38Z")

</div>

> [@MakeCode Arcade Online Multiplayer](https://forum.makecode.com/t/makecode-arcade-online-multiplayer/14259/9):
>
> …that was made for making experiences like the kiosks we had at iste easier
> 
> [https://twitter.com/MSMakeCode/status/1541889549894295558/photo/2](https://twitter.com/MSMakeCode/status/1541889549894295558/photo/2)
> 
> in particular to play along with [https://arcade.makecode.com/hardware/shoebox-controller](https://arcade.makecode.com/hardware/shoebox-controller) and make it so eventually we could have it just like ‘follow these instructions to make a simple cabinet controller, then load this up in the browser to make a custom kiosk’. A little bit more to go to complete that goal though 🙂

Since there was no online multiplayer support, the MakeCode Arcade _kiosk_ solution under development is probably a subject more befitting to this thread about playing MCA games in/as app.

Maybe, as @personalnote is on to, that this could be bundled/framed/compiled/packaged somehow to run as a cross platform and offline app/PWA, and a possible solution alternative to what @Pixiloom is searching for?:

> **[MakeCode Arcade Kiosk](https://arcade.makecode.com/--kiosk)**
>
> MakeCode Arcade Kiosk mode. Showcase games made on Microsoft MakeCode Arcade in a carousel list.

By the way: Anyone who lately has gained any experience or new knowledge about the mysterious experimental/beta _VM_ option in the hardware selection menu in the editor?

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [December 7, 2022, 11:58pm UTC](https://forum.makecode.com/t/play-makecode-arcade-game-in-app/10787/8 "2022-12-07T23:58:32Z")

</div>

With reference to this, just recently about some developments on _Kiosk Mode_, but now back a bit more on topic here:  
[https://forum.makecode.com/t/cabinet-with-raspberry-pi-ran-out-of-disk-space/16221/9](https://forum.makecode.com/t/cabinet-with-raspberry-pi-ran-out-of-disk-space/16221/9)

Just checked out [https://arcade.makecode.com/kiosk](https://arcade.makecode.com/kiosk), and it looks good, and seemingly multiplayer capable as well.

But how would one go about making for instance a school arcade project with student’s games on some minimum capable and low powered hardware/pad, with for instance the [shoebox controller](https://arcade.makecode.com/hardware/shoebox-controller), but not with the official shared [makecode.com](http://makecode.com) site and preloaded games or others’ uploaded games in the mix(and maybe no stable internet)?

“_The idea is that you put the RPI in kiosk mode and have it load this webpage fullscreen. This page accepts gamepad input, so you can build a cabinet using gamepads or an arcade button kit with gamepad support. You can add new games using a phone and the button in the top right._”

Is the idea only to run this official site, or also to run a local kiosk server on the device or another connected device. Is it(will it be) also a self-contained (boot)image or app that one can download? How to isolate it from the default game/other users(log in/user profiles/session cookies?)? How to configure it; the menus, artwork, school logo etc.? Does it have to be a mega Chrome-based browser, or would lighter/minimal browsers work?

I understand it is cool with many new opportunities, and enabling the use of new devices and OS’es, but then, as I almost imagined a use case “as/like an app” or a project, it eluded me… Sorry for being slow here.

Anyone have examples of it in use that they would like to share for inspiration?

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [October 2, 2023, 5:47pm UTC](https://forum.makecode.com/t/play-makecode-arcade-game-in-app/10787/9 "2023-10-02T17:47:32Z")

</div>

Some interesting discussions about running MakeCode Arcade games as (iOS)apps i app stores:

> [@Is It Possible to upload a Makecode game to the apple store?](https://forum.makecode.com/t/is-it-possible-to-upload-a-makecode-game-to-the-apple-store/19305/6):
>
> Hey @PixelDoodle, we don’t have a built-in way to publish to the various app stores. That would be really cool. But your question made me curious, so I put together a little demo of one way to package an Arcade game for iOS. It just wraps the web player in a native iOS frame (provided by the CapacitorJS framework). I only got as far running it in Xcode’s iOS simulator. A few more steps would be required to upload it to the App Store, but it sets the direction at least. […](https://raw.githubusercontent.com/humanapp/arcade-ios/main/public/screenshot.png)

…and on the XBox or other consoles:

> [@Can you put Arcade MakeCode games on Xbox?](https://forum.makecode.com/t/can-you-put-arcade-makecode-games-on-xbox/22861):
>
> Just asking.

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [April 30, 2024, 4:07am UTC](https://forum.makecode.com/t/play-makecode-arcade-game-in-app/10787/10 "2024-04-30T04:07:27Z")

</div>

Interesting idea with Apple executables!:

> [@Execute .elf on Apple silicon](https://forum.makecode.com/t/execute-elf-on-apple-silicon/14364):
>
> Thanks to this [MakeCode Arcade on Raspberry Pi (including RetroPie, Recalbox, Batocera etc.)](https://forum.makecode.com/t/makecode-arcade-on-raspberry-pi-including-retropie-recalbox-batocera-etc/14267). @Vegz78 and @mmoskal did a great job - thanks you. I have managed to run my games on my Raspberry Pi with minor issues. But then I thought maybe I could run it on my Apple silicon Mac. Then I could run my game on a more portable platform. It is ARM64 like my Raspberry Pi and UNIX based. It is easy to get the .elf file and compile, but execute it on my Mac is much harder. chmod a+x \*.elf ./arcade-Sa…

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [April 30, 2024, 4:07am UTC](https://forum.makecode.com/t/play-makecode-arcade-game-in-app/10787/11 "2024-04-30T04:07:35Z")

</div>

Offline kiosk mode and QEMU execution of .elf MCA game files. -Both nice ideas that I am looking forward to hearing more about!:

> [@Offline Kiosk Mode on Linux](https://forum.makecode.com/t/offline-kiosk-mode-on-linux/28435/4):
>
> To keep this conversation going. I am also wondering about running ELF files under QEMU. I see that they have native support for running Makcode Microbit HEX binaries in there emulator. Gonna try to log some time in the next week to check out ARM support and if I can get ELF binararies running locally that way.

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [April 30, 2024, 4:14am UTC](https://forum.makecode.com/t/play-makecode-arcade-game-in-app/10787/12 "2024-04-30T04:14:26Z")

</div>

Related:

> [@Making Games Standalone](https://forum.makecode.com/t/making-games-standalone/27493):
>
> Hi all, I’ve already seen a post from the archives about making games from [Makecode arcade standalone](https://forum.makecode.com/t/play-makecode-arcade-game-in-app/10787/3), like some people want a desktop icon, or a .exe. Before I start coding, is there already a feature/function/github for this? P.S ChatGPT says: To run MakeCode Arcade games as standalone applications on desktop operating systems like Windows, macOS, or Linux, you would typically need to use a workaround. One common method is to package the game with a web technology-based wrapper or containe…

> [@Converting MakeCode Arcade Project to EXE File which can be run as an emulator on a computer](https://forum.makecode.com/t/converting-makecode-arcade-project-to-exe-file-which-can-be-run-as-an-emulator-on-a-computer/10786/4):
>
> Well the trick is that makecode and the games on it are separate entities. You need a makecode interpreter and the game file itself. I say this with no knowledge of the inner workings, but makecode appears to run on javascript, and its games are stored within the extra data of png file(Does jpeg compress extra data?). If you had an offline emulator/interpreter, it would run on javascript, be stored as a .js file, and probably run from a .html, NOT AN EXE. We actually see this supported in the ch…

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [October 28, 2024, 4:02pm UTC](https://forum.makecode.com/t/play-makecode-arcade-game-in-app/10787/13 "2024-10-28T16:02:44Z")

</div>

Ever new developments in this field!!!:

> [@Convert your MakeCode Arcade games to Electron apps](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-electron-apps/31352):
>
> I’ve created a script that makes it easier to convert your MakeCode Arcade games into standalone offline-capable Electron apps! It results in a nice responsive window without visible controls and an icon that can be full-screened (F11) or can be dragged around and everything. Since the “packaging process” downloads the necessary simulato…

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [October 28, 2024, 9:16pm UTC](https://forum.makecode.com/t/play-makecode-arcade-game-in-app/10787/14 "2024-10-28T21:16:33Z")

</div>

For completeness of this thread, since I forgot to post last year’s big Christmas presents:

**MakeCode Arcade on the micro:bit (V2)**  
(Technically new compatible hardware, but still compiled some way as a kind of app on some hardware)

> **[MakeCode Arcade - now more ways to play!](https://makecode.com/blog/arcade/arcade-on-microbit-xbox)**
>
> Posted on November 6th, 2023 by Jaqster

**The official MCA Kiosk app to play games in on the XBox:**

> **[Get MakeCode Arcade Kiosk | Xbox](https://www.xbox.com/en-US/games/store/makecode-arcade-kiosk/9P3RGVVTVB1S/0010)**
>
> Play the games you code on Xbox! The Microsoft MakeCode Arcade Kiosk app allows you to upload the games you create with MakeCode Arcade onto an Xbox and play them on the big screen with a game controller. MakeCode Arcade is a retro online game...

Mentioning @UnsignedArduino’s coming [Electron launcher / app again](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-electron-apps/31352) here at the end, since it’s the newest branch on this tree, and it has the potential for being cross-platform!

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [July 7, 2025, 10:25pm UTC](https://forum.makecode.com/t/play-makecode-arcade-game-in-app/10787/15 "2025-07-07T22:25:29Z")

</div>

Now @UnsignedArduino is really making progress on this subject!!!:

> [@Convert your MakeCode Arcade games to executables](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719):
>
> Convert your MakeCode Arcade games into a standalone offline executable! It’s basically the same thing as [this](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-electron-apps/31352), but the star of the show is being able to use [Tauri](https://tauri.app/) instead of [Electron](https://www.electronjs.org/) instead, reducing app sizes from over 200 MB to ~10 MB! (~3% of the original size) It is also a standalone executable, making distribution even easier! Set u…
