• Stars
    star
    220
  • Rank 180,422 (Top 4 %)
  • Language
    Shell
  • Created over 2 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A collection of steamdeck startup animations, plus a script to randomize your startup on each boot

steamdeck_startup_animations

A collection of steamdeck startup animations, plus a script to randomize your startup on each boot

So far, I've made boot animations from the following consoles:

  • dreamcast
  • ps1
  • ps2
  • ps4
  • switch
  • gamecube
  • ps2
  • switchfirst (first boot animation)
  • switch (regular boot animation)
  • xbox
  • xbox 360
  • xbox one

Installation

curl -o - https://raw.githubusercontent.com/kageurufu/steamdeck_startup_animations/main/install.sh | bash -

If you're (justifiably) not a fan of curl | bash, you can run this:

mkdir -p "$HOME/homebrew"
mkdir -p "$HOME/.config/systemd/user"
git clone https://github.com/kageurufu/steamdeck_startup_animations "$HOME/homebrew/startup_animations"
ln -sf "$HOME/homebrew/startup_animations/randomize_deck_startup.service" "$HOME/.config/systemd/user/randomize_deck_startup.service"
systemctl --user daemon-reload
systemctl --user enable --now randomize_deck_startup.service

Uninstallation

bash $HOME/homebrew/startup_animations/uninstall.sh

Making an animation (somewhat advanced)

I used youtube-dl to grab the best video and audio tracks from youtube, and then ffmpeg to merge them, resizing down to fit the Deck's 1280x800 screen. Then I use truncate to make the file the right size.

This all does work on the steamdeck

Getting the dependencies

python3 -m ensurepip
~/.local/bin/pip install --user youtube-dl

Creating the animation

# Get ps1.webm and ps1.m4a. Your file extensions may differ here
~/.local/bin/youtube-dl -f bestvideo -o 'ps1.%(ext)s' https://www.youtube.com/watch?v=1JwbfIi5Uio
~/.local/bin/youtube-dl -f bestaudio -o 'ps1.%(ext)s' https://www.youtube.com/watch?v=1JwbfIi5Uio

# Convert the video from whatever input formats to a webm video in VP9 encoding, with vorbis encoded audio
ffmpeg -i ps1.webm -i ps1.m4a \
       -map 0:v:0  -map 1:a:0 \
       -filter:v "scale='min(1280,iw)':min'(800,ih)':force_original_aspect_ratio=decrease,pad=1280:800:(ow-iw)/2:(oh-ih)/2" \
       -c:v vp9 \
       -c:a libvorbis \
       my_deck_startup_ps1.webm

# Make sure the generated file is less than 1840847B here
# Mine was `389670`, plenty small enough
stat -c '%s' my_deck_startup_ps1.webm

truncate -s 1840847 my_deck_startup_ps1.webm

The ffmpeg command is a bit confusing, so heres a breakdown

  • -i ps1.webm -i ps1.m4a
    Load both the video and audio files we downloaded.
  • -map 0:v:0 -map 1:a:0
    Only use the first video stream from the first file, and first audio stream from the second.
    This prevents having multiple video or audio streams in the final file
  • -filter:v "scale='min(1280,iw)':min'(800,ih)':force_original_aspect_ratio=decrease,pad=1280:800:(ow-iw)/2:(oh-ih)/2"
    This is most confusing part, basically we're resizing the video to fit 1280x800
    min'(1280,iw)':min'(800,ih)' ensures the target size is never upscaled
    force_original_aspect_ratio=decrease scales to fit within a given size, keeping the original aspect ratio
    pad=1280:800:(ow-iw)/2:(oh-ih)/2 pad the video size to 1280:800, centering the original video. This is optional and I might not use it in the future
  • -c:v vp9 c:a libvorbis Select our output VP9 / vorbis codecs

More Repositories

1

preprocess_cancellation

Klipper Exclude Object Preprocessor for multiple slicers
G-code
152
star
2

steamdeck-tricks

Tricks and Tips I put together setting up my Steamdeck
40
star
3

AsyncIRC

Dependency-free multithreaded buffered non-blocking IRC Library in Python
Python
37
star
4

PITB

22
star
5

psvtools

PSV file trimmer, restoration, and validation utility (Python)
Python
17
star
6

3dp-voron2

Frank's Voron 2.4
Python
12
star
7

FaceMaker

Web based watchface designer for Facer (Android Wear)
JavaScript
9
star
8

ImgurMirror

Basic caching php mirror for imgur
PHP
9
star
9

flask-sandbox

A Flask plugin to restrict blueprints to specific users
Python
7
star
10

steam-batch-register-keys

Batch register keys on steam using https://store.steampowered.com/account/registerkey
JavaScript
5
star
11

printer-mods

My printer mods, mostly for Vorons
4
star
12

dockerfiles

A general repository for my dockerfiles
Python
3
star
13

rustboot

Rust EFI kernel
Rust
3
star
14

mamedb

A web based mame game search engine
Python
3
star
15

arch-dracut-hook

A set of libalpm hooks to make dracut easier to use for Archlinux
Shell
2
star
16

USBTypeCReader

A simple android application to read the output of the system power supply drivers, and display some helpful advice
Java
2
star
17

pam-python

C
1
star
18

Voron-Parts-Guide

Dockerfile
1
star
19

unbarracuda

a Chrome extension to help get around a web filter
JavaScript
1
star
20

elm-websockets

Simple-ish elm websockets
Elm
1
star
21

certbot-dns-dreamhost

Python
1
star
22

dotfiles

My dotfiles
Vim Script
1
star
23

flask-couchdb

This library helps you use CouchDB with Flask.
Python
1
star
24

tuning-corvette-wr4ith

My repo for tuning and tweaking my corvette's engine and transmission. Also, notes on other mods, specs, and dyno sheets most likely when I get some
1
star