A bunch of [r]andom expermients...


I'm Rodrigo Alfonso (@afska)*, a software developer and musician from Argentina.

I'm interested in ๐Ÿ’ป computers, ๐Ÿค˜ metal, and ๐Ÿ‘พ retro gaming.
This page showcases some personal projects that I've developed in my free time.

You can find me on

*or @rodri042

๐ŸŽฎ video-games ๐Ÿ‘พ gba ๐Ÿ•น๏ธ nes ๐Ÿ› ๏ธ tools ๐Ÿ—‘๏ธ archive | ๐ŸŽถ music

๐Ÿ’ป /software

๐ŸŽฎ /software/video-games โฌ†๏ธ

MouseWars.io Web Steam (2017~2018) ๐Ÿ”—

MouseWars.io is a real-time multiplayer cursor war game. The cursors must fight until only one remains.

  • ๐ŸŒ Web-based and available online for free
  • ๐Ÿคผโ€โ™‚๏ธ Two game modes: All vs all and Team vs team
  • ๐Ÿ’ฏ Two scoring types: Deathmatch and Survival
  • ๐Ÿ”ซ 9 attack types
  • ๐Ÿ‘ฅ Up to 8 players per room
  • ๐Ÿ’ฌ Integrated in-game chat
  • ๐Ÿ–ฅ๏ธ Servers available in South America and North America
  • ๐Ÿ–ฑ๏ธ Play locally with the Desktop version
  • ๐Ÿ”“ No login needed!

Halu Android (2015~2016) ๐Ÿ”—

An adrenaline-packed endless runner game for Android. Navigate through Halu's treacherous world and outpace your friends' scores.

  • ๐Ÿ“ฑ Exclusively for Android
  • ๐Ÿƒโ€โ™‚๏ธ Endless running gameplay
  • ๐Ÿ’€ Dodge deadly rocks by jumping or shrinking
  • โš ๏ธ Beware of shrinking too much or you'll vanish!
  • ๐ŸŒ€ Keep your escaping soul centered
  • โ˜๏ธ Evade lethal smoke balls on your path
  • ๐Ÿš€ Speed intensifies over time
  • ๐Ÿ† Challenge friends and beat their high scores

GitHub Source code

๐Ÿ‘พ /software/gba โฌ†๏ธ

gba-remote-play GBA (2021) ๐Ÿ”—

