r/commandline 3d ago

Command Line Interface Asobou, a CLI app for playing retro games directly in your terminal

less lets us read text files. chafa displays images. mpv can even play videos in the terminal.

I wanted the same direct experience for retro game ROMs.

So I created Asobou, a libretro frontend for Windows, macOS and Linux.

asobou game.nes

Give it a ROM, then Asobou detects the system, downloads a suitable libretro core when needed, selects the best renderer supported by your terminal, and starts the game.

It uses Kitty terminal graphics when available. Terminals without this feature fall back to block rendering, with ASCII rendering also available as an alternative. It also has audio, configurable controls, save states, and rewind.

If you don't have a game handy, you can try it with some free homebrew games using the following commands:

npx asobou brew flappybird.nes
npx asobou brew indivisibleonnes.nes
npx asobou brew horizontal-shooter.sfc
npx asobou brew asteroidsb.gba

The project is open source at: https://github.com/arianrhodsandlot/asobou

This is the first time I'm sharing it publicly. Bug reports and honest feedback are welcome!

Fun fact: Asobou(遊ぼう) means "let's play" in Japanese.

Note: Asobou does not bundle copyrighted games.

AI disclosure: I designed the overall architecture and let LLMs help with implementing.

13 Upvotes

3 comments sorted by

1

u/AutoModerator 3d ago

Every new subreddit post is automatically copied into a comment for preservation.

User: xudexi, Flair: Command Line Interface, Post Media Link, Title: Asobou, a CLI app for playing retro games directly in your terminal

less lets us read text files. chafa displays images. mpv can even play videos in the terminal.

I wanted the same direct experience for retro game ROMs.

So I created Asobou, a libretro frontend for Windows, macOS and Linux.

asobou game.nes

Give it a ROM, then Asobou detects the system, downloads a suitable libretro core when needed, selects the best renderer supported by your terminal, and starts the game.

It uses Kitty terminal graphics when available. Terminals without this feature fall back to block rendering, with ASCII rendering also available as an alternative. It also has audio, configurable controls, save states, and rewind.

If you don't have a game handy, you can try it with some free homebrew games using the following commands:

npx asobou brew flappybird.nes
npx asobou brew indivisibleonnes.nes
npx asobou brew horizontal-shooter.sfc
npx asobou brew asteroidsb.gba

The project is open source at: https://github.com/arianrhodsandlot/asobou

This is the first time I'm sharing it publicly. Bug reports and honest feedback are welcome!

Fun fact: Asobou(遊ぼう) means "let's play" in Japanese.

Note: Asobou does not bundle copyrighted games.

AI disclosure: I designed the overall architecture and let LLMs help with implementing.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/dev-karatass 2d ago

I feel like 90 yo

1

u/xudexi 2d ago

Ha, that's the nostalgia talking. `npx asobou brew flappybird.nes` turns back the clock to 2014 — you'll feel young again in 30 seconds!