Shell script to set up a Raspberry Pi/Odroid/PC with RetroArch emulator and various cores
This report presents the forensic synthetic code analysis of RetroPie/RetroPie-Setup, a Shell project with 10,403 GitHub stars. SynthScan v2.0 examined 39,011 lines of code across 320 source files, recording 345 pattern matches distributed across 8 syntactic categories. The overall adjusted score of 23.9 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 345 distinct pattern matches across 8 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | retropie_setup.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | retropie_packages.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/helpers.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/helpers.sh | 774 | ## This function is deprecated and instead setBackend should be used. | COMMENT |
| MEDIUM | scriptmodules/system.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/inifuncs.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/inifuncs.sh | 100 | ## This function is useful for creating example configuration entries for users | COMMENT |
| MEDIUM | scriptmodules/archivefuncs.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/packages.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/admin/setup.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/admin/builder.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/admin/stats.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/admin/image.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/admin/joy2key.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/admin/tools.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/admin/crosscomp.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/admin/wikidocs.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/admin/apidocs.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/admin/joy2key/joy2key.py | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/admin/joy2key/osk.py | 232 | # Create the main view, overlaying the popup widget with the main view | COMMENT |
| MEDIUM | scriptmodules/emulators/oricutron.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/mame.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/mame.sh | 122 | # Create a BIOS directory, where people will be able to store their BIOS files, separate from ROMs | COMMENT |
| MEDIUM | scriptmodules/emulators/mame.sh | 125 | # Create the configuration directory for the MAME ini files | COMMENT |
| MEDIUM | scriptmodules/emulators/mame4all.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/scummvm-sdl1.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/fs-uae.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/dosbox-staging.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/redream.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/advmame-0.94.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/basilisk.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/yabasanshiro.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/xroar.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/gpsp.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/stratagus.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/pcsx-rearmed.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/atari800.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/dosbox.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/drastic.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/minivmac.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/fbzx.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/ppsspp-1.5.4.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/rpix86.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/dosbox-sdl2.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/daphne.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/hypseus.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/uae4all.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/hatari.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/gngeopi.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/vice.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/supermodel3.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/dgen.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/fuse.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/ppsspp.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/openmsx.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/advmame-1.4.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/xm7.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/sdltrs.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/capricerpi.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| MEDIUM | scriptmodules/emulators/snes9x.sh | 3 | # This file is part of The RetroPie Project | COMMENT |
| 232 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | retropie_setup.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | retropie_packages.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scriptmodules/helpers.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scriptmodules/helpers.sh | 721 | } | COMMENT |
| LOW | scriptmodules/helpers.sh | 781 | ## @param delim ini file delimiter eg. ' = ' | COMMENT |
| LOW | scriptmodules/helpers.sh | 801 | ## `get` or `set`. The function should return the value for get via `echo` | COMMENT |
| LOW | scriptmodules/helpers.sh | 821 | ## | COMMENT |
| LOW | scriptmodules/helpers.sh | 1001 | ## @fn ensureSystemretroconfig() | COMMENT |
| LOW | scriptmodules/helpers.sh | 1081 | md_conf_root="$configdir" | COMMENT |
| LOW | scriptmodules/helpers.sh | 1321 | mode "$res" | COMMENT |
| LOW | scriptmodules/helpers.sh | 1461 | ## @param id id of the module / command | COMMENT |
| LOW | scriptmodules/helpers.sh | 1521 | ## @param cmd commandline to launch | COMMENT |
| LOW | scriptmodules/helpers.sh | 1701 | ## __NET_ERRMSG with an error message for use in packages / setup to display to the user if not. | COMMENT |
| LOW | scriptmodules/inifuncs.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scriptmodules/inifuncs.sh | 101 | ## to manually enable later or if a configuration is to be disabled but left | COMMENT |
| LOW | scriptmodules/archivefuncs.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scriptmodules/admin/joy2key/joy2key.py | 1 | #!/usr/bin/python3 | COMMENT |
| LOW | scriptmodules/emulators/hypseus/hypinput.ini | 1 | # Sample hypinput.ini | COMMENT |
| LOW | scriptmodules/emulators/hypseus/hypinput.ini | 21 | # Defining 111 identifies second joystick(1) button 10 | COMMENT |
| LOW | scriptmodules/emulators/hypseus/hypinput_gamepad.ini | 1 | # Sample hypinput.ini using SDL_GameController | COMMENT |
| LOW | scriptmodules/emulators/hypseus/hypinput_gamepad.ini | 21 | # BUTTON_B | COMMENT |
| LOW | scriptmodules/emulators/daphne/dapinput.ini | 1 | # Daphne cutom keyboard and joystick mapping | COMMENT |
| LOW | scriptmodules/supplementary/bluetooth.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scriptmodules/supplementary/runcommand.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …s/supplementary/emulationstation/inputconfiguration.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …s/supplementary/emulationstation/inputconfiguration.sh | 21 | ## `DEVICE_NAME` = name of the device | COMMENT |
| LOW | …s/supplementary/emulationstation/inputconfiguration.sh | 41 | ## None | COMMENT |
| LOW | …supplementary/emulationstation/configscripts/daphne.sh | 21 | COMMENT | |
| LOW | …supplementary/emulationstation/configscripts/daphne.sh | 61 | _EOF_ | COMMENT |
| LOW | …supplementary/emulationstation/configscripts/daphne.sh | 81 | COMMENT | |
| LOW | …upplementary/emulationstation/configscripts/openmsx.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …s/supplementary/emulationstation/configscripts/sdl2.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …s/supplementary/emulationstation/configscripts/sdl2.sh | 21 | # The script will produce a mapping string for a configured joystick in EmulationStation, then store the result in: | COMMENT |
| LOW | scriptmodules/supplementary/runcommand/runcommand.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scriptmodules/supplementary/runcommand/runcommand.sh | 21 | ## | COMMENT |
| LOW | scriptmodules/supplementary/runcommand/runcommand.sh | 41 | ## * VIDEO_MODE = "PAL/NTSC-RATIO": set mode to SD output with RATIO of 4:3 / 16:10 or 16:9 | COMMENT |
| LOW | scriptmodules/supplementary/runcommand/runcommand.sh | 61 | ## line switch to set the resolution. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scriptmodules/emulators/dosbox-staging.sh | 56 | # Check if we have at least meson>=0.57, otherwise install it locally for the build | COMMENT |
| LOW | scriptmodules/supplementary/skyscraper.sh | 205 | # Check if this a first time install | COMMENT |
| LOW | scriptmodules/supplementary/audiosettings.sh | 24 | # Check if the internal audio is enabled | COMMENT |
| LOW | scriptmodules/supplementary/audiosettings.sh | 250 | # Check if PulseAudio is running, otherwise 'pactl' will not work | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scriptmodules/inifuncs.sh | 60 | # if the stripped delimiter is empty - such as in the case of a space, just use the delimiter instead | COMMENT |
| LOW | scriptmodules/inifuncs.sh | 144 | # if the stripped delimiter is empty - such as in the case of a space, just use the delimiter instead | COMMENT |
| LOW | scriptmodules/emulators/ppsspp.sh | 50 | # remove the lines that trigger the ffmpeg build script functions - we will just use the variables from it | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scriptmodules/admin/joy2key/joy2key_sdl.py | 274 | except Exception as e: | CODE |
| LOW | scriptmodules/admin/joy2key/joy2key_sdl.py | 481 | except Exception as e: | CODE |
| LOW | scriptmodules/admin/joy2key/joy2key_sdl.py | 511 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scriptmodules/admin/joy2key/joy2key_sdl.py | 189 | CODE | |
| LOW | scriptmodules/admin/joy2key/joy2key_sdl.py | 223 | CODE | |
| LOW | scriptmodules/admin/joy2key/joy2key_sdl.py | 312 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scriptmodules/supplementary/moonlight.sh | 14 | rp_module_help="ROM Extensions: .ml\n\nCopy your moonlight launch configurations to $romdir/steam\n\nDon't forget to fir | CODE |
| LOW | scriptmodules/supplementary/skyscraper.sh | 672 | printMsgs "dialog" "ROMs information gathered.\nDon't forget to use 'Generate Game list(s)' to a | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scriptmodules/admin/joy2key/joy2key_sdl.py | 35 | CODE |