A software that streams games from a Raspberry Pi to a Game Boy Advance, through its Link Port. Video and audio are compressed and sent in real time to the GBA, while the latter responds with its current input, allowing users to play games of any platform by using the GBA (hence, Remote Play).

  • ๐ŸŽฎ Plays any game using RetroPie on the GBA!
  • ๐Ÿ” 120x80 pixels of power!
  • ๐Ÿš€ ~60fps using the default display mode
  • ๐Ÿ“บ Retro scanlines ๐Ÿ˜Ž
  • โšก More pixels of power on overclocked GBAs
  • ๐Ÿ”Š Experimental audio support!
  • ๐Ÿ’ฅ Crashes on the GB Micro! (yep, that's a feature)

๐Ÿ“ฐ Read more on Gizmodo, Engadget, Hackaday, Tom's Hardware and The MagPi.

GitHub Source code

piuGBA GBA (2020~2024) ๐Ÿ”—

Screenshot Screenshot Screenshot Screenshot

A Pump It Up simulator for the Game Boy Advance that uses StepMania SSC charts.

  • ๐Ÿ“ Full .ssc support (including hold and fake notes, bpm/scroll changes, stop/delays, and warps)
  • ๐Ÿ•น๏ธ Several game modes (campaign, arcade, impossible)
  • ๐Ÿ”— Multiplayer via Link Cable / Wireless Adapter
  • ๐ŸŽฅ Background videos / HQ audio from the SD card via flash carts
  • โšก Dynamic speed multipliers
  • ๐Ÿ› ๏ธ Multiple mods
  • ๐ŸŽต ~70 songs per .gba ROM

โ–ถ๏ธ Watch the demo video.

๐Ÿ’ฌ Go to the Discord server to find Download links and user-created content.

๐Ÿ“ฐ Read more on Hackaday.

GitHub Source code

gba-link-connection GitHub GBA (2020~2024) ๐Ÿ”—


A set of Game Boy Advance (GBA) C++ libraries to interact with the Serial Port. Its main purpose is providing multiplayer support to homebrew games.

  • ๐Ÿ‘พ LinkCable.hpp: The classic 16-bit Multi-Play mode (up to 4 players) using a GBA Link Cable!
  • ๐Ÿ’ป LinkCableMultiboot.hpp: Send Multiboot software (small 256KiB ROMs) to other GBAs with no cartridge!
  • ๐Ÿ“ป LinkWireless.hpp: Connect up to 5 consoles with the Wireless Adapter!
  • ๐Ÿ“ก LinkWirelessMultiboot.hpp: Send Multiboot software (small 256KiB ROMs) to other GBAs over the air!
  • ๐ŸŒŽ LinkUniversal.hpp: Add multiplayer support to your game, both with ๐Ÿ‘พ Link Cables and ๐Ÿ“ป Wireless Adapters, using the same API!
  • ๐Ÿ”Œ LinkGPIO.hpp: Use the Link Port however you want to control any device (like LEDs or rumble motors)!
  • ๐Ÿ”— LinkSPI.hpp: Connect with a PC or another GBA using this mode. Transfer up to 2Mbit/s!
  • โฑ๏ธ LinkUART.hpp: Easily connect to any PC using a USB to UART cable!
  • ๐Ÿ–ฑ๏ธ LinkPS2Mouse.hpp: Connect a PS/2 mouse to the GBA for extended controls!
  • โŒจ๏ธ LinkPS2Keyboard.hpp: Connect a PS/2 keyboard to the GBA for extended controls!

GitHub Source code

gba-flashcartio GitHub GBA (2024) ๐Ÿ”—


A Game Boy Advance (GBA) C library to access the SD card of the following flashcarts:

  • EverDrive GBA X5 / Mini
  • EZ Flash Omega / OmegaDE

The flashcart type is autodetected and FAT partitions are supported via ELM-ChaN's FatFs library.

  • Only read operations are implemented in FatFs.
  • It reads using either DMA3 or DMA1.
  • In EverDrive mode, the latter 16MB of the ROM is unavailable while reading, so avoid using that part in your interrupt handlers, or your code might crash.
  • In EZ Flash mode, ROM is unavailable while using the SD card, so ~1KB of static EWRAM will be taken by some functions. Also, When reading, interrupts will be briefly disabled (REG_IME = 0) to avoid problems.

GitHub Source code

๐Ÿ•น๏ธ /software/nes โฌ†๏ธ

NesCore Web (2022) ๐Ÿ”—


A NES Emulator made in JavaScript for educational purposes.

Its main objective is to reflect the NES internals as simply as possible by using clean, object-oriented code. It doesn't have any complex bitwise operations, huge switch-case statements or files with lots of magic numbers.

  • ๐Ÿ‘พ It emulates the NES
  • ๐Ÿ‘จโ€๐Ÿ”ง It plays Super Mario Bros. 3!
  • ๐Ÿ’ป CPU, ๐Ÿ–ฅ๏ธ PPU, ๐Ÿ”Š APU
  • ๐Ÿ SRAM support
  • ๐Ÿ’พ Save states support
  • ๐ŸŒŽ Web frontend using Web Workers and Gamepad API

GitHub Source code

NEStation Web (2019) ๐Ÿ”—


A web-based NES emulator frontend which supports two-player Net Play via WebRTC.

It's based on jsnes, but a network layer was added on top of it to allow playing over the Internet.

  • ๐ŸŽ Fullspeed NES Emulation
  • ๐ŸŒ Low-latency -peer to peer- online play
  • ๐Ÿ“ฆ ROM Drag & Drop / Easy UX
  • ๐Ÿ”€ Swap P1 and P2 at any time
  • โŒจ๏ธ Configurable controls
  • ๐ŸŽฎ Gamepad support
  • ๐Ÿ“บ CRT TV emulation

GitHub Source code

๐Ÿ› ๏ธ /software/tools โฌ†๏ธ

play-and-shift Web Linux (2022) ๐Ÿ”—


An mplayer wrapper that lets you find and play songs from your terminal with shifted pitch or speed.

I use this to quickly change a song's key when playing an instrument.

GitHub Source code

ElDumper Arduino (2019) ๐Ÿ”—


A Game Boy cartridge dumper that can read the ROM and read/write battery-backed RAM to manage games and save files.

It's based on insideGadget's GBCartRead, but it adds a new graphical interface packed as an Electron app, so users don't have to download and execute Python scripts in order to dump the memory.

GitHub Source code

รฉste-ganรณ Web (2022) ๐Ÿ”—


Steganography toy that encodes secret messages in strings by using zero-width Unicode characters. A Chrome extension allows highlighting the hidden parts.

GitHub Source code

quickp2p GitHub Web (2019) ๐Ÿ”—


A JavaScript library which simplifies connecting two web browsers through WebRTC Data Channels.

GitHub Source code

dropbox-universal-backup-tool Linux (2015) ๐Ÿ”—


A command line tool that synchronizes directories with Dropbox. It uploads the files from disk to the cloud, with the added feature of being able to preview changes before hitting the API.

It only syncs in one direction, so it's safe for pushing incremental backups.

GitHub Source code

Arduino MIDI Player Arduino (2014) ๐Ÿ”—

A MIDI player made of buzzers. It started as a proof of concept for controlling an Arduino board with CoffeeScript.

It seems like Arduino boards can be controlled by any computer using a well known protocol that constantly sends instructions to the board by a serial connection. Fun stuff.

GitHub Source code

๐Ÿ—‘๏ธ /software/archive โฌ†๏ธ

I started these projects when I was learning programming. They are written in Visual Basic 6, compiled and tested on Windows XP.

MouseWars Classic Windows (2009) ๐Ÿ”—

An online two-player war game, where cursors have to defeat each other by using the assigned attacks.

It works with TCP/IP on the Internet or LAN, but a Bot is also available for solo playing.

HackTheSystem Windows (2004~2007) ๐Ÿ”—


It's a... hmm... a "remote administration" tool. It has features like screen controlling and sharing, remote command execution, window management, keylogging, a file manager and a little chat.

El Chat Windows (2004~2005) ๐Ÿ”—


A chat client that my group of friends and I used a lot, inspired by the old MSN Messenger. It was my first contact with socket programming, and I had a lot of fun doing it.

๐ŸŽถ /music โฌ†๏ธ