-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
624 lines (541 loc) ยท 37.4 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="description" content="A bunch of [r]andom experiments...">
<meta name="keywords" content="software,video games,experiments,music">
<meta name="author" content="Rodrigo Alfonso">
<meta name="viewport" content="width=device-width">
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="stylesheet" type="text/css" href="stylesheets/main.css" media="screen">
<link rel="stylesheet" type="text/css" href="stylesheets/github-dark.css" media="screen">
<title>[r]labs</title>
</head>
<body>
<header>
<div class="container">
<h1>[r]labs <img alt="logo" class="logo" src="images/logo.png" /></h1>
<h2>A bunch of [r]andom expermients...</h2>
</div>
</header>
<div class="container">
<section id="main_content">
<a id="whoami" class="anchor" href="#whoami" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h2>๐ /README.md</h2>
<div class="head titleproject">
<img src="images/profile.png" width="200" height="200" class="picture" />
<div class="introduction introduction-text">
<p>Hi! I'm Rodrigo Alfonso (@<strong>afska</strong>)*, a software developer and musician from Argentina.</p>
<p>I'm interested in ๐ป computers, ๐ค metal, and ๐พ retro gaming.<br />
This page showcases some personal projects that I've developed in my free time.</p>
<p>
<span>You can find me on</span>
<span class="social-buttons">
<a href="https://github.com/afska" target="_blank"><img alt="GitHub" class="button" src="images/icons/github.svg" /></a>
<a href="https://www.reddit.com/user/rodri042" target="_blank"><img alt="Reddit" class="button" src="images/icons/reddit.svg" /></a>
<a href="https://discord.com/users/258025589066301440" target="_blank"><img alt="Discord" class="button" src="images/icons/discord.svg" /></a>
<a href="https://youtube.com/@_afska_" target="_blank"><img alt="YouTube (Software)" class="button" src="images/icons/youtube.svg" /></a>
<a href="https://youtube.com/rodri042" target="_blank"><img alt="YouTube (Music)" class="button" src="images/icons/youtube.svg" /></a>
<a href="mailto:[email protected]" target="_blank"><img alt="Gmail" class="button" src="images/icons/gmail.svg" /></a>.
</span>
</p>
<p style="font-size: xx-small; text-align: right">*or @<strong>rodri042</strong></p>
</div>
</div>
<a id="index" class="anchor" href="#index" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<div class="index">
<span class="menutag tag" data-tag="video-games">๐ฎ video-games</span>
<span class="menutag tag" data-tag="gba">๐พ gba</span>
<span class="menutag tag" data-tag="nes">๐น๏ธ nes</span>
<span class="menutag tag" data-tag="tools">๐ ๏ธ tools</span>
<span class="menutag tag" data-tag="music">๐ถ music</span>
<span class="menutag tag" data-tag="archive">๐๏ธ archive</span>
<span class="clearfilter" data-tag="clear" style="display: none">โ clear filter</span>
</div>
<a id="projects" class="anchor" href="#projects" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h2>๐ /<span id="foldername">projects</span></h2>
<div class="grid">
<div class="project open-source" data-tag="gba">
<a id="beat-beast" class="anchor" href="#beat-beast" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h3>
<a href="https://afska.itch.io/beat-beast" target="_blank">BeatBeast</a>
<img alt="GBA" class="button" src="images/icons/gba.png" />
<span class="year">(2024)</span>
<div class="floatright">
<span class="tag">๐พ gba</span>
<a href="#beat-beast" class="nav-button">๐</a>
</div>
</h3>
<p class="image-preview">
<a href="https://afska.itch.io/beat-beast" target="_blank"><img alt="Screenshot" src="https://i.imgur.com/o9TWOug.gif" width="45%"></a>
<a href="https://afska.itch.io/beat-beast" target="_blank"><img alt="Screenshot" src="https://i.imgur.com/jUxmP5W.gif" width="45%"></a>
<a href="https://afska.itch.io/beat-beast" target="_blank"><img alt="Screenshot" src="https://i.imgur.com/b5fExn1.gif" width="45%"></a>
<a href="https://afska.itch.io/beat-beast" target="_blank"><img alt="Screenshot" src="https://i.imgur.com/e6Rv1Kl.gif" width="45%"></a>
</p>
<p>A game we made for the <a href="https://itch.io/jam/gbajam24" target="_blank">GBA Jam 2024</a> with <a href="https://lachia.itch.io/" target="_blank">Lu</a> and <a href="https://synthenia.itch.io/" target="_blank">Synthenia</a>.</p>
<p>๐ฆ Help <i>Joaquรญn</i> shoot his way out of this rhythmic world!</p>
<p>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!</p>
<p>โถ๏ธ Watch <a href="https://www.youtube.com/watch?v=kFq0AMUZ1Rg" target="_blank">our playthrough</a> of the Hard difficulty mode.</p>
<p>๐ฐ Wtf, <a href="https://gbadev.net/gbajam24.html" target="_blank">we got the first place</a>!!</p>
<p class="right"><img alt="GitHub" class="button" src="images/icons/github.svg" /> <a href="https://github.com/afska/beat-beast" target="_blank">Source code</a></p>
</div>
<div class="project open-source" data-tag="gba">
<a id="piugba" class="anchor" href="#piugba" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h3>
<a href="https://github.com/afska/piugba" target="_blank">piuGBA</a>
<img alt="GBA" class="button" src="images/icons/gba.png" />
<span class="year">(2020~2024)</span>
<div class="floatright">
<span class="tag">๐พ gba</span>
<a href="#piugba" class="nav-button">๐</a>
</div>
</h3>
<p class="image-preview">
<a href="https://github.com/afska/piugba" target="_blank"><img alt="Screenshot" src="https://i.imgur.com/FJzNbrp.gif" width="45%"></a>
<a href="https://github.com/afska/piugba" target="_blank"><img alt="Screenshot" src="https://i.imgur.com/9D3H3DO.gif" width="45%"></a>
<a href="https://github.com/afska/piugba" target="_blank"><img alt="Screenshot" src="https://i.imgur.com/y3IulCQ.gif" width="45%"></a>
<a href="https://github.com/afska/piugba" target="_blank"><img alt="Screenshot" src="https://i.imgur.com/gqwIXPk.gif" width="45%"></a>
</p>
<p>A Pump It Up simulator for the Game Boy Advance that uses <a href="https://www.stepmania.com/" target="_blank">StepMania</a> SSC charts.</p>
<ul>
<li>๐ Full .ssc support (including hold and fake notes, bpm/scroll changes, stop/delays, and warps)</li>
<li>๐น๏ธ Several game modes (campaign, arcade, impossible)</li>
<li>๐ Multiplayer via Link Cable / Wireless Adapter</li>
<li>๐ฅ Background videos / HQ audio from the SD card via flash carts</li>
<li>โก Dynamic speed multipliers</li>
<li>๐ ๏ธ Multiple mods</li>
<li>๐ต ~70 songs per .gba ROM</li>
</ul>
<p>โถ๏ธ Watch the <a href="https://www.youtube.com/watch?v=S8VgSOcHs5A" target="_blank">demo video</a>.</p>
<p>๐ฌ Go to the <a href="https://discord.com/invite/JE33cc2" target="_blank">Discord server</a> to find Download links and user-created content.</p>
<p>๐ฐ Read more on <a href="https://hackaday.com/2024/05/16/pump-it-up-gets-homebew-gba-port-that-rocks/" target="_blank">Hackaday</a>.</p>
<p class="right"><img alt="GitHub" class="button" src="images/icons/github.svg" /> <a href="https://github.com/afska/piugba" target="_blank">Source code</a></p>
</div>
<div class="project open-source" data-tag="gba">
<a id="gba-link-connection" class="anchor" href="#gba-link-connection" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h3>
<a href="https://github.com/afska/gba-link-connection" target="_blank">gba-link-connection</a>
<img alt="GitHub" class="button" src="images/icons/github.svg" />
<img alt="GBA" class="button" src="images/icons/gba.png" />
<span class="year">(2020~2024)</span>
<div class="floatright">
<span class="tag">๐พ gba</span>
<a href="#gba-link-connection" class="nav-button">๐</a>
</div>
</h3>
<p class="image-preview">
<a href="https://github.com/afska/gba-link-connection" target="_blank"><img alt="Screenshot" src="images/screenshots/gba-link-connection.png" style="max-height: 340px"></a>
</p>
<p>A set of Game Boy Advance (GBA) C++ libraries to interact with the <a href="https://en.wikipedia.org/wiki/Game_Link_Cable" target="_blank">Serial Port</a>. Its main purpose is to provide multiplayer support to homebrew games. C bindings are also included for compatibility.
<ul>
<li>๐พ <a href="https://github.com/afska/gba-link-connection/blob/master/lib/LinkCable.hpp" target="_blank">LinkCable.hpp</a>: The classic 16-bit <strong>Multi-Play mode</strong> (up to 4 players) using a GBA Link Cable!</li>
<li>๐ป <a href="https://github.com/afska/gba-link-connection/blob/master/lib/LinkCableMultiboot.hpp" target="_blank">LinkCableMultiboot.hpp</a>: Send <strong>Multiboot software</strong> (small 256KiB ROMs) to other GBAs with no cartridge!</li>
<li>๐ป <a href="https://github.com/afska/gba-link-connection/blob/master/lib/LinkWireless.hpp" target="_blank">LinkWireless.hpp</a>: Connect up to 5 consoles with the <strong>Wireless Adapter</strong>!</li>
<li>๐ก <a href="https://github.com/afska/gba-link-connection/blob/master/lib/LinkWirelessMultiboot.hpp" target="_blank">LinkWirelessMultiboot.hpp</a>: Send Multiboot software (small 256KiB ROMs) to other GBAs <strong>over the air</strong>!</li>
<li>๐ <a href="https://github.com/afska/gba-link-connection/blob/master/lib/LinkUniversal.hpp" target="_blank">LinkUniversal.hpp</a>: Add multiplayer support to your game, both with ๐พ <em>Link Cables</em> and ๐ป <em>Wireless Adapters</em>, using the <strong>same API</strong>!</li>
<li>๐ <a href="https://github.com/afska/gba-link-connection/blob/master/lib/LinkGPIO.hpp" target="_blank">LinkGPIO.hpp</a>: Use the Link Port however you want to control <strong>any device</strong> (like LEDs or rumble motors)!</li>
<li>๐ <a href="https://github.com/afska/gba-link-connection/blob/master/lib/LinkSPI.hpp" target="_blank">LinkSPI.hpp</a>: Connect with a PC or another GBA using this mode. Transfer up to 2Mbit/s!</li>
<li>โฑ๏ธ <a href="https://github.com/afska/gba-link-connection/blob/master/lib/LinkUART.hpp" target="_blank">LinkUART.hpp</a>: Easily connect to <strong>any PC</strong> using a USB to UART cable!</li>
<li>๐ช <a href="https://github.com/afska/gba-link-connection/blob/master/lib/LinkCube.hpp" target="_blank">LinkCube.hpp</a>: Exchange data with a <i>Wii</i> or a <i>GameCube</i> using the classic <strong>Joybus</strong> protocol!</li>
<li>๐ฑ <a href="https://github.com/afska/gba-link-connection/blob/master/lib/LinkMobile.hpp" target="_blank">LinkMobile.hpp</a>: Connect to <strong>the internet</strong> using the <i>Mobile Adapter GB</i>, brought back to life thanks to the <a href="https://github.com/REONTeam" target="_blank">REON</a> project!</li>
<li>๐ฑ๏ธ <a href="https://github.com/afska/gba-link-connection/blob/master/lib/LinkPS2Mouse.hpp" target="_blank">LinkPS2Mouse.hpp</a>: Connect a <strong>PS/2 mouse</strong> to the GBA for extended controls!</li>
<li>โจ๏ธ <a href="https://github.com/afska/gba-link-connection/blob/master/lib/LinkPS2Keyboard.hpp" target="_blank">LinkPS2Keyboard.hpp</a>: Connect a <strong>PS/2 keyboard</strong> to the GBA for extended controls!</li>
</ul>
<p class="right"><img alt="GitHub" class="button" src="images/icons/github.svg" /> <a href="https://github.com/afska/gba-link-connection" target="_blank">Source code</a></p>
</div>
<div class="project open-source" data-tag="gba">
<a id="gba-flashcartio" class="anchor" href="#gba-flashcartio" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h3>
<a href="https://github.com/afska/gba-flashcartio" target="_blank">gba-flashcartio</a>
<img alt="GitHub" class="button" src="images/icons/github.svg" />
<img alt="GBA" class="button" src="images/icons/gba.png" />
<span class="year">(2024)</span>
<div class="floatright">
<span class="tag">๐พ gba</span>
<a href="#gba-flashcartio" class="nav-button">๐</a>
</div>
</h3>
<p class="image-preview">
<a href="https://github.com/afska/gba-flashcartio" target="_blank"><img alt="Screenshot" src="images/screenshots/gba-flashcartio.png" style="max-height: 340px"></a>
</p>
<p>A Game Boy Advance (GBA) C library to access the SD card of the following flashcarts:
<ul>
<li>EverDrive GBA X5 / Mini</li>
<li>EZ Flash Omega / OmegaDE</li>
</ul>
<p>The flashcart type is autodetected and FAT partitions are supported via <a href="http://elm-chan.org/fsw/ff" target="_blank">ELM-ChaN's FatFs library</a>.
<ul>
<li><strong>Only read operations are implemented in FatFs.</strong></li>
<li>It reads using either <strong>DMA3</strong> or <strong>DMA1</strong>.</li>
<li>While reading, flashcarts make part of the ROM inaccessible during the operation. To prevent issues, by default, interrupts are briefly disabled (<code>REG_IME = 0</code>)</li>
<li><strong>EverDrive</strong> notes:
<ul>
<li>Since the last 16 MB of ROM are unavailable while using the SD card, make sure your linker script places these functions in the first 16 MB of ROM or in RAM.</li>
</ul>
</li>
<li><strong>EZ Flash</strong> notes:
<ul>
<li>Since ROM is unavailable while using the SD card, ~1 KB of static EWRAM will be taken by some functions.</li>
<li>The <i>EZ Flash Definitive Edition</i> works great out of the box, but in the original one you have to use <code>3,2</code> wait states and avoid writing to SRAM right before/after reading the microSD!</li>
</ul>
</li>
</ul>
<p class="right"><img alt="GitHub" class="button" src="images/icons/github.svg" /> <a href="https://github.com/afska/gba-link-connection" target="_blank">Source code</a></p>
</div>
<div class="project open-source" data-tag="nes">
<a id="nescore" class="anchor" href="#nescore" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h3>
<a href="https://afska.github.io/nescore" target="_blank">NesCore</a>
<img alt="Web" class="button" src="images/icons/web.svg" />
<span class="year">(2022)</span>
<div class="floatright">
<span class="tag">๐น๏ธ nes</span>
<a href="#nescore" class="nav-button">๐</a>
</div>
</h3>
<p class="image-preview">
<a href="https://afska.github.io/nescore" target="_blank"><img alt="Screenshot" src="images/screenshots/nescore.png" style="max-height: 332px"></a>
</p>
<p>A NES Emulator made in JavaScript for educational purposes.</p>
<p>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.</p>
<ul>
<li>๐พ It emulates the NES</li>
<li>๐จโ๐ง It plays <a href="https://en.wikipedia.org/wiki/Super_Mario_Bros._3" target="_blank">Super Mario Bros. 3</a>!</li>
<li>๐ป CPU, ๐ฅ๏ธ PPU, ๐ APU</li>
<li>๐ SRAM support</li>
<li>๐พ Save states support</li>
<li>๐ Web frontend using <a href="https://www.w3.org/TR/2021/NOTE-workers-20210128/" target="_blank">Web Workers</a> and <a href="https://www.w3.org/TR/gamepad/">Gamepad API</a></li>
</ul>
<p class="right"><img alt="GitHub" class="button" src="images/icons/github.svg" /> <a href="https://github.com/afska/nescore" target="_blank">Source code</a></p>
</div>
<div class="project" data-tag="music">
<a id="a-weird-tale" class="anchor" href="#a-weird-tale" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h3>
<a href="https://open.spotify.com/album/5uEzRzECWW6vskxf3MKrUd" target="_blank">A weird tale</a>
<img alt="Spotify" class="button" src="images/icons/spotify.svg" />
<span class="year">(2022)</span>
<div class="floatright">
<span class="tag">๐ถ music</span>
<a href="#a-weird-tale" class="nav-button">๐</a>
</div>
</h3>
<p class="image-preview">
<a href="https://open.spotify.com/album/5uEzRzECWW6vskxf3MKrUd" target="_blank"><img alt="Cover" src="images/a-weird-tale.jpg" style="max-height: 340px"></a>
</p>
<p>While playing with Aรญris, I also composed some songs for a project with my friend <a href="https://www.youtube.com/c/Sauzasantiago/videos" target="_blank">Santiago Sauza</a>. 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!</p>
</div>
<div class="project open-source" data-tag="tools">
<a id="este-gano" class="anchor" href="#este-gano" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h3>
<a href="https://afska.github.io/este-gano" target="_blank">รฉste-ganรณ</a>
<img alt="Web" class="button" src="images/icons/web.svg" />
<span class="year">(2022)</span>
<div class="floatright">
<span class="tag">๐ ๏ธ tools</span>
<a href="#este-gano" class="nav-button">๐</a>
</div>
</h3>
<p class="image-preview">
<a href="https://afska.github.io/este-gano" target="_blank"><img alt="Screenshot" src="images/screenshots/este-gano.png" style="max-height: 340px"></a>
</p>
<p><a href="https://en.wikipedia.org/wiki/Steganography" target="_blank">Steganography</a> toy that encodes secret messages in strings by using zero-width Unicode characters. A Chrome extension allows highlighting the hidden parts.</p>
<p class="right"><img alt="GitHub" class="button" src="images/icons/github.svg" /> <a href="https://github.com/afska/este-gano" target="_blank">Source code</a></p>
</div>
<div class="project open-source" data-tag="tools">
<a id="play-and-shift" class="anchor" href="#play-and-shift" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h3>
<a href="https://github.com/afska/play-and-shift" target="_blank">play-and-shift</a>
<img alt="Web" class="button" src="images/icons/windows.svg" />
<img alt="Linux" class="button" src="images/icons/linux.svg" />
<span class="year">(2022)</span>
<div class="floatright">
<span class="tag">๐ ๏ธ tools</span>
<a href="#play-and-shift" class="nav-button">๐</a>
</div>
</h3>
<p class="image-preview">
<a href="https://github.com/afska/play-and-shift" target="_blank"><img alt="Screenshot" src="images/screenshots/play-and-shift.png" style="max-height: 340px"></a>
</p>
<p>An <a href="https://en.wikipedia.org/wiki/MPlayer" target="_blank">mplayer</a> wrapper that lets you find and play songs from your terminal with shifted <i>pitch</i> or <i>speed</i>.</p>
<p>I use this to quickly change a song's key when playing an instrument.</p>
<p class="right"><img alt="GitHub" class="button" src="images/icons/github.svg" /> <a href="https://github.com/afska/play-and-shift" target="_blank">Source code</a></p>
</div>
<div class="project open-source" data-tag="gba">
<a id="gba-remote-play" class="anchor" href="#gba-remote-play" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h3>
<a href="https://github.com/afska/gba-remote-play" target="_blank">gba-remote-play</a>
<img alt="GBA" class="button" src="images/icons/gba.png" />
<span class="year">(2021)</span>
<div class="floatright">
<span class="tag">๐พ gba</span>
<a href="#gba-remote-play" class="nav-button">๐</a>
</div>
</h3>
<p class="video-preview">
<iframe width="600" height="330"
src="https://youtube.com/embed/PoRmuKUQRY0"
frameborder="0" allowFullScreen
></iframe>
</p>
<p>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).</p>
<ul>
<li>๐ฎ Plays any game using <a href="https://retropie.org.uk/" target="_blank">RetroPie</a> on the GBA!</li>
<li>๐ <i>120x80</i> pixels of power!</li>
<li>๐ ~60fps using the default display mode</li>
<li>๐บ Retro scanlines ๐</li>
<li>โก More <i>pixels of power</i> on overclocked GBAs</li>
<li>๐ Experimental audio support!</li>
<li>๐ฅ <del>Crashes on the GB Micro! (yep, that's a feature)</del></li>
</ul>
<p>๐ฐ Read more on <a href="https://gizmodo.com/super-powered-cartridge-lets-the-game-boy-advance-run-p-1848109189" target="_blank">Gizmodo</a>, <a href="https://www.engadget.com/game-boy-advance-runs-playstation-games-164220518.html" target="_blank">Engadget</a>, <a href="https://hackaday.com/2021/11/22/gba-remote-play-upgrade-lets-you-play-playstation-on-the-bus/" target="_blank">Hackaday</a>, <a href="https://www.tomshardware.com/news/raspberry-pi-retropie-gba" target="_blank">Tom's Hardware</a> and <a href="https://magpi.raspberrypi.com/issues/114" target="_blank">The MagPi</a>.</p>
<p class="right"><img alt="GitHub" class="button" src="images/icons/github.svg" /> <a href="https://github.com/afska/gba-remote-play" target="_blank">Source code</a></p>
</div>
<div class="project open-source" data-tag="nes">
<a id="nestation" class="anchor" href="#nestation" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h3>
<a href="https://afska.github.io/nestation" target="_blank">NEStation</a>
<img alt="Web" class="button" src="images/icons/web.svg" />
<span class="year">(2019)</span>
<div class="floatright">
<span class="tag">๐น๏ธ nes</span>
<a href="#nestation" class="nav-button">๐</a>
</div>
</h3>
<p class="image-preview">
<a href="https://afska.github.io/nestation" target="_blank"><img alt="Screenshot" src="images/screenshots/nestation.png" style="max-height: 332px"></a>
</p>
<p>A web-based NES emulator frontend that supports two-player Net Play via WebRTC.</p>
<p>It's based on <a href="https://github.com/bfirsh/jsnes" target="_blank">jsnes</a>, but a network layer was added on top of it to allow playing over the Internet.</p>
<ul>
<li>๐ Fullspeed NES Emulation</li>
<li>๐ Low-latency -peer to peer- online play</li>
<li>๐ฆ ROM Drag & Drop / Easy UX</li>
<li>๐ Swap P1 and P2 at any time</li>
<li>โจ๏ธ Configurable controls</li>
<li>๐ฎ Gamepad support</li>
<li>๐บ CRT TV emulation</li>
</ul>
<p class="right"><img alt="GitHub" class="button" src="images/icons/github.svg" /> <a href="https://github.com/afska/nestation" target="_blank">Source code</a></p>
</div>
<div class="project open-source" data-tag="tools">
<a id="el-dumper" class="anchor" href="#el-dumper" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h3>
<a href="https://github.com/afska/el-dumper" target="_blank">ElDumper</a>
<img alt="Arduino" class="button" src="images/icons/arduino.svg" />
<span class="year">(2019)</span>
<div class="floatright">
<span class="tag">๐ ๏ธ tools</span>
<a href="#el-dumper" class="nav-button">๐</a>
</div>
</h3>
<p class="image-preview">
<a href="https://github.com/afska/el-dumper" target="_blank"><img alt="Screenshot" src="images/screenshots/eldumper.png" style="max-height: 340px"></a>
</p>
<p>A Game Boy cartridge dumper that can read the ROM and read/write battery-backed RAM to manage games and save files.</p>
<p>It's based on insideGadget's <a href="https://github.com/insidegadgets/GBCartRead" target="_blank">GBCartRead</a>, 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.</p>
<p class="right"><img alt="GitHub" class="button" src="images/icons/github.svg" /> <a href="https://github.com/afska/el-dumper" target="_blank">Source code</a></p>
</div>
<div class="project open-source" data-tag="tools">
<a id="quickp2p" class="anchor" href="#quickp2p" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h3>
<a href="https://github.com/afska/quickp2p" target="_blank">quickp2p</a>
<img alt="GitHub" class="button" src="images/icons/github.svg" />
<img alt="Web" class="button" src="images/icons/web.svg" />
<span class="year">(2019)</span>
<div class="floatright">
<span class="tag">๐ ๏ธ tools</span>
<a href="#quickp2p" class="nav-button">๐</a>
</div>
</h3>
<p class="image-preview">
<a href="https://github.com/afska/quickp2p" target="_blank"><img alt="Screenshot" src="images/screenshots/quickp2p.png"></a>
</p>
<p>A JavaScript library that simplifies connecting two web browsers in a peer-to-peer fashion through <a href="https://webrtc.org/" target="_blank">WebRTC</a> Data Channels.</p>
<p class="right"><img alt="GitHub" class="button" src="images/icons/github.svg" /> <a href="https://github.com/afska/quickp2p" target="_blank">Source code</a></p>
</div>
<div class="project" data-tag="music">
<a id="airis-ep" class="anchor" href="#airis-ep" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h3>
<a href="https://airisprogresivo.bandcamp.com/" target="_blank">Aรญris EP</a>
<img alt="Bandcamp" class="button" src="images/icons/bandcamp.svg" />
<span class="year">(2019)</span>
<div class="floatright">
<span class="tag">๐ถ music</span>
<a href="#airis-ep" class="nav-button">๐</a>
</div>
</h3>
<p class="image-preview">
<a href="https://airisprogresivo.bandcamp.com/" target="_blank"><img alt="Cover" src="images/airis-ep.jpg" style="max-height: 340px"></a>
</p>
<p>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.</p>
</div>
<div class="project" data-tag="video-games">
<a id="mousewars" class="anchor" href="#mousewars" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h3>
<a href="https://mousewars.io" target="_blank">MouseWars.io</a>
<img alt="Web" class="button" src="images/icons/web.svg" />
<img alt="Steam" class="button" src="images/icons/steam.svg" />
<span class="year">(2017~2018)</span>
<div class="floatright">
<span class="tag">๐ฎ video-games</span>
<a href="#mousewars" class="nav-button">๐</a>
</div>
</h3>
<p class="video-preview">
<iframe width="600" height="330"
src="https://youtube.com/embed/4gHvqAzHLWE"
frameborder="0" allowFullScreen
></iframe>
</p>
<p><a href="https://mousewars.io" target="_blank">MouseWars.io</a> is a real-time multiplayer cursor war game. The cursors must fight until only one remains.</p>
<ul>
<li>๐ <strong>Web-based</strong> and available online for <strong>free</strong></li>
<li>๐คผโโ๏ธ Two game modes: <strong>All vs all</strong> and <strong>Team vs team</strong></li>
<li>๐ฏ Two scoring types: <strong>Deathmatch</strong> and <strong>Survival</strong></li>
<li>๐ซ <strong>9</strong> attack types</li>
<li>๐ฅ Up to <strong>8</strong> players per room</li>
<li>๐ฌ Integrated in-game <strong>chat</strong></li>
<li>๐ฑ๏ธ Play <strong>locally</strong> with the Desktop version</li>
<li>๐ <strong>No login</strong> needed!</li>
</ul>
</div>
<div class="project open-source" data-tag="video-games">
<a id="halu" class="anchor" href="#halu" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h3>
<a href="https://github.com/afska/halu-engine/releases/download/v1.0.0/Halu.apk" target="_blank">Halu</a>
<img alt="Android" class="button" src="images/icons/android.svg" />
<span class="year">(2015~2016)</span>
<div class="floatright">
<span class="tag">๐ฎ video-games</span>
<a href="#halu" class="nav-button">๐</a>
</div>
</h3>
<p class="video-preview">
<iframe width="600" height="330"
src="https://youtube.com/embed/INgpNR1wXKg"
frameborder="0" allowFullScreen
></iframe>
</p>
<p>A multitasking game for Android, in which players have to survive lots of dangers:</p>
<ul>
<li>๐ <strong>Deadly spikes</strong></li>
<li>โ ๏ธ Shrinking too much will make you <strong>vanish</strong>!</li>
<li>๐ Your soul will try to <strong>escape</strong></li>
<li>โ๏ธ <strong>Smoke balls</strong> will also kill you</li>
<li>๐ <strong>Speed</strong> will intensify over time</li>
</ul>
<p>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!</p>
<p class="right"><img alt="GitHub" class="button" src="images/icons/github.svg" /> <a href="https://github.com/afska/halu-engine" target="_blank">Source code</a></p>
</div>
<div class="project open-source" data-tag="tools">
<a id="dropbox-universal-backup-tool" class="anchor" href="#dropbox-universal-backup-tool" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h3>
<a href="https://github.com/afska/dropbox-universal-backup-tool" target="_blank">dropbox-universal-backup-tool</a>
<img alt="Linux" class="button" src="images/icons/linux.svg" />
<span class="year">(2015)</span>
<div class="floatright">
<span class="tag">๐ ๏ธ tools</span>
<a href="#dropbox-universal-backup-tool" class="nav-button">๐</a>
</div>
</h3>
<p class="image-preview">
<a href="https://github.com/afska/dropbox-universal-backup-tool" target="_blank"><img alt="Screenshot" src="images/screenshots/dxubt.png"></a>
</p>
<p>A command-line tool that synchronizes directories with <a href="https://www.dropbox.com/" target="_blank">Dropbox</a>. It uploads the files from disk to the cloud, with the added feature of being able to preview changes before hitting the API.</p>
<p>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.</p>
<p class="right"><img alt="GitHub" class="button" src="images/icons/github.svg" /> <a href="https://github.com/afska/dropbox-universal-backup-tool" target="_blank">Source code</a></p>
</div>
<div class="project open-source" data-tag="tools">
<a id="arduino-midi-player" class="anchor" href="#arduino-midi-player" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h3>
<a href="https://github.com/afska/arduino-midi-player" target="_blank">Arduino MIDI Player</a>
<img alt="Arduino" class="button" src="images/icons/arduino.svg" />
<span class="year">(2014)</span>
<div class="floatright">
<span class="tag">๐ ๏ธ tools</span>
<a href="#arduino-midi-player" class="nav-button">๐</a>
</div>
</h3>
<p class="video-preview">
<iframe width="600" height="330"
src="https://youtube.com/embed/w6dZp74TueM"
frameborder="0" allowFullScreen
></iframe>
</p>
<p>A MIDI player made of buzzers. It started as a proof of concept for controlling an Arduino board using <a href="https://coffeescript.org/" target="_blank">CoffeeScript</a>.</p>
<p>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.</p>
<p class="right"><img alt="GitHub" class="button" src="images/icons/github.svg" /> <a href="https://github.com/afska/arduino-midi-player" target="_blank">Source code</a></p>
</div>
<div class="project" data-tag="archive">
<a id="mousewars-classic" class="anchor" href="#mousewars-classic" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h3>
<a href="https://github.com/r-labs-io/r-labs.github.io/releases/download/1.0.0/MouseWars-Setup.exe" target="_blank">MouseWars Classic</a>
<img alt="Windows" class="button" src="images/icons/windows.svg" />
<span class="year">(2008~2010)</span>
<div class="floatright">
<span class="tag">๐๏ธ archive</span>
<a href="#mousewars-classic" class="nav-button">๐</a>
</div>
</h3>
<p class="video-preview">
<iframe width="600" height="330"
src="https://youtube.com/embed/Nx0d97ZzsZE"
frameborder="0" allowFullScreen
></iframe>
</p>
<p>An online two-player war game where players control cursors to defeat each other using assigned attacks.
<p>The game works over TCP/IP, allowing play over the Internet or a LAN. For solo play, a Bot is also available.</p>
<p>I ended up remaking this game in 2017, and it evolved into what is now known as <a href="#mousewars">MouseWars.io</a>.</p>
<blockquote class="quoteuote">
<p>Written in Visual Basic 6, compiled and tested on Windows XP.</p>
</blockquote>
</div>
<div class="project" data-tag="archive">
<a id="el-chat" class="anchor" href="#el-chat" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h3>
<a href="https://github.com/r-labs-io/r-labs.github.io/releases/download/1.0.0/ElChat-Setup.exe" target="_blank">El Chat</a>
<img alt="Windows" class="button" src="images/icons/windows.svg" />
<span class="year">(2004~2005)</span>
<div class="floatright">
<span class="tag">๐๏ธ archive</span>
<a href="#el-chat" class="nav-button">๐</a>
</div>
</h3>
<p class="image-preview">
<a href="https://github.com/r-labs-io/r-labs.github.io/releases/download/1.0.0/ElChat-Setup.exe" target="_blank"><img alt="Screenshot" src="images/screenshots/elchat.png" style="max-height: 230px"></a>
</p>
<p>A chat client that my group of friends and I used a lot, inspired by the old MSN Messenger.</p>
<p>The program supported emoticons, formatting, private conversations, saving chat history, theming, custom servers and moderation.</p>
<blockquote class="quoteuote">
<p>Written in Visual Basic 6, compiled and tested on Windows XP.</p>
</blockquote>
</div>
<div class="project" data-tag="archive">
<a id="hackthesystem" class="anchor" href="#hackthesystem" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>
<h3>
HackTheSystem
<img alt="Windows" class="button" src="images/icons/windows.svg" />
<span class="year">(2004~2007)</span>
<div class="floatright">
<span class="tag">๐๏ธ archive</span>
<a href="#hackthesystem" class="nav-button">๐</a>
</div>
</h3>
<p class="image-preview">
<img alt="Screenshot" src="images/screenshots/hackthesystem.png" style="max-height: 222px">
</p>
<p>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?</p>
<blockquote class="quoteuote">
<p>Written in Visual Basic 6, compiled and tested on Windows XP.</p>
</blockquote>
</div>
</div>
</section>
</div>
<script src="javascripts/main.js"></script>
</body>
</html>