๐ /README.md
Hi! 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
๐ /projects
BeatBeast
(2024)
๐พ gba
๐
A game we made for the GBA Jam 2024 with Lu and Synthenia.
๐ฆ Help Joaquรญn shoot his way out of this rhythmic world!
Experience 15 minutes of intense fun, and even more if rhythm games usually have you off beat. Featuring an amazing 3D title screen, powered by an impressive stack of 150 BMP files pushing 3.66 triangles per second! Enjoy menus accompanied by Good Sounding Music (GSM) and dive into main gameplay with Perfectly Crafted Melodies (PCM)โit's a sound blast!
โถ๏ธ Watch our playthrough of the Hard difficulty mode.
๐ฐ Wtf, we got the first place!!
piuGBA
(2020~2024)
๐พ gba
๐
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.
gba-link-connection
(2020~2024)
๐พ gba
๐
A set of Game Boy Advance (GBA) C++ libraries to interact with the Serial Port. Its main purpose is to provide multiplayer support to homebrew games. C bindings are also included for compatibility.
- ๐พ 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!
- ๐ช LinkCube.hpp: Exchange data with a Wii or a GameCube using the classic Joybus protocol!
- ๐ฑ LinkMobile.hpp: Connect to the internet using the Mobile Adapter GB, brought back to life thanks to the REON project!
- ๐ฑ๏ธ 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!
gba-flashcartio
(2024)
๐พ gba
๐
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.
- For this same reason, avoid soft-resetting while
flashcartio_is_reading
.
- In EZ Flash mode:
- ROM is unavailable while using the SD card, so ~1KB of static EWRAM will be taken by some functions.
- When reading, by default, interrupts will be briefly disabled (
REG_IME = 0
) to avoid problems. - The EZ Flash Definitive Edition works great out of the box, but in the original one you have to use
3,2
wait states and avoid writing to SRAM right before/after reading the microSD!
NesCore
(2022)
๐น๏ธ nes
๐
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
A weird tale
(2022)
๐ถ music
๐
While playing with Aรญris, I also composed some songs for a project with my friend Santiago Sauza. Three years later, we finally finished recording and mixing the tracks, and we published them on the most common streaming platforms. The result is a powerful metal album that we're really proud of!
รฉste-ganรณ
(2022)
๐ ๏ธ tools
๐
Steganography toy that encodes secret messages in strings by using zero-width Unicode characters. A Chrome extension allows highlighting the hidden parts.
play-and-shift
(2022)
๐ ๏ธ tools
๐
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.
gba-remote-play
(2021)
๐พ gba
๐
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.
NEStation
(2019)
๐น๏ธ nes
๐
A web-based NES emulator frontend that 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
ElDumper
(2019)
๐ ๏ธ tools
๐
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.
quickp2p
(2019)
๐ ๏ธ tools
๐
A JavaScript library that simplifies connecting two web browsers in a peer-to-peer fashion through WebRTC Data Channels.
Aรญris EP
(2019)
๐ถ music
๐
In 2019, I was lucky enough to befriend some very talented people, and we formed a band where we rehearsed every week and recorded this prog-rock demo album! Although we eventually stopped playing together, weโre still close friends, and they hold a special place in my heart. This project remains one of my favorite musical endeavors.
MouseWars.io
(2017~2018)
๐ฎ video-games
๐
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
- ๐ฑ๏ธ Play locally with the Desktop version
- ๐ No login needed!
Halu
(2015~2016)
๐ฎ video-games
๐
A multitasking game for Android, in which players have to survive lots of dangers:
- ๐ Deadly spikes
- โ ๏ธ Shrinking too much will make you vanish!
- ๐ Your soul will try to escape
- โ๏ธ Smoke balls will also kill you
- ๐ Speed will intensify over time
The game integrates Google Play leaderboards so players can compete for the best high score. You'll literally leave your friends' bodies behind as you surpass them!
dropbox-universal-backup-tool
(2015)
๐ ๏ธ tools
๐
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, and it gives you more control over what types of files are uploaded or not.
Arduino MIDI Player
(2014)
๐ ๏ธ tools
๐
A MIDI player made of buzzers. It started as a proof of concept for controlling an Arduino board using CoffeeScript.
It seems like Arduino boards can be controlled by any computer using a well-known protocol that constantly sends instructions to the board via a serial connection. Fun stuff.
MouseWars Classic
(2008~2010)
๐๏ธ archive
๐
An online two-player war game where players control cursors to defeat each other using assigned attacks.
The game works over TCP/IP, allowing play over the Internet or a LAN. For solo play, a Bot is also available.
I ended up remaking this game in 2017, and it evolved into what is now known as MouseWars.io.
Written in Visual Basic 6, compiled and tested on Windows XP.
El Chat
(2004~2005)
๐๏ธ archive
๐
A chat client that my group of friends and I used a lot, inspired by the old MSN Messenger.
The program supported emoticons, formatting, private conversations, saving chat history, theming, custom servers and moderation.
Written in Visual Basic 6, compiled and tested on Windows XP.
HackTheSystem
(2004~2007)
๐๏ธ archive
๐
Fifteen-year-old me wanted to be "a hacker," so I found some online material about building a trojan horse and followed it. That experience made me love network programming and gave me a foundation in TCP sockets, inter-process communication, Win32 API calls, and more. Nobody got hacked in the process. Or maybe a few?
Written in Visual Basic 6, compiled and tested on Windows XP.