GBSPLAYRC(5)

๐Ÿ’– GBSPLAYRC(5) โ€” the gameboy sound player config file, bestie edition ๐Ÿ’–

okay so this is the manual for gbsplayrc(5), aka the config file for the Gameboy sound player. Yeah. That one. The one you keep opening and closing without reading. Sit down, bestie, we're doing this together. ๐ŸŽ€


๐ŸŒธ NAME ๐ŸŒธ

gbsplayrc โ€” the Gameboy sound player configuration file. That's it. That's the name. Gorgeous. Iconic. No notes.


โœจ DESCRIPTION โœจ

This manpage is here to describe the configuration file format of gbsplay(1). So if you've ever stared at a gbsplayrc wondering "what is any of this", welcome, you're in the right place, and also same. ๐Ÿซถ


๐Ÿ“ SYNTAX ๐Ÿ“

A configuration file is a text file. That's it! A humble little text file. And inside it, you can put options for gbsplay(1), plus comments because you deserve to leave yourself little notes.

  • Comments start with a hash mark (#) and they just keep going until the end of the line. No take-backs, no closing tag, the whole rest of the line is vibes and commentary. ๐Ÿ’…
  • Whitespace is ignored. Including empty lines. Blank lines are free, bestie, use them liberally, aesthetic spacing is a love language.
  • To set an option: write the option name, then an equal sign (=), then the value. Like:
option_name = value

That's the whole ritual. No semicolons, no braces, no drama. Periodt. ๐Ÿ‘‘

๐Ÿ” Option value types ๐Ÿ”

So options don't all want the same kind of value, right? Here's the menu of what a value can be:

Boolean

An integer number in decimal. 0 means false. Literally anything else means true. That's the whole rule. Zero is a hater, everything else is a yes. โœ…

Endian

A string that picks your endianness:

  • native โ€” native endian. Your machine's own vibe. ๐Ÿ 
  • little โ€” little endian.
  • big โ€” big endian.
For backwards compatibility you can also use just the first character of each option: n, l, or b. Short and sweet, she's efficient. ๐Ÿ’…

Filter type

A string that picks your output high-pass filter:

  • dmg โ€” Gameboy Classic. The OG. The blueprint. ๐ŸŽฎ
  • cgb โ€” Gameboy Color. She's got range. ๐ŸŒˆ
  • off โ€” no filter. Raw. Unfiltered. Unbothered.

Integer

An integer number in decimal. That's it. A number. In decimal. We're not doing hex today, bestie. ๐Ÿ”ข

Loop mode

A string that picks your loop mode:

  • none โ€” no looping. One and done.
  • range โ€” loop over selected subsongs.
  • single โ€” loop a single subsong. Just the one. Main character behavior.
Peep the LOOP MODES section in gbsplay(1) for the deets. ๐Ÿ‘€

Play mode

A string that picks your play mode:

  • linear โ€” play subsongs in linear order. Orderly. Predictable. Respectable.
  • random โ€” play subsongs in random order, where every subsong can be played multiple times. Chaos. Repeated chaos. ๐ŸŽฒ
  • shuffle โ€” play subsongs in random order, where every subsong is played only once. Chaos, but make it fair. ๐ŸŽฒโœจ

Plugin

The name of an output plugin. And because we're helpful girlies: run gbsplay -o list to get a list of all available output plugins. Go look. We'll wait. ๐Ÿฆ‹


๐Ÿ”ฅ OPTIONS ๐Ÿ”ฅ

Here's the good part. Every single one. No skips, no skimming, we're thorough in this house.

  • endian = Endian โ€” Sets the output endianness. Which way do the bytes go? This decides. ๐Ÿงญ
  • fadeout = Integer โ€” Sets the fadeout time, in seconds. Instead of cutting the subsong off hard (brutal, honestly, rude), you get a soft fadeout. Gentle. Considerate. Slay. ๐ŸŒ…
  • filter_type = Filter type โ€” Sets the output high-pass filter. Pick your flavor from the Filter type list above. ๐ŸŽ›๏ธ
  • loop = Boolean โ€” When enabled, sets the loop mode to "range". When disabled, sets it to "none". Deprecated in favor of the loop_mode option, so ngl, she's a legacy queen โ€” still valid, but loop_mode is the moment. โš ๏ธ
  • loop_mode = Loop mode โ€” Sets the desired loop mode. The new girl. The one you should actually be using. ๐Ÿ’…
  • output_plugin = Plugin โ€” Sets the sound output plugin. Where does the sound go? Here's your answer. ๐Ÿ”Š
  • play_mode = Play mode โ€” Sets the desired play mode. Linear, random, or shuffle. Choose your adventure. ๐ŸŽง
  • rate = Integer โ€” Sets the samplerate in Hz. Numbers. Audio numbers. Beautiful. ๐Ÿ“ˆ
  • refresh_delay = Integer โ€” Sets the refresh delay in milliseconds. Larger values will lower CPU usage, but heads up: things like subsong changes, fadeouts, reactions to keypresses, and the on-screen display will be delayed. So it's a trade-off, bestie. Cheap on the CPU, slow on the vibes. ๐Ÿ˜ญ
  • silence_timeout = Integer โ€” Sets the silence timeout in seconds. When a subsong contains silence for the given time, the player will skip to the next subsong. Silence detected, moving on. ๐Ÿคซ
  • subsong_gap = Integer โ€” Sets the subsong gap in seconds. Before playing the next subsong after the subsong timeout, subsong_gap seconds of silence will be played. A little breather. A pause for the cause. ๐ŸŒฌ๏ธ
  • subsong_timeout = Integer โ€” Sets the subsong timeout in seconds. When a subsong has been played for the given time, the player will skip to the next subsong. And plot twist: a timeout of 0 seconds disables automatic subsong changes. Zero means never, periodt. ๐Ÿ›‘
  • verbosity = Integer โ€” Sets the verbosity level (default: 3). A value of 0 means no messages on stdout. Silence. Total silence. If you want a quiet terminal, you know what to do. ๐Ÿค

๐Ÿ“‚ FILES ๐Ÿ“‚

  • /etc/gbsplayrc โ€” Default location of the global configuration file. The one that belongs to everyone. ๐Ÿ›๏ธ
  • ~/.gbsplayrc โ€” The user configuration file. Yours. Personal. Customized. This is your moment. ๐Ÿซถ

๐Ÿ’€ BUGS ๐Ÿ’€

If you encounter bugs โ€” and bestie, sometimes you will โ€” please report them via https://github.com/mmitch/gbsplay/issues. Do not suffer in silence. Do not gaslight yourself into thinking it's a feature. Go tell the devs. They want to know. ๐Ÿ“ฃ


๐ŸŒŸ EXAMPLE ๐ŸŒŸ

A simple configuration file might look like this:

# select NAS output plugin and play subsongs for at most 5 minutes
output_plugin = nas
subsong_timeout = 300

Look at her. Two lines, one comment, and she's doing the absolute most. Setting the output_plugin to nas and capping subsongs at subsong_timeout = 300 seconds (that's 5 minutes, iykyk). Iconic. Simple. Effective. ๐ŸŒˆ


๐Ÿ‘‘ AUTHORS ๐Ÿ‘‘

gbsplay was written by Tobias Diedrich <ranma+gbsplay@tdiedrich.de> โ€” with contributions from others, see README.md. Shoutout to everyone who touched this codebase, fr fr. ๐Ÿ™Œ


gbsplay is licensed under GNU GPL v1 or, at your option, any later version. Read the license, love the license, respect the license. ๐Ÿ“œ


๐Ÿฆ‹ SEE ALSO ๐Ÿฆ‹

Go read those too, bestie. They're the whole ecosystem. ๐ŸŒธ


and that's the page!! you made it to the end, so proud of you ๐Ÿ’– this was the gbsplayrc(5) manpage from the gbsplay project, version 0.0.102, written by Tobias Diedrich, dated back in the day โ€” go forth and configure your Gameboy sound player like the main character you are ๐ŸŽ€โœจ๐Ÿ’…

๐Ÿ“ฆ where this page comes from