systemdefs

package
v2.11.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 27, 2026 License: GPL-3.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MediaTypeGame        = slugs.MediaTypeGame
	MediaTypeMovie       = slugs.MediaTypeMovie
	MediaTypeTVShow      = slugs.MediaTypeTVShow
	MediaTypeMusic       = slugs.MediaTypeMusic
	MediaTypeImage       = slugs.MediaTypeImage
	MediaTypeAudio       = slugs.MediaTypeAudio
	MediaTypeVideo       = slugs.MediaTypeVideo
	MediaTypeApplication = slugs.MediaTypeApplication
)

Re-export MediaType constants from slugs package for convenience.

View Source
const (
	System3DO               = "3DO"
	System3DS               = "3DS"
	SystemAdventureVision   = "AdventureVision"
	SystemArcadia           = "Arcadia"
	SystemAstrocade         = "Astrocade"
	SystemAmigaCD32         = "AmigaCD32"
	SystemAtari2600         = "Atari2600"
	SystemAtari5200         = "Atari5200"
	SystemAtari7800         = "Atari7800"
	SystemAtariLynx         = "AtariLynx"
	SystemAtariXEGS         = "AtariXEGS"
	SystemCasioPV1000       = "CasioPV1000"
	SystemCDI               = "CDI"
	SystemChannelF          = "ChannelF"
	SystemColecoVision      = "ColecoVision"
	SystemCreatiVision      = "CreatiVision"
	SystemDreamcast         = "Dreamcast"
	SystemFDS               = "FDS"
	SystemGamate            = "Gamate"
	SystemGameboy           = "Gameboy"
	SystemGameboyColor      = "GameboyColor"
	SystemGameboy2P         = "Gameboy2P"
	SystemGameCube          = "GameCube"
	SystemGameGear          = "GameGear"
	SystemGameNWatch        = "GameNWatch"
	SystemGameCom           = "GameCom"
	SystemGBA               = "GBA"
	SystemGBA2P             = "GBA2P"
	SystemGenesis           = "Genesis"
	SystemGenesisMSU        = "GenesisMSU"
	SystemIntellivision     = "Intellivision"
	SystemJaguar            = "Jaguar"
	SystemJaguarCD          = "JaguarCD"
	SystemMasterSystem      = "MasterSystem"
	SystemMegaCD            = "MegaCD"
	SystemMegaDuck          = "MegaDuck"
	SystemNDS               = "NDS"
	SystemNeoGeo            = "NeoGeo"
	SystemNeoGeoAES         = "NeoGeoAES"
	SystemNeoGeoMVS         = "NeoGeoMVS"
	SystemNeoGeoCD          = "NeoGeoCD"
	SystemNeoGeoPocket      = "NeoGeoPocket"
	SystemNeoGeoPocketColor = "NeoGeoPocketColor"
	SystemNES               = "NES"
	SystemNESMusic          = "NESMusic"
	SystemNintendo64        = "Nintendo64"
	SystemOdyssey2          = "Odyssey2"
	SystemOuya              = "Ouya"
	SystemPCFX              = "PCFX"
	SystemPocketChallengeV2 = "PocketChallengeV2"
	SystemPokemonMini       = "PokemonMini"
	SystemPSX               = "PSX"
	SystemPS2               = "PS2"
	SystemPS3               = "PS3"
	SystemPS4               = "PS4"
	SystemPS5               = "PS5"
	SystemPSP               = "PSP"
	SystemSega32X           = "Sega32X"
	SystemSeriesXS          = "SeriesXS"
	SystemSG1000            = "SG1000"
	SystemSuperGameboy      = "SuperGameboy"
	SystemSuperVision       = "SuperVision"
	SystemSaturn            = "Saturn"
	SystemSNES              = "SNES"
	SystemSNESMSU1          = "SNESMSU1"
	SystemSGBMSU1           = "SGBMSU1"
	SystemSNESMusic         = "SNESMusic"
	SystemSuperGrafx        = "SuperGrafx"
	SystemSwitch            = "Switch"
	SystemTurboGrafx16      = "TurboGrafx16"
	SystemTurboGrafx16CD    = "TurboGrafx16CD"
	SystemVC4000            = "VC4000"
	SystemVectrex           = "Vectrex"
	SystemVirtualBoy        = "VirtualBoy"
	SystemVita              = "Vita"
	SystemWii               = "Wii"
	SystemWiiU              = "WiiU"
	SystemWonderSwan        = "WonderSwan"
	SystemWonderSwanColor   = "WonderSwanColor"
	SystemXbox              = "Xbox"
	SystemXbox360           = "Xbox360"
	SystemXboxOne           = "XboxOne"
	SystemMultivision       = "Multivision"
	SystemVideopacPlus      = "VideopacPlus"
	SystemNGage             = "NGage"
	SystemSocrates          = "Socrates"
	SystemSuperACan         = "SuperACan"
	SystemSufami            = "Sufami"
	SystemVSmile            = "VSmile"
)

