major labsSubscribe
Open data

AI-ported games: does it run?

A second pass over the repositories that built in the clean-room build check. Each one is built again on a fresh runner, and the program the build produced is launched under a virtual display with no game files present. The question is narrow: what does a player see in the first 45 seconds, before adding their own copy of the game? A window, a crash, a usage screen from a command-line tool, or a message asking for a ROM or disc image. It is not a test of whether the game plays, and the Works, Partial and Research labels are the outcomes each project reported on the source list, not ours.

As of October 29, 2026. Raw data: /data/ai-ports-smoke.json. CC BY 4.0.

49 of 50
built again on a fresh runner
22
built nothing to launch (14 empty or tests only, 8 packages or web apps)
25
produced a program of their own to launch
3 of 25
stayed up or showed a window with no game files (12 percent)

What happened on launch

outcomemeaningWorksPartialResearchall
window_opened_kept_runningopened a window and kept running0303
exited_cleanexited cleanly0202
exited_asking_for_filesexited asking for files3104
printed_usageprinted a usage screen (a command-line tool, not a game)55414
ran_self_testran its own self-test and passed (a check program, not a game)0202
missing_runtime_librarystarted, then a system library was missing on the runner1102
vendored_tool_onlybuilt only a vendored dependency0101
tests_or_libraries_onlythe build produced only test programs and libraries2305
nothing_builtthe build command ran and produced no targets at all6118
no_native_programbuilds a package or a web app, nothing to launch natively6208
not_builtdid not build this time0101

Every README in this set says the player must supply the original game (50 of 50match the strict phrases). The launch pass records which programs say so themselves, which open a window anyway, and which never produced anything to launch.

Every repository

idrepositoryreportedbuildon launchprogramwindowsexitfiles it asked for
w007sedthh/batch_and_vibeWorkspythonno_native_program0
w009Druthulu/BFM-decompWorksmakenothing_built0
w020z3xox/Tenkaichi3DecompWorksbuild_shmissing_runtime_library<repo>/port/build_release/bt3_640127libSDL3.so
w022r331/driverWorkscmakeexited_asking_for_files<build>/driver01
w023maxgraf96/ee-macosWorkscmakenothing_built0
w025ethannicholas/fzerogx-recompWorkscmaketests_or_libraries_only0
w031jkdansereau/goldeneye-pc-portWorkscmakeexited_asking_for_files<build>/ge007.x86_6401/tmp/build/data/ge007.ini, baserom.u.z64, data/ge007.ini, ge007.ntsc-final.z64
w038griches/JamesPond2RobocodRecompWorkscmakeprinted_usage<build>/jp2-recomp01cov.bin
w044AlmazProud/metal-slug-5-recompWorkscmakeprinted_usage<build>/src/dump_cycles02output.bin
w045hivvu/scale-miniaturesWorksnpmno_native_program0
w047kDylanHayes/mystery-house-decompilationWorksbuild_shnothing_built0
w051blakebratcher/ntm-decompWorksmakenothing_built0
w054Jared-woodruff/OMF-2097-RemasteredWorksnpmno_native_program0
w056PS1Recomp/ps1-recompWorkscmakeprinted_usage<build>/ps1Runtime/ps1Runtime01
w064vibecodekun/shantaerecompWorkscmakeprinted_usage<build>/bin/gbrecomp01.gb/.gbc
w069ogdanimal/SkiesOfArcadiaLegends-RecompWorksmakenothing_built0
w076pakompom/SpaceRangers1_decompWorkscargoprinted_usage<repo>/target/release/decomp02
w084dyzz/srw64-recompWorkscmaketests_or_libraries_only0
w090TekRantGaming/simpsons-wrestling-recompiledWorkscmakeexited_asking_for_files<build>/SimpsonsWrestling_Recompiled01/path/to/SCPH1001.BIN, /path/to/game.cue, /tmp/build/overlay_captures.json
w093jbeaumont/ultima4-companionWorksnpmno_native_program0
w094rehan-remade/universal-modderWorkspythonno_native_program0
w097mr-finster/vf1-recompWorksmakenothing_built0
w100s-macke/weltendaemmerungWorksnpmno_native_program0
p002librematch/geniePartialcargoprinted_usage<repo>/target/release/gsk02
p003GeneralPawz/acrPartialcargoexited_clean<repo>/target/release/AmericanConquest00
p004minty-hippo/amped3revampedPartialcmakewindow_opened_kept_running<build>/amped3-launcher1ran out
p006byroweb/AC1_REPartialmakeran_self_test<repo>/re/build/mission_sim00
p009openblack/bw1-decompPartialmakevendored_tool_only<repo>/src/zlib/minigzip00
p024Igrise12/DQVIIIPCPartialcmakeprinted_usage<build>/src/host/dq8-game02
p025victor-takai/dragon-valor-recompPartialcmakewindow_opened_kept_running<build>/DragonValorRecompiled1ran out/tmp/build/overlay_captures.json
p031VinceIP/fci-recompPartialpythonno_native_program0
p043abhinavt0681/hitman-contracts_clonePartialcargomissing_runtime_library<repo>/target/release/hitman_clone0101libxkbcommon-x11.so
p046mrOt4/babel-recompPartialcmakewindow_opened_kept_running<build>/babel-recomp1ran outconfig.ini, keybinds.ini
p051Yokimitsuro/khdays-portPartialcmaketests_or_libraries_only0
p052sonofskywalker3/khdays-358-androidPartialcmaketests_or_libraries_only0
p053Cor3Duo/kirikaePartialcargoexited_clean<repo>/target/release/kirikae00
p057AndrewAltimit/legend-of-legaia-rePartialcargoexited_asking_for_files<repo>/target/release/asset-viewer01disc.bin, extracted/PROT.DAT
p060AlmazProud/metal-slug-3-recompPartialcmakeprinted_usage<build>/src/dump_cycles02output.bin
p066ptitty12/mvp2005-decompPartialcmakeprinted_usage<build>/mods/mvp-pack02
p077wastelandgunner/pokemon-colosseum-recompiledPartialcargoprinted_usage<repo>/target/release/colo-tool00file.dat, scene.json
p080thebardockgames/PrecursorPartialcmake (timeout)not_built0
p092TheRealestNwah/sotc-decompPartialpythonno_native_program0
p111seco560/OpenTonicPartialmakeran_self_test<repo>/core/build/playcheck00
p119ethannicholas/bluestorm-recompPartialcmaketests_or_libraries_only0
p126ILFforever/YW4RecompPartialcmakenothing_built0
r002ekwoka/Battlefield-2142-DecompResearchcmakeprinted_usage<build>/src/Main/bf214202symbols/BF2142.exe
r003Yharnam-Hunters/PalebloodResearchcmakeprinted_usage<build>/runtime/pbboot02NID_DB.xml, OUT.json
r006gustavocanepa/gt4-nativeResearchcmakeprinted_usage<build>/gt4_elf_inspect02
r011bitplane/nokia-dct3-reResearchmakenothing_built0
r014rages4calm/pcenginerecompResearchcmakeprinted_usage<build>/pce-checkpoint-probe01

Method

Every repository that built in the clean-room pass was built again on a fresh GitHub-hosted runner, then the most likely executable the build produced was launched under a virtual X display with dummy audio and no game files present, for at most 45 seconds. After 20 seconds the harness counted X windows. The exit code, the window list, and the last lines of output decide the outcome. No paid or proprietary file was supplied; the question is what a player sees before adding their own copy of the game.

The executable is chosen among the files the build produced: ELF programs newer than the clone, excluding libraries, tests and CMake probes, with vendored directories picked last and flagged. The program runs from its own directory with dummy audio under Xvfb. After 20 seconds the harness lists the X windows; at 45 seconds it stops the program. The exit code, the window list and the last lines of output decide the outcome. Builds that produce a Python package or a web app have nothing to launch natively and sit in their own bucket. The step is the smoke input of the public harness at github.com/major-matters/ai-port-build-check.

Limitations

  • A window under Xvfb with software rendering is not a desktop with a GPU. A program that needs Vulkan or a real OpenGL context may fail here and work on a player's machine.
  • The executable picker is a heuristic. When a build produces several programs the largest game-like one is chosen; the candidate count is recorded so a wrong pick can be seen.
  • Forty-five seconds is enough to reach a title screen or a file check, not to prove anything about play.
  • "Asked for files" comes from a word list over the program's own output. A program that exits silently without its data is recorded as an error, not a request.
  • No game file, ROM, disc image or BIOS was supplied at any point. The pass records what the programs say they need; it does not judge the legality of obtaining them.

See also: does it build?, the MCP open data, build log.