For grown-ups: open-source software on this site
Last updated: September 29, 2026
Hank's Hits uses the open-source software below to make game clips and to play the games in Retro Arcade. This page tells you what each part does, its license, and where to get its source code.
The notice file has the same information as plain text: NOTICE.txt
FFmpeg (libavcodec and libavutil)
FFmpeg encodes the game sound of a clip as AAC audio. The site uses it only on browsers that cannot encode AAC audio themselves.
- Version
- 8.1.3
- License
GNU Lesser General Public License, version 2.1 or later (LGPL-2.1-or-later)
LGPL 2.1 license text- Source code
- Copyright
- Copyright (c) 2000-2026 the FFmpeg developers
- The AAC module (/clips/aac/ffmpeg-aac-enc.mjs) contains FFmpeg. The module links FFmpeg statically.
- The first lines of the AAC module are a license notice. The notice names each part in the module, its license and this page.
- The source code file above is the unchanged FFmpeg 8.1.3 release from ffmpeg.org. We did not change the FFmpeg source.
- The FFmpeg release signing key (FCF986EA15E6E293A5644F10B4322F04D67658D8) signs the release.
- Some FFmpeg files have MIT, BSD or ISC style licenses. Their notices are in the source code file.
- We build the module in the Docker image of Emscripten 6.0.10, with no network access. The same inputs give the same file every time.
AAC bridge (bridge.c)
The bridge connects the FFmpeg encoder to the clip maker. It is part of the AAC module.
- Version
- From Mediabunny 1.60.0, changed by us
- License
Mozilla Public License 2.0 (MPL-2.0)
MPL 2.0 license text- Source code
- Copyright
- Copyright (c) 2026-present, Vanilagy and contributors
- The file header tells what we changed.
Mediabunny
Mediabunny puts the video and the sound of a clip into an MP4 file.
- Version
- 1.60.0
- License
Mozilla Public License 2.0 (MPL-2.0)
MPL 2.0 license text- Copyright
- Copyright (c) 2026-present, Vanilagy and contributors
- We did not change Mediabunny.
Emscripten runtime
The Emscripten compiler made the AAC module. Its runtime code in the module loads the encoder and connects it to the browser.
- Version
- 6.0.10
- License
MIT License (Emscripten also offers the University of Illinois/NCSA Open Source License)
Emscripten license text- Copyright
- Copyright (c) 2010-2014 Emscripten authors
musl C library
Parts of musl give the AAC module basic C functions, for example math and memory functions.
- Version
- The copy in Emscripten 6.0.10
- License
MIT License
musl license text- Copyright
- Copyright (c) 2005-2020 Rich Felker, et al.
EmulatorJS
EmulatorJS is the game player of Retro Arcade. It loads the emulator cores, shows the game and reads the controls.
- Version
- 4.2.3
- License
GNU General Public License, version 3 (GPL-3.0)
- Source code
- EmulatorJS 4.2.3 source code (0.6 MB)
- EmulatorJS 4.2.3 package-lock.json (the versions of the build tools) (0.1 MB)
- libunrar-js source code, with UnRAR 5.9.2 (0.4 MB)
- nipplejs 0.10.2 source code on GitHub (opens in a new tab)
- Socket.IO client 4.8.1 source code on GitHub (opens in a new tab)
- Retro Arcade emulator notice (NOTICE.txt): each part, its license and its source code
- Copyright
- Copyright the EmulatorJS contributors. The file docs/contributors.md in the source code names them.
- Retro Arcade loads EmulatorJS only from this site, from the folder /emulator/ejs/4.2.3/. The site does not load it from the EmulatorJS servers.
- We did not change the files. Each file is the same as the file in the official EmulatorJS 4.2.3 release. The file manifest.json in the folder gives the size and the SHA-256 of each file.
- The file emulator.min.js also contains nipplejs 0.10.2 (the on-screen joystick, MIT License), the Socket.IO client 4.8.1 (MIT License) and icons from Font Awesome Free 6.5.1 (CC BY 4.0).
- The folder also has libunrar, which opens RAR game files. It has the UnRAR license.
- The Retro Arcade emulator notice tells how to make emulator.min.js from the source code. It also tells about two small helper files, extract7z.js and extractzip.js. EmulatorJS does not publish their source code.
Retro Arcade emulator cores, with RetroArch
The cores play the games of the old game consoles in Retro Arcade. Each core file holds RetroArch, one emulator core and the Emscripten runtime, compiled together.
- Version
- The cores of EmulatorJS 4.2.3, built on 14 June 2025
- License
Each part has its own license. RetroArch: GPL-3.0-or-later. The core build scripts: GPL-3.0. FCEUmm and Nestopia UE: GPL-2.0-or-later. Mupen64Plus-Next and Stella 2014: GPL-2.0. mGBA: MPL-2.0. Genesis Plus GX, PicoDrive and Snes9x: their own licenses, for non-commercial use only. The Emscripten runtime and musl: MIT.
- GPL 3.0 license text (RetroArch and the build scripts)
- GPL 2.0 license text
- MPL 2.0 license text
- FCEUmm license text
- Genesis Plus GX license text
- mGBA license text
- Mupen64Plus-Next license text
- Nestopia UE license text
- PicoDrive license text
- Snes9x license text
- Stella 2014 license text
- LGPL 2.1 license text (parts of Genesis Plus GX)
- Emscripten 4.0.8 license text
- musl license text
- Source code
- RetroArch (the EmulatorJS fork) source code (71.0 MB)
- Core build scripts source code (less than 0.1 MB)
- FCEUmm (NES) source code (0.8 MB)
- Genesis Plus GX (Sega Genesis) source code (14.4 MB)
- mGBA (Game Boy and Game Boy Advance) source code (15.1 MB)
- Mupen64Plus-Next (Nintendo 64) source code (15.0 MB)
- Nestopia UE (NES) source code (1.2 MB)
- PicoDrive (Sega Genesis) source code (2.0 MB)
- PicoDrive part libpicofe source code (0.1 MB)
- PicoDrive part cyclone68000 source code (0.1 MB)
- PicoDrive part emu2413 source code (less than 0.1 MB)
- PicoDrive part libchdr source code (4.2 MB)
- PicoDrive part dr_libs source code (0.5 MB)
- Snes9x (Super NES) source code (5.2 MB)
- Stella 2014 (Atari 2600) source code (0.7 MB)
- Emscripten 4.0.8 source code on GitHub (with musl) (opens in a new tab)
- Retro Arcade emulator notice (NOTICE.txt): each part, its license and its source code
- Copyright
- RetroArch: Copyright (C) 2010-2014 Hans-Kristian Arntzen, Copyright (C) 2011-2021 Daniel De Matteis, and the other RetroArch contributors. Each core has its own authors. The Retro Arcade emulator notice names them.
- We did not change the core files. EmulatorJS built them with its build scripts and Emscripten 4.0.8.
- Each source code file is an unchanged copy of the archive that GitHub makes for one git commit. It is the commit that the core file names.
- PicoDrive uses parts from other projects (git submodules). A GitHub archive does not hold them, so each part has its own source code file.
- Genesis Plus GX, PicoDrive and Snes9x allow non-commercial use only. This site is free. It has no ads and no payments.
- The licenses of four cores do not agree with the GPL-3.0 of RetroArch: Stella 2014 (GPL-2.0 only), and Snes9x, Genesis Plus GX and PicoDrive (non-commercial use only). EmulatorJS made these core files. Part D of the Retro Arcade emulator notice tells more.
- The GPL and the MPL let you get the source code, change it and share it. Read the license texts for the conditions.
How we build the AAC module
The AAC module is the file /clips/aac/ffmpeg-aac-enc.mjs. We build it from the FFmpeg source code file on this page. These files show every step, and they let you build the module again:
- README.mdHow to build the module
- bridge.cThe bridge source code
- notice.jsThe license notice at the top of the module
- pins.shThe pinned versions and hashes
- configure-flags.txtThe FFmpeg configure options
- emcc-flags.txtThe link options
- build.shThe build script
- container-build.shThe build steps in Docker
- verify.shThe reproducibility check
- BUILD-INFO.txtThe exact commands, the input hashes and the result of the last build
- ffmpeg-aac-enc.mjs.sha256The SHA-256 of the module
- Source SHA-256
7138d28c96d9d3e3af4ee3d8cad72741f8ffb40da90c1112235dea3ecd3178a3- Module SHA-256
e2ee0d697dabd45903649b0971d4335bebacf25e53d41b4c8894deffbd7b4c6b
Two clean builds give a module with the same SHA-256. The script verify.sh checks this.
Your rights for the FFmpeg part
The LGPL gives you these rights:
- You can change the FFmpeg source code and build a new AAC module with the build files on this page.
- You can use your changed module in place of ours, for your own use.
- You can reverse engineer the module to find and fix problems in your changes.
You can get the FFmpeg source code from this site, at the same place as the module: /licenses/ffmpeg-8.1.3.tar.xz
The Retro Arcade source code
The folder /emulator/ejs/4.2.3/ on this site has the EmulatorJS files, the emulator cores, their license texts and their source code. The source code files are in /emulator/ejs/4.2.3/source/. You can download them at no cost, and you do not need an account. We keep them on this site for as long as we send the emulator files.
- /emulator/ejs/4.2.3/NOTICE.txtEach part, its license, and how to build it
- /emulator/ejs/4.2.3/manifest.jsonThe size and the SHA-256 of each file and each source code file
- EmulatorJS 4.2.3 release SHA-256
07d451bc06fa3ad04ab30d9b94eb63ac34ad0babee52d60357b002bde8f3850b