Consoles

View Source
const (
	SystemAcornAtom      = "AcornAtom"
	SystemAcornElectron  = "AcornElectron"
	SystemArchimedes     = "Archimedes"
	SystemAliceMC10      = "AliceMC10"
	SystemAmiga          = "Amiga"
	SystemAmiga500       = "Amiga500"
	SystemAmiga1200      = "Amiga1200"
	SystemAmstrad        = "Amstrad"
	SystemAmstradPCW     = "AmstradPCW"
	SystemApogee         = "Apogee"
	SystemAppleI         = "AppleI"
	SystemAppleII        = "AppleII"
	SystemAquarius       = "Aquarius"
	SystemAtari800       = "Atari800"
	SystemBBCMicro       = "BBCMicro"
	SystemBK0011M        = "BK0011M"
	SystemC16            = "C16"
	SystemC64            = "C64"
	SystemCasioPV2000    = "CasioPV2000"
	SystemCoCo2          = "CoCo2"
	SystemDOS            = "DOS"
	SystemEDSAC          = "EDSAC"
	SystemGalaksija      = "Galaksija"
	SystemInteract       = "Interact"
	SystemJupiter        = "Jupiter"
	SystemLaser          = "Laser"
	SystemLynx48         = "Lynx48"
	SystemMacPlus        = "MacPlus"
	SystemMacOS          = "MacOS"
	SystemMSX            = "MSX"
	SystemMSX1           = "MSX1"
	SystemMSX2           = "MSX2"
	SystemMSX2Plus       = "MSX2Plus"
	SystemMultiComp      = "MultiComp"
	SystemOrao           = "Orao"
	SystemOric           = "Oric"
	SystemPC             = "PC"
	SystemPCXT           = "PCXT"
	SystemPDP1           = "PDP1"
	SystemPET2001        = "PET2001"
	SystemPMD85          = "PMD85"
	SystemQL             = "QL"
	SystemRX78           = "RX78"
	SystemSAMCoupe       = "SAMCoupe"
	SystemScummVM        = "ScummVM"
	SystemSordM5         = "SordM5"
	SystemSpecialist     = "Specialist"
	SystemSVI328         = "SVI328"
	SystemTatungEinstein = "TatungEinstein"
	SystemTI994A         = "TI994A"
	SystemTomyTutor      = "TomyTutor"
	SystemTRS80          = "TRS80"
	SystemTSConf         = "TSConf"
	SystemUK101          = "UK101"
	SystemVector06C      = "Vector06C"
	SystemVIC20          = "VIC20"
	SystemWindows        = "Windows"
	SystemX68000         = "X68000"
	SystemZX81           = "ZX81"
	SystemZXSpectrum     = "ZXSpectrum"
	SystemZXNext         = "ZXNext"
	SystemAtariST        = "AtariST"
	SystemColecoAdam     = "ColecoAdam"
	SystemFM7            = "FM7"
	SystemFMTowns        = "FMTowns"
	SystemGamePocket     = "GamePocket"
	SystemGameMaster     = "GameMaster"
	SystemGP32           = "GP32"
	SystemPC88           = "PC88"
	SystemPC98           = "PC98"
	SystemX1             = "X1"
	SystemCommanderX16   = "CommanderX16"
	SystemSpectravideo   = "Spectravideo"
	SystemThomson        = "Thomson"
)

