Shell script to set up a Raspberry Pi/Odroid/PC with RetroArch emulator and various cores
This report summarizes scanner evidence for RetroPie/RetroPie-Setup, a Shell project with 10,428 GitHub stars. SynthScan examined 39,136 lines of code across 320 source files, recording 347 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 24.1 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 341 finding(s).
Are imports declared and package/API names verified? 1 finding(s).
Are wrappers, guards, and repeated structures necessary? 5 finding(s).
Which changes need focused human review? 347 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 347 distinct pattern matches across 9 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| 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 |
|---|---|---|---|---|
| HIGH | scriptmodules/admin/joy2key/joy2key.py | 128 | except (IOError, ValueError): | CODE |
| HIGH | scriptmodules/admin/joy2key/joy2key.py | 168 | except (OSError, ValueError): | CODE |
| 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 | 214 | # 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 | 764 | printMsgs "dialog" "ROMs information gathered.\n\nDon't forget to use 'Generate Game list(s) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scriptmodules/admin/joy2key/joy2key_sdl.py | 35 | CODE |