Skip to content

ArcadeFlashWeb - RetroBIOS

Type standalone
Classification Launchers
Source https://github.com/aureyoboss/ArcadeFlashWeb
Version 1.0.2
Profiled 2026-08-11
Cores arcadeflashweb
Systems flash
Technical notes

Qt 5.13 application that plays SWF files by hosting Adobe's Pepper Flash runtime inside a QtWebEngine view. Windows only. ES-DE runs ArcadeFlashWeb.exe -fullscreen -source:, RetroBat adds -nodatetime, -savedataflash: and -picturesfolder: and sets the working directory to the program folder. The repository carries the Qt and QML sources and the releases; arcadeflashweb.com no longer resolves and holds no archived capture. Every string quoted below was also read back from the shipped v1.0.2 executable, which matches the sources. ref: src/ArcadeFlashWeb.pro:1-5, src/main.qml:34-35

The runtime is registered from the command line. main sets QTWEBENGINE_CHROMIUM_FLAGS to "--enable-pepper-testing --ppapi-flash-path=./pepflashplayer.dll" before QtWebEngine::initialize, so Chromium takes the plugin from that path. It is the one file resolved against the process working directory; everything else below hangs off applicationDirPath. No --ppapi-flash-version accompanies it, and nothing reads the manifest.json sitting beside the library: QtWebEngine builds the plugin entry from the two switches alone and the library never names that file. The manifest is still what identifies the build, Pepper Flash 32.0.0.371 for win/ia32. ref: src/main.cpp:37-44, ArcadeFlashWeb v1.0.2 manifest.json:2-7, qtwebengine 5.13 src/core/content_client_qt.cpp AddPepperFlashFromCommandLine

A local movie is not handed to the view. The url becomes file:////flash/flash.html?jeu===, and that page splits the query on the equals signs, fits the movie to the window and calls swfobject.embedSWF with scale exactfit and wmode direct. The version it asks for is 32.0.0, so SWFObject creates the object only when the registered plugin reports at least that. A -source: containing "http" loads in the view unchanged and uses none of this. ref: src/main.qml:317-347, src/Navigateur.qml:144-155, ArcadeFlashWeb v1.0.2 flash/flash.html:38-104

Natural dimensions come from swfdump. When -swfwidth: and -swfheight: are not both given, which is the case for both ES-DE and RetroBat, the program runs cmd /C /swfdump.exe -X -Y redirected to swf.txt in the data directory and reads the second and fourth whitespace fields back. ref: src/main.qml:109-128, src/main.qml:321-335, src/Navigateur.qml:147-148

-profilantimicro: starts AntiMicro hidden with a profile from antimicro/profiles before the movie loads. Adding -controleurantimicro: replaces that argument with --profile-controller, and the profile file is then not passed at all. ref: src/main.qml:305-314

Written rather than expected: swf.txt, the QML LocalStorage database holding the last browser path with the bezel, screen mode and clock flags, the QtWebEngine cache and persistent storage under -savedataflash:, and the JPEG screenshots. The interface icons, the bezel, the CRT and scanline overlays and the wallpaper are compiled in through qml.qrc, so of the images only the copy under flash/images is read from disk, and it is byte for byte the compiled one. Two files ship unread: flash/swfobject/expressInstall.swf, which flash.html disables by passing false for the express install url, and flash/swfobject/test.swf, which nothing names. ref: src/qml.qrc:1-33, src/Sauvegarde.js:1-30, src/main.qml:132-159, ArcadeFlashWeb v1.0.2 flash/flash.html:102

The remainder of the release is the Qt 5.13.2 deployment of the program itself. VCRUNTIME140.dll and the UCRT stubs sit in the executable's import directory, so the Visual C++ 2017 x86 redistributable has to be installed, and the release carries its installer. ref: README.md:59, ArcadeFlashWeb v1.0.2 ArcadeFlashWeb.exe import directory

8 files | 3 required, 5 optional | 8 in repo, 0 missing

pepflashplayer.dll required in repo bundled
Adobe Pepper Flash Player runtime

  • Source: src/main.cpp:40, ArcadeFlashWeb v1.0.2 flash/flash.html:102
  • Handed to Chromium as --ppapi-flash-path and resolved against the process working directory. Without it no plugin is registered, SWFObject finds no player and the movie is never embedded. The page asks for a reported version of at least 32.0.0; the build that ships is the 32-bit 32.0.0.371.

flash.html required in repo bundled
Page that embeds the movie

swfobject.js required in repo bundled
SWFObject 2.2 embed library

  • Path: flash/swfobject/swfobject.js
  • Source: ArcadeFlashWeb v1.0.2 flash/flash.html:38, ArcadeFlashWeb v1.0.2 flash/swfobject/swfobject.js:1-4
  • The only definition of swfobject, included by flash.html before the script that calls embedSWF. It reads the player version from the Shockwave Flash plugin description, refines it from a probe object's $version, and refuses to embed below the version the page asks for.

background.jpg optional in repo bundled
Backdrop of the player page

  • Path: flash/images/background.jpg
  • Source: ArcadeFlashWeb v1.0.2 flash/flash.html:110, src/qml.qrc:23
  • Drawn behind the movie by the page's bg div. The same image is compiled into the binary for the QML side, so only this copy is read from disk.

swfdump.exe optional in repo bundled
SWFTools swfdump, reads the movie's natural size

  • Source: src/main.qml:324-325, src/Navigateur.qml:147-148
  • Run through cmd /C with -X -Y and the output redirected to swf.txt, then parsed as the second and fourth whitespace fields. Skipped when both -swfwidth: and -swfheight: are given. Absent, the redirection still creates an empty file, both fields parse to NaN and the page sizes the object from that.

antimicro.exe optional in repo bundled
AntiMicro gamepad to keyboard mapper

  • Path: antimicro/antimicro.exe
  • Source: src/main.qml:309, src/main.qml:311
  • Started hidden before the movie loads, only when -profilantimicro: is given. The copy that ships is a 2016 build carrying its own Qt 5 runtime in the same folder.

arcadeflashweb.gamecontroller.amgp optional in repo bundled
AntiMicro mapping profile

  • Path: antimicro/profiles/arcadeflashweb.gamecontroller.amgp
  • Source: src/main.qml:309-312
  • Passed to AntiMicro as --profile under the name -profilantimicro: gives; the name that ships is the one the built-in help quotes. With -controleurantimicro: also set the call carries --profile-controller instead and no profile file is read.

pepper.vch optional in repo bundled
Adobe Flash Access blob shipped with the runtime

  • Source: ArcadeFlashWeb v1.0.2 pepflashplayer.dll string table
  • Named in the Flash library's own string table next to PepperFlashPlayer. PKCS#7 over 446144 opaque bytes, signed through the Adobe Flash Access chain under subject CN AdobeIV-202002031156. It carries DRM material and no plain SWF needs it.

Generated on 2026-08-23T16:12:06Z