Computers

View Source
const (
	SystemAndroid     = "Android"
	SystemArcade      = "Arcade"
	SystemAtomiswave  = "Atomiswave"
	SystemArduboy     = "Arduboy"
	SystemChip8       = "Chip8"
	SystemCPS1        = "CPS1"
	SystemCPS2        = "CPS2"
	SystemCPS3        = "CPS3"
	SystemDAPHNE      = "DAPHNE"
	SystemDICE        = "DICE"
	SystemSinge       = "Singe"
	SystemModel1      = "Model1"
	SystemModel2      = "Model2"
	SystemNamco2X6    = "Namco2X6"
	SystemNamco22     = "Namco22"
	SystemTriforce    = "Triforce"
	SystemLindbergh   = "Lindbergh"
	SystemChihiro     = "Chihiro"
	SystemGaelco      = "Gaelco"
	SystemHikaru      = "Hikaru"
	SystemIOS         = "iOS"
	SystemModel3      = "Model3"
	SystemNAOMI       = "NAOMI"
	SystemNAOMI2      = "NAOMI2"
	SystemPico8       = "Pico8"
	SystemTIC80       = "TIC80"
	SystemVideo       = "Video"
	SystemAudio       = "Audio"
	SystemMovie       = "Movie"
	SystemTVEpisode   = "TVEpisode"
	SystemTVShow      = "TVShow"
	SystemMusicTrack  = "MusicTrack"
	SystemMusicArtist = "MusicArtist"
	SystemMusicAlbum  = "MusicAlbum"
	SystemImage       = "Image"
	SystemJ2ME        = "J2ME"
	SystemGroovy      = "Groovy"
	SystemPlugNPlay   = "PlugNPlay"
	SystemDevErr      = "DevErr"
)

Other

Variables

View Source
var Systems = map[string]System{}/* 202 elements not displayed */

Functions

func AlphaMapKeys

func AlphaMapKeys[V any](m map[string]V) []string

func MapKeys

func MapKeys[K comparable, V any](m map[K]V) []K

MapKeys returns a list of all keys in a map.

Types

type MediaType added in v2.7.0

type MediaType = slugs.MediaType

MediaType alias for slugs.MediaType to avoid forcing all systemdefs users to import slugs. The canonical definition is in the slugs package.

type System

type System struct {
	ID        string
	MediaType MediaType
	Aliases   []string
	Fallbacks []string
	Slugs     []string
}

func AllSystems

func AllSystems() []System

func GetSystem

func GetSystem(id string) (*System, error)

GetSystem looks up an exact system definition by ID.

func LookupSystem

func LookupSystem(id string) (*System, error)

LookupSystem case-insensitively looks up system ID definition including aliases and slugs. It uses a two-step strategy:

  1. Fast path: Check lowercase input against the lookup map (exact ID/alias matches)
  2. Natural language path: Slugify input and check against the map (handles manufacturer prefixes, regional names, etc.)

func SystemsWithFallbacks added in v2.10.0

func SystemsWithFallbacks(systems []System) []System

SystemsWithFallbacks returns the input systems plus any fallback systems, with duplicates removed. Original systems appear first, followed by fallback systems in the order they were encountered. Only direct fallbacks are included, not transitive.

func (*System) GetMediaType added in v2.7.0

func (s *System) GetMediaType() MediaType

GetMediaType returns the media type for this system, defaulting to MediaTypeGame if not set.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL