├── .dockerignore ├── .gitignore ├── .gitlab-ci.yml ├── Dockerfile ├── README.md ├── build.sh ├── builder.sh ├── globals ├── groovy-ux-repo.conf ├── groovyarcade ├── airootfs │ ├── etc │ │ ├── X11 │ │ │ └── Xwrapper.config │ │ ├── hostname │ │ ├── locale.conf │ │ ├── localtime │ │ ├── mkinitcpio-dvd.conf │ │ ├── mkinitcpio-installed.conf │ │ ├── mkinitcpio.conf │ │ ├── passwd │ │ ├── resolv.conf │ │ ├── samba │ │ │ └── smb.conf │ │ ├── shadow │ │ ├── ssh │ │ │ └── sshd_config │ │ ├── systemd │ │ │ ├── journald.conf.d │ │ │ │ └── volatile-storage.conf │ │ │ ├── logind.conf.d │ │ │ │ └── do-not-suspend.conf │ │ │ ├── network │ │ │ │ ├── 20-ethernet.network │ │ │ │ └── 20-wireless.network │ │ │ └── system │ │ │ │ ├── choose-mirror.service │ │ │ │ ├── dbus-org.freedesktop.network1.service │ │ │ │ ├── dbus-org.freedesktop.resolve1.service │ │ │ │ ├── etc-pacman.d-gnupg.mount │ │ │ │ ├── getty@tty1.service.d │ │ │ │ └── autologin.conf │ │ │ │ ├── livecd-alsa-unmuter.service │ │ │ │ ├── multi-user.target.wants │ │ │ │ ├── choose-mirror.service │ │ │ │ ├── iwd.service │ │ │ │ ├── livecd-talk.service │ │ │ │ ├── pacman-init.service │ │ │ │ ├── reflector.service │ │ │ │ ├── systemd-networkd.service │ │ │ │ └── systemd-resolved.service │ │ │ │ ├── network-online.target.wants │ │ │ │ └── systemd-networkd-wait-online.service │ │ │ │ ├── pacman-init.service │ │ │ │ ├── reflector.service.d │ │ │ │ └── archiso.conf │ │ │ │ ├── sockets.target.wants │ │ │ │ └── systemd-networkd.socket │ │ │ │ ├── sound.target.wants │ │ │ │ └── livecd-alsa-unmuter.service │ │ │ │ └── systemd-networkd-wait-online.service.d │ │ │ │ └── wait-for-only-one-interface.conf │ │ └── xdg │ │ │ └── reflector │ │ │ └── reflector.conf │ ├── home │ │ └── arcade │ │ │ ├── 1 │ │ │ ├── .asoundrc │ │ │ ├── .bash_profile │ │ │ ├── .bashrc │ │ │ ├── .config │ │ │ ├── antimicro │ │ │ │ └── antimicro_settings.ini │ │ │ ├── gtk-2.0 │ │ │ │ └── gtkfilechooser.ini │ │ │ ├── gtk-3.0 │ │ │ │ └── settings.ini │ │ │ ├── joystick.png │ │ │ ├── libfm │ │ │ │ └── libfm.conf │ │ │ ├── lxpanel │ │ │ │ ├── LXDE │ │ │ │ │ ├── config │ │ │ │ │ └── panels │ │ │ │ │ │ └── panel │ │ │ │ └── launchtaskbar.cfg │ │ │ ├── lxsession │ │ │ │ └── LXDE │ │ │ │ │ └── desktop.conf │ │ │ ├── lxterminal │ │ │ │ └── lxterminal.conf │ │ │ ├── mupen64plus │ │ │ │ └── mupen64plus.cfg │ │ │ ├── pcmanfm │ │ │ │ └── LXDE │ │ │ │ │ ├── desktop-items-0.conf │ │ │ │ │ └── pcmanfm.conf │ │ │ └── systemd │ │ │ │ └── user │ │ │ │ └── udiskie.service │ │ │ ├── .hushlogin │ │ │ ├── .qjoypad3 │ │ │ ├── Mame.lyt │ │ │ └── layout │ │ │ ├── .vimrc │ │ │ └── shared │ │ │ ├── configs │ │ │ └── ga.conf │ │ │ ├── frontends │ │ │ └── attract │ │ │ │ └── romlists │ │ │ │ └── MAME.txt │ │ │ ├── media │ │ │ └── mame │ │ │ │ ├── flyer │ │ │ │ ├── carpolo.png │ │ │ │ ├── circus.png │ │ │ │ ├── crash.png │ │ │ │ ├── fax.png │ │ │ │ ├── fax2.png │ │ │ │ ├── fireone.png │ │ │ │ ├── hardhat.png │ │ │ │ ├── looping.png │ │ │ │ ├── ripcord.png │ │ │ │ ├── robby.png │ │ │ │ ├── robotbwl.png │ │ │ │ ├── sidetrac.png │ │ │ │ ├── spectar.png │ │ │ │ ├── starfire.png │ │ │ │ ├── supertnk.png │ │ │ │ ├── targ.png │ │ │ │ ├── topgunnr.png │ │ │ │ ├── victorba.png │ │ │ │ ├── victory.png │ │ │ │ └── wrally.png │ │ │ │ ├── marquee │ │ │ │ ├── alienar.png │ │ │ │ ├── crash.png │ │ │ │ ├── fax.png │ │ │ │ ├── fax2.png │ │ │ │ ├── fireone.png │ │ │ │ ├── gridlee.png │ │ │ │ ├── looping.png │ │ │ │ ├── robby.png │ │ │ │ ├── robotbwl.png │ │ │ │ ├── spectar.png │ │ │ │ ├── starfire.png │ │ │ │ ├── supertnk.png │ │ │ │ ├── targ.png │ │ │ │ ├── teetert.png │ │ │ │ ├── topgunnr.png │ │ │ │ ├── victory.png │ │ │ │ └── wrally.png │ │ │ │ ├── snap │ │ │ │ ├── alienar.png │ │ │ │ ├── carpolo.png │ │ │ │ ├── circus.png │ │ │ │ ├── crash.png │ │ │ │ ├── fax.png │ │ │ │ ├── fireone.png │ │ │ │ ├── gridlee.png │ │ │ │ ├── hardhat.png │ │ │ │ ├── looping.png │ │ │ │ ├── ripcord.png │ │ │ │ ├── robby.png │ │ │ │ ├── robotbwl.png │ │ │ │ ├── sidetrac.png │ │ │ │ ├── spectar.png │ │ │ │ ├── starfir2.png │ │ │ │ ├── starfire.png │ │ │ │ ├── supertnk.png │ │ │ │ ├── targ.png │ │ │ │ ├── teetert.png │ │ │ │ ├── topgunnr.png │ │ │ │ ├── victory.png │ │ │ │ └── wrally.png │ │ │ │ ├── video │ │ │ │ ├── alienar.mp4 │ │ │ │ ├── carpolo.mp4 │ │ │ │ ├── circus.mp4 │ │ │ │ ├── crash.mp4 │ │ │ │ ├── fax.mp4 │ │ │ │ ├── fireone.mp4 │ │ │ │ ├── gridlee.mp4 │ │ │ │ ├── hardhat.mp4 │ │ │ │ ├── looping.mp4 │ │ │ │ ├── ripcord.mp4 │ │ │ │ ├── robby.mp4 │ │ │ │ ├── robotbwl.mp4 │ │ │ │ ├── sidetrac.mp4 │ │ │ │ ├── spectar.mp4 │ │ │ │ ├── starfir2.mp4 │ │ │ │ ├── starfire.mp4 │ │ │ │ ├── supertnk.mp4 │ │ │ │ ├── targ.mp4 │ │ │ │ ├── teetert.mp4 │ │ │ │ ├── topgunnr.mp4 │ │ │ │ ├── victorba.mp4 │ │ │ │ ├── victory.mp4 │ │ │ │ └── wrally.mp4 │ │ │ │ └── wheel │ │ │ │ ├── alienar.png │ │ │ │ ├── carpolo.png │ │ │ │ ├── circus.png │ │ │ │ ├── crash.png │ │ │ │ ├── fax.png │ │ │ │ ├── fireone.png │ │ │ │ ├── gridlee.png │ │ │ │ ├── hardhat.png │ │ │ │ ├── looping.png │ │ │ │ ├── ripcord.png │ │ │ │ ├── robby.png │ │ │ │ ├── robotbwl.png │ │ │ │ ├── sidetrac.png │ │ │ │ ├── spectar.png │ │ │ │ ├── starfir2.png │ │ │ │ ├── starfire.png │ │ │ │ ├── supertnk.png │ │ │ │ ├── targ.png │ │ │ │ ├── teetert.png │ │ │ │ ├── topgunnr.png │ │ │ │ ├── victorba.png │ │ │ │ ├── victory.png │ │ │ │ └── wrally.png │ │ │ └── roms │ │ │ └── mame │ │ │ ├── alienar.zip │ │ │ ├── carpolo.zip │ │ │ ├── circus.zip │ │ │ ├── crash.zip │ │ │ ├── fax.zip │ │ │ ├── fax2.zip │ │ │ ├── fireone.zip │ │ │ ├── gridlee.zip │ │ │ ├── hardhat.zip │ │ │ ├── looping.zip │ │ │ ├── ripcord.zip │ │ │ ├── robby.zip │ │ │ ├── robotbwl.zip │ │ │ ├── sidetrac.zip │ │ │ ├── spectar.zip │ │ │ ├── starfir2.zip │ │ │ ├── starfire.zip │ │ │ ├── supertnk.zip │ │ │ ├── targ.zip │ │ │ ├── teetert.zip │ │ │ ├── topgunnr.zip │ │ │ ├── victorba.zip │ │ │ ├── victory.zip │ │ │ └── wrally.zip │ ├── root │ │ └── customize_airootfs.sh │ └── usr │ │ └── local │ │ ├── bin │ │ ├── Installation_guide │ │ ├── UpdateGroovyMame.sh │ │ ├── Updatemenu.sh │ │ ├── attlist.sh │ │ ├── automount.sh │ │ ├── changepass.pl │ │ ├── choose-mirror │ │ ├── evtestlist │ │ ├── gasetup │ │ ├── gdrivedl │ │ ├── genres.pl │ │ ├── groovymame │ │ ├── livecd-sound │ │ ├── menuRS.sh │ │ ├── output.pl │ │ ├── romdir.sh │ │ ├── snapdir.sh │ │ ├── wiimote │ │ └── xorg.sh │ │ └── share │ │ ├── X11 │ │ └── xorg.conf.d │ │ │ └── 10-no-composition.conf │ │ └── livecd-sound │ │ └── asound.conf.in ├── efiboot │ └── loader │ │ ├── entries │ │ ├── ga-15khz-edid-superresi.conf │ │ ├── ga-15khz-edid-superresp.conf │ │ ├── ga-15khz.conf │ │ ├── ga-25khz.conf │ │ ├── ga-31khz.conf │ │ ├── ga-intel-nvidia.conf │ │ ├── ga-ntsc.conf │ │ ├── ga-pal.conf │ │ └── ga-svga.conf │ │ └── loader.conf ├── packages.x86_64 ├── pacman.conf ├── profiledef.sh └── syslinux │ ├── splash.png │ └── syslinux.cfg ├── include.sh ├── release.sh └── settings /.dockerignore: -------------------------------------------------------------------------------- 1 | work/ 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | work/ 2 | -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | image: archlinux:latest 2 | 3 | stages: 4 | - build-release 5 | - clean 6 | 7 | .build_and_release: &buildandrelease 8 | before_script: 9 | - sed -i "/#VerbosePkgLists/a ParallelDownloads = 5" /etc/pacman.conf 10 | - pacman-key --init && \ 11 | pacman-key --populate archlinux || true 12 | - pacman -Syu --noconfirm archiso patch grep gettext file xz tar git github-cli reflector 13 | - reflector --verbose --latest 20 --sort rate --save /etc/pacman.d/mirrorlist 14 | - cp groovy-ux-repo.conf /etc/pacman.d 15 | - grep -q groovy-ux-repo.conf /etc/pacman.conf || echo -e "\nInclude = /etc/pacman.d/groovy-ux-repo.conf" >> /etc/pacman.conf 16 | - ln -s "$(pwd)" /work && ls -l /work 17 | - for i in $(seq 0 9) ; do [[ ! -b /dev/loop$i ]] && mknod /dev/loop$i -m0660 b 7 $i ; done 18 | - ./build.sh 19 | - xz -T 0 /work/output/"groovyarcade-$(date +%Y.%m)-x86_64.iso" 20 | 21 | build_iso_testing: 22 | stage: build-release 23 | only: 24 | - branches 25 | except: 26 | - master 27 | <<: *buildandrelease 28 | script: 29 | - ./release.sh -dci 30 | environment: 31 | name: testing/$CI_COMMIT_REF_SLUG 32 | url: https://github.com/substring/os/releases/tag/$CI_COMMIT_REF_SLUG 33 | on_stop: clean_release 34 | 35 | build_iso: 36 | stage: build-release 37 | only: 38 | - master 39 | - tags 40 | <<: *buildandrelease 41 | script: 42 | - ./release.sh -dcip 43 | 44 | clean_release: 45 | image: alpine 46 | stage: clean 47 | when: manual 48 | dependencies: [] 49 | only: 50 | - branches 51 | before_script: 52 | - echo "Deleting deployment $CI_COMMIT_REF_SLUG" 53 | environment: 54 | name: testing/$CI_COMMIT_REF_SLUG 55 | action: stop 56 | script: 57 | - apk add curl 58 | - curl -L https://github.com/github-release/github-release/releases/download/v0.10.0/linux-amd64-github-release.bz2 | bzip2 -d > /usr/local/bin/github-release && chmod +x /usr/local/bin/github-release 59 | - github-release delete -t "$CI_COMMIT_REF_SLUG" 60 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM archlinux:latest 2 | 3 | RUN sed -i "/#VerbosePkgLists/a ParallelDownloads = 25" /etc/pacman.conf 4 | 5 | RUN pacman-key --init && \ 6 | pacman-key --populate archlinux 7 | 8 | RUN pacman -Syu --noconfirm reflector curl rsync 9 | RUN curl "https://archlinux.org/mirrorlist/?country=all&protocol=http&protocol=https&ip_version=4&use_mirror_status=on" | sed 's/^#\(.*\)/\1/' > /etc/pacman.d/mirrorlist 10 | RUN reflector --verbose --latest 20 --sort rate --save /etc/pacman.d/mirrorlist 11 | RUN pacman -Syu --noconfirm --needed \ 12 | archiso \ 13 | mkinitcpio \ 14 | cdrtools \ 15 | base-devel \ 16 | haveged \ 17 | wget \ 18 | dos2unix \ 19 | gettext \ 20 | github-cli 21 | 22 | RUN mkdir -p /work/overlay /work/fakeroot 23 | 24 | COPY build.sh /work 25 | COPY settings /work 26 | COPY groovy-ux-repo.conf /work 27 | COPY groovy-ux-repo.conf /etc/pacman.d 28 | COPY globals /work 29 | COPY groovyarcade /work/groovyarcade 30 | 31 | RUN grep -q groovy-ux-repo.conf /etc/pacman.conf || sed -i "/^\[core\]$/i Include = \/etc\/pacman.d\/groovy-ux-repo.conf\n" /etc/pacman.conf 32 | 33 | WORKDIR /work 34 | 35 | #ENTRYPOINT ["/bin/bash", "-x", "./build.sh"] 36 | #ENTRYPOINT ["./build.sh"] 37 | #CMD ["/bin/bash", "-x", "/work/build.sh"] 38 | CMD ["/bin/bash", "/work/build.sh"] 39 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # What is GroovyArcade ? 2 | 3 | GroovyArcade (GA) is a 64bits Linux distribution for PCs using old CRT screens for perfect Arcade emulation using GroovyMAME.GroovyArcade features an easy to use installation wizard that will try to detect your CRT with your help, and then configure GA so you get the best experience on your CRT: responsive, tear-free with minimal input lag. 4 | 5 | # How much does it cost? Is there a licence? 6 | 7 | GroovyArcade is free and always will. If you've paid for it, you've been scammed. No patreon, no paypal, no paid licence key, no shareware, no limited usage, no code to unlock features, nothing. Not even beers (sadly). Just free. 8 | 9 | # Recommended Hardware 10 | 11 | It is strongly advised to use a AMD GPU. You can find a list of GPUs that have been tested at https://gitlab.com/groovyarcade/support/-/wikis/2-Pre-Requisites-and-Installation/2.1-Hardware-Suggestions-General 12 | 13 | Intel and Nvidia GPUs may work, with unpredictable success. 14 | 15 | The connectors on your GFX card are very important, listed in our preference order: 16 | * VGA 17 | * DVI-I 18 | * DisplayPort (requires a DP2VGA converter based on RTD2166 or RTD2168) 19 | 20 | HDMI should work, but I don't recommend it. Forget about DVI-D or anything else. 21 | 22 | As a CRT, GA supports TVs, 15/25/31+ arcade monitors. 23 | 24 | # Where do I download it ? 25 | 26 | The last version will always be available at https://github.com/substring/os/releases/latest 27 | 28 | Once downloaded, Windows users may use Balena Etcher or Rufus to burn it to a DVD or USB stick, Linux users have all kind of tools to burn the iso. MacOS users will google how to burn an ISO to a DVD or USB stick. 29 | 30 | # How do I install it ? 31 | 32 | GA supports UEFI as well a BIOS legacy. Whereas BIOS is a freeway, UEFI will require that you disable fast boot and secure boot. 33 | 34 | **Remember that the very first step of boot is 31kHz (unless you flashed your vbios with ATOM15), and requires you plug a "modern" screen to display progressive 640x480, >15kHz CRT protection is up to you** 35 | 36 | You can boot with your CRT and a LCD connected at the same time, you'll anyway later be asked which screen is your CRT. 37 | 38 | That first boot menu will require you to make a choice among various screen types : various 15kHz presets, 25kHz, 31kHz, SVGA or LCD screen. Chose the one that suits best your configuration, this is only to get a picture on your CRT shortly after (and may set your LCD to "out of range"). 39 | 40 | Ths installer will then try to detect your screen abnd ask for your confirmation, so stay close to your keyboard! GA will prompt you anytime it needs you to confirm a picture is shown on the screen it is testing. After that, choose the connector (only if multiple screens were detected), set the monitor type (which will define its crt ranges), thenyou can either try a live install, or just install to a HDD. Reboot, and voilà! 41 | 42 | # How can I help? 43 | 44 | There are many ways to help: report your problems or successes, send hardware 45 | 46 | # Resources 47 | 48 | Wiki: https://gitlab.com/groovyarcade/support/-/wikis/home 49 | 50 | Discord: https://discord.gg/YtQ6pJh 51 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #set -x 3 | source settings 4 | 5 | ARCHISO_PROFILE=groovyarcade 6 | AI_DIR=/work/"$ARCHISO_PROFILE" 7 | ISO_NAME="GA_$(date +%Y.%m)" 8 | 9 | 10 | apply_overlay() { 11 | # Read the kernel default command line from globals 12 | dflt_cmdline="$(grep KERNEL_DEFAULT_CMDLINE globals | cut -d '=' -f2-)" 13 | 14 | # BIOS syslinux only hack 15 | syslinuxcfg="$(LABEL=$ISO_NAME KRNL_CMDLINE="$dflt_cmdline" envsubst '${LABEL} ${KRNL_CMDLINE}' < /work/groovyarcade/syslinux/syslinux.cfg)" 16 | #LABEL=$ISO_NAME envsubst '${LABEL}' < /work/overlay/syslinux/syslinux.cfg > "$AI_DIR"/syslinux/syslinux.cfg 17 | echo "$syslinuxcfg" > "$AI_DIR"/syslinux/syslinux.cfg 18 | 19 | # UEFI syslinux only hack 20 | for f in "$AI_DIR"/efiboot/loader/entries/*.conf ; do 21 | entry="$(KRNL_CMDLINE="$dflt_cmdline" envsubst '${KRNL_CMDLINE}' < "$f")" 22 | echo "$entry" > "$f" 23 | done 24 | } 25 | 26 | customize_archiso() { 27 | mkdir -p "$AI_DIR"/airootfs/etc/pacman.d/ 28 | cp groovy-ux-repo.conf "$AI_DIR"/airootfs/etc/pacman.d/ 29 | cp groovy-ux-repo.conf /etc/pacman.d/ 30 | } 31 | 32 | 33 | start_iso_build() { 34 | mkarchiso -v \ 35 | -o /work/output \ 36 | -L "$ISO_NAME" \ 37 | -A "GroovyArcade Install DVD" \ 38 | -w /work/fakeroot \ 39 | -D groovyarcade \ 40 | "$AI_DIR" 41 | } 42 | 43 | 44 | enable_testing_repo() { 45 | sed -Ei '1,3s/^#(.*)/\1/g' groovy-ux-repo.conf 46 | } 47 | 48 | 49 | use_git_pkg() { 50 | pkg_to_rename="gatools gasetup galauncher" 51 | for pkg in $pkg_to_rename ; do 52 | sed -i "s/^${pkg}$/${pkg}-git/g" "$AI_DIR"/packages.x86_64 53 | done 54 | } 55 | 56 | 57 | main() { 58 | # Enable the testing repo for non stable versions 59 | if [[ $GA_VERSION != master && ! $GA_VERSION =~ [0-9]{4}\.[0-9]{2} ]] ; then 60 | echo "Enabling the testing repo and packages" 61 | use_git_pkg 62 | enable_testing_repo 63 | fi 64 | 65 | # Sync overlay 66 | apply_overlay 67 | 68 | # patch archiso build.sh for custom pacman.conf 69 | customize_archiso 70 | 71 | # Banzai! 72 | start_iso_build 73 | 74 | # Get the packages list 75 | cp /work/fakeroot/iso/groovyarcade/pkglist.x86_64.txt /work/output 76 | } 77 | 78 | main 79 | -------------------------------------------------------------------------------- /builder.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -x 3 | INRELEASE="$RELEASE" 4 | RELEASE=${RELEASE:-dev} 5 | IMAGE_NAME="groovy-ux-os-${RELEASE}" 6 | 7 | mkdir -p work/output work/fakeroot 8 | chmod -R 777 work 2>/dev/null 9 | echo "+++++++++++++++++++++++++++++" 10 | echo "+++ Building docker image +++" 11 | echo "+++++++++++++++++++++++++++++" 12 | docker build -f Dockerfile -t "$IMAGE_NAME" . && 13 | echo "+++++++++++++++++++++++++++++" 14 | echo "+++ Running container +++" 15 | echo "+++++++++++++++++++++++++++++" 16 | #docker run --privileged --tty --name "$IMAGE_NAME" --rm -v "$(pwd)/work/output":/work/output -v "$(pwd)/work/fakeroot":/work/fakeroot "$IMAGE_NAME" 17 | docker run --privileged --tty --name "$IMAGE_NAME" -e RELEASE="$INRELEASE" --rm -v "$(pwd)/work/output":/work/output "$IMAGE_NAME" 18 | -------------------------------------------------------------------------------- /globals: -------------------------------------------------------------------------------- 1 | KERNEL_DEFAULT_CMDLINE=quiet rd.udev.log-priority=3 splash mitigations=off audit=0 consoleblank=0 2 | -------------------------------------------------------------------------------- /groovy-ux-repo.conf: -------------------------------------------------------------------------------- 1 | #[groovyarcade-testing] 2 | #SigLevel = PackageOptional 3 | #Server = https://github.com/substring/packages/releases/download/testing 4 | 5 | [groovyarcade] 6 | SigLevel = PackageOptional 7 | Server = https://github.com/substring/packages/releases/download/stable 8 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/X11/Xwrapper.config: -------------------------------------------------------------------------------- 1 | allowed_users = anybody 2 | needs_root_rights = yes 3 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/hostname: -------------------------------------------------------------------------------- 1 | GroovyArcade 2 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/locale.conf: -------------------------------------------------------------------------------- 1 | # 2 | # SPDX-License-Identifier: GPL-3.0-or-later 3 | 4 | LANG=en_US.UTF-8 5 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/localtime: -------------------------------------------------------------------------------- 1 | /usr/share/zoneinfo/UTC -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/mkinitcpio-dvd.conf: -------------------------------------------------------------------------------- 1 | # vim:set ft=sh 2 | # MODULES 3 | # The following modules are loaded before any boot hooks are 4 | # run. Advanced users may wish to specify all system modules 5 | # in this array. For instance: 6 | # MODULES=(piix ide_disk reiserfs) 7 | 8 | # BINARIES 9 | # This setting includes any additional binaries a given user may 10 | # wish into the CPIO image. This is run last, so it may be used to 11 | # override the actual binaries included by a given hook 12 | # BINARIES are dependency parsed, so you may safely ignore libraries 13 | BINARIES=() 14 | 15 | # FILES 16 | # This setting is similar to BINARIES above, however, files are added 17 | # as-is and are not parsed in any way. This is useful for config files. 18 | FILES=(/usr/lib/firmware/edid/arcade_15_25_31.bin /usr/lib/firmware/edid/arcade_15_25.bin /usr/lib/firmware/edid/arcade_15_31.bin /usr/lib/firmware/edid/arcade_15.bin /usr/lib/firmware/edid/arcade_15ex.bin /usr/lib/firmware/edid/arcade_25.bin /usr/lib/firmware/edid/arcade_31.bin /usr/lib/firmware/edid/d9200.bin /usr/lib/firmware/edid/d9400.bin /usr/lib/firmware/edid/d9800.bin /usr/lib/firmware/edid/generic_15.bin /usr/lib/firmware/edid/h9110.bin /usr/lib/firmware/edid/k7000.bin /usr/lib/firmware/edid/k7131.bin /usr/lib/firmware/edid/m2929.bin /usr/lib/firmware/edid/m3129.bin /usr/lib/firmware/edid/ms2930.bin /usr/lib/firmware/edid/ntsc.bin /usr/lib/firmware/edid/pal.bin /usr/lib/firmware/edid/pc_31_120.bin /usr/lib/firmware/edid/pc_70_120.bin /usr/lib/firmware/edid/polo.bin /usr/lib/firmware/edid/pstar.bin /usr/lib/firmware/edid/r666b.bin /usr/lib/firmware/edid/vesa_1024.bin /usr/lib/firmware/edid/vesa_480.bin /usr/lib/firmware/edid/vesa_600.bin /usr/lib/firmware/edid/vesa_768.bin /usr/lib/firmware/edid/generic_15_super_resi.bin /usr/lib/firmware/edid/generic_15_super_resp.bin) 19 | 20 | # HOOKS 21 | # This is the most important setting in this file. The HOOKS control the 22 | # modules and scripts added to the image, and what happens at boot time. 23 | # Order is important, and it is recommended that you do not change the 24 | # order in which HOOKS are added. Run 'mkinitcpio -H ' for 25 | # help on a given hook. 26 | # 'base' is _required_ unless you know precisely what you are doing. 27 | # 'udev' is _required_ in order to automatically load modules 28 | # 'filesystems' is _required_ unless you specify your fs modules in MODULES 29 | # Examples: 30 | ## This setup specifies all modules in the MODULES setting above. 31 | ## No raid, lvm2, or encrypted root is needed. 32 | # HOOKS=(base) 33 | # 34 | ## This setup will autodetect all modules for your system and should 35 | ## work as a sane default 36 | # HOOKS=(base udev autodetect block filesystems) 37 | # 38 | ## This setup will generate a 'full' image which supports most systems. 39 | ## No autodetection is done. 40 | # HOOKS=(base udev block filesystems) 41 | # 42 | ## This setup assembles a pata mdadm array with an encrypted root FS. 43 | ## Note: See 'mkinitcpio -H mdadm' for more information on raid devices. 44 | # HOOKS=(base udev block mdadm encrypt filesystems) 45 | # 46 | ## This setup loads an lvm2 volume group on a usb device. 47 | # HOOKS=(base udev block lvm2 filesystems) 48 | # 49 | ## NOTE: If you have /usr on a separate partition, you MUST include the 50 | # usr, fsck and shutdown hooks. 51 | HOOKS=(base udev modconf memdisk archiso archiso_loop_mnt kms block filesystems keyboard plymouth) 52 | 53 | # COMPRESSION 54 | # Use this to compress the initramfs image. By default, gzip compression 55 | # is used. Use 'cat' to create an uncompressed image. 56 | #COMPRESSION="gzip" 57 | #COMPRESSION="bzip2" 58 | #COMPRESSION="lzma" 59 | #COMPRESSION="xz" 60 | #COMPRESSION="lzop" 61 | #COMPRESSION="lz4" 62 | COMPRESSION="zstd" 63 | 64 | # COMPRESSION_OPTIONS 65 | # Additional options for the compressor 66 | #COMPRESSION_OPTIONS=() 67 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/mkinitcpio-installed.conf: -------------------------------------------------------------------------------- 1 | # vim:set ft=sh 2 | # MODULES 3 | # The following modules are loaded before any boot hooks are 4 | # run. Advanced users may wish to specify all system modules 5 | # in this array. For instance: 6 | # MODULES="piix ide_disk reiserfs" 7 | 8 | # BINARIES 9 | # This setting includes any additional binaries a given user may 10 | # wish into the CPIO image. This is run last, so it may be used to 11 | # override the actual binaries included by a given hook 12 | # BINARIES are dependency parsed, so you may safely ignore libraries 13 | BINARIES=() 14 | 15 | # FILES 16 | # This setting is similar to BINARIES above, however, files are added 17 | # as-is and are not parsed in any way. This is useful for config files. 18 | FILES=(/usr/lib/firmware/edid/arcade_15_25_31.bin /usr/lib/firmware/edid/arcade_15_25.bin /usr/lib/firmware/edid/arcade_15_31.bin /usr/lib/firmware/edid/arcade_15.bin /usr/lib/firmware/edid/arcade_15ex.bin /usr/lib/firmware/edid/arcade_25.bin /usr/lib/firmware/edid/arcade_31.bin /usr/lib/firmware/edid/d9200.bin /usr/lib/firmware/edid/d9400.bin /usr/lib/firmware/edid/d9800.bin /usr/lib/firmware/edid/generic_15.bin /usr/lib/firmware/edid/h9110.bin /usr/lib/firmware/edid/k7000.bin /usr/lib/firmware/edid/k7131.bin /usr/lib/firmware/edid/m2929.bin /usr/lib/firmware/edid/m3129.bin /usr/lib/firmware/edid/ms2930.bin /usr/lib/firmware/edid/ntsc.bin /usr/lib/firmware/edid/pal.bin /usr/lib/firmware/edid/pc_31_120.bin /usr/lib/firmware/edid/pc_70_120.bin /usr/lib/firmware/edid/polo.bin /usr/lib/firmware/edid/pstar.bin /usr/lib/firmware/edid/r666b.bin /usr/lib/firmware/edid/vesa_1024.bin /usr/lib/firmware/edid/vesa_480.bin /usr/lib/firmware/edid/vesa_600.bin /usr/lib/firmware/edid/vesa_768.bin /usr/lib/firmware/edid/generic_15_super_resi.bin /usr/lib/firmware/edid/generic_15_super_resp.bin) 19 | 20 | # HOOKS 21 | # This is the most important setting in this file. The HOOKS control the 22 | # modules and scripts added to the image, and what happens at boot time. 23 | # Order is important, and it is recommended that you do not change the 24 | # order in which HOOKS are added. Run 'mkinitcpio -H ' for 25 | # help on a given hook. 26 | # 'base' is _required_ unless you know precisely what you are doing. 27 | # 'udev' is _required_ in order to automatically load modules 28 | # 'filesystems' is _required_ unless you specify your fs modules in MODULES 29 | # Examples: 30 | ## This setup specifies all modules in the MODULES setting above. 31 | ## No raid, lvm2, or encrypted root is needed. 32 | # HOOKS="base" 33 | # 34 | ## This setup will autodetect all modules for your system and should 35 | ## work as a sane default 36 | # HOOKS="base udev autodetect block filesystems" 37 | # 38 | ## This setup will generate a 'full' image which supports most systems. 39 | ## No autodetection is done. 40 | # HOOKS="base udev block filesystems" 41 | # 42 | ## This setup assembles a pata mdadm array with an encrypted root FS. 43 | ## Note: See 'mkinitcpio -H mdadm' for more information on raid devices. 44 | # HOOKS="base udev block mdadm encrypt filesystems" 45 | # 46 | ## This setup loads an lvm2 volume group on a usb device. 47 | # HOOKS="base udev block lvm2 filesystems" 48 | # 49 | ## NOTE: If you have /usr on a separate partition, you MUST include the 50 | # usr, fsck and shutdown hooks. 51 | HOOKS=(base udev modconf autodetect kms block filesystems keyboard fsck plymouth) 52 | 53 | # COMPRESSION 54 | # Use this to compress the initramfs image. By default, gzip compression 55 | # is used. Use 'cat' to create an uncompressed image. 56 | #COMPRESSION="gzip" 57 | #COMPRESSION="bzip2" 58 | #COMPRESSION="lzma" 59 | #COMPRESSION="xz" 60 | #COMPRESSION="lzop" 61 | #COMPRESSION="lz4" 62 | COMPRESSION="zstd" 63 | 64 | # COMPRESSION_OPTIONS 65 | # Additional options for the compressor 66 | #COMPRESSION_OPTIONS="" 67 | 68 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/mkinitcpio.conf: -------------------------------------------------------------------------------- 1 | # vim:set ft=sh 2 | # MODULES 3 | # The following modules are loaded before any boot hooks are 4 | # run. Advanced users may wish to specify all system modules 5 | # in this array. For instance: 6 | # MODULES=(piix ide_disk reiserfs) 7 | 8 | # BINARIES 9 | # This setting includes any additional binaries a given user may 10 | # wish into the CPIO image. This is run last, so it may be used to 11 | # override the actual binaries included by a given hook 12 | # BINARIES are dependency parsed, so you may safely ignore libraries 13 | BINARIES=() 14 | 15 | # FILES 16 | # This setting is similar to BINARIES above, however, files are added 17 | # as-is and are not parsed in any way. This is useful for config files. 18 | FILES=(/usr/lib/firmware/edid/arcade_15_25_31.bin /usr/lib/firmware/edid/arcade_15_25.bin /usr/lib/firmware/edid/arcade_15_31.bin /usr/lib/firmware/edid/arcade_15.bin /usr/lib/firmware/edid/arcade_15ex.bin /usr/lib/firmware/edid/arcade_25.bin /usr/lib/firmware/edid/arcade_31.bin /usr/lib/firmware/edid/d9200.bin /usr/lib/firmware/edid/d9400.bin /usr/lib/firmware/edid/d9800.bin /usr/lib/firmware/edid/generic_15.bin /usr/lib/firmware/edid/h9110.bin /usr/lib/firmware/edid/k7000.bin /usr/lib/firmware/edid/k7131.bin /usr/lib/firmware/edid/m2929.bin /usr/lib/firmware/edid/m3129.bin /usr/lib/firmware/edid/ms2930.bin /usr/lib/firmware/edid/ntsc.bin /usr/lib/firmware/edid/pal.bin /usr/lib/firmware/edid/pc_31_120.bin /usr/lib/firmware/edid/pc_70_120.bin /usr/lib/firmware/edid/polo.bin /usr/lib/firmware/edid/pstar.bin /usr/lib/firmware/edid/r666b.bin /usr/lib/firmware/edid/vesa_1024.bin /usr/lib/firmware/edid/vesa_480.bin /usr/lib/firmware/edid/vesa_600.bin /usr/lib/firmware/edid/vesa_768.bin /usr/lib/firmware/edid/generic_15_super_resi.bin /usr/lib/firmware/edid/generic_15_super_resp.bin) 19 | 20 | # HOOKS 21 | # This is the most important setting in this file. The HOOKS control the 22 | # modules and scripts added to the image, and what happens at boot time. 23 | # Order is important, and it is recommended that you do not change the 24 | # order in which HOOKS are added. Run 'mkinitcpio -H ' for 25 | # help on a given hook. 26 | # 'base' is _required_ unless you know precisely what you are doing. 27 | # 'udev' is _required_ in order to automatically load modules 28 | # 'filesystems' is _required_ unless you specify your fs modules in MODULES 29 | # Examples: 30 | ## This setup specifies all modules in the MODULES setting above. 31 | ## No RAID, lvm2, or encrypted root is needed. 32 | # HOOKS=(base) 33 | # 34 | ## This setup will autodetect all modules for your system and should 35 | ## work as a sane default 36 | # HOOKS=(base udev autodetect modconf block filesystems fsck) 37 | # 38 | ## This setup will generate a 'full' image which supports most systems. 39 | ## No autodetection is done. 40 | # HOOKS=(base udev modconf block filesystems fsck) 41 | # 42 | ## This setup assembles a mdadm array with an encrypted root file system. 43 | ## Note: See 'mkinitcpio -H mdadm_udev' for more information on RAID devices. 44 | # HOOKS=(base udev modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck) 45 | # 46 | ## This setup loads an lvm2 volume group. 47 | # HOOKS=(base udev modconf block lvm2 filesystems fsck) 48 | # 49 | ## This will create a systemd based initramfs which loads an encrypted root filesystem. 50 | # HOOKS=(base systemd autodetect modconf kms keyboard sd-vconsole sd-encrypt block filesystems fsck) 51 | # 52 | ## NOTE: If you have /usr on a separate partition, you MUST include the 53 | # usr and fsck hooks. 54 | HOOKS=(base udev modconf memdisk archiso archiso_loop_mnt kms block filesystems keyboard plymouth) 55 | 56 | # COMPRESSION 57 | # Use this to compress the initramfs image. By default, zstd compression 58 | # is used for Linux ≥ 5.9 and gzip compression is used for Linux < 5.9. 59 | # Use 'cat' to create an uncompressed image. 60 | #COMPRESSION="zstd" 61 | #COMPRESSION="gzip" 62 | #COMPRESSION="bzip2" 63 | #COMPRESSION="lzma" 64 | #COMPRESSION="xz" 65 | #COMPRESSION="lzop" 66 | #COMPRESSION="lz4" 67 | 68 | # COMPRESSION_OPTIONS 69 | # Additional options for the compressor 70 | #COMPRESSION_OPTIONS=() 71 | 72 | # MODULES_DECOMPRESS 73 | # Decompress loadable kernel modules and their firmware during initramfs 74 | # creation. Switch (yes/no). 75 | # Enable to allow further decreasing image size when using high compression 76 | # (e.g. xz -9e or zstd --long --ultra -22) at the expense of increased RAM usage 77 | # at early boot. 78 | # Note that any compressed files will be placed in the uncompressed early CPIO 79 | # to avoid double compression. 80 | #MODULES_DECOMPRESS="no" 81 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/passwd: -------------------------------------------------------------------------------- 1 | root:x:0:0::/root:/bin/bash 2 | arcade:x:1000:1000::/home/arcade:/bin/bash 3 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/resolv.conf: -------------------------------------------------------------------------------- 1 | /run/systemd/resolve/stub-resolv.conf -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/samba/smb.conf: -------------------------------------------------------------------------------- 1 | [global] 2 | 3 | # workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH 4 | workgroup = WORKGROUP 5 | 6 | # server string is the equivalent of the NT Description field 7 | server string = GroovyArcade 8 | 9 | # Security mode. Defines in which mode Samba will operate. Possible 10 | # values are share, user, server, domain and ads. Most people will want 11 | # user level security. See the Samba-HOWTO-Collection for details. 12 | security = user 13 | client lanman auth = yes 14 | 15 | [GroovyArcade] 16 | comment = Arcade home folder 17 | path = /home/arcade/shared 18 | available = yes 19 | public = yes 20 | writable = yes 21 | printable = no 22 | browseable = yes 23 | create mask = 0777 24 | force create mode = 0777 25 | directory mode = 0777 26 | force directory mode = 0777 27 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/shadow: -------------------------------------------------------------------------------- 1 | root::14871:::::: 2 | arcade:$6$.WyP2.8GfsoOcmUG$SpEVb7kUHu.v5390bI1OwEzjPep5ESSUyKZJ.bF8heZU1r4H0WPhNjssPLP61XKEj5hxgeeE5Qjn5ul/guWyC1:18421:0:99999:7::: 3 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/ssh/sshd_config: -------------------------------------------------------------------------------- 1 | # $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker Exp $ 2 | 3 | # This is the sshd server system-wide configuration file. See 4 | # sshd_config(5) for more information. 5 | 6 | # This sshd was compiled with PATH=/usr/local/sbin:/usr/local/bin:/usr/bin 7 | 8 | # The strategy used for options in the default sshd_config shipped with 9 | # OpenSSH is to specify options with their default value where 10 | # possible, but leave them commented. Uncommented options override the 11 | # default value. 12 | 13 | #Port 22 14 | #AddressFamily any 15 | #ListenAddress 0.0.0.0 16 | #ListenAddress :: 17 | 18 | #HostKey /etc/ssh/ssh_host_rsa_key 19 | #HostKey /etc/ssh/ssh_host_ecdsa_key 20 | #HostKey /etc/ssh/ssh_host_ed25519_key 21 | 22 | # Ciphers and keying 23 | #RekeyLimit default none 24 | 25 | # Logging 26 | #SyslogFacility AUTH 27 | #LogLevel INFO 28 | 29 | # Authentication: 30 | 31 | #LoginGraceTime 2m 32 | PermitRootLogin yes 33 | #StrictModes yes 34 | #MaxAuthTries 6 35 | #MaxSessions 10 36 | 37 | #PubkeyAuthentication yes 38 | 39 | # The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2 40 | # but this is overridden so installations will only check .ssh/authorized_keys 41 | AuthorizedKeysFile .ssh/authorized_keys 42 | 43 | #AuthorizedPrincipalsFile none 44 | 45 | #AuthorizedKeysCommand none 46 | #AuthorizedKeysCommandUser nobody 47 | 48 | # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts 49 | #HostbasedAuthentication no 50 | # Change to yes if you don't trust ~/.ssh/known_hosts for 51 | # HostbasedAuthentication 52 | #IgnoreUserKnownHosts no 53 | # Don't read the user's ~/.rhosts and ~/.shosts files 54 | #IgnoreRhosts yes 55 | 56 | # To disable tunneled clear text passwords, change to no here! 57 | #PasswordAuthentication yes 58 | #PermitEmptyPasswords no 59 | 60 | # Change to no to disable s/key passwords 61 | #KbdInteractiveAuthentication yes 62 | 63 | # Kerberos options 64 | #KerberosAuthentication no 65 | #KerberosOrLocalPasswd yes 66 | #KerberosTicketCleanup yes 67 | #KerberosGetAFSToken no 68 | 69 | # GSSAPI options 70 | #GSSAPIAuthentication no 71 | #GSSAPICleanupCredentials yes 72 | 73 | # Set this to 'yes' to enable PAM authentication, account processing, 74 | # and session processing. If this is enabled, PAM authentication will 75 | # be allowed through the KbdInteractiveAuthentication and 76 | # PasswordAuthentication. Depending on your PAM configuration, 77 | # PAM authentication via KbdInteractiveAuthentication may bypass 78 | # the setting of "PermitRootLogin without-password". 79 | # If you just want the PAM account and session checks to run without 80 | # PAM authentication, then enable this but set PasswordAuthentication 81 | # and KbdInteractiveAuthentication to 'no'. 82 | UsePAM yes 83 | 84 | #AllowAgentForwarding yes 85 | #AllowTcpForwarding yes 86 | #GatewayPorts no 87 | #X11Forwarding no 88 | #X11DisplayOffset 10 89 | #X11UseLocalhost yes 90 | #PermitTTY yes 91 | PrintMotd no # pam does that 92 | #PrintLastLog yes 93 | #TCPKeepAlive yes 94 | #PermitUserEnvironment no 95 | #Compression delayed 96 | #ClientAliveInterval 0 97 | #ClientAliveCountMax 3 98 | #UseDNS no 99 | #PidFile /run/sshd.pid 100 | #MaxStartups 10:30:100 101 | #PermitTunnel no 102 | #ChrootDirectory none 103 | #VersionAddendum none 104 | 105 | # no default banner path 106 | #Banner none 107 | 108 | # override default of no subsystems 109 | Subsystem sftp /usr/lib/ssh/sftp-server 110 | 111 | # Example of overriding settings on a per-user basis 112 | #Match User anoncvs 113 | # X11Forwarding no 114 | # AllowTcpForwarding no 115 | # PermitTTY no 116 | # ForceCommand cvs server 117 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf: -------------------------------------------------------------------------------- 1 | # 2 | # SPDX-License-Identifier: GPL-3.0-or-later 3 | 4 | [Journal] 5 | Storage=volatile 6 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf: -------------------------------------------------------------------------------- 1 | # 2 | # SPDX-License-Identifier: GPL-3.0-or-later 3 | 4 | [Login] 5 | HandleSuspendKey=ignore 6 | HandleHibernateKey=ignore 7 | HandleLidSwitch=ignore 8 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/network/20-ethernet.network: -------------------------------------------------------------------------------- 1 | # 2 | # SPDX-License-Identifier: GPL-3.0-or-later 3 | 4 | [Match] 5 | Name=en* 6 | Name=eth* 7 | 8 | [Network] 9 | DHCP=yes 10 | IPv6PrivacyExtensions=yes 11 | 12 | [DHCP] 13 | RouteMetric=512 14 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/network/20-wireless.network: -------------------------------------------------------------------------------- 1 | # 2 | # SPDX-License-Identifier: GPL-3.0-or-later 3 | 4 | [Match] 5 | Name=wlp* 6 | Name=wlan* 7 | 8 | [Network] 9 | DHCP=yes 10 | IPv6PrivacyExtensions=yes 11 | 12 | [DHCP] 13 | RouteMetric=1024 14 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/system/choose-mirror.service: -------------------------------------------------------------------------------- 1 | # 2 | # SPDX-License-Identifier: GPL-3.0-or-later 3 | 4 | [Unit] 5 | Description=Choose mirror from the kernel command line 6 | ConditionKernelCommandLine=mirror 7 | 8 | [Service] 9 | Type=oneshot 10 | ExecStart=/usr/local/bin/choose-mirror 11 | 12 | [Install] 13 | WantedBy=multi-user.target 14 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/system/dbus-org.freedesktop.network1.service: -------------------------------------------------------------------------------- 1 | /usr/lib/systemd/system/systemd-networkd.service -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service: -------------------------------------------------------------------------------- 1 | /usr/lib/systemd/system/systemd-resolved.service -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount: -------------------------------------------------------------------------------- 1 | # 2 | # SPDX-License-Identifier: GPL-3.0-or-later 3 | 4 | [Unit] 5 | Description=Temporary /etc/pacman.d/gnupg directory 6 | 7 | [Mount] 8 | What=tmpfs 9 | Where=/etc/pacman.d/gnupg 10 | Type=tmpfs 11 | Options=mode=0755 12 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf: -------------------------------------------------------------------------------- 1 | [Service] 2 | ExecStart= 3 | ExecStart=-/usr/bin/agetty --skip-login --nonewline --noissue --autologin arcade --noclear %I $TERM 4 | Type=idle 5 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/system/livecd-alsa-unmuter.service: -------------------------------------------------------------------------------- 1 | # 2 | # SPDX-License-Identifier: GPL-3.0-or-later 3 | 4 | [Unit] 5 | Description=Unmute All Sound Card Controls For Use With The Live Arch Environment 6 | # This needs to run after the audio device becomes available. 7 | Wants=systemd-udev-settle.service 8 | After=systemd-udev-settle.service sound.target 9 | ConditionKernelCommandLine=accessibility=on 10 | 11 | [Service] 12 | Type=oneshot 13 | ExecStart=/usr/local/bin/livecd-sound -u 14 | 15 | [Install] 16 | WantedBy=sound.target 17 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service: -------------------------------------------------------------------------------- 1 | ../choose-mirror.service -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service: -------------------------------------------------------------------------------- 1 | /usr/lib/systemd/system/iwd.service -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/system/multi-user.target.wants/livecd-talk.service: -------------------------------------------------------------------------------- 1 | /etc/systemd/system/livecd-talk.service -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service: -------------------------------------------------------------------------------- 1 | ../pacman-init.service -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/system/multi-user.target.wants/reflector.service: -------------------------------------------------------------------------------- 1 | /usr/lib/systemd/system/reflector.service -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/system/multi-user.target.wants/systemd-networkd.service: -------------------------------------------------------------------------------- 1 | /usr/lib/systemd/system/systemd-networkd.service -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service: -------------------------------------------------------------------------------- 1 | /usr/lib/systemd/system/systemd-resolved.service -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service: -------------------------------------------------------------------------------- 1 | /usr/lib/systemd/system/systemd-networkd-wait-online.service -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/system/pacman-init.service: -------------------------------------------------------------------------------- 1 | # 2 | # SPDX-License-Identifier: GPL-3.0-or-later 3 | 4 | [Unit] 5 | Description=Initializes Pacman keyring 6 | Wants=haveged.service 7 | After=haveged.service 8 | Requires=etc-pacman.d-gnupg.mount 9 | After=etc-pacman.d-gnupg.mount 10 | 11 | [Service] 12 | Type=oneshot 13 | RemainAfterExit=yes 14 | ExecStart=/usr/bin/pacman-key --init 15 | ExecStart=/usr/bin/pacman-key --populate archlinux 16 | 17 | [Install] 18 | WantedBy=multi-user.target 19 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/system/reflector.service.d/archiso.conf: -------------------------------------------------------------------------------- 1 | [Unit] 2 | ConditionKernelCommandLine=!mirror 3 | 4 | [Service] 5 | Restart=on-failure 6 | RestartSec=10 7 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket: -------------------------------------------------------------------------------- 1 | /usr/lib/systemd/system/systemd-networkd.socket -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service: -------------------------------------------------------------------------------- 1 | ../livecd-alsa-unmuter.service -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf: -------------------------------------------------------------------------------- 1 | # 2 | # SPDX-License-Identifier: GPL-3.0-or-later 3 | 4 | [Service] 5 | ExecStart= 6 | ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any 7 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/etc/xdg/reflector/reflector.conf: -------------------------------------------------------------------------------- 1 | # Reflector configuration file for the systemd service. 2 | 3 | --save /etc/pacman.d/mirrorlist 4 | --protocol https 5 | --latest 70 6 | --sort rate 7 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.asoundrc: -------------------------------------------------------------------------------- 1 | defaults.pcm.card 0 2 | defaults.ctl.card 0 3 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.bash_profile: -------------------------------------------------------------------------------- 1 | # 2 | # ~/.bash_profile 3 | # 4 | 5 | export PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin 6 | MYTTY=$(tty) 7 | 8 | [[ -f ~/.bashrc ]] && . ~/.bashrc 9 | 10 | if [ "$MYTTY" = "/dev/tty1" ]; then 11 | #systemctl --user daemon-reload && systemctl --user enable udiskie 12 | sudo setterm -powerdown 0 -powersave off -blank 0 13 | # Only autoconfigure if no screen was set yet 14 | grep -qE "^monitor=.+" /home/arcade/shared/configs/ga.conf || sudo sh -c 'source /opt/gatools/video/video.sh && auto_configure' 15 | sudo gasetup 16 | fi 17 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.bashrc: -------------------------------------------------------------------------------- 1 | # 2 | # ~/.bashrc 3 | # 4 | 5 | # If not running interactively, don't do anything 6 | [[ $- != *i* ]] && return 7 | 8 | PS1="\[\e[48;2;250;40;40;249m\] \[\e[0m\]\[\e[48;2;100;220;70;249m\] \[\e[0m\]\[\e[48;2;50;90;200;249m\] \[\e[0m\][\u@\h \W]\$ " 9 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.config/antimicro/antimicro_settings.ini: -------------------------------------------------------------------------------- 1 | [General] 2 | AutoOpenLastProfile=1 3 | DefaultProfileDir=/home/arcade 4 | DisplayNames=0 5 | HideEmptyButtons=0 6 | LaunchInTray=1 7 | LogFile= 8 | LogLevel=0 9 | MinimizeToTaskbar=1 10 | NumberRecentProfiles=5 11 | TrayProfileList=0 12 | WindowPosition=@Point(397 -10) 13 | WindowSize=@Size(749 905) 14 | 15 | [AutoProfiles] 16 | AutoProfilesActive=0 17 | 18 | [Controllers] 19 | Controller030000001008000001e5000010010000LastSelected= 20 | Controller03000000c82d000021ab000010010000LastSelected= 21 | 22 | [DefaultAutoProfileAll] 23 | Active=0 24 | Profile= 25 | 26 | [Mouse] 27 | HistorySize=10 28 | Smoothing=0 29 | SpringScreen=-1 30 | WeightModifier=0.2 31 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.config/gtk-2.0/gtkfilechooser.ini: -------------------------------------------------------------------------------- 1 | [Filechooser Settings] 2 | LocationMode=path-bar 3 | ShowHidden=false 4 | ShowSizeColumn=true 5 | GeometryX=4 6 | GeometryY=51 7 | GeometryWidth=796 8 | GeometryHeight=547 9 | SortColumn=name 10 | SortOrder=ascending 11 | StartupMode=recent 12 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.config/gtk-3.0/settings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-theme-name=Raleigh 3 | gtk-icon-theme-name=Adwaita 4 | gtk-font-name=Sans 10 5 | gtk-cursor-theme-name=Adwaita 6 | gtk-cursor-theme-size=18 7 | gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ 8 | gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR 9 | gtk-button-images=1 10 | gtk-menu-images=1 11 | gtk-enable-event-sounds=1 12 | gtk-enable-input-feedback-sounds=1 13 | gtk-xft-antialias=1 14 | gtk-xft-hinting=1 15 | gtk-xft-hintstyle=hintslight 16 | gtk-xft-rgba=rgb 17 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.config/joystick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/.config/joystick.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.config/libfm/libfm.conf: -------------------------------------------------------------------------------- 1 | # Configuration file for the libfm version 1.3.1. 2 | # Autogenerated file, don't edit, your changes will be overwritten. 3 | 4 | [config] 5 | single_click=0 6 | use_trash=1 7 | confirm_del=1 8 | confirm_trash=1 9 | advanced_mode=0 10 | si_unit=0 11 | force_startup_notify=1 12 | backup_as_hidden=1 13 | no_usb_trash=1 14 | no_child_non_expandable=0 15 | show_full_names=0 16 | only_user_templates=0 17 | template_run_app=0 18 | template_type_once=0 19 | auto_selection_delay=600 20 | drop_default_action=auto 21 | defer_content_test=0 22 | quick_exec=0 23 | archiver=xarchiver 24 | thumbnail_local=1 25 | thumbnail_max=2048 26 | smart_desktop_autodrop=1 27 | 28 | [ui] 29 | big_icon_size=48 30 | small_icon_size=24 31 | pane_icon_size=24 32 | thumbnail_size=128 33 | show_thumbnail=1 34 | shadow_hidden=0 35 | 36 | [places] 37 | places_home=1 38 | places_desktop=1 39 | places_root=0 40 | places_computer=0 41 | places_trash=1 42 | places_applications=1 43 | places_network=0 44 | places_unmounted=1 45 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.config/lxpanel/LXDE/config: -------------------------------------------------------------------------------- 1 | [Command] 2 | Logout=lxde-logout 3 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.config/lxpanel/LXDE/panels/panel: -------------------------------------------------------------------------------- 1 | # lxpanel config file. Manually editing is not recommended. 2 | # Use preference dialog in lxpanel to adjust config when you can. 3 | 4 | Global { 5 | edge=bottom 6 | align=left 7 | margin=0 8 | widthtype=percent 9 | width=100 10 | height=26 11 | transparent=0 12 | tintcolor=#000000 13 | alpha=0 14 | setdocktype=1 15 | setpartialstrut=1 16 | autohide=0 17 | heightwhenhidden=0 18 | usefontcolor=1 19 | fontcolor=#ffffff 20 | background=0 21 | backgroundfile=/usr/share/lxpanel/images/background.png 22 | } 23 | Plugin { 24 | type=space 25 | Config { 26 | Size=2 27 | } 28 | } 29 | Plugin { 30 | type=menu 31 | Config { 32 | image=/usr/share/lxde/images/lxde-icon.png 33 | system { 34 | } 35 | separator { 36 | } 37 | item { 38 | command=run 39 | } 40 | separator { 41 | } 42 | item { 43 | image=gnome-logout 44 | command=logout 45 | } 46 | } 47 | } 48 | Plugin { 49 | type=launchbar 50 | Config { 51 | Button { 52 | id=pcmanfm.desktop 53 | } 54 | Button { 55 | id=lxterminal.desktop 56 | } 57 | } 58 | } 59 | Plugin { 60 | type=space 61 | Config { 62 | Size=4 63 | } 64 | } 65 | Plugin { 66 | type=wincmd 67 | Config { 68 | Button1=iconify 69 | Button2=shade 70 | } 71 | } 72 | Plugin { 73 | type=space 74 | Config { 75 | Size=4 76 | } 77 | } 78 | Plugin { 79 | type=space 80 | Config { 81 | Size=4 82 | } 83 | } 84 | Plugin { 85 | type=pager 86 | Config { 87 | } 88 | } 89 | Plugin { 90 | type=taskbar 91 | expand=1 92 | Config { 93 | tooltips=1 94 | IconsOnly=0 95 | AcceptSkipPager=1 96 | ShowIconified=1 97 | ShowMapped=1 98 | ShowAllDesks=0 99 | UseMouseWheel=1 100 | UseUrgencyHint=1 101 | FlatButton=0 102 | MaxTaskWidth=150 103 | spacing=1 104 | } 105 | } 106 | Plugin { 107 | type=cpu 108 | Config { 109 | } 110 | } 111 | Plugin { 112 | type=volume 113 | Config { 114 | VolumeMuteKey=XF86AudioMute 115 | VolumeDownKey=XF86AudioLowerVolume 116 | VolumeUpKey=XF86AudioRaiseVolume 117 | } 118 | } 119 | Plugin { 120 | type=tray 121 | Config { 122 | } 123 | } 124 | Plugin { 125 | type=netstatus 126 | Config { 127 | } 128 | } 129 | Plugin { 130 | type=dclock 131 | Config { 132 | ClockFmt=%R 133 | TooltipFmt=%A %x 134 | BoldFont=0 135 | IconOnly=0 136 | CenterText=0 137 | } 138 | } 139 | Plugin { 140 | type=launchbar 141 | Config { 142 | Button { 143 | id=lxde-logout.desktop 144 | } 145 | } 146 | } 147 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.config/lxpanel/launchtaskbar.cfg: -------------------------------------------------------------------------------- 1 | [special_cases] 2 | synaptic=synaptic-pkexec 3 | soffice.bin=libreoffice 4 | x-terminal-emulator=lxterminal 5 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.config/lxsession/LXDE/desktop.conf: -------------------------------------------------------------------------------- 1 | [Session] 2 | window_manager=openbox-lxde 3 | disable_autostart=no 4 | polkit/command=lxpolkit 5 | clipboard/command=lxclipboard 6 | xsettings_manager/command=build-in 7 | proxy_manager/command=build-in 8 | keyring/command=ssh-agent 9 | quit_manager/command=lxsession-logout 10 | lock_manager/command=lxlock 11 | terminal_manager/command=lxterminal 12 | quit_manager/image=/usr/share/lxde/images/logout-banner.png 13 | quit_manager/layout=top 14 | 15 | [GTK] 16 | sNet/ThemeName=Raleigh 17 | sNet/IconThemeName=Adwaita 18 | sGtk/FontName=Sans 10 19 | iGtk/ToolbarStyle=3 20 | iGtk/ButtonImages=1 21 | iGtk/MenuImages=1 22 | iGtk/CursorThemeSize=18 23 | iXft/Antialias=1 24 | iXft/Hinting=1 25 | sXft/HintStyle=hintslight 26 | sXft/RGBA=rgb 27 | iNet/EnableEventSounds=1 28 | iNet/EnableInputFeedbackSounds=1 29 | sGtk/ColorScheme= 30 | iGtk/ToolbarIconSize=3 31 | sGtk/CursorThemeName=Adwaita 32 | 33 | [Mouse] 34 | AccFactor=20 35 | AccThreshold=10 36 | LeftHanded=0 37 | 38 | [Keyboard] 39 | Delay=500 40 | Interval=30 41 | Beep=1 42 | 43 | [State] 44 | guess_default=true 45 | 46 | [Dbus] 47 | lxde=true 48 | 49 | [Environment] 50 | menu_prefix=lxde- 51 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.config/lxterminal/lxterminal.conf: -------------------------------------------------------------------------------- 1 | [general] 2 | fontname=Monospace 10 3 | selchars=-A-Za-z0-9,./?%&#:_ 4 | scrollback=1000 5 | bgcolor=rgb(0,0,0) 6 | fgcolor=rgb(170,170,170) 7 | palette_color_0=rgb(0,0,0) 8 | palette_color_1=rgb(170,0,0) 9 | palette_color_2=rgb(0,170,0) 10 | palette_color_3=rgb(170,85,0) 11 | palette_color_4=rgb(0,0,170) 12 | palette_color_5=rgb(170,0,170) 13 | palette_color_6=rgb(0,170,170) 14 | palette_color_7=rgb(170,170,170) 15 | palette_color_8=rgb(85,85,85) 16 | palette_color_9=rgb(255,85,85) 17 | palette_color_10=rgb(85,255,85) 18 | palette_color_11=rgb(255,255,85) 19 | palette_color_12=rgb(85,85,255) 20 | palette_color_13=rgb(255,85,255) 21 | palette_color_14=rgb(85,255,255) 22 | palette_color_15=rgb(255,255,255) 23 | color_preset=VGA 24 | disallowbold=false 25 | cursorblinks=false 26 | cursorunderline=false 27 | audiblebell=false 28 | tabpos=top 29 | geometry_columns=80 30 | geometry_rows=24 31 | hidescrollbar=false 32 | hidemenubar=false 33 | hideclosebutton=false 34 | hidepointer=false 35 | disablef10=false 36 | disablealt=false 37 | disableconfirm=false 38 | 39 | [shortcut] 40 | new_window_accel=n 41 | new_tab_accel=t 42 | close_tab_accel=w 43 | close_window_accel=q 44 | copy_accel=c 45 | paste_accel=v 46 | name_tab_accel=i 47 | previous_tab_accel=Page_Up 48 | next_tab_accel=Page_Down 49 | move_tab_left_accel=Page_Up 50 | move_tab_right_accel=Page_Down 51 | zoom_in_accel=plus 52 | zoom_out_accel=underscore 53 | zoom_reset_accel=parenright 54 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.config/mupen64plus/mupen64plus.cfg: -------------------------------------------------------------------------------- 1 | # Mupen64Plus Configuration File 2 | # This file is automatically read and written by the Mupen64Plus Core library 3 | 4 | [Core] 5 | 6 | # Draw on-screen display if True, otherwise don't draw OSD 7 | OnScreenDisplay = True 8 | # Use Pure Interpreter if 0, Cached Interpreter if 1, or Dynamic Recompiler if 2 or more 9 | R4300Emulator = 2 10 | # Disable compiled jump commands in dynamic recompiler (should be set to False) 11 | NoCompiledJump = False 12 | # Disable 4MB expansion RAM pack. May be necessary for some games 13 | DisableExtraMem = False 14 | # Increment the save state slot after each save operation 15 | AutoStateSlotIncrement = False 16 | # Activate the R4300 debugger when ROM execution begins, if core was built with Debugger support 17 | EnableDebugger = False 18 | # Save state slot (0-9) to use when saving/loading the emulator state 19 | CurrentStateSlot = 0 20 | # Path to directory where screenshots are saved. If this is blank, the default value of ${UserConfigPath}/screenshot will be used 21 | ScreenshotPath = "" 22 | # Path to directory where save states are saved. If this is blank, the default value of ${UserConfigPath}/save will be used 23 | SaveStatePath = "" 24 | # Path to a directory to search when looking for shared data files 25 | SharedDataPath = "" 26 | # SDL keysym for stopping the emulator 27 | Kbd Mapping Stop = 27 28 | # SDL keysym for switching between fullscreen/windowed modes 29 | Kbd Mapping Fullscreen = 323 30 | # SDL keysym for saving the emulator state 31 | Kbd Mapping Save State = 286 32 | # SDL keysym for loading the emulator state 33 | Kbd Mapping Load State = 288 34 | # SDL keysym for advancing the save state slot 35 | Kbd Mapping Increment Slot = 0 36 | # SDL keysym for resetting the emulator 37 | Kbd Mapping Reset = 290 38 | # SDL keysym for slowing down the emulator 39 | Kbd Mapping Speed Down = 291 40 | # SDL keysym for speeding up the emulator 41 | Kbd Mapping Speed Up = 292 42 | # SDL keysym for taking a screenshot 43 | Kbd Mapping Screenshot = 293 44 | # SDL keysym for pausing the emulator 45 | Kbd Mapping Pause = 112 46 | # SDL keysym for muting/unmuting the sound 47 | Kbd Mapping Mute = 109 48 | # SDL keysym for increasing the volume 49 | Kbd Mapping Increase Volume = 93 50 | # SDL keysym for decreasing the volume 51 | Kbd Mapping Decrease Volume = 91 52 | # SDL keysym for temporarily going really fast 53 | Kbd Mapping Fast Forward = 102 54 | # SDL keysym for advancing by one frame when paused 55 | Kbd Mapping Frame Advance = 47 56 | # SDL keysym for pressing the game shark button 57 | Kbd Mapping Gameshark = 103 58 | # Joystick event string for stopping the emulator 59 | Joy Mapping Stop = "" 60 | # Joystick event string for switching between fullscreen/windowed modes 61 | Joy Mapping Fullscreen = "" 62 | # Joystick event string for saving the emulator state 63 | Joy Mapping Save State = "" 64 | # Joystick event string for loading the emulator state 65 | Joy Mapping Load State = "" 66 | # Joystick event string for advancing the save state slot 67 | Joy Mapping Increment Slot = "" 68 | # Joystick event string for taking a screenshot 69 | Joy Mapping Screenshot = "" 70 | # Joystick event string for pausing the emulator 71 | Joy Mapping Pause = "" 72 | # Joystick event string for muting/unmuting the sound 73 | Joy Mapping Mute = "" 74 | # Joystick event string for increasing the volume 75 | Joy Mapping Increase Volume = "" 76 | # Joystick event string for decreasing the volume 77 | Joy Mapping Decrease Volume = "" 78 | # Joystick event string for fast-forward 79 | Joy Mapping Fast Forward = "" 80 | # Joystick event string for pressing the game shark button 81 | Joy Mapping Gameshark = "" 82 | 83 | 84 | [Video-General] 85 | 86 | # Use fullscreen mode if True, or windowed mode if False 87 | Fullscreen = True 88 | # Width of output window or fullscreen width 89 | ScreenWidth = 640 90 | # Height of output window or fullscreen height 91 | ScreenHeight = 240 92 | 93 | 94 | [UI-Console] 95 | 96 | # Directory in which to search for plugins 97 | PluginDir = "./" 98 | # Filename of video plugin 99 | #VideoPlugin = "mupen64plus-video-rice.so" 100 | VideoPlugin = "mupen64plus-video-glide64.so" 101 | # Filename of audio plugin 102 | AudioPlugin = "mupen64plus-audio-sdl.so" 103 | # Filename of input plugin 104 | InputPlugin = "mupen64plus-input-sdl.so" 105 | # Filename of RSP plugin 106 | RspPlugin = "mupen64plus-rsp-hle.so" 107 | 108 | 109 | [Video-Rice] 110 | 111 | # Frame Buffer Emulation (0=ROM default, 1=disable) 112 | FrameBufferSetting = 0 113 | # Frequency to write back the frame buffer (0=every frame, 1=every other frame, etc) 114 | FrameBufferWriteBackControl = 0 115 | # Render-to-texture emulation (0=none, 1=ignore, 2=normal, 3=write back, 4=write back and reload) 116 | RenderToTexture = 0 117 | # Control when the screen will be updated (0=ROM default, 1=VI origin update, 2=VI origin change, 3=CI change, 4=first CI change, 5=first primitive draw, 6=before screen clear, 7=after screen drawn) 118 | ScreenUpdateSetting = 1 119 | # Force to use normal alpha blender 120 | NormalAlphaBlender = False 121 | # Use a faster algorithm to speed up texture loading and CRC computation 122 | FastTextureLoading = False 123 | # Use different texture coordinate clamping code 124 | AccurateTextureMapping = True 125 | # Force emulated frame buffers to be in N64 native resolution 126 | InN64Resolution = False 127 | # Try to reduce Video RAM usage (should never be used) 128 | SaveVRAM = False 129 | # Enable this option to have better render-to-texture quality 130 | DoubleSizeForSmallTxtrBuf = False 131 | # Force to use normal color combiner 132 | DefaultCombinerDisable = False 133 | # Enable game-specific settings from INI file 134 | EnableHacks = True 135 | # If enabled, graphics will be drawn in WinFrame mode instead of solid and texture mode 136 | WinFrameMode = False 137 | # N64 Texture Memory Full Emulation (may fix some games, may break others) 138 | FullTMEMEmulation = False 139 | # Enable vertex clipper for fog operations 140 | OpenGLVertexClipper = False 141 | # Enable/Disable SSE optimizations for capable CPUs 142 | EnableSSE = True 143 | # Use GPU vertex shader 144 | EnableVertexShader = False 145 | # If this option is enabled, the plugin will skip every other frame 146 | SkipFrame = False 147 | # If enabled, texture enhancement will be done only for TxtRect ucode 148 | TexRectOnly = False 149 | # If enabled, texture enhancement will be done only for textures width+height<=128 150 | SmallTextureOnly = False 151 | # Enable hi-resolution texture file loading 152 | LoadHiResTextures = False 153 | # Enable texture dumping 154 | DumpTexturesToFiles = False 155 | # Display On-screen FPS 156 | ShowFPS = False 157 | # Enable/Disable Mipmaping 158 | EnableMipmaping = True 159 | # Enable, Disable or Force fog generation (0=Disable, 1=Enable n64 choose, 2=Force Fog) 160 | FogMethod = 0 161 | # Force to use texture filtering or not (0=auto: n64 choose, 1=force no filtering, 2=force filtering) 162 | ForceTextureFilter = 0 163 | # Choose wich texture filtering method will be used by your graphic card(0=no filtering, 1=bilinear, 2=trilinear) 164 | TextureFilteringMethod = 1 165 | # Primary texture enhancement filter (0=None, 1=2X, 2=2XSAI, 3=HQ2X, 4=LQ2X, 5=HQ4X, 6=Sharpen, 7=Sharpen More, 8=External, 9=Mirrored) 166 | TextureEnhancement = 0 167 | # Secondary texture enhancement filter (0 = none, 1-4 = filtered) 168 | TextureEnhancementControl = 0 169 | # Color bit depth to use for textures (0=default, 1=32 bits, 2=16 bits) 170 | TextureQuality = 0 171 | # Z-buffer depth (only 16 or 32) 172 | OpenGLDepthBufferSetting = 16 173 | # Enable/Disable MultiSampling (0=off, 2,4,8,16=quality) 174 | MultiSampling = 0 175 | # Color bit depth for rendering window (0=32 bits, 1=16 bits) 176 | ColorQuality = 0 177 | # OpenGL level to support (0=auto, 1=OGL_1.1, 2=OGL_1.2, 3=OGL_1.3, 4=OGL_1.4, 5=OGL_1.4_V2, 6=OGL_TNT2, 7=NVIDIA_OGL, 8=OGL_FRAGMENT_PROGRAM) 178 | OpenGLRenderSetting = 0 179 | # Enable/Disable Anisotropic Filtering for Mipmaping (0=no filtering, 2-16=quality). This is uneffective if EnableMipmaping is false. If the given value is to high to be supported by your graphic card, the value will be the highest value your graphic card can support. Better result with Trilinear filtering 180 | AnisotropicFiltering = 0 181 | 182 | 183 | [Audio-SDL] 184 | 185 | # Frequency which is used if rom doesn't want to change it 186 | DEFAULT_FREQUENCY = 33600 187 | # Swaps left and right channels 188 | SWAP_CHANNELS = False 189 | # Size of primary buffer in output samples. This is where audio is loaded after it's extracted from n64's memory. 190 | PRIMARY_BUFFER_SIZE = 16384 191 | # Fullness level target for Primary audio buffer, in equivalent output samples 192 | PRIMARY_BUFFER_TARGET = 10240 193 | # Size of secondary buffer in output samples. This is SDL's hardware buffer. 194 | SECONDARY_BUFFER_SIZE = 2048 195 | # Audio resampling algorithm. 1 = unfiltered, 2 = SINC resampling (Best Quality, requires libsamplerate) 196 | RESAMPLE = 1 197 | # Volume control type: 1 = SDL (only affects Mupen64Plus output) 2 = OSS mixer (adjusts master PC volume) 198 | VOLUME_CONTROL_TYPE = 2 199 | # Percentage change each time the volume is increased or decreased 200 | VOLUME_ADJUST = 5 201 | # Default volume when a game is started. Only used if VOLUME_CONTROL_TYPE is 1 202 | VOLUME_DEFAULT = 80 203 | 204 | 205 | [Input-SDL-Control1] 206 | 207 | 208 | 209 | [Input-SDL-Control2] 210 | 211 | 212 | 213 | [Input-SDL-Control3] 214 | 215 | 216 | 217 | [Input-SDL-Control4] 218 | 219 | 220 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.config/pcmanfm/LXDE/desktop-items-0.conf: -------------------------------------------------------------------------------- 1 | [*] 2 | wallpaper_mode=crop 3 | wallpaper_common=1 4 | wallpaper=/opt/gasetup/groovyframe-wallpaper.png 5 | desktop_bg=#000000 6 | desktop_fg=#ffffff 7 | desktop_shadow=#000000 8 | desktop_font=Sans 12 9 | show_wm_menu=0 10 | sort=mtime;ascending; 11 | show_documents=0 12 | show_trash=0 13 | show_mounts=0 14 | 15 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.config/pcmanfm/LXDE/pcmanfm.conf: -------------------------------------------------------------------------------- 1 | [config] 2 | bm_open_method=0 3 | 4 | [volume] 5 | mount_on_startup=1 6 | mount_removable=1 7 | autorun=1 8 | 9 | [ui] 10 | always_show_tabs=0 11 | max_tab_chars=32 12 | win_width=640 13 | win_height=480 14 | splitter_pos=150 15 | media_in_new_tab=0 16 | desktop_folder_new_win=0 17 | change_tab_on_drop=1 18 | close_on_unmount=1 19 | focus_previous=0 20 | side_pane_mode=places 21 | view_mode=icon 22 | show_hidden=0 23 | sort=gicon;ascending; 24 | toolbar=newtab;navigation;home; 25 | show_statusbar=1 26 | pathbar_mode_buttons=0 27 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.config/systemd/user/udiskie.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=udiskie mounts drives when plugged in 3 | 4 | [Service] 5 | ExecStart=/usr/bin/udiskie --no-notify 6 | 7 | [Install] 8 | WantedBy=default.target 9 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.hushlogin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/.hushlogin -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.qjoypad3/Mame.lyt: -------------------------------------------------------------------------------- 1 | # QJoyPad 4.3 Layout File 2 | 3 | Joystick 1 { 4 | Axis 1: +key 114, -key 113 5 | Axis 2: +key 116, -key 111 6 | Button 1: key 65 7 | Button 2: key 50 8 | Button 3: key 64 9 | Button 4: key 37 10 | Button 5: key 52 11 | Button 6: key 53 12 | Button 9: key 14 13 | Button 10: key 36 14 | } 15 | 16 | Joystick 2 { 17 | Axis 1: +key 42, -key 40 18 | Axis 2: +key 41, -key 27 19 | Button 1: key 24 20 | Button 2: key 25 21 | Button 3: key 39 22 | Button 4: key 38 23 | Button 5: key 31 24 | Button 6: key 45 25 | Button 9: key 14 26 | Button 10: key 36 27 | } 28 | 29 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.qjoypad3/layout: -------------------------------------------------------------------------------- 1 | Mame -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/.vimrc: -------------------------------------------------------------------------------- 1 | set mouse-=a 2 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/1 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/configs/ga.conf: -------------------------------------------------------------------------------- 1 | frontend=attractplus 2 | video.backend=KMS 3 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/frontends/attract/romlists/MAME.txt: -------------------------------------------------------------------------------- 1 | #Name;Title;Emulator;CloneOf;Year;Manufacturer;Category;Players;Rotation;Control;Status;DisplayCount;DisplayType;AltRomname;AltTitle;Extra;Buttons;Series;Language;Region;Rating 2 | robby;The Adventures of Robby Roto!;MAME;;1981;Dave Nutting Associates / Bally Midway;;2;0;joystick (4-way),joystick (4-way);good;1;raster;;;;1;;;; 3 | alienar;Alien Arena;MAME;;1985;Duncan Brown;;2;0;joystick (8-way),joystick (8-way);good;1;raster;;;;2;;;; 4 | carpolo;Car Polo;MAME;;1977;Exidy;;4;0;dial,dial,dial,dial;preliminary;1;raster;;;;3;;;; 5 | circus;Circus / Acrobat TV;MAME;;1977;Exidy / Taito;;1;0;paddle;imperfect;1;raster;;;;;;;; 6 | crash;Crash;MAME;;1979;Exidy;;1;0;joystick (4-way);imperfect;1;raster;;;;1;;;; 7 | fax;FAX;MAME;;1983;Exidy;;2;0;only_buttons,only_buttons;good;1;raster;;;;4;;;; 8 | fax2;FAX 2;MAME;fax;1983;Exidy;;2;0;only_buttons,only_buttons;good;1;raster;fax;;;4;;;; 9 | fireone;Fire One;MAME;;1979;Exidy;;2;0;paddle,paddle;good;1;raster;;;;2;;;; 10 | gridlee;Gridlee;MAME;;1983;Videa;;2;0;trackball,trackball;imperfect;1;raster;;;;1;;;; 11 | hardhat;Hard Hat;MAME;;1982;Exidy;;1;0;joystick (4-way);good;1;raster;;;;1;;;; 12 | looping;Looping;MAME;;1982;Video Games GmbH;;2;90;joystick (vertical2-way),joystick (vertical2-way);imperfect;1;raster;;;;2;;;; 13 | ripcord;Rip Cord;MAME;;1979;Exidy;;1;0;paddle;imperfect;1;raster;;;;2;;;; 14 | robotbwl;Robot Bowl;MAME;;1977;Exidy;;1;0;joystick (2-way);imperfect;1;raster;;;;2;;;; 15 | sidetrac;Side Trak;MAME;;1979;Exidy;;1;0;joystick (4-way);imperfect;1;raster;;;;1;;;; 16 | spectar;Spectar (revision 3);MAME;;1980;Exidy;;1;0;joystick (4-way);imperfect;1;raster;;;;1;;;; 17 | starfire;Star Fire (set 1);MAME;;1979;Exidy;;1;0;joystick (analog);good;1;raster;;;;1;;;; 18 | starfir2;Star Fire 2;MAME;;1979;Exidy;;1;0;joystick (analog);good;1;raster;;;;1;;;; 19 | supertnk;Super Tank;MAME;;1981;Video Games GmbH;;2;90;joystick (8-way),joystick (8-way);good;1;raster;;;;1;;;; 20 | targ;Targ;MAME;;1980;Exidy;;1;0;joystick (4-way);imperfect;1;raster;;;;1;;;; 21 | teetert;Teeter Torture (prototype);MAME;;1982;Exidy;;1;0;dial;good;1;raster;;;;1;;;; 22 | topgunnr;Top Gunner (Exidy);MAME;;1986;Exidy;;1;0;joystick (analog),paddle;good;1;vector;;;;2;;;; 23 | victorba;Victor Banana;MAME;victory;1982;Exidy;;1;0;dial;good;1;raster;victory;;;4;;;; 24 | victory;Victory;MAME;;1982;Exidy;;1;0;dial;good;1;raster;;;;4;;;; 25 | wrally;World Rally (Version 1.0, Checksum 0E56);MAME;;1993;Gaelco;;2;0;joystick (8-way),dial,joystick (8-way);good;1;raster;;;;2;;;; -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/carpolo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/carpolo.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/circus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/circus.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/crash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/crash.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/fax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/fax.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/fax2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/fax2.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/fireone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/fireone.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/hardhat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/hardhat.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/looping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/looping.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/ripcord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/ripcord.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/robby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/robby.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/robotbwl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/robotbwl.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/sidetrac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/sidetrac.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/spectar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/spectar.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/starfire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/starfire.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/supertnk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/supertnk.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/targ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/targ.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/topgunnr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/topgunnr.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/victorba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/victorba.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/victory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/victory.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/wrally.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/flyer/wrally.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/alienar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/alienar.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/crash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/crash.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/fax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/fax.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/fax2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/fax2.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/fireone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/fireone.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/gridlee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/gridlee.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/looping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/looping.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/robby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/robby.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/robotbwl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/robotbwl.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/spectar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/spectar.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/starfire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/starfire.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/supertnk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/supertnk.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/targ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/targ.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/teetert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/teetert.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/topgunnr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/topgunnr.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/victory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/victory.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/wrally.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/marquee/wrally.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/alienar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/alienar.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/carpolo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/carpolo.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/circus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/circus.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/crash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/crash.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/fax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/fax.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/fireone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/fireone.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/gridlee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/gridlee.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/hardhat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/hardhat.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/looping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/looping.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/ripcord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/ripcord.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/robby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/robby.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/robotbwl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/robotbwl.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/sidetrac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/sidetrac.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/spectar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/spectar.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/starfir2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/starfir2.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/starfire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/starfire.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/supertnk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/supertnk.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/targ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/targ.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/teetert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/teetert.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/topgunnr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/topgunnr.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/victory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/victory.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/snap/wrally.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/snap/wrally.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/alienar.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/alienar.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/carpolo.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/carpolo.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/circus.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/circus.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/crash.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/crash.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/fax.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/fax.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/fireone.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/fireone.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/gridlee.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/gridlee.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/hardhat.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/hardhat.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/looping.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/looping.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/ripcord.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/ripcord.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/robby.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/robby.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/robotbwl.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/robotbwl.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/sidetrac.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/sidetrac.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/spectar.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/spectar.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/starfir2.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/starfir2.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/starfire.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/starfire.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/supertnk.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/supertnk.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/targ.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/targ.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/teetert.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/teetert.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/topgunnr.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/topgunnr.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/victorba.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/victorba.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/victory.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/victory.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/video/wrally.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/video/wrally.mp4 -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/alienar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/alienar.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/carpolo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/carpolo.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/circus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/circus.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/crash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/crash.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/fax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/fax.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/fireone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/fireone.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/gridlee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/gridlee.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/hardhat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/hardhat.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/looping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/looping.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/ripcord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/ripcord.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/robby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/robby.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/robotbwl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/robotbwl.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/sidetrac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/sidetrac.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/spectar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/spectar.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/starfir2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/starfir2.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/starfire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/starfire.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/supertnk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/supertnk.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/targ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/targ.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/teetert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/teetert.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/topgunnr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/topgunnr.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/victorba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/victorba.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/victory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/victory.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/wrally.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/media/mame/wheel/wrally.png -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/alienar.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/alienar.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/carpolo.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/carpolo.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/circus.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/circus.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/crash.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/crash.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/fax.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/fax.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/fax2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/fax2.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/fireone.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/fireone.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/gridlee.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/gridlee.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/hardhat.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/hardhat.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/looping.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/looping.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/ripcord.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/ripcord.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/robby.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/robby.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/robotbwl.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/robotbwl.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/sidetrac.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/sidetrac.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/spectar.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/spectar.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/starfir2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/starfir2.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/starfire.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/starfire.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/supertnk.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/supertnk.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/targ.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/targ.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/teetert.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/teetert.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/topgunnr.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/topgunnr.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/victorba.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/victorba.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/victory.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/victory.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/home/arcade/shared/roms/mame/wrally.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/home/arcade/shared/roms/mame/wrally.zip -------------------------------------------------------------------------------- /groovyarcade/airootfs/root/customize_airootfs.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # SPDX-License-Identifier: GPL-3.0-or-later 4 | 5 | set -e -u 6 | 7 | # Warning: customize_airootfs.sh is deprecated! Support for it will be removed in a future archiso version. 8 | 9 | sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen 10 | locale-gen 11 | 12 | curl -L "https://archlinux.org/mirrorlist/all/" | sed "s/#Server/Server/g" > /etc/pacman.d/mirrorlist 13 | 14 | # GroovyArcade specific 15 | # Allow groupadd to fail since the group may have been added earlier with netinstall 16 | groupadd --gid 1000 arcade || true 17 | usermod -a -G adm,audio,disk,games,input,log,network,nobody,optical,power,storage,tty,users,video,wheel arcade 18 | sed -i "/^# .*wheel.*NOPASSWD.*/s/^# //" /etc/sudoers 19 | 20 | # Add a arcade samba user 21 | (echo "arcade"; echo "arcade") | smbpasswd -s -a arcade 22 | 23 | systemctl enable smb 24 | systemctl enable nmb 25 | systemctl enable sshd 26 | 27 | # Only build the default initramfs 28 | sed -i "s/^PRESETS=.*/PRESETS=('default')/" /etc/mkinitcpio.d/linux-15khz.preset 29 | 30 | # Disable the lvm2 monitor as it considerably slows down the boot. Don't fail if it doesn't exist 31 | systemctl list-unit-files lvm2-monitor.service &>/dev/null && systemctl disable lvm2-monitor.service || true 32 | 33 | # Set GroovyArcade boot screen 34 | plymouth-set-default-theme -R groovy 35 | 36 | # Add the groovyarcade repo 37 | grep -q groovy-ux-repo.conf /etc/pacman.conf || sed -i "/^\[core\]$/i Include = \/etc\/pacman.d\/groovy-ux-repo.conf\n" /etc/pacman.conf 38 | 39 | sed -E -i -e 's/#Color/Color/' -e 's/#ParallelDownloads = .*/ParallelDownloads = 25/' /etc/pacman.conf 40 | 41 | # Basic configuration 42 | basic_opts="-p base -u arcade" 43 | /opt/gasetup/gasetup.sh $basic_opts -c groovyarcade 44 | /opt/gasetup/gasetup.sh $basic_opts -c attract 45 | /opt/gasetup/gasetup.sh $basic_opts -c groovymame 46 | 47 | # Remove the fallback initramfs 48 | rm /boot/*-fallback.img 49 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/bin/Installation_guide: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # SPDX-License-Identifier: GPL-3.0-or-later 4 | 5 | exec lynx 'https://wiki.archlinux.org/index.php/Installation_guide' 6 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/bin/UpdateGroovyMame.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Author: Ves 3 | # Date: 06/01/12 4 | # Version 0.1 5 | # Created for GroovyArcade 6 | cd /tmp/ 7 | rm Groovy* groovy* Update* 8 | clear 9 | echo "Updating GroovyMame" 10 | echo "Actualizando GroovyMame" 11 | echo "" 12 | 13 | wget http://mario.groovy.org/GroovyArcade/MameWindows/WindowsATIDrivers/UpdateGroovyMame32 14 | ls UpdateGroovyMame32 &>/dev/null 15 | url=`cat $_` 16 | echo "" 17 | echo "" 18 | wget $url 19 | version=`ls Groovy*` 20 | ls Groovy* 21 | sudo tar jxvf $version -C /usr/local/bin/ 22 | 23 | echo "Update Completed to $version" 24 | echo "Actualizacion Terminada a $version" 25 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/bin/Updatemenu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cd /tmp/ 3 | rm updatemenu 4 | wget wget http://mario.groovy.org/GroovyArcade/MameWindows/WindowsATIDrivers/updatemenu 5 | sudo cp updatemenu /opt/gasetup/core/procedures/interactive 6 | pkill gasetup 7 | echo "Reboot Pc or sudo gasetup" 8 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/bin/attlist.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sudo rm -Rf /home/arcade/.attract/romlists/*.txt 3 | attract -b Atari2600 4 | attract -b MAME 5 | attract -b MasterSystem 6 | attract -b N64 7 | attract -b NES 8 | attract -b PCEngine-Supergrafx 9 | attract -b PSX 10 | attract -b Saturn 11 | attract -b SegaGenesis 12 | attract -b SNES 13 | attract -b UME-3DO 14 | attract -b UME-AmigaCD 15 | attract -b UME-Atari2600 16 | attract -b UME-Jaguar 17 | attract -b UME-MasterSystem 18 | attract -b UME-N64 19 | attract -b UME-NeoGeoCDZ 20 | attract -b UME-NES 21 | attract -b UME-PCEngine-Supergrafx 22 | attract -b UME-PSX 23 | attract -b UME-Saturn 24 | attract -b UME-SegaGenesis 25 | attract -b UME-SNES 26 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/bin/automount.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ntfss=$(blkid -c /dev/null -t TYPE=ntfs | cut -d ':' -f 1 >> /tmp/hdd.txt) 4 | vfats=$(blkid -c /dev/null -t TYPE=vfat | cut -d ':' -f 1 >> /tmp/hdd.txt) 5 | ext3=$(blkid -c /dev/null -t TYPE=ext3 | cut -d ':' -f 1 >> /tmp/hdd.txt) 6 | ext4=$(blkid -c /dev/null -t TYPE=ext4 | cut -d ':' -f 1 >> /tmp/hdd.txt) 7 | 8 | while read curline; do 9 | echo Mount $curline 10 | dirr=$(echo $curline | cut -c 6- | sed -e 's/\///g') 11 | mkdir /media/disk-$dirr > /dev/null 2>&1 & 12 | mount /dev/$dirr /media/disk-$dirr > /dev/null 2>&1 & 13 | ntfslabel=$(blkid -c /dev/null -t TYPE=ntfs | grep $curline | grep LABEL) 14 | if [ $ntfslabel ]; then 15 | ntfsuuid=$(blkid -c /dev/null -t TYPE=ntfs | grep $curline | cut -d '"' -f 4) 16 | else 17 | ntfsuuid=$(blkid -c /dev/null -t TYPE=ntfs | grep $curline | cut -d '"' -f 2) 18 | fi 19 | echo $ntfsuuid 20 | done < /tmp/hdd.txt 21 | rm /tmp/hdd.txt 22 | echo Mount Local Disk Done! 23 | 24 | 25 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/bin/changepass.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | # changepass.pl 3 | # Script for the user to change their webmin password 4 | 5 | # Check command line arguments 6 | usage() if (@ARGV != 3); 7 | ($config, $user, $pass) = @ARGV; 8 | if (!-d $config) { 9 | print STDERR "The config directory $config does not exist\n"; 10 | exit 2; 11 | } 12 | if (!open(CONF, "$config/miniserv.conf")) { 13 | print STDERR "Failed to open $config/miniserv.conf : $!\n"; 14 | print STDERR "Maybe $config is not the Webmin config directory.\n"; 15 | exit 3; 16 | } 17 | while() { 18 | if (/^([^=]+)=(\S+)/) { $config{$1} = $2; } 19 | } 20 | close(CONF); 21 | 22 | # Update the users file 23 | if (!open(USERS, $config{'userfile'})) { 24 | print STDERR "Failed to open Webmin users file $config{'userfile'} : $!\n"; 25 | exit 4; 26 | } 27 | while() { 28 | s/\r|\n//g; 29 | local @user = split(/:/, $_); 30 | if (@user) { 31 | $users{$user[0]} = \@user; 32 | push(@users, $user[0]); 33 | } 34 | } 35 | close(USERS); 36 | if (!defined($users{$user})) { 37 | print STDERR "The Webmin user $user does not exist\n"; 38 | print STDERR "The users on your system are: ",join(" ", @users),"\n"; 39 | exit 5; 40 | } 41 | $salt = substr(time(), 0, 2); 42 | $users{$user}->[1] = crypt($pass, $salt); 43 | if (!open(USERS, "> $config{'userfile'}")) { 44 | print STDERR "Failed to open Webmin users file $config{'userfile'} : $!\n"; 45 | exit 6; 46 | } 47 | foreach $v (values %users) { 48 | print USERS join(":", @$v),"\n"; 49 | } 50 | close(USERS); 51 | print "Updated password of Webmin user $user\n"; 52 | 53 | # Send a signal to have miniserv reload it's config 54 | if (open(PID, $config{'pidfile'})) { 55 | $pid = ; 56 | $pid =~ s/\r|\n//; 57 | close(PID); 58 | if (!$pid) { 59 | print STDERR "Webmin is not running - cannot refresh configuration\n"; 60 | } 61 | elsif (!kill('USR1', $pid)) { 62 | print STDERR "Failed to signal process $pid - cannot refresh configuration\n"; 63 | } 64 | } 65 | else { 66 | print STDERR "Webmin is not running - cannot refresh configuration\n"; 67 | } 68 | 69 | sub usage 70 | { 71 | print STDERR < 73 | 74 | This program allows you to change the password of a user in the Webmin 75 | password file. For example, to change the password of the admin user 76 | to foo, you would run: 77 | changepass.pl /etc/webmin admin foo 78 | This assumes that /etc/webmin is the Webmin configuration directory. 79 | EOF 80 | exit 1; 81 | } 82 | 83 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/bin/choose-mirror: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # SPDX-License-Identifier: GPL-3.0-or-later 4 | 5 | get_cmdline() { 6 | local param 7 | for param in $(< /proc/cmdline); do 8 | case "${param}" in 9 | $1=*) echo "${param##*=}"; 10 | return 0 11 | ;; 12 | esac 13 | done 14 | } 15 | 16 | mirror=$(get_cmdline mirror) 17 | [[ $mirror = auto ]] && mirror=$(get_cmdline archiso_http_srv) 18 | [[ $mirror ]] || exit 0 19 | 20 | mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig 21 | cat >/etc/pacman.d/mirrorlist << EOF 22 | # 23 | # Arch Linux repository mirrorlist 24 | # Generated by archiso 25 | # 26 | 27 | Server = ${mirror%%/}/\$repo/os/\$arch 28 | EOF 29 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/bin/evtestlist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/airootfs/usr/local/bin/evtestlist -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/bin/gasetup: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | /opt/gasetup/gasetup.sh -p interactive "$@" 3 | 4 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/bin/gdrivedl: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | url=$1 4 | filename=$2 5 | 6 | [ -z "$url" ] && echo A URL or ID is required first argument && exit 1 7 | 8 | fileid="" 9 | declare -a patterns=("s/.*\/file\/d\/\(.*\)\/.*/\1/p" "s/.*id\=\(.*\)/\1/p" "s/\(.*\)/\1/p") 10 | for i in "${patterns[@]}" 11 | do 12 | fileid=$(echo $url | sed -n $i) 13 | [ ! -z "$fileid" ] && break 14 | done 15 | 16 | [ -z "$fileid" ] && echo Could not find Google ID && exit 1 17 | 18 | echo File ID: $fileid 19 | 20 | tmp_file="$filename.$$.file" 21 | tmp_cookies="$filename.$$.cookies" 22 | tmp_headers="$filename.$$.headers" 23 | 24 | url='https://docs.google.com/uc?export=download&id='$fileid 25 | echo Downloading: "$url > $tmp_file" 26 | wget --save-cookies "$tmp_cookies" -q -S -O - $url 2> "$tmp_headers" 1> "$tmp_file" 27 | 28 | if [[ ! $(find "$tmp_file" -type f -size +10000c 2>/dev/null) ]]; then 29 | confirm=$(cat "$tmp_file" | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1/p') 30 | fi 31 | 32 | if [ ! -z "$confirm" ]; then 33 | url='https://docs.google.com/uc?export=download&id='$fileid'&confirm='$confirm 34 | echo Downloading: "$url > $tmp_file" 35 | wget --load-cookies "$tmp_cookies" -q -S -O - $url 2> "$tmp_headers" 1> "$tmp_file" 36 | fi 37 | 38 | [ -z "$filename" ] && filename=$(cat "$tmp_headers" | sed -rn 's/.*filename=\"(.*)\".*/\1/p') 39 | [ -z "$filename" ] && filename="google_drive.file" 40 | 41 | echo Moving: "$tmp_file > $filename" 42 | 43 | mv "$tmp_file" "$filename" 44 | 45 | rm -f "$tmp_cookies" "$tmp_headers" 46 | 47 | echo Saved: "$filename" 48 | echo DONE! 49 | 50 | exit 0 51 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/bin/genres.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | use Getopt::Long; 3 | use strict; 4 | use warnings; 5 | use strict "vars"; 6 | use strict "refs"; 7 | use strict "subs"; 8 | 9 | my $IS_WIN = 0; 10 | if ($^O eq "MSWin32") { 11 | $IS_WIN = 1; 12 | } 13 | 14 | sub recalc_height($); 15 | sub recalc_width($); 16 | 17 | my $MAME_XML = "MAME.xml"; 18 | my $MONITOR_TYPE = "generic"; 19 | my $MAX_WIDTH = "1024"; 20 | my $MAX_HEIGHT = "768"; 21 | my $USE_VSYNC = 0; 22 | 23 | my $result = 1; 24 | my $HELP = 0; 25 | $result = GetOptions ( 26 | "help|h" => \$HELP, 27 | "monitor|m=s" => \$MONITOR_TYPE, 28 | "xml|x=s" => \$MAME_XML, 29 | "maxwidth|mw=s" => \$MAX_WIDTH, 30 | "maxheight|mh=s" => \$MAX_HEIGHT, 31 | "vsync|v" => \$USE_VSYNC, 32 | ); 33 | if (!$result || $HELP) { 34 | print "GenRes modeline generator from MAME XML file\n"; 35 | print "Chris Kennedy (C) 2010\n\n"; 36 | print "Usage: genres.pl\n"; 37 | print " -monitor -m Monitor type to pass to switchres\n"; 38 | print " -xml -x Mame XML file to use\n"; 39 | print " -maxwidth -mw Max width ($MAX_WIDTH)\n"; 40 | print " -maxheight -mh Max height ($MAX_HEIGHT)\n"; 41 | print " -vsync -v Use Vsync differences\n"; 42 | exit 1; 43 | } 44 | 45 | my @resolutions = (); 46 | my @lines = `grep " 0) { 85 | $width = $ret; 86 | } 87 | } 88 | if ($height) { 89 | my $new_height = recalc_height($height); 90 | if ($new_height > 0) { 91 | $height = $new_height; 92 | } else { 93 | # greater than 768 pixels high 94 | } 95 | } 96 | if ($height && $width) { 97 | my $exists = 0; 98 | #print "$width $height $refresh\n"; 99 | for (my $i = 0; $i < scalar(@resolutions); $i++) { 100 | if ($resolutions[$i]{'width'} == $width && 101 | $resolutions[$i]{'height'} == $height && 102 | $resolutions[$i]{'refresh'} == $refresh) 103 | { 104 | $exists = 1; 105 | } 106 | } 107 | if (!$exists) { 108 | my $len = scalar(@resolutions); 109 | $resolutions[$len]{'width'} = $width; 110 | $resolutions[$len]{'height'} = $height; 111 | $resolutions[$len]{'refresh'} = $refresh; 112 | } 113 | } 114 | } 115 | 116 | my @modelines = (); 117 | for (my $i = 0; $i < scalar(@resolutions); $i++) { 118 | my ($width, $height, $refresh); 119 | $width = $resolutions[$i]{'width'}; 120 | $height = $resolutions[$i]{'height'}; 121 | $refresh = $resolutions[$i]{'refresh'}; 122 | #print "$width $height\n"; 123 | my @mline = `switchres $width $height $refresh --monitor $MONITOR_TYPE`; 124 | foreach (@mline) { 125 | my $line = $_; 126 | chomp($line); 127 | $line =~ s/\s+/ /g; 128 | $line =~ s/^\s+//g; 129 | if ($line !~ /^#/ && $line ne '') { 130 | my $num = scalar(@modelines); 131 | $modelines[$num]{'modeline'} = $line; 132 | my ($junk, $label, @rest) = split(/\s+/, $line); 133 | $label =~ s/\"//g; 134 | my ($h, $w, $r) = split(/x/, $label); 135 | $modelines[$num]{'width'} = $w; 136 | $modelines[$num]{'height'} = $h; 137 | $modelines[$num]{'refresh'} = $r; 138 | } 139 | } 140 | } 141 | 142 | my @modelines_2 = (); 143 | for (my $i = 0; $i < scalar(@modelines); $i++) { 144 | my $exists = 0; 145 | for (my $j = 0; $j < scalar(@modelines_2); $j++) { 146 | if ($modelines_2[$j]{'width'} == $modelines[$i]{'width'} && 147 | $modelines_2[$j]{'height'} == $modelines[$i]{'height'}) 148 | { 149 | if ($USE_VSYNC) { 150 | if ($modelines_2[$j]{'refresh'} == $modelines[$i]{'refresh'}) { 151 | $exists = 1; 152 | goto DONE; 153 | } 154 | } else { 155 | $exists = 1; 156 | goto DONE; 157 | } 158 | } 159 | } 160 | DONE: 161 | if (!$exists) { 162 | my $num = scalar(@modelines_2); 163 | if (!$USE_VSYNC) { 164 | my $line = $modelines[$i]{'modeline'}; 165 | my ($junk, $label, @rest) = split(/\s+/, $line); 166 | $label =~ s/\"//g; 167 | my ($h, $w, $r) = split(/x/, $label); 168 | print "$junk \"${h}x${w}\@60\" @rest\n"; 169 | } else { 170 | print "$modelines[$i]{'modeline'}\n"; 171 | } 172 | $modelines_2[$num]{'width'} = $modelines[$i]{'width'}; 173 | $modelines_2[$num]{'height'} = $modelines[$i]{'height'}; 174 | $modelines_2[$num]{'refresh'} = $modelines[$i]{'refresh'}; 175 | } 176 | } 177 | 178 | exit 0; 179 | 180 | sub recalc_width($) { 181 | my $w = shift(@_); 182 | 183 | if ($w !~ /^\d+$/ || $w <= 0) { 184 | return -1; 185 | } 186 | 187 | $w = (($w / 8)+(($w % 8)&0x01)) * 8; 188 | 189 | if ($w < 240) { 190 | $w = 240; 191 | } elsif ($w > $MAX_WIDTH) { 192 | return $MAX_WIDTH; 193 | } 194 | 195 | return $w; 196 | } 197 | 198 | sub recalc_height($) { 199 | my $h = shift(@_); 200 | 201 | if ($h !~ /^\d+$/ || $h <= 0) { 202 | return -1; 203 | } 204 | 205 | if ($h < 192) { 206 | $h = 192; 207 | } elsif ($h > 192 && $h < 224) { 208 | $h = 224; 209 | } elsif ($h > 224 && $h < 240) { 210 | $h = 240; 211 | } elsif ($h > 240 && $h < 256) { 212 | $h = 256; 213 | } elsif ($h > 264 && $h < 288) { 214 | $h = 288; 215 | } elsif ($h > 288 && $h < 384) { 216 | $h = 384; 217 | } elsif ($h > $MAX_HEIGHT) { 218 | return $MAX_HEIGHT; 219 | } 220 | $h = (($h / 8)+(($h % 8)&0x01)) * 8; 221 | return $h; 222 | } 223 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/bin/groovymame: -------------------------------------------------------------------------------- 1 | /usr/lib/mame/groovymame -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/bin/livecd-sound: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # SPDX-License-Identifier: GPL-3.0-or-later 4 | 5 | usage() { 6 | cat <<- _EOF_ 7 | live cd sound helper script. 8 | Usage: livecdsound [OPTION] 9 | OPTIONS 10 | -u, --unmute unmute all sound cards 11 | -p, --pick select a card for speetch output 12 | -h, --help Show this usage message 13 | 14 | _EOF_ 15 | } 16 | 17 | bugout () { 18 | printf "/usr/local/bin/livecdsound: programming error" 19 | stat_fail 20 | } 21 | 22 | echo_card_indices() 23 | { 24 | if [ -f /proc/asound/cards ] ; then 25 | sed -n -e's/^[[:space:]]*\([0-7]\)[[:space:]].*/\1/p' /proc/asound/cards 26 | fi 27 | } 28 | 29 | # The following functions try to set many controls. 30 | # No card has all the controls and so some of the attempts are bound to fail. 31 | # Because of this, the functions can't return useful status values. 32 | 33 | # $1 34 | # $2 35 | # $3 36 | unmute_and_set_level(){ 37 | { [ "$3" ] &&[ "$2" ] && [ "$1" ] ; } || bugout 38 | systemd-cat -t "livecdsound" printf "Setting: %s on card: %s to %s\n" "$2" "$1" "$3" 39 | systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" unmute 40 | return 0 41 | } 42 | 43 | # $1 44 | # $2 45 | mute_and_zero_level() 46 | { 47 | { [ "$1" ] && [ "$2" ] ; } || bugout 48 | systemd-cat -t "livecdsound" printf "Muting control: %s on card: %s\n" "$2" "$1" 49 | systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "0%" mute 50 | return 0 51 | } 52 | 53 | # $1 54 | # $2 55 | # $3 "on" | "off" 56 | switch_control() 57 | { 58 | { [ "$3" ] && [ "$1" ] ; } || bugout 59 | systemd-cat -t "livecdsound" printf "Switching control: %s on card: %s to %s\n" "$2" "$1" "$3" 60 | systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" 61 | return 0 62 | } 63 | 64 | # $1 65 | sanify_levels_on_card() 66 | { 67 | unmute_and_set_level "$1" "Front" "80%" 68 | unmute_and_set_level "$1" "Master" "80%" 69 | unmute_and_set_level "$1" "Master Mono" "80%" 70 | unmute_and_set_level "$1" "Master Digital" "80%" # E.g., cs4237B 71 | unmute_and_set_level "$1" "Playback" "80%" 72 | unmute_and_set_level "$1" "Headphone" "100%" 73 | unmute_and_set_level "$1" "PCM" "80%" 74 | unmute_and_set_level "$1" "PCM,1" "80%" # E.g., ess1969 75 | unmute_and_set_level "$1" "DAC" "80%" # E.g., envy24, cs46xx 76 | unmute_and_set_level "$1" "DAC,0" "80%" # E.g., envy24 77 | unmute_and_set_level "$1" "DAC,1" "80%" # E.g., envy24 78 | unmute_and_set_level "$1" "Synth" "80%" 79 | unmute_and_set_level "$1" "CD" "80%" 80 | unmute_and_set_level "$1" "PC Speaker" "100%" 81 | 82 | mute_and_zero_level "$1" "Mic" 83 | mute_and_zero_level "$1" "IEC958" # Ubuntu #19648 84 | 85 | # Intel P4P800-MX 86 | switch_control "$1" "Master Playback Switch" on 87 | switch_control "$1" "Master Surround" on 88 | 89 | # Trident/YMFPCI/emu10k1: 90 | unmute_and_set_level "$1" "Wave" "80%" 91 | unmute_and_set_level "$1" "Music" "80%" 92 | unmute_and_set_level "$1" "AC97" "80%" 93 | 94 | # DRC: 95 | unmute_and_set_level "$1" "Dynamic Range Compression" "80%" 96 | 97 | # Required for HDA Intel (hda-intel): 98 | unmute_and_set_level "$1" "Front" "80%" 99 | 100 | # Required for SB Live 7.1/24-bit (ca0106): 101 | unmute_and_set_level "$1" "Analog Front" "80%" 102 | 103 | # Required at least for Via 823x hardware on DFI K8M800-MLVF Motherboard 104 | switch_control "$1" "IEC958 Capture Monitor" off 105 | 106 | # Required for hardware allowing toggles for AC97 through IEC958, 107 | # valid values are 0, 1, 2, 3. Needs to be set to 0 for PCM1. 108 | unmute_and_set_level "$1" "IEC958 Playback AC97-SPSA" "0" 109 | 110 | # Required for newer Via hardware 111 | unmute_and_set_level "$1" "VIA DXS,0" "80%" 112 | unmute_and_set_level "$1" "VIA DXS,1" "80%" 113 | unmute_and_set_level "$1" "VIA DXS,2" "80%" 114 | unmute_and_set_level "$1" "VIA DXS,3" "80%" 115 | 116 | # Required on some notebooks with ICH4: 117 | switch_control "$1" "Headphone Jack Sense" off 118 | switch_control "$1" "Line Jack Sense" off 119 | 120 | # Some machines need one or more of these to be on; 121 | # others need one or more of these to be off: 122 | 123 | switch_control "$1" "Audigy Analog/Digital Output Jack" on 124 | switch_control "$1" "SB Live Analog/Digital Output Jack" on 125 | 126 | # D1984 -- Thinkpad T61/X61 127 | switch_control "$1" "Speaker" on 128 | switch_control "$1" "Headphone" on 129 | 130 | # HDA-Intel w/ "Digital" capture mixer (See Ubuntu #193823) 131 | unmute_and_set_level "$1" "Digital" "80%" 132 | 133 | return 0 134 | } 135 | 136 | # $1 | "all" 137 | sanify_levels() 138 | { 139 | local ttsdml_returnstatus=0 140 | local card 141 | case "$1" in 142 | all) 143 | for card in $(echo_card_indices) ; do 144 | sanify_levels_on_card "$card" || ttsdml_returnstatus=1 145 | done 146 | ;; 147 | *) 148 | sanify_levels_on_card "$1" || ttsdml_returnstatus=1 149 | ;; 150 | esac 151 | return $ttsdml_returnstatus 152 | } 153 | 154 | # List all cards that *should* be usable for PCM audio. In my experience, 155 | # the console speaker (handled by the pcsp driver) isn't a suitable playback 156 | # device, so we'll exclude it. 157 | list_non_pcsp_cards() 158 | { 159 | for card in $(echo_card_indices); do 160 | local cardfile="/proc/asound/card${card}/id" 161 | if [ -r "$cardfile" ] && [ -f "$cardfile" ] && \ 162 | [ "$(cat "$cardfile")" != pcsp ]; then 163 | echo "$card" 164 | fi 165 | done 166 | } 167 | 168 | # Properly initialize the sound card so that we have audio at boot. 169 | unmute_all_cards() 170 | { 171 | sanify_levels all 172 | } 173 | 174 | is_numeric() { 175 | local str=$1 176 | [[ "$str" =~ ^[0-9]+$ ]] 177 | } 178 | 179 | set_default_card() { 180 | local card=$1 181 | sed -e "s/%card%/$card/g" < /usr/local/share/livecd-sound/asound.conf.in \ 182 | > /etc/asound.conf 183 | } 184 | 185 | play_on_card() { 186 | local card=$1 file=$2 187 | aplay -q "-Dplughw:$card,0" "$file" 188 | } 189 | 190 | # If there are multiple usable sound cards, prompt the user to choose one, 191 | # using auditory feedback. 192 | pick_a_card() 193 | { 194 | set -f 195 | usable_cards="$(list_non_pcsp_cards)" 196 | num_usable_cards="$(wc -w <<< "$usable_cards")" 197 | 198 | if [ "$num_usable_cards" -eq 1 ]; then 199 | systemd-cat -t "livecdsound" printf "Only one sound card is detected\n" 200 | exit 0 201 | fi 202 | systemd-cat -t "livecdsound" printf "multiple sound cards detected\n" 203 | for card in $usable_cards; do 204 | if ! is_numeric "$card"; then 205 | continue 206 | fi 207 | play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav& 208 | done 209 | wait 210 | sleep 1 211 | for card in $usable_cards; do 212 | if ! is_numeric "$card"; then 213 | continue 214 | fi 215 | play_on_card "$card" /usr/share/livecd-sounds/beep.wav 216 | if read -r -t 10; then 217 | systemd-cat -t "livecdsound" printf "Selecting %s sound card as default\n" "$card" 218 | set_default_card "$card" 219 | break 220 | fi 221 | done 222 | } 223 | 224 | if [[ $# -eq 0 ]]; then 225 | echo "error: No argument passed." 226 | exit 1 227 | fi 228 | while [[ "${1}" != "" ]]; do 229 | case ${1} in 230 | -h|--help) 231 | usage 232 | exit 233 | ;; 234 | -u|--unmute) 235 | systemd-cat -t "livecdsound" printf "Unmuting all cards" 236 | unmute_all_cards 237 | ;; 238 | -p|--pick) 239 | pick_a_card 240 | ;; 241 | *) 242 | echo "error: Unsupported argument" 243 | usage 244 | exit 1 245 | ;; 246 | esac 247 | shift 248 | done 249 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/bin/menuRS.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | clear 3 | 4 | function listado(){ 5 | clear 6 | 7 | dir=$(pwd | sed 's/ /·/g') 8 | 9 | while : 10 | do 11 | echo "Select the emulator you want to associate with $valor path:" 12 | echo "1 MAME" 13 | echo "2 Super Nintendo" 14 | echo "3 Nintendo Entertainment System" 15 | echo "4 Nintendo 64" 16 | echo "5 Sega Genesis / Megadrive" 17 | echo "6 Sega Master System" 18 | echo "7 Atari 2600" 19 | echo "8 UME - BIOS" 20 | echo "9 UME - Super Nintendo" 21 | echo "10 UME - Nintendo Entertainment System" 22 | echo "11 UME - Nintendo 64" 23 | echo "12 UME - Sega Genesis / Megadrive" 24 | echo "13 UME - Sega Master System" 25 | echo "14 UME - Atari 2600" 26 | echo "15 Set all paths to default " 27 | echo "16 Exit" 28 | echo -n "Enter option: " 29 | read opcion 30 | case $opcion in 31 | 1) 32 | $ejecuta $dir Mame; 33 | echo "$dir added as MAME "$valor" path"; 34 | sleep 2 35 | clear;; 36 | 2) 37 | $ejecuta $dir Snes; 38 | echo "$dir added as Super Nintendo "$valor" path"; 39 | sleep 2 40 | clear;; 41 | 3) 42 | $ejecuta $dir Nes; 43 | echo "$dir added as Nintendo Entertainment System "$valor" path"; 44 | sleep 2 45 | clear;; 46 | 4) 47 | $ejecuta $dir N64; 48 | echo "$dir added as Nintendo 64 "$valor" path"; 49 | sleep 2 50 | clear;; 51 | 5) 52 | $ejecuta $dir Mg/Gs; 53 | echo "$dir added as Sega Megadrive/Genesis "$valor" path"; 54 | sleep 2 55 | clear;; 56 | 6) 57 | $ejecuta $dir Ms; 58 | echo "$dir added as Sega Master System "$valor" path"; 59 | sleep 2 60 | clear;; 61 | 7) 62 | $ejecuta $dir Atari; 63 | echo "$dir added as Atari 2600 "$valor" path"; 64 | sleep 2 65 | clear;; 66 | 8) 67 | $ejecuta $dir UME-Bios; 68 | echo "$dir added as UME - BIOS "$valor" path"; 69 | sleep 2 70 | clear;; 71 | 72 | 9) 73 | $ejecuta $dir UME-Snes; 74 | echo "$dir added as UME - Super Nintendo "$valor" path"; 75 | sleep 2 76 | clear;; 77 | 10) 78 | $ejecuta $dir UME-Nes; 79 | echo "$dir added as UME - Nintendo Entertainment System "$valor" path"; 80 | sleep 2 81 | clear;; 82 | 11) 83 | $ejecuta $dir UME-N64; 84 | echo "$dir added as UME - Nintendo 64 "$valor" path"; 85 | sleep 2 86 | clear;; 87 | 12) 88 | $ejecuta $dir UME-Mg/Gs; 89 | echo "$dir added as UME - Sega Megadrive / Genesis "$valor" path"; 90 | sleep 2 91 | clear;; 92 | 13) 93 | $ejecuta $dir UME-Ms; 94 | echo "$dir added as UME - Sega Master System "$valor" path"; 95 | sleep 2 96 | clear;; 97 | 14) 98 | $ejecuta $dir UME-Atari; 99 | echo "$dir added as UME - Atari 2600 "$valor" path"; 100 | sleep 2 101 | clear;; 102 | 15) 103 | sed -ri "s@^rompath.*@rompath /home/roms/MAME/roms;@g" /home/arcade/mame.ini; 104 | sed -ri "s@^rompath.*@rompath /home/roms/BIOS_roms;@g" /home/arcade/mame.ini; 105 | sed -ri "s@^emulator_roms \"MAME.*@emulator_roms \"MAME\" \"/home/roms/MAME/roms\"@g" /home/arcade/.advance/advmenup.rc; 106 | sed -ri "s@^emulator_roms \"N64.*@emulator_roms \"N64\" \"/home/roms/N64_roms\"@g" /home/arcade/.advance/advmenup.rc; 107 | sed -ri "s@^emulator_roms \"NES.*@emulator_roms \"NES\" \"/home/roms/NES_roms\"@g" /home/arcade/.advance/advmenup.rc; 108 | sed -ri "s@^emulator_roms \"SNES.*@emulator_roms \"SNES\" \"/home/roms/SNES_roms\"@g" /home/arcade/.advance/advmenup.rc; 109 | sed -ri "s@^emulator_roms \"SegaGenesis.*@emulator_roms \"SegaGenesis\" \"/home/roms/SegaGenesis_roms\"@g" /home/arcade/.advance/advmenup.rc; 110 | sed -ri "s@^emulator_roms \"MasterSystem.*@emulator_roms \"MasterSystem\" \"/home/roms/Master_roms\"@g" /home/arcade/.advance/advmenup.rc; 111 | sed -ri "s@^emulator_roms \"Atari.*@emulator_roms \"Atari2600\" \"/home/roms/Atari2600_roms\"@g" /home/arcade/.advance/advmenup.rc; 112 | 113 | sed -ri "s@^emulator_roms \"UME-N64.*@emulator_roms \"UME-N64\" \"/home/roms/N64_roms\"@g" /home/arcade/.advance/advmenup.rc; 114 | sed -ri "s@^emulator_roms \"UME-NES.*@emulator_roms \"UME-NES\" \"/home/roms/NES_roms\"@g" /home/arcade/.advance/advmenup.rc; 115 | sed -ri "s@^emulator_roms \"UME-SNES.*@emulator_roms \"UME-SNES\" \"/home/roms/SNES_roms\"@g" /home/arcade/.advance/advmenup.rc; 116 | sed -ri "s@^emulator_roms \"UME-SegaGenesis.*@emulator_roms \"UME-SegaGenesis\" \"/home/roms/SegaGenesis_roms\"@g" /home/arcade/.advance/advmenup.rc; 117 | sed -ri "s@^emulator_roms \"UME-MasterSystem.*@emulator_roms \"UME-MasterSystem\" \"/home/roms/Master_roms\"@g" /home/arcade/.advance/advmenup.rc; 118 | sed -ri "s@^emulator_roms \"UME-Atari.*@emulator_roms \"UME-Atari2600\" \"/home/roms/Atari2600_roms\"@g" /home/arcade/.advance/advmenup.rc; 119 | 120 | echo "All paths set to default." 121 | clear;; 122 | 16) 123 | echo "Bye"; 124 | exit 1;; 125 | *) 126 | 127 | echo "$opcion is not a valid option."; 128 | echo "Press any key to continue..."; 129 | read foo; 130 | clear;; 131 | esac 132 | done 133 | } 134 | 135 | clear 136 | while : 137 | do 138 | echo "Use current path as ..." 139 | echo "1 ROM path" 140 | echo "2 Snap path" 141 | echo "3 Exit" 142 | echo -n "Enter option: " 143 | read opcion 144 | case $opcion in 145 | 1) 146 | valor=ROM; 147 | ejecuta=romdir.sh; 148 | listado;; 149 | 2) 150 | valor=Snap; 151 | ejecuta=snapdir.sh; 152 | listado;; 153 | 3) 154 | echo "Bye"; 155 | exit 1;; 156 | *) 157 | 158 | echo "$opcion is not a valid option."; 159 | echo "Press any key to continue..."; 160 | read foo; 161 | clear;; 162 | esac 163 | done 164 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/bin/output.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | my $mc = ""; 4 | my $cmdline = `cat /proc/cmdline`; 5 | chomp($cmdline); 6 | my @cmdparts = split(/\s+/, $cmdline); 7 | foreach (@cmdparts) { 8 | my $line = $_; 9 | chomp($line); 10 | if ($line =~ /^video=/) { 11 | $line =~ s/video=//g; 12 | my ($c, $res) = split(/:/, $line); 13 | if ($res ne '') { 14 | if ($c =~ /DVI/) { 15 | $mc = "DVI-0"; 16 | } elsif ($c =~ /VGA/) { 17 | $mc = "VGA-0"; 18 | } elsif ($c =~ /TV/) { 19 | $mc = "TV-0"; 20 | } 21 | } 22 | } 23 | } 24 | 25 | print "Connector bootup: $mc\n"; 26 | 27 | my @outputs; 28 | my @xrandr_info = `xrandr --current`; 29 | foreach (@xrandr_info) { 30 | my $line = $_; 31 | chomp($line); 32 | 33 | if ($line =~ /connected/) { 34 | my ($output, $status, $resolution, @pos) = 35 | split(/\s+/, $line); 36 | my $num = scalar(@outputs); 37 | $outputs[$num]{'name'} = $output; 38 | $outputs[$num]{'status'} = $status; 39 | $outputs[$num]{'resolution'} = $resolution; 40 | $outputs[$num]{'position'} = "@pos"; 41 | } 42 | } 43 | 44 | my $i; 45 | for ($i = 1; $i < scalar(@outputs); $i++) { 46 | if ($outputs[$i]{'status'} eq 'connected' && $outputs[$i]{'status'} !~ /$mc/i) { 47 | print "Disable $outputs[$i]{'name'}\n"; 48 | system("xrandr --output $outputs[$i]{'name'} --off"); 49 | } else { 50 | print "Already Disabled $outputs[$i]{'name'}\n"; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/bin/romdir.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ $2 = "Mame" ] 4 | then 5 | romsfile=$(grep -r 'rompath.*' /home/arcade/mame.ini) 6 | romsfileume=$(grep -r 'rompath.*' /home/arcade/mame.ini) 7 | romsf="$romsfile$1;" 8 | romsfume="$romsfileume$1;" 9 | sed -ri "s@^rompath.*@$romsf@g" /home/arcade/mame.ini 10 | sed -ri "s@^rompath.*@$romsfume@g" /home/arcade/mame.ini 11 | romsfile=$(grep -r 'emulator_roms "MAME.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 12 | romsf="$romsfile\:$1"\" 13 | sed -ri "s@^emulator_roms \"MAME.*@$romsf@g" /home/arcade/.advance/advmenup.rc 14 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/MAME.cfg 15 | 16 | elif [ $2 = "UME-BIOS" ] 17 | then 18 | romsfileume=$(grep -r 'rompath.*' /home/arcade/mame.ini) 19 | romsfume="$romsfileume$1;" 20 | sed -ri "s@^rompath.*@$romsfume@g" /home/arcade/mame.ini 21 | 22 | elif [ $2 = "Snes" ] 23 | then 24 | romsfile=$(grep -r 'emulator_roms "SNES.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 25 | romsf="$romsfile\:$1"\" 26 | sed -ri "s@^emulator_roms \"SNES.*@$romsf@g" /home/arcade/.advance/advmenup.rc 27 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/SNES.cfg 28 | 29 | elif [ $2 = "N64" ] 30 | then 31 | romsfile=$(grep -r 'emulator_roms "N64.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 32 | romsf="$romsfile\:$1"\" 33 | sed -ri "s@^emulator_roms \"N64.*@$romsf@g" /home/arcade/.advance/advmenup.rc 34 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/N64.cfg 35 | 36 | elif [ $2 = "Nes" ] 37 | then 38 | romsfile=$(grep -r 'emulator_roms "NES.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 39 | romsf="$romsfile\:$1"\" 40 | sed -ri "s@^emulator_roms \"NES.*@$romsf@g" /home/arcade/.advance/advmenup.rc 41 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/NES.cfg 42 | 43 | elif [ $2 = "Mg/Gs" ] 44 | then 45 | romsfile=$(grep -r 'emulator_roms "SegaGenesis.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 46 | romsf="$romsfile\:$1"\" 47 | sed -ri "s@^emulator_roms \"SegaGenesis.*@$romsf@g" /home/arcade/.advance/advmenup.rc 48 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/SegaGenesis.cfg 49 | 50 | elif [ $2 = "Ms" ] 51 | then 52 | romsfile=$(grep -r 'emulator_roms "MasterSystem.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 53 | romsf="$romsfile\:$1"\" 54 | sed -ri "s@^emulator_roms \"MasterSystem.*@$romsf@g" /home/arcade/.advance/advmenup.rc 55 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/MasterSystem.cfg 56 | 57 | elif [ $2 = "Atari" ] 58 | then 59 | romsfile=$(grep -r 'emulator_roms "Atari.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 60 | romsf="$romsfile\:$1"\" 61 | sed -ri "s@^emulator_roms \"Atari.*@$romsf@g" /home/arcade/.advance/advmenup.rc 62 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/Atari2600.cfg 63 | 64 | elif [ $2 = "UME-Snes" ] 65 | then 66 | romsfile=$(grep -r 'emulator_roms "UME-SNES.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 67 | romsf="$romsfile\:$1"\" 68 | sed -ri "s@^emulator_roms \"UME-SNES.*@$romsf@g" /home/arcade/.advance/advmenup.rc 69 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/UME-SNES.cfg 70 | 71 | elif [ $2 = "UME-N64" ] 72 | then 73 | romsfile=$(grep -r 'emulator_roms "UME-N64.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 74 | romsf="$romsfile\:$1"\" 75 | sed -ri "s@^emulator_roms \"UME-N64.*@$romsf@g" /home/arcade/.advance/advmenup.rc 76 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/UME-N64.cfg 77 | 78 | elif [ $2 = "UME-Nes" ] 79 | then 80 | romsfile=$(grep -r 'emulator_roms "UME-NES.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 81 | romsf="$romsfile\:$1"\" 82 | sed -ri "s@^emulator_roms \"UME-NES.*@$romsf@g" /home/arcade/.advance/advmenup.rc 83 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/UME-NES.cfg 84 | 85 | elif [ $2 = "UME-Mg/Gs" ] 86 | then 87 | romsfile=$(grep -r 'emulator_roms "UME-SegaGenesis.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 88 | romsf="$romsfile\:$1"\" 89 | sed -ri "s@^emulator_roms \"UME-SegaGenesis.*@$romsf@g" /home/arcade/.advance/advmenup.rc 90 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/UME-SegaGenesis.cfg 91 | 92 | elif [ $2 = "UME-Megacd" ] 93 | then 94 | romsfile=$(grep -r 'emulator_roms "UME-SegaMegaCD.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 95 | romsf="$romsfile\:$1"\" 96 | sed -ri "s@^emulator_roms \"UME-SegaMegaCD.*@$romsf@g" /home/arcade/.advance/advmenup.rc 97 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/UME-SegaMegaCD.cfg 98 | 99 | elif [ $2 = "UME-32x" ] 100 | then 101 | romsfile=$(grep -r 'emulator_roms "UME-Sega32X.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 102 | romsf="$romsfile\:$1"\" 103 | sed -ri "s@^emulator_roms \"UME-Sega32X.*@$romsf@g" /home/arcade/.advance/advmenup.rc 104 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/UME-Sega32X.cfg 105 | 106 | elif [ $2 = "UME-Ms" ] 107 | then 108 | romsfile=$(grep -r 'emulator_roms "UME-MasterSystem.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 109 | romsf="$romsfile\:$1"\" 110 | sed -ri "s@^emulator_roms \"UME-MasterSystem.*@$romsf@g" /home/arcade/.advance/advmenup.rc 111 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/UME-MasterSystem.cfg 112 | 113 | elif [ $2 = "UME-Atari" ] 114 | then 115 | romsfile=$(grep -r 'emulator_roms "UME-Atari.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 116 | romsf="$romsfile\:$1"\" 117 | sed -ri "s@^emulator_roms \"UME-Atari.*@$romsf@g" /home/arcade/.advance/advmenup.rc 118 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/UME-Atari2600.cfg 119 | 120 | elif [ $2 = "UME-Psx" ] 121 | then 122 | romsfile=$(grep -r 'emulator_roms "UME-PSX.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 123 | romsf="$romsfile\:$1"\" 124 | sed -ri "s@^emulator_roms \"UME-PSX.*@$romsf@g" /home/arcade/.advance/advmenup.rc 125 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/UME-PSX.cfg 126 | 127 | elif [ $2 = "UME-Pce" ] 128 | then 129 | romsfile=$(grep -r 'emulator_roms "UME-PCEngine-Supergrafx.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 130 | romsf="$romsfile\:$1"\" 131 | sed -ri "s@^emulator_roms \"UME-PCEngine-Supergrafx.*@$romsf@g" /home/arcade/.advance/advmenup.rc 132 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/UME-PCEngine-Supergrafx.cfg 133 | 134 | elif [ $2 = "UME-3do" ] 135 | then 136 | romsfile=$(grep -r 'emulator_roms "UME-3DO.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 137 | romsf="$romsfile\:$1"\" 138 | sed -ri "s@^emulator_roms \"UME-3DO.*@$romsf@g" /home/arcade/.advance/advmenup.rc 139 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/UME-3DO.cfg 140 | 141 | elif [ $2 = "UME-Saturn" ] 142 | then 143 | romsfile=$(grep -r 'emulator_roms "UME-Saturn.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 144 | romsf="$romsfile\:$1"\" 145 | sed -ri "s@^emulator_roms \"UME-Saturn.*@$romsf@g" /home/arcade/.advance/advmenup.rc 146 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/UME-Saturn.cfg 147 | 148 | elif [ $2 = "Psx" ] 149 | then 150 | romsfile=$(grep -r 'emulator_roms "PSX.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 151 | romsf="$romsfile\:$1"\" 152 | sed -ri "s@^emulator_roms \"PSX.*@$romsf@g" /home/arcade/.advance/advmenup.rc 153 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/PSX.cfg 154 | 155 | elif [ $2 = "Pce" ] 156 | then 157 | romsfile=$(grep -r 'emulator_roms "PCEngine-Supergrafx.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 158 | romsf="$romsfile\:$1"\" 159 | sed -ri "s@^emulator_roms \"PCEngine-Supergrafx.*@$romsf@g" /home/arcade/.advance/advmenup.rc 160 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/PCEngine-Supergrafx.cfg 161 | 162 | elif [ $2 = "Saturn" ] 163 | then 164 | romsfile=$(grep -r 'emulator_roms "Saturn.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 165 | romsf="$romsfile\:$1"\" 166 | sed -ri "s@^emulator_roms \"Saturn.*@$romsf@g" /home/arcade/.advance/advmenup.rc 167 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/Saturn.cfg 168 | 169 | elif [ $2 = "UME-Jaguar" ] 170 | then 171 | romsfile=$(grep -r 'emulator_roms "UME-Jaguar.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 172 | romsf="$romsfile\:$1"\" 173 | sed -ri "s@^emulator_roms \"UME-Jaguar.*@$romsf@g" /home/arcade/.advance/advmenup.rc 174 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/Jaguar.cfg 175 | 176 | elif [ $2 = "UME-Neocd" ] 177 | then 178 | romsfile=$(grep -r 'emulator_roms "UME-NeoGeoCDZ.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 179 | romsf="$romsfile\:$1"\" 180 | sed -ri "s@^emulator_roms \"UME-NeoGeoCDZ.*@$romsf@g" /home/arcade/.advance/advmenup.rc 181 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/UME-NeoGeoCDZ.cfg 182 | 183 | elif [ $2 = "UME-Amigacd" ] 184 | then 185 | romsfile=$(grep -r 'emulator_roms "UME-AmigaCD.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 186 | romsf="$romsfile\:$1"\" 187 | sed -ri "s@^emulator_roms \"UME-AmigaCD.*@$romsf@g" /home/arcade/.advance/advmenup.rc 188 | sed -ri "s@^rompath.*@rompath $1/@g" /home/arcade/.attract/emulators/UME-AmigaCD.cfg 189 | else 190 | return 191 | fi 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/bin/snapdir.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #emulator_altss "mame" "/home/roms/snaps" 3 | if [ $2 = "Mame" ] 4 | then 5 | romsfile=$(grep -r 'emulator_altss "MAME.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 6 | romsf="$romsfile\:$1"\" 7 | sed -ri "s@^emulator_altss \"MAME.*@$romsf@g" /home/arcade/.advance/advmenup.rc 8 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/MAME.cfg 9 | 10 | elif [ $2 = "Snes" ] 11 | then 12 | romsfile=$(grep -r 'emulator_altss "SNES.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 13 | romsf="$romsfile\:$1"\" 14 | sed -ri "s@^emulator_altss \"SNES.*@$romsf@g" /home/arcade/.advance/advmenup.rc 15 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/SNES.cfg 16 | 17 | elif [ $2 = "N64" ] 18 | then 19 | romsfile=$(grep -r 'emulator_altss "N64.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 20 | romsf="$romsfile\:$1"\" 21 | sed -ri "s@^emulator_altss \"N64.*@$romsf@g" /home/arcade/.advance/advmenup.rc 22 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/N64.cfg 23 | 24 | elif [ $2 = "Nes" ] 25 | then 26 | romsfile=$(grep -r 'emulator_altss "NES.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 27 | romsf="$romsfile\:$1"\" 28 | sed -ri "s@^emulator_altss \"NES.*@$romsf@g" /home/arcade/.advance/advmenup.rc 29 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/NES.cfg 30 | 31 | elif [ $2 = "Mg/Gs" ] 32 | then 33 | romsfile=$(grep -r 'emulator_altss "SegaGenesis.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 34 | romsf="$romsfile\:$1"\" 35 | sed -ri "s@^emulator_altss \"SegaGenesis.*@$romsf@g" /home/arcade/.advance/advmenup.rc 36 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/SegaGenesis.cfg 37 | 38 | elif [ $2 = "Ms" ] 39 | then 40 | romsfile=$(grep -r 'emulator_altss "MasterSystem.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 41 | romsf="$romsfile\:$1"\" 42 | sed -ri "s@^emulator_altss \"MasterSystem.*@$romsf@g" /home/arcade/.advance/advmenup.rc 43 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/MasterSystem.cfg 44 | 45 | elif [ $2 = "Atari" ] 46 | then 47 | romsfile=$(grep -r 'emulator_altss "Atari.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 48 | romsf="$romsfile\:$1"\" 49 | sed -ri "s@^emulator_altss \"Atari.*@$romsf@g" /home/arcade/.advance/advmenup.rc 50 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/Atari2600.cfg 51 | 52 | elif [ $2 = "UME-Snes" ] 53 | then 54 | romsfile=$(grep -r 'emulator_altss "UME-SNES.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 55 | romsf="$romsfile\:$1"\" 56 | sed -ri "s@^emulator_altss \"UME-SNES.*@$romsf@g" /home/arcade/.advance/advmenup.rc 57 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/UME-SNES.cfg 58 | 59 | elif [ $2 = "UME-N64" ] 60 | then 61 | romsfile=$(grep -r 'emulator_altss "UME-N64.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 62 | romsf="$romsfile\:$1"\" 63 | sed -ri "s@^emulator_altss \"UME-N64.*@$romsf@g" /home/arcade/.advance/advmenup.rc 64 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/UME-N64.cfg 65 | 66 | elif [ $2 = "UME-Nes" ] 67 | then 68 | romsfile=$(grep -r 'emulator_altss "UME-NES.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 69 | romsf="$romsfile\:$1"\" 70 | sed -ri "s@^emulator_altss \"UME-NES.*@$romsf@g" /home/arcade/.advance/advmenup.rc 71 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/UME-NES.cfg 72 | 73 | elif [ $2 = "UME-Mg/Gs" ] 74 | then 75 | romsfile=$(grep -r 'emulator_altss "UME-SegaGenesis.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 76 | romsf="$romsfile\:$1"\" 77 | sed -ri "s@^emulator_altss \"UME-SegaGenesis.*@$romsf@g" /home/arcade/.advance/advmenup.rc 78 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/UME-SegaGenesis.cfg 79 | 80 | elif [ $2 = "UME-Megacd" ] 81 | then 82 | romsfile=$(grep -r 'emulator_altss "UME-SegaMegaCD.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 83 | romsf="$romsfile\:$1"\" 84 | sed -ri "s@^emulator_altss \"UME-SegaMegaCD.*@$romsf@g" /home/arcade/.advance/advmenup.rc 85 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/UME-SegaMegaCD.cfg 86 | 87 | elif [ $2 = "UME-32x" ] 88 | then 89 | romsfile=$(grep -r 'emulator_altss "UME-Sega32X.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 90 | romsf="$romsfile\:$1"\" 91 | sed -ri "s@^emulator_altss \"UME-Sega32X.*@$romsf@g" /home/arcade/.advance/advmenup.rc 92 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/UUME-Sega32X.cfg 93 | 94 | elif [ $2 = "UME-Ms" ] 95 | then 96 | romsfile=$(grep -r 'emulator_altss "UME-Coleco.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 97 | romsf="$romsfile\:$1"\" 98 | sed -ri "s@^emulator_altss \"UME-Coleco.*@$romsf@g" /home/arcade/.advance/advmenup.rc 99 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/UME-MasterSystem.cfg 100 | 101 | elif [ $2 = "UME-Atari" ] 102 | then 103 | romsfile=$(grep -r 'emulator_altss "UME-Atari.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 104 | romsf="$romsfile\:$1"\" 105 | sed -ri "s@^emulator_altss \"UME-Atari.*@$romsf@g" /home/arcade/.advance/advmenup.rc 106 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/UME-Atari2600.cfg 107 | 108 | elif [ $2 = "UME-Psx" ] 109 | then 110 | romsfile=$(grep -r 'emulator_altss "UME-PSX.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 111 | romsf="$romsfile\:$1"\" 112 | sed -ri "s@^emulator_altss \"UME-PSX.*@$romsf@g" /home/arcade/.advance/advmenup.rc 113 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/UME-PSX.cfg 114 | 115 | elif [ $2 = "UME-Pce" ] 116 | then 117 | romsfile=$(grep -r 'emulator_altss "UME-PCEngine-Supergrafx.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 118 | romsf="$romsfile\:$1"\" 119 | sed -ri "s@^emulator_altss \"UME-PCEngine-Supergrafx.*@$romsf@g" /home/arcade/.advance/advmenup.rc 120 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/UME-PCEngine-Supergrafx.cfg 121 | 122 | elif [ $2 = "UME-3do" ] 123 | then 124 | romsfile=$(grep -r 'emulator_altss "UME-3DO.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 125 | romsf="$romsfile\:$1"\" 126 | sed -ri "s@^emulator_altss \"UME-3DO.*@$romsf@g" /home/arcade/.advance/advmenup.rc 127 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/UME-3DO.cfg 128 | 129 | elif [ $2 = "UME-Saturn" ] 130 | then 131 | romsfile=$(grep -r 'emulator_altss "UME-Saturn.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 132 | romsf="$romsfile\:$1"\" 133 | sed -ri "s@^emulator_altss \"UME-Saturn.*@$romsf@g" /home/arcade/.advance/advmenup.rc 134 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/UME-Saturn.cfg 135 | 136 | elif [ $2 = "Psx" ] 137 | then 138 | romsfile=$(grep -r 'emulator_altss "PSX.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 139 | romsf="$romsfile\:$1"\" 140 | sed -ri "s@^emulator_altss \"PSX.*@$romsf@g" /home/arcade/.advance/advmenup.rc 141 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/PSX.cfg 142 | 143 | elif [ $2 = "Pce" ] 144 | then 145 | romsfile=$(grep -r 'emulator_altss "PCEngine-Supergrafx.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 146 | romsf="$romsfile\:$1"\" 147 | sed -ri "s@^emulator_altss \"PCEngine-Supergrafx.*@$romsf@g" /home/arcade/.advance/advmenup.rc 148 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/PCEngine-Supergrafx.cfg 149 | 150 | elif [ $2 = "Saturn" ] 151 | then 152 | romsfile=$(grep -r 'emulator_altss "Saturn.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 153 | romsf="$romsfile\:$1"\" 154 | sed -ri "s@^emulator_altss \"Saturn.*@$romsf@g" /home/arcade/.advance/advmenup.rc 155 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/Saturn.cfg 156 | 157 | elif [ $2 = "UME-Jaguar" ] 158 | then 159 | romsfile=$(grep -r 'emulator_altss "UME-Jaguar.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 160 | romsf="$romsfile\:$1"\" 161 | sed -ri "s@^emulator_altss \"UME-Jaguar.*@$romsf@g" /home/arcade/.advance/advmenup.rc 162 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/UME-Jaguar.cfg 163 | 164 | elif [ $2 = "UME-Neocd" ] 165 | then 166 | romsfile=$(grep -r 'emulator_altss "UME-NeoGeoCDZ.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 167 | romsf="$romsfile\:$1"\" 168 | sed -ri "s@^emulator_altss \"UME-NeoGeoCDZ.*@$romsf@g" /home/arcade/.advance/advmenup.rc 169 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/UME-NeoGeoCDZ.cfg 170 | 171 | elif [ $2 = "UME-Amigacd" ] 172 | then 173 | romsfile=$(grep -r 'emulator_altss "UME-AmigaCD.*' /home/arcade/.advance/advmenup.rc | sed 's/.$//g') 174 | romsf="$romsfile\:$1"\" 175 | sed -ri "s@^emulator_altss \"UME-AmigaCD.*@$romsf@g" /home/arcade/.advance/advmenup.rc 176 | sed -ri "s@^artwork screen.*@artwork screen $1/@g" /home/arcade/.attract/emulators/UME-AmigaCD.cfg 177 | 178 | else 179 | return 180 | fi 181 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/bin/wiimote: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Author: Ves 4 | # Date: 14/03/11 5 | # Version 0.2 for systemd 6 | # Created for GroovyArcade 7 | # You must change the parameters wiimote1 and wiimote2 8 | # It uses lswm to identify your wiimote 9 | 10 | Wiimote1="00:19:1D:00:00:00" 11 | Wiimote2="00:1E:A9:00:00:00" 12 | 13 | # blue=$(hciconfig) 14 | 15 | # if [ "$blue" = "" ]; then 16 | 17 | # echo no hay $blue 18 | 19 | # else 20 | 21 | echo Starting Wiimote $blue 22 | wminput -d -c ir_ptr $Wiimote1 >/dev/null 2>/dev/null & 23 | sleep 1 24 | wminput -d -c ir_ptr.2 $Wiimote2 >/dev/null 2>/dev/null & 25 | # fi 26 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/bin/xorg.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | check_output() 4 | { 5 | for karg in $KERNELCMD 6 | do 7 | IS_VIDEO=$(echo $karg | grep video=) 8 | if [ "$IS_VIDEO" != "" ]; then 9 | IS_THIS=$(echo $karg | grep $NAME) 10 | if [ "$IS_THIS" != "" ]; then 11 | return 1 12 | fi 13 | fi 14 | done 15 | return 0 16 | } 17 | 18 | create_modes() 19 | { 20 | echo 21 | echo "Section \"Modes\"" 22 | echo " Identifier \"ArcadeModes\"" 23 | switchres --calc 648 480 60 --monitor $MONITOR 2>/dev/null 24 | echo $MODELINE 25 | echo "EndSection" 26 | } 27 | 28 | #GRUB_FILE=/boot/grub/grub.conf 29 | GRUB_FILE=/boot/syslinux/syslinux.cfg 30 | ALTERNATE_GRUB=$3 31 | VBLAN="#Option \"GLXVBlank\" \"true\"" 32 | #Option "GLXVBlank" "true" 33 | 34 | PCIIDORIG=$(lspci -v|grep "VGA compatible controller"|head -1|awk {'printf("%s",$1)'}) 35 | PCIID=$(echo $PCIIDORIG | sed -e 's/\./:/'|awk {'printf("PCI:%s",$1)'}) 36 | if [[ "$(echo $PCIID|cut -d":" -f2,3,4)" =~ [a-fA-F] ]]; then 37 | a=$((0x$(echo $PCIID| cut -d":" -f2))) 38 | b=$((0x$(echo $PCIID| cut -d":" -f3))) 39 | c=$((0x$(echo $PCIID| cut -d":" -f4))) 40 | if [[ "$a" == [0-90-9] ]]; then 41 | a=0$a 42 | fi 43 | if [[ "$b" == [0-90-9] ]]; then 44 | b=0$b 45 | fi 46 | PCIID=PCI:$a:$b:$c 47 | fi 48 | 49 | ALLDEVICES=$(find /sys/devices/pci0000\:00/ -iname card\*-\*) 50 | for line in $ALLDEVICES 51 | do 52 | WORDS=$(echo "$line" | sed -e 's/\// /g') 53 | START=0 54 | for dev in $WORDS 55 | do 56 | IS_DEV=$(echo $dev | grep card[0-9]-) 57 | if [ "$START" = "1" -a "$IS_DEV" != "" ]; then 58 | THISDEV=$(echo $dev | sed -e 's/card[0-9]-//g') 59 | if [ "$DEVICES" = "" ]; then 60 | DEVICES="${THISDEV}_${PCIID}" 61 | else 62 | DEVICES="$DEVICES ${THISDEV}_${PCIID}" 63 | fi 64 | fi 65 | if [ "$dev" = "0000:$PCIIDORIG" ]; then 66 | START=1 67 | fi 68 | done 69 | done 70 | 71 | mount -a -t ext2 72 | if [ -f "$ALTERNATE_GRUB" ]; then 73 | KERNELCMD=$(cat $ALTERNATE_GRUB | grep -v ^\# | grep -i "APPEND " | head -1) 74 | elif [ -f "/boot/syslinux/syslinux.cfg" ]; then 75 | KERNELCMD=$(cat $GRUB_FILE | grep -v ^\# | grep -i "APPEND " | head -1) 76 | else 77 | KERNELCMD=$(cat /proc/cmdline) 78 | fi 79 | 80 | HAS_VIDEO=$(echo $KERNELCMD | grep video=) 81 | MONITOR=$1 82 | INTERFACE=$2 83 | if [ "$HAS_VIDEO" = "" -a "$INTERFACE" = "" ]; then 84 | # No video interface setup with 15khz 85 | echo "# No video= in kernel command line, assuming multisync SVGA" 86 | #echo "$VBLAN" 87 | exit 88 | fi 89 | 90 | if [ "$MONITOR" = "" ]; then 91 | MONITOR=generic 92 | elif [ "$MONITOR" = "multi" -a "$INTERFACE" = "" ]; then 93 | # Let xorg decide for multisync monitors 94 | echo "# Multisync SVGA monitor doesn't need a config" 95 | exit 96 | fi 97 | 98 | if [ "$INTERFACE" = "" ]; then 99 | INTERFACE=ALL 100 | else 101 | #KERNELCMD="video=${INTERFACE}" 102 | echo "# Interface $INTERFACE specified" 103 | fi 104 | 105 | #VBLAN="#Option \"GLXVBlank\" \"true\"" 106 | DRIVER=radeon 107 | LSPCI=$(lspci -v | grep $PCIIDORIG) 108 | IS_RAGE=$(echo $LSPCI | grep -i " Rage 128 ") 109 | IS_ATI=$(echo $LSPCI | grep -i "amd/ati") 110 | IS_NVIDIA=$(echo $LSPCI | grep -i " nvidia ") 111 | IS_INTEL=$(echo $LSPCI | grep -i " intel ") 112 | IS_MGA=$(echo $LSPCI | grep -i " mga ") 113 | if [ "$IS_RAGE" != "" ]; then 114 | DRIVER=r128 115 | elif [ "$IS_ATI" != "" ]; then 116 | DRIVER=radeon 117 | elif [ "$IS_NVIDIA" != "" ]; then 118 | DRIVER=nouveau 119 | VBLAN="Option \"GLXVBlank\" \"true\"" 120 | elif [ "$IS_INTEL" != "" ]; then 121 | DRIVER=intel 122 | elif [ "$IS_MGA" != "" ]; then 123 | DRIVER=mga 124 | else 125 | echo "# Unsupported video card!!!" 126 | exit 127 | fi 128 | 129 | MONITORS= 130 | for device in $DEVICES 131 | do 132 | NAME=$(echo $device | awk -F _ {'print $1'}) 133 | PCIID=$(echo $device | awk -F _ {'print $2'}) 134 | #echo "$NAME $PCIID" 135 | if ! check_output ; then 136 | XNAME= 137 | if [ "$NAME" = "DVI-I-1" ]; then 138 | XNAME=DVI-0 139 | elif [ "$NAME" = "DVI-I-2" ]; then 140 | XNAME=DVI-1 141 | elif [ "$NAME" = "VGA-1" ]; then 142 | XNAME=VGA-0 143 | elif [ "$NAME" = "VGA-2" ]; then 144 | XNAME=VGA-1 145 | fi 146 | 147 | if [ "$MONITOR" = "" ]; then 148 | MONITORS="$XNAME" 149 | else 150 | MONITORS="$MONITORS $XNAME" 151 | fi 152 | fi 153 | done 154 | 155 | echo "# Config for $MONITOR Monitor and $DRIVER Video Card" 156 | 157 | for monitor in $MONITORS 158 | do 159 | echo 160 | echo "Section \"ServerLayout\"" 161 | echo " Identifier \"General\"" 162 | echo " Screen 0 \"Screen0\" 0 0" 163 | echo " InputDevice \"WiiMote0\"" 164 | echo " InputDevice \"WiiMote1\"" 165 | echo "EndSection" 166 | echo 167 | echo "Section \"InputDevice\"" 168 | echo " Identifier \"WiiMote0\"" 169 | echo " Driver \"evdev\"" 170 | echo " Option \"Device\" \"/dev/input/event7\"" 171 | echo " Option \"SendCoreEvents\" \"True\"" 172 | echo "EndSection" 173 | echo 174 | echo "Section \"InputDevice\"" 175 | echo " Identifier \"WiiMote1\"" 176 | echo " Driver \"evdev\"" 177 | echo " Option \"Device\" \"/dev/input/event8\"" 178 | echo " Option \"SendCoreEvents\" \"True\"" 179 | echo "EndSection" 180 | echo 181 | 182 | echo 183 | echo "Section \"Monitor\"" 184 | echo " Identifier \"$monitor\"" 185 | echo " VendorName \"Unknown\"" 186 | echo " ModelName \"Unknown\"" 187 | echo 188 | echo " HorizSync 15-50" 189 | echo " VertRefresh 40-80" 190 | echo 191 | echo " Option \"DPMS\" \"False\"" 192 | echo 193 | echo " Option \"DefaultModes\" \"False\"" 194 | echo " UseModes \"ArcadeModes\"" 195 | echo "EndSection" 196 | done 197 | 198 | echo 199 | echo "Section \"Device\"" 200 | echo " Identifier \"Card0\"" 201 | echo " VendorName \"Unknown\"" 202 | echo " BoardName \"Unknown\"" 203 | echo 204 | echo " Driver \"$DRIVER\"" 205 | echo " $VBLAN" 206 | echo " #Option \"ShadowPrimary\" \"on\"" 207 | echo " BusID \"${PCIID}\"" 208 | echo 209 | echo " Option \"ModeDebug\" \"true\"" 210 | echo 211 | #echo " Option \"monitor-DVI-0\" \"DVI-0\" 212 | # Option \"monitor-DVI-1\" \"DVI-0\" 213 | # Option \"monitor-DVI-2\" \"DVI-0\" 214 | # Option \"monitor-VGA-0\" \"VGA-0\" 215 | # Option \"monitor-VGA-1\" \"VGA-0\" 216 | # Option \"monitor-VGA-2\" \"VGA-0\" 217 | #" 218 | 219 | for monitor in $MONITORS 220 | do 221 | echo " Option \"monitor-${monitor}\" \"${monitor}\"" 222 | done 223 | echo "EndSection" 224 | 225 | # Screen Section 226 | NUMBER=0 227 | for monitor in $MONITORS 228 | do 229 | echo " 230 | Section \"Screen\" 231 | Identifier \"Screen${NUMBER}\" 232 | Device \"Card0\" 233 | Monitor \"$monitor\" 234 | DefaultDepth 24 235 | SubSection \"Display\" 236 | Viewport 0 0 237 | Depth 8 238 | EndSubSection 239 | SubSection \"Display\" 240 | Viewport 0 0 241 | Depth 16 242 | EndSubSection 243 | SubSection \"Display\" 244 | Viewport 0 0 245 | Depth 24 246 | EndSubSection 247 | EndSection 248 | " 249 | NUMBER=$(expr $NUMBER + 1) 250 | done 251 | 252 | # Print out modeline 253 | create_modes 254 | #/boot/grub/grub.conf 255 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/share/X11/xorg.conf.d/10-no-composition.conf: -------------------------------------------------------------------------------- 1 | Section "Extensions" 2 | Option "Composite" "Disable" 3 | EndSection 4 | -------------------------------------------------------------------------------- /groovyarcade/airootfs/usr/local/share/livecd-sound/asound.conf.in: -------------------------------------------------------------------------------- 1 | Defaults node 2 | defaults.ctl.card %card%; 3 | defaults.pcm.card %card%; 4 | -------------------------------------------------------------------------------- /groovyarcade/efiboot/loader/entries/ga-15khz-edid-superresi.conf: -------------------------------------------------------------------------------- 1 | title GroovyArcade 15kHz EDID Super res Interlaced (x86_64, UEFI) 2 | linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-15khz 3 | initrd /%INSTALL_DIR%/boot/intel-ucode.img 4 | initrd /%INSTALL_DIR%/boot/amd-ucode.img 5 | initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-15khz.img 6 | options ${KRNL_CMDLINE} drm.edid_firmware=edid/generic_15_super_resi.bin video=e archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% 7 | -------------------------------------------------------------------------------- /groovyarcade/efiboot/loader/entries/ga-15khz-edid-superresp.conf: -------------------------------------------------------------------------------- 1 | title GroovyArcade 15kHz EDID Super res Progressive (x86_64, UEFI) 2 | linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-15khz 3 | initrd /%INSTALL_DIR%/boot/intel-ucode.img 4 | initrd /%INSTALL_DIR%/boot/amd-ucode.img 5 | initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-15khz.img 6 | options ${KRNL_CMDLINE} drm.edid_firmware=edid/generic_15_super_resp.bin video=e archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% 7 | -------------------------------------------------------------------------------- /groovyarcade/efiboot/loader/entries/ga-15khz.conf: -------------------------------------------------------------------------------- 1 | title GroovyArcade 15kHz (x86_64, UEFI) 2 | linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-15khz 3 | initrd /%INSTALL_DIR%/boot/intel-ucode.img 4 | initrd /%INSTALL_DIR%/boot/amd-ucode.img 5 | initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-15khz.img 6 | options ${KRNL_CMDLINE} video=640x480iS archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% 7 | -------------------------------------------------------------------------------- /groovyarcade/efiboot/loader/entries/ga-25khz.conf: -------------------------------------------------------------------------------- 1 | title GroovyArcade 25kHz (x86_64, UEFI) 2 | linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-15khz 3 | initrd /%INSTALL_DIR%/boot/intel-ucode.img 4 | initrd /%INSTALL_DIR%/boot/amd-ucode.img 5 | initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-15khz.img 6 | options ${KRNL_CMDLINE} video=512x384S archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% 7 | -------------------------------------------------------------------------------- /groovyarcade/efiboot/loader/entries/ga-31khz.conf: -------------------------------------------------------------------------------- 1 | title GroovyArcade 31kHz (x86_64, UEFI) 2 | linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-15khz 3 | initrd /%INSTALL_DIR%/boot/intel-ucode.img 4 | initrd /%INSTALL_DIR%/boot/amd-ucode.img 5 | initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-15khz.img 6 | options ${KRNL_CMDLINE} video=640x480S archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% 7 | -------------------------------------------------------------------------------- /groovyarcade/efiboot/loader/entries/ga-intel-nvidia.conf: -------------------------------------------------------------------------------- 1 | title GroovyArcade Intel and Nvidia 15kHz (x86_64, UEFI) 2 | linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-15khz 3 | initrd /%INSTALL_DIR%/boot/intel-ucode.img 4 | initrd /%INSTALL_DIR%/boot/amd-ucode.img 5 | initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-15khz.img 6 | options ${KRNL_CMDLINE} video=1280x480iS archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% 7 | -------------------------------------------------------------------------------- /groovyarcade/efiboot/loader/entries/ga-ntsc.conf: -------------------------------------------------------------------------------- 1 | title GroovyArcade NTSC (x86_64, UEFI) 2 | linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-15khz 3 | initrd /%INSTALL_DIR%/boot/intel-ucode.img 4 | initrd /%INSTALL_DIR%/boot/amd-ucode.img 5 | initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-15khz.img 6 | options ${KRNL_CMDLINE} video=720x480iS archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% 7 | -------------------------------------------------------------------------------- /groovyarcade/efiboot/loader/entries/ga-pal.conf: -------------------------------------------------------------------------------- 1 | title GroovyArcade PAL (x86_64, UEFI) 2 | linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-15khz 3 | initrd /%INSTALL_DIR%/boot/intel-ucode.img 4 | initrd /%INSTALL_DIR%/boot/amd-ucode.img 5 | initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-15khz.img 6 | options ${KRNL_CMDLINE} video=768x576iS archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% 7 | -------------------------------------------------------------------------------- /groovyarcade/efiboot/loader/entries/ga-svga.conf: -------------------------------------------------------------------------------- 1 | title GroovyArcade SVGA/LCD Monitor (x86_64, UEFI) 2 | linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-15khz 3 | initrd /%INSTALL_DIR%/boot/intel-ucode.img 4 | initrd /%INSTALL_DIR%/boot/amd-ucode.img 5 | initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-15khz.img 6 | options ${KRNL_CMDLINE} archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% 7 | -------------------------------------------------------------------------------- /groovyarcade/efiboot/loader/loader.conf: -------------------------------------------------------------------------------- 1 | # 2 | # SPDX-License-Identifier: GPL-3.0-or-later 3 | 4 | timeout 15 5 | default ga-15khz.conf 6 | -------------------------------------------------------------------------------- /groovyarcade/packages.x86_64: -------------------------------------------------------------------------------- 1 | #Groovymame specific 2 | #advancemenuplus-git 3 | antimicro 4 | attractplus 5 | broadcom-wl-15khz 6 | easybashgui 7 | galauncher 8 | gasetup 9 | gatools 10 | groovymame 11 | groovymame-tools 12 | joy2key 13 | linux-15khz 14 | linux-15khz-headers 15 | groovymame-extra 16 | plymouth 17 | plymouth-theme-groovy 18 | qjoypad 19 | con2fbmap 20 | switchres 21 | upd72020x-fw 22 | #Emulators and games 23 | #retroarch 24 | #mednafen 25 | #mupen64plus 26 | #snes9x 27 | #stella 28 | #yabause-gtk 29 | xmlstarlet 30 | vi-vim-symlink 31 | #Xorg part 32 | xorg 33 | xf86-video-ati 34 | xf86-video-amdgpu 35 | xf86-video-intel 36 | xf86-video-nouveau 37 | xf86-video-fbdev 38 | xf86-input-libinput 39 | #xf86-video-vmware 40 | xorg-xinit 41 | xorg-mkfontdir 42 | xorg-xmessage 43 | xterm 44 | mesa 45 | # Window manager / Desktop environment 46 | openbox 47 | lxde 48 | dialog 49 | # Hardware suff 50 | alsa-utils 51 | sof-firmware 52 | alsa-ucm-conf 53 | bluez 54 | espeak-ng 55 | fbset 56 | htop 57 | hwinfo 58 | i2c-tools 59 | lshw 60 | read-edid 61 | samba 62 | udisks2 63 | udiskie 64 | evtest 65 | # Others 66 | ttf-hack 67 | #base OS 68 | amd-ucode 69 | amdvlk 70 | arch-install-scripts 71 | b43-fwcutter 72 | base 73 | bind 74 | dosfstools 75 | edk2-shell 76 | efibootmgr 77 | ethtool 78 | exfatprogs 79 | gptfdisk 80 | intel-ucode 81 | libva-intel-driver 82 | intel-media-driver 83 | mesa-vdpau 84 | iwd 85 | linux-atm 86 | linux-firmware 87 | linux-firmware-marvell 88 | man-db 89 | man-pages 90 | mkinitcpio 91 | mkinitcpio-archiso 92 | mtools 93 | nano 94 | ndisc6 95 | nfs-utils 96 | ntfs-3g 97 | nvme-cli 98 | openssh 99 | parted 100 | pv 101 | reflector 102 | rsync 103 | rxvt-unicode-terminfo 104 | smartmontools 105 | sudo 106 | syslinux 107 | limine 108 | liminedeploy-hook 109 | systemd-resolvconf 110 | terminus-font 111 | usb_modeswitch 112 | usbutils 113 | vim 114 | vulkan-radeon 115 | wireless-regdb 116 | wireless_tools 117 | wpa_supplicant 118 | zsh 119 | -------------------------------------------------------------------------------- /groovyarcade/pacman.conf: -------------------------------------------------------------------------------- 1 | # 2 | # /etc/pacman.conf 3 | # 4 | # See the pacman.conf(5) manpage for option and repository directives 5 | 6 | # 7 | # GENERAL OPTIONS 8 | # 9 | [options] 10 | # The following paths are commented out with their default values listed. 11 | # If you wish to use different paths, uncomment and update the paths. 12 | #RootDir = / 13 | #DBPath = /var/lib/pacman/ 14 | #CacheDir = /var/cache/pacman/pkg/ 15 | #LogFile = /var/log/pacman.log 16 | #GPGDir = /etc/pacman.d/gnupg/ 17 | #HookDir = /etc/pacman.d/hooks/ 18 | HoldPkg = pacman glibc 19 | #XferCommand = /usr/bin/curl -L -C - -f -o %o %u 20 | #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u 21 | #CleanMethod = KeepInstalled 22 | Architecture = auto 23 | 24 | # Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup 25 | IgnorePkg = linux 26 | #IgnoreGroup = 27 | 28 | #NoUpgrade = 29 | #NoExtract = 30 | 31 | # Misc options 32 | #UseSyslog 33 | #Color 34 | #NoProgressBar 35 | # We cannot check disk space from within a chroot environment 36 | #CheckSpace 37 | #VerbosePkgLists 38 | ParallelDownloads = 25 39 | 40 | # By default, pacman accepts packages signed by keys that its local keyring 41 | # trusts (see pacman-key and its man page), as well as unsigned packages. 42 | SigLevel = Required DatabaseOptional 43 | LocalFileSigLevel = Optional 44 | #RemoteFileSigLevel = Required 45 | 46 | # NOTE: You must run `pacman-key --init` before first using pacman; the local 47 | # keyring can then be populated with the keys of all official Arch Linux 48 | # packagers with `pacman-key --populate archlinux`. 49 | 50 | # 51 | # REPOSITORIES 52 | # - can be defined here or included from another file 53 | # - pacman will search repositories in the order defined here 54 | # - local/custom mirrors can be added here or in separate files 55 | # - repositories listed first will take precedence when packages 56 | # have identical names, regardless of version number 57 | # - URLs will have $repo replaced by the name of the current repo 58 | # - URLs will have $arch replaced by the name of the architecture 59 | # 60 | # Repository entries are of the format: 61 | # [repo-name] 62 | # Server = ServerName 63 | # Include = IncludePath 64 | # 65 | # The header [repo-name] is crucial - it must be present and 66 | # uncommented to enable the repo. 67 | # 68 | 69 | # The testing repositories are disabled by default. To enable, uncomment the 70 | # repo name header and Include lines. You can add preferred servers immediately 71 | # after the header, and they will be used before the default mirrors. 72 | 73 | #[core-testing] 74 | #Include = /etc/pacman.d/mirrorlist 75 | 76 | Include = /etc/pacman.d/groovy-ux-repo.conf 77 | 78 | [core] 79 | Include = /etc/pacman.d/mirrorlist 80 | 81 | #[extra-testing] 82 | #Include = /etc/pacman.d/mirrorlist 83 | 84 | [extra] 85 | Include = /etc/pacman.d/mirrorlist 86 | 87 | # If you want to run 32 bit applications on your x86_64 system, 88 | # enable the multilib repositories as required here. 89 | 90 | #[multilib-testing] 91 | #Include = /etc/pacman.d/mirrorlist 92 | 93 | #[multilib] 94 | #Include = /etc/pacman.d/mirrorlist 95 | 96 | # An example of a custom package repository. See the pacman manpage for 97 | # tips on creating your own repositories. 98 | #[custom] 99 | #SigLevel = Optional TrustAll 100 | #Server = file:///home/custompkgs 101 | -------------------------------------------------------------------------------- /groovyarcade/profiledef.sh: -------------------------------------------------------------------------------- 1 | iso_name="groovyarcade" 2 | iso_label="GroovyArcade_$(date +%Y%m)" 3 | iso_publisher="Substring" 4 | iso_application="GroovyArcade Install/Live CD" 5 | iso_version="$(date +%Y.%m)" 6 | install_dir="groovyarcade" 7 | buildmodes=('iso') 8 | bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito' 'uefi-x64.systemd-boot.esp' 'uefi-x64.systemd-boot.eltorito') 9 | arch="x86_64" 10 | pacman_conf="pacman.conf" 11 | airootfs_image_tool_options=('-comp' 'xz' '-Xbcj' 'x86' '-b' '1M' '-Xdict-size' '1M') 12 | file_permissions=( 13 | ["/etc/shadow"]="0:0:400" 14 | ["/etc/group"]="0:0:644" 15 | ["/root"]="0:0:750" 16 | ["/usr/local/bin/choose-mirror"]="0:0:755" 17 | ["/usr/local/bin/Installation_guide"]="0:0:755" 18 | ["/usr/local/bin/livecd-sound"]="0:0:755" 19 | ["/usr/local/bin/attlist.sh"]="0:0:755" 20 | ["/usr/local/bin/automount.sh"]="0:0:755" 21 | ["/usr/local/bin/changepass.pl"]="0:0:755" 22 | ["/usr/local/bin/evtestlist"]="0:0:755" 23 | ["/usr/local/bin/gasetup"]="0:0:755" 24 | ["/usr/local/bin/gdrivedl"]="0:0:755" 25 | ["/usr/local/bin/genres.pl"]="0:0:755" 26 | ["/usr/local/bin/menuRS.sh"]="0:0:755" 27 | ["/usr/local/bin/output.pl"]="0:0:755" 28 | ["/usr/local/bin/romdir.sh"]="0:0:755" 29 | ["/usr/local/bin/snapdir.sh"]="0:0:755" 30 | ["/usr/local/bin/UpdateGroovyMame.sh"]="0:0:755" 31 | ["/usr/local/bin/Updatemenu.sh"]="0:0:755" 32 | ["/usr/local/bin/wiimote"]="0:0:755" 33 | ["/usr/local/bin/xorg.sh"]="0:0:755" 34 | ["/home/arcade"]="1000:1000:777" 35 | ) 36 | -------------------------------------------------------------------------------- /groovyarcade/syslinux/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/substring/os/385089762709c88d87c542d331de3d2bac0cb673/groovyarcade/syslinux/splash.png -------------------------------------------------------------------------------- /groovyarcade/syslinux/syslinux.cfg: -------------------------------------------------------------------------------- 1 | UI vesamenu.c32 2 | PROMPT 0 3 | TIMEOUT 3000 4 | 5 | 6 | MENU BACKGROUND splash.png 7 | MENU CLEAR 8 | MENU ROWS 12 9 | MENU MARGIN 0 10 | MENU VSHIFT 9 11 | MENU TABMSGROW 15 12 | MENU CMDLINEROW 16 13 | MENU HELPMSGROW 16 14 | MENU HELPMSGENDROW 29 15 | 16 | # KERNEL_DEFAULT_CMDLINE=${KRNL_CMDLINE} 17 | 18 | # Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu 19 | 20 | MENU COLOR BORDER * #00000000 #00000000 none 21 | MENU COLOR TITLE 0 #ffffffff #00000000 none 22 | MENU COLOR SEL 7;37;40 #e0ffffff #20ffffff all 23 | MENU COLOR UNSEL 0 #ffffffff #00000000 none 24 | MENU COLOR HELP 0 #ffffffff #00000000 none 25 | MENU COLOR TIMEOUT 0 #ffffffff #00000000 none 26 | MENU COLOR TIMEOUT_MSG 0 #ffffffff #00000000 none 27 | MENU COLOR TABMSG * #ffffffff #00000000 none 28 | MENU COLOR CMDMARK 0 #ffffffff #00000000 none 29 | MENU COLOR CMDLINE 0 #ffffffff #00000000 none 30 | #--------------------- 31 | 32 | LABEL [15khz] 33 | MENU LABEL [15khz] 34 | LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-15khz ${KRNL_CMDLINE} video=640x480iS 35 | INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-15khz.img 36 | APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% 37 | 38 | LABEL [25khz] 39 | MENU LABEL [25khz] 40 | LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-15khz ${KRNL_CMDLINE} video=512x384S 41 | INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-15khz.img 42 | APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% 43 | 44 | LABEL [31khz] 45 | MENU LABEL [31khz] 46 | LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-15khz ${KRNL_CMDLINE} video=640x480S 47 | INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-15khz.img 48 | APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% 49 | 50 | LABEL [SVGA/LCD Monitor] 51 | MENU LABEL [SVGA/LCD Monitor] 52 | LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-15khz ${KRNL_CMDLINE} 53 | INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-15khz.img 54 | APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% 55 | 56 | LABEL [Intel and Nvidia 15kHz] 57 | MENU LABEL [Intel and Nvidia 15kHz] 58 | LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-15khz ${KRNL_CMDLINE} video=1280x480iS 59 | INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/groovyarcade/boot/%ARCH%/initramfs-linux-15khz.img 60 | APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% 61 | 62 | LABEL [NTSC] 63 | MENU LABEL [NTSC] 64 | LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-15khz ${KRNL_CMDLINE} video=720x480iS 65 | INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-15khz.img 66 | APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% 67 | 68 | LABEL [PAL] 69 | MENU LABEL [PAL] 70 | LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-15khz ${KRNL_CMDLINE} video=768x576iS 71 | INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-15khz.img 72 | APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% 73 | 74 | LABEL [EDID Progressive] 75 | MENU LABEL [EDID Progressive] 76 | LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-15khz ${KRNL_CMDLINE} drm.edid_firmware=edid/generic_15_super_resp.bin video=e 77 | INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-15khz.img 78 | APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% 79 | 80 | LABEL [EDID Interlaced] 81 | MENU LABEL [EDID Interlaced] 82 | LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-15khz ${KRNL_CMDLINE} drm.edid_firmware=edid/generic_15_super_resi.bin video=e 83 | INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-15khz.img 84 | APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% 85 | 86 | LABEL Hardware Detection Tool 87 | MENU LABEL Hardware Detection Tool 88 | .COM32 hdt.c32 89 | 90 | LABEL Boot from first Hard Drive 91 | MENU LABEL Boot existing OS 92 | COM32 chain.c32 93 | APPEND hd0 0 94 | -------------------------------------------------------------------------------- /include.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # useful variables 4 | export _OUTPUT= 5 | # Check we are running in a pipeline, that is in CI 6 | if [[ -d ./work ]] ; then 7 | _OUTPUT=./work/output 8 | elif [[ -d /work ]] ; then 9 | _OUTPUT=/work/output 10 | else 11 | echo "ERROR: could not define work/output folder" >&2 12 | exit 1 13 | fi 14 | 15 | logstamp() { 16 | #LC_NUMERIC="en_US.UTF-8" printf "[%12.2f]" `awk '{printf $1}' /proc/uptime` 17 | printf "[%14d]" "$SECONDS" 18 | } 19 | 20 | log () { 21 | echo -e "\e[1m$(logstamp) \e[21m\e[7m$* \e[0m" 22 | } 23 | 24 | # 25 | # log and die 26 | # 27 | die () { 28 | log "${@:2}" 29 | exit "$1" 30 | } 31 | 32 | # 33 | # make a single built_packages file 34 | # 35 | built_packages_list() { 36 | filename="$_OUTPUT"/unique_packages.txt 37 | cat "$_OUTPUT"/built_packages* | sort | uniq > "$filename" 38 | echo $filename 39 | } 40 | -------------------------------------------------------------------------------- /release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | source settings 5 | source include.sh 6 | 7 | cancel_and_exit() { 8 | echo "Required cancel of release. Deleting the release" >&2 9 | delete_release 10 | exit 1 11 | } 12 | 13 | # 14 | # Check we have something to upload 15 | # 16 | need_assets() { 17 | if [[ ! -d "$_OUTPUT" ]] ; then 18 | echo "ERROR: no work dir found" 19 | exit 1 20 | fi 21 | } 22 | 23 | # 24 | # Create a release 25 | # 26 | create_release() { 27 | echo "Creating release $tag" 28 | $ghr release create "$tag" \ 29 | -R "$GITHUB_USER"/"$GITHUB_REPO" \ 30 | --title "$release_name" \ 31 | --notes "$(prepare_description)" \ 32 | --prerelease 33 | } 34 | 35 | # 36 | # Upload the iso 37 | # 38 | upload_iso() { 39 | need_assets 40 | 41 | [[ ! -f ${_OUTPUT}/${_iso}.xz ]] && cancel_and_exit 42 | 43 | echo "Uploading ${_iso}.xz..." 44 | $ghr release upload "$tag" \ 45 | "${_OUTPUT}/${_iso}.xz" \ 46 | -R "$GITHUB_USER"/"$GITHUB_REPO" \ 47 | --clobber || cancel_and_exit 48 | echo "Uploading pkglist.x86_64.txt" 49 | $ghr release upload "$tag" "${_OUTPUT}/pkglist.x86_64.txt" \ 50 | -R "$GITHUB_USER"/"$GITHUB_REPO" \ 51 | --clobber || cancel_and_exit 52 | } 53 | 54 | # 55 | # Prepare a description 56 | # 57 | 58 | prepare_description() { 59 | last_tag=$(git describe --tags --abbrev=0 @^) 60 | last_tag_date=$(git log -1 --format=%ai "$last_tag") 61 | os_commits_since_last_tag=$(git log --pretty=format:%s "$last_tag"..@ | sed "s/^/- /") 62 | 63 | [[ -d packages ]] && rm -rf packages 64 | git clone --single-branch https://gitlab.com/groovyarcade/packages.git 65 | cd packages 66 | packages_commits_since_last_tag=$(git log --pretty=format:%s --since="$last_tag_date" | sed "s/^/- /") 67 | cd .. 68 | 69 | [[ -d gatools ]] && rm -rf gatools 70 | git clone --single-branch https://gitlab.com/groovyarcade/tools/gatools.git 71 | cd gatools 72 | gatools_commits_since_last_tag=$(git log --pretty=format:%s --since="$last_tag_date" | sed "s/^/- /") 73 | cd .. 74 | 75 | [[ -d gasetup ]] && rm -rf gasetup 76 | git clone --single-branch https://gitlab.com/groovyarcade/gasetup.git 77 | cd gasetup 78 | gasetup_commits_since_last_tag=$(git log --pretty=format:%s --since="$last_tag_date" | sed "s/^/- /") 79 | cd .. 80 | 81 | pkg_version=$( 91 | Packages included:\n\n 92 | $pkg_version 93 | 94 | ") 95 | echo "$final_desc" 96 | } 97 | 98 | # 99 | # Make the release definitive 100 | # 101 | publish_release() { 102 | echo "Publihing release $tag" 103 | $ghr release edit "$tag" \ 104 | -R "$GITHUB_USER"/"$GITHUB_REPO" \ 105 | --title "GroovyArcade $tag" \ 106 | --notes "$(prepare_description)" || cancel_and_exit 107 | } 108 | 109 | # 110 | # Remove a release 111 | # 112 | delete_release() { 113 | echo "Deleting release $tag..." 114 | $ghr release delete "$tag" \ 115 | -R "$GITHUB_USER"/"$GITHUB_REPO" \ 116 | --yes || return 0 117 | } 118 | 119 | _iso="groovyarcade-$(date +%Y.%m)-x86_64.iso" 120 | tag=${GA_VERSION} 121 | 122 | release_name="GroovyArcade $tag" 123 | ghr=gh 124 | 125 | # Make sure all env vars exist 126 | export GITHUB_TOKEN=${GITHUB_TOKEN:-$(<./GITHUB_TOKEN)} 127 | [[ -z $GITHUB_USER ]] && (echo "GITHUB_USER is undefined, cancelling." ; exit 1 ;) 128 | [[ -z $GITHUB_REPO ]] && (echo "GITHUB_REPO is undefined, cancelling." ; exit 1 ;) 129 | # Allow a local build to release, the CI sets the GITHUB_TOKEN env var 130 | if [[ -z $GITHUB_TOKEN ]] ; then 131 | echo "GITHUB_TOKEN is undefined, cancelling." 132 | exit 1 133 | fi 134 | 135 | # Parse command line 136 | while getopts "cipdo" option; do 137 | case "${option}" in 138 | c) 139 | create_release 140 | ;; 141 | i) 142 | upload_iso 143 | ;; 144 | p) 145 | publish_release 146 | ;; 147 | d) 148 | delete_release 149 | ;; 150 | o) 151 | prepare_description 152 | ;; 153 | *) 154 | echo "ERROR: options can be -c -i -p or -d only" >&2 155 | exit 1 156 | ;; 157 | esac 158 | done 159 | -------------------------------------------------------------------------------- /settings: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # GROOVYARCADE details 3 | export GA_VERSION=testing 4 | if [[ ! -z "$RELEASE" ]] ; then 5 | GA_VERSION="$RELEASE" 6 | elif [[ ! -z ${CI_COMMIT_TAG} ]] ; then 7 | GA_VERSION=${CI_COMMIT_TAG} 8 | elif [[ ! -z ${CI_COMMIT_REF_SLUG} && ${CI_COMMIT_REF_SLUG} != "master" ]] ; then 9 | GA_VERSION=${CI_COMMIT_REF_SLUG} 10 | fi 11 | --------------------------------------------------------------------------------