cat /dev/urandom | tr -dc 'a-z A-Z'
https://swordfish90.github.io/
Thu, 04 Dec 2025 22:32:59 +0000Thu, 04 Dec 2025 22:32:59 +0000Jekyll v3.10.0Lemuroid 1.17.0<p><img src="/assets/images/2025-12-04-lemuroid-1-17-0.jpg" alt="lemuroid_1_17_0" /></p>
<p>It has been ages since I last wrote on this blog, but <strong>Lemuroid 1.17.0</strong> is rolling out now in beta and that deserves a post.</p>
<p>Headline changes:</p>
<ul>
<li>Added microphone support for Nintendo DS</li>
<li>Deprecated DeSmuME, now replaced by MelonDS</li>
<li>Completely redesigned touch controls</li>
<li>Added immersive mode with dynamic background color (as you can see in the pic)</li>
<li>Slightly improved HD mode</li>
<li>Added quicksave/quickload gamepad shortcuts</li>
<li>Added support for 16Kb pages</li>
<li>Updated all cores and databases</li>
<li>Various UI/UX improvements</li>
</ul>
<p>A lot of work also went under the hood to modernize the app: the mobile UI is now 100% Jetpack Compose (TV is still pending) and the controls have been completely redesigned.</p>
<p>On a personal note, a lot has changed this year; the latest is that I’m cofounding a company called <strong>GCast</strong> with a dear friend, and I’m excited to share more very soon.</p>
<p>You can grab the beta on <a href="https://play.google.com/store/apps/details?id=com.swordfish.lemuroid">Google Play</a>. As soon as it gets a little bit of testing, you’ll find 1.17.0 on <a href="https://github.com/Swordfish90/Lemuroid/releases/tag/1.17.0">Github</a> and <a href="https://f-droid.org/packages/com.swordfish.lemuroid/">F-Droid</a> alongside the usual channels.</p>
<p>Enjoy!</p>
Thu, 04 Dec 2025 10:30:00 +0000
https://swordfish90.github.io/lemuroid-1-17-0.html
https://swordfish90.github.io/lemuroid-1-17-0.htmlCUT3 Released<p><img src="/assets/images/2024-10-27-cut-3.jpg" alt="release_screenshot" /></p>
<p>Hi everyone,</p>
<p>Over the past few months, I’ve been working on enhancing the <strong>CUT</strong> algorithms in Lemuroid. For those unfamiliar, CUT (Cheap Upscaling Triangulation) is a family of upscaling techniques that transform pixelated games, giving them a modern HD appearance.</p>
<p>I started this quest by completely <strong>rewriting CUT2</strong>, making it faster and significantly better at handling antialiased edges. This brings noticeable improvements to modern games and in games with mixed 2D and 3D content, like the classic Final Fantasy titles on PSX.</p>
<p>Building on that, I developed a new variant, <strong>CUT3</strong>. While slightly slower, CUT3 has the ability to approximate edges at any angle, improving shapes especially in retro games.</p>
<p>I’m sharing a <a href="https://swordfish90.github.io/cheap-upscaling-triangulation/"><strong>demo web app</strong></a> where you can see the new shaders in action. It showcases how the filters look on a wide range of games, from the 8-bit era to modern titles.</p>
<p>As always, the code is available on <a href="https://github.com/Swordfish90/cheap-upscaling-triangulation">GitHub</a> under the GPL3 license. Feel free to check additional details or use it in your own open-source projects.</p>
<p>These enhancements are already available in <strong>Lemuroid 1.16.2</strong>, so make sure to update the app and let me know what you think.</p>
<p>Enjoy more games in HD!</p>
Fri, 27 Oct 2023 10:30:00 +0000
https://swordfish90.github.io/cut-3.html
https://swordfish90.github.io/cut-3.htmlLemuroid 1.15.0<p><img src="/assets/images/2023-03-28-lemruoid-1-15-0.jpg" alt="release_screenshot2" /></p>
<p>Dear fellow readers,</p>
<p>It has been a long time since I last wrote here, but I’m back with some exciting news.</p>
<p><strong>Lemuroid 1.15.0</strong> is out and comes with major improvements to the <strong>HD mode</strong>.</p>
<p>I’ve spent the last few months working on a new upscaling algorithm, called unsurprisingly <strong>CUT2</strong>, which improves interpolation and handles edges at 30°, 45° and 60° degrees.</p>
<p>Feel free to check more screenshots and details on the <a href="https://github.com/Swordfish90/cheap-upscaling-triangulation">CUT Github page</a>.</p>
<p>If you prefer, you can still use the older version by toggling “Advanced Settings -> Prefer Legacy HD Mode”.</p>
<p>As always, you can grab the latest Lemuroid version, with updated cores and database, on <a href="https://play.google.com/store/apps/details?id=com.swordfish.lemuroid">Google Play</a>, <a href="https://github.com/Swordfish90/Lemuroid/releases/tag/1.15.0">Github</a> and <a href="https://f-droid.org/packages/com.swordfish.lemuroid/">F-Droid</a>.</p>
<p>Cheers!</p>
Tue, 28 Mar 2023 10:30:00 +0000
https://swordfish90.github.io/lemuroid-1-15-0.html
https://swordfish90.github.io/lemuroid-1-15-0.htmlLemuroid 1.13.0<p>It’s finally time for a new Lemuroid release. It took a while, but I promise you <strong>1.13.0</strong> was worth the wait.</p>
<p>There are three main changes:</p>
<ul>
<li><strong>New Material You UI:</strong> The UI now follows the new Material You guidelines, and if you own an Android 12 device, will change style depending on your background.</li>
<li><strong>Beta Support for 3DS:</strong> The Libretro guys recently polished and updated the Citra core, and porting it to Android was quite straightforward. It’s still pretty barebone and deprived of settings, but already serviceable.</li>
<li><strong>Direct Load:</strong> Some changes to cores were required, but now Lemuroid is able to load games directly from storage, without copying them to the cache directory. This means that PSX, PSP and 3DS games, which are usually quite big, load instantly when not compressed.</li>
</ul>
<p>If that’s not enough, here’s a list of smaller changes:</p>
<ul>
<li>Add support for external keyboards</li>
<li>Add support for gamepad and device rumble</li>
<li>Opening game menu now requires a long press</li>
<li>Slight improvements to touch controls layout and behaviour</li>
<li>Expose sync save button</li>
<li>Update all cores and game database</li>
<li>More fixes</li>
</ul>
<p>The update will be shortly available on <a href="https://play.google.com/store/apps/details?id=com.swordfish.lemuroid">Google Play</a>, <a href="https://github.com/Swordfish90/Lemuroid/releases/tag/1.13.0">Github</a> and F-Droid.</p>
<p>Enjoy!</p>
Mon, 14 Mar 2022 10:30:00 +0000
https://swordfish90.github.io/lemuroid-1-13-0.html
https://swordfish90.github.io/lemuroid-1-13-0.htmlcool-retro-term 1.2.0<p><img src="/assets/images/2022-01-29-crt-1-2-0.jpg" alt="layouts" /></p>
<p>These last few months have been particularly busy for me, both from a personal and professional perspective. My open-source time was reduced to basically zero, but I feel like I’m slowly getting back on track.</p>
<p>I decided to revisit an old friend, which was desperately in need for some love, so I’m very proud to announce version <strong>1.2.0</strong> of <strong>cool-retro-term</strong>.</p>
<p>Here you can find the changelog:</p>
<ul>
<li>Migrated QtQuickControls from 1.x to 2.x</li>
<li>Fixed a lot of issues with MacOS build</li>
<li>Added support for blinking cursor</li>
<li>Added sub-pixels rasterization</li>
<li>Updated qtermwidget engine</li>
<li>Updated many fonts to the latest version</li>
</ul>
<p>As always, you can grab it from the <a href="https://github.com/Swordfish90/cool-retro-term/releases/tag/1.2.0">GitHub Release page</a>.</p>
<p>Cheers!</p>
Sat, 29 Jan 2022 10:30:00 +0000
https://swordfish90.github.io/crt-1-2-0.html
https://swordfish90.github.io/crt-1-2-0.htmlLemuroid 1.11.0<p>This wanted to be a minor release, but a few important features slipped in, so say hi to Lemuroid <strong>1.11.0</strong>.</p>
<p>There are a couple of new platforms, <strong>Neo Geo Pocket / Color</strong> and <strong>Sega CD</strong>, but the main focus has been on quality:</p>
<ul>
<li>The <strong>disk scanning</strong> procedure is now way more robust, especially with cue/bin files</li>
<li><strong>Multi-track</strong> disks are now properly supported</li>
<li>Single gamepads can be disabled (very important when strange TV remotes take the lead)</li>
<li><strong>New translations</strong> on <a href="https://crowdin.com/project/lemuroid">Crowdin</a> (thank you very much guys!)</li>
<li>Nearly every core <strong>has been updated</strong> to the latest Libretro version</li>
<li>Some <strong>bugs</strong> and <strong>crashes</strong> have been fixed</li>
</ul>
<p>Last, but definitely not least, this release also improves on <strong>tilt input</strong>. This feature was introduced a year ago only for sticks, but after a lot of thinking, I decided to extend it to more controls.</p>
<h4 id="tilt-input-improvements">Tilt input improvements</h4>
<p>While touch controls are designed to be used with thumbs, physical gamepads allow more simultaneous actions. Let’s take a look at how you shoot in the first Resident Evil game:</p>
<ul>
<li>You keep your right index on R1 to raise your gun</li>
<li>You aim using your left thumb on the DPAD</li>
<li>You shoot with your right thumb by pressing X</li>
</ul>
<p>This is basically impossible to achieve with two fingers, but the tilt sensor can act as your third one. If you <strong>triple tap</strong> together L1 and R1 (or L2 and R2), Lemuroid will calculate the rest position and map left and right tilt motions to L1 and R1 respectively, so you’ll be able to aim just by <strong>tilting your device to the right</strong>.</p>
<p>This maps very well for many other games. You’ll finally be able to <strong>simultaneously shoot and strafe</strong> while playing DOOM or shift gears Gran Turismo. Ah, and If you triple tap exactly in the middle of the DPAD you’ll also be able to play Pokemon games with just one hand. Please give it a go, I’m eager to hear your feedback.</p>
<h4 id="thank-you-supporters">Thank you Supporters</h4>
<p>I’d also take the opportunity to thank all the people who supported and are supporting Lemuroid. It’s great to see that people genuinely appreciate the 18 months of work I’ve put into this project and decided to give something back. You guys are <strong>awesome</strong>!</p>
<p>Cheers!</p>
Tue, 04 May 2021 10:30:00 +0000
https://swordfish90.github.io/lemuroid-1-11-0.html
https://swordfish90.github.io/lemuroid-1-11-0.htmlLemuroid 1.10.0<p>Hi guys, it’s been a while since I posted here, but that doesn’t mean the work on Lemuroid stopped, on the contrary. I’m pretty proud to announce that version <strong>1.10.0</strong> is out, and it’s bigger than it looks.</p>
<p>It comes with major reworkings in a few key areas so let me just give you the highlights:</p>
<p>Added support for three new (old) platforms: <strong>PC Engine</strong>, <strong>Atari 7800</strong> and <strong>Atari Lynx</strong>.</p>
<p>Cores are now downloaded <strong>on demand</strong>. After you scan your library Lemuroid will just take a look at your games and settings and only download the cores it requires. This, together with some additional optimizations, reduced the download size of the application to just <strong>6MB</strong>. Each core will require an additional download from 100KB up to a few MB.</p>
<p>On some consoles, it’s now possible to choose between different gamepads types and different touch controls. This means that you can now switch between Standard or DualShock for PSX, 3 or 6 buttons for Genesis and 4 or 6 buttons for Arcade.</p>
<p>The application is now fully <strong>localizable</strong> on <a href="https://crowdin.com/project/lemuroid">crowdin</a>, with translations for <strong>Italian</strong> and <strong>Portuguese (BR)</strong> already included (thank you guys, you were really fast). Feel free to follow that link if you want to contribute your own language or proofread the work of others.</p>
<p>Added the possibility to <strong>support me</strong> via in-app purchases. Lemuroid is and always will be completely free, with no Ads or any feature blocked behind a paywall, but if you enjoy it and want to ensure its future development you can now do so in just <strong>one click</strong>.</p>
<p>The rest of the changes are under the hood. Cores and databases have been updated, and many application libraries have been updated or replaced. A bigger refactoring also landed, which brought faster and smoother game loading.</p>
<p>Have fun with it!</p>
Tue, 13 Apr 2021 10:30:00 +0000
https://swordfish90.github.io/lemuroid-1-10-0.html
https://swordfish90.github.io/lemuroid-1-10-0.htmlLemuroid 1.8.0 with MelonDS and MAME2003-Plus<p>Hello fellow readers,</p>
<p>To celebrate the first year of Lemuroid, I’ve published a new version with two major features: improved <strong>Nintendo DS</strong> emulation (with MelonDS) and <strong>MAME 0.78</strong> support (with MAME2003Plus).</p>
<p>For almost a year we survived using DeSmuME, but now that <strong>MelonDS</strong> has made some huge steps forward with version 0.9, including a dynamic recompiler for 64bit CPUs and many optimizations, it’s time for some changes.</p>
<p>I submitted a few patches to fix the Android port, added some firmware emulation options, and integrated the Drastic open-source BIOSes. Add a few of bug-fixes on top and stir for a month of tests and you’ll get a Nintendo DS emulator that is twice as fast.</p>
<p>We really need to thank Arisotura and her team. They worked very hard on the project, but we can finally enjoy a great open-source DS emulator on Android.</p>
<p>Some of my patches are still waiting for an upstream approval, but rest assured, as soon as these are merged you’ll be able to reap the benefits also in RetroArch.</p>
<p>The integration of MAME2003 Plus was a lot more straightforward, requiring only some slight changes to LibretroDroid.</p>
<p>Since we’re talking about big news: Lemuroid is also available on <a href="https://f-droid.org/en/packages/com.swordfish.lemuroid/">F-Droid</a>. It’s a special version deprived of every Google library, which also downloads cores on demand.</p>
<p>Here you can find a complete changelog of Lemuroid 1.8.0:</p>
<ul>
<li>New Nintendo DS core (MelonDS)
<ul>
<li>~2x the performances of DeSmuME</li>
<li>Saves and States are not compatible with DeSmuME</li>
<li>Enable it from Settings -> Change Cores -> MelonDS</li>
</ul>
</li>
<li>Add support for MAME2003 Plus core
<ul>
<li>Support MAME 0.78 romsets</li>
<li>Use full non-merged ROMs for auto-detection</li>
</ul>
</li>
<li>Redesigned game menu Improved</li>
<li>Improved touch controls customization experience</li>
<li>Improved Arcade and MD/Genesis gamepad layouts</li>
<li>Fix possible crash when saving/loading games (thanks you <strong>Nicholas</strong>)</li>
<li>Fix directory scanning on Chromecast with Google TV (thank you <strong>vicviper74</strong>)</li>
<li>Many more tiny changes</li>
</ul>
<p>As always, huge thanks to all the people who are supporting Lemuroid through tests, feedbacks or <a href="https://swordfish90.github.io/donations/">donations</a>.</p>
<p>Enjoy!</p>
Wed, 16 Dec 2020 10:30:00 +0000
https://swordfish90.github.io/lemuroid-1-8-0.html
https://swordfish90.github.io/lemuroid-1-8-0.htmlLemuroid 1.7.1 with fast-forward and quality<p>This last month I’ve been very busy drafting the release of 1.7.0, and later 1.7.1 for bonus bug fixing.</p>
<p>The biggest work went towards redesigning <strong>audio</strong>, which now runs on a separate thread and reduces glitches by imperceptibly accelerating and decelerating playback speed. This can’t make up for weak hardware running modern consoles, but it surely improves one of the biggest issues affecting Lemuroid. I’ll probably write a separate blog post about this. It was a very interesting and challenging problem.</p>
<p>The second most important change is <strong>fast-forward</strong> support. The most requested feature is here, and you can finally farm at double speed.</p>
<p>Something else happened in this release. It’s the first time Lemuroid (and LibretroDroid) received non-trivial external <strong>contributions</strong>, so a big thank you goes to <strong>Roberto</strong> and <strong>Tyler</strong> for their efforts.</p>
<p>And now for dessert, a lengthy <strong>changelog</strong>:</p>
<ul>
<li>Add fast-forward option</li>
<li>Add mute option</li>
<li>Reimplemented audio from scratch to be more robust to glitches</li>
<li>Fix potential crash when loading PSP games</li>
<li>Fix screen flickering with some PSP games</li>
<li>Fix crash while playing Drill Dozer on GBA</li>
<li>Change n64 resolution to the original 320x240</li>
<li>Exposed dynamic recompiler option for PSX (Enable it for better performances)</li>
<li>Updated games database</li>
<li>Fix issues with some PSP games running too fast</li>
<li>Fix missing trigger events with some gamepads</li>
<li>Fix missing gamepads events in some scenarios</li>
<li>Fix wrong aspect ratio with Genesis games</li>
<li>Improved error handling with clearer messages</li>
<li>Small fixes and improvements</li>
</ul>
<p>A big thank you to the people who are supporting Lemuroid with code, <a href="https://swordfish90.github.io/donations">donations</a>, and testing. You’ve been amazing.</p>
<p>Enjoy!</p>
Wed, 21 Oct 2020 10:30:00 +0000
https://swordfish90.github.io/lemuroid-1-7-1.html
https://swordfish90.github.io/lemuroid-1-7-1.htmlLemuroid 1.6.0 with many improvements<p>Finally! I’m very happy to announce Lemuroid 1.6.0, with nothing particularly shiny but many many quality of life improvement, especially for PSX and Android TV:</p>
<ul>
<li>Added support for chd and cue/bin format (PSX)</li>
<li>Added support for multi-disk games with m3u playlists (PSX)</li>
<li>Added support for favorites on Android TV</li>
<li>Improved LCD filter which now looks sharper</li>
<li>Allow changing display filter (Smooth, Sharp, LCD or CRT)</li>
<li>Improved scanning performances (on my directory it’s around 3 times faster)</li>
<li>Cores are now bundled within the application (read afterwards for details)</li>
<li>Many small tweaks and improvements</li>
</ul>
<p>You’ll find the update on Google Play or <a href="https://github.com/Swordfish90/Lemuroid/releases/tag/1.6.0">Github</a>.</p>
<p>A lot of work went into the scanner, which is now able to handle bin/cue files and m3u playlists for multi-disk games. This should make the majority of PSX ROMs compatible with Lemuroid.</p>
<p>Another heavily requested feature by the community was a sharper image filtering. The default bilinear filtering doesn’t always look good, especially on TVs when using the LCD shader.
The nearest neighbour filtering has its own set of issues when scaling by non integer factors, causing inconsistent pixel sizes throughout the image.
The best solution I found is a sharper bilinear filtering by sampling pixels in a smarter way. Try it out and let me know what you think!</p>
<p>Why are cores now bundled within Lemuroid? Because Google Play blocked updates for <a href="https://www.libretro.com/index.php/retroarch-1-9-0-wont-be-releasing-on-google-play-store-for-now/">Retroarch</a> for downloading untrusted executable code. Lemuroid did the same and it’s a real security concern, so after a few failed attempts with Dynamic Features, I decided to bundle cores with Lemuroid. This increased the download size from 6Mb to around 25Mb but should make it compliant.</p>
<p>And that’s all the news this month, excluding that Lemuroid was removed and reinstantiated on Google Play for an mysterious policy violation, the hacker attack to the <a href="https://www.libretro.com/index.php/buildbot-server-up-and-running-again-the-status-and-future-plans/">Libretro servers</a> and the guy who tried to sell GBA games using a Lemuroid clone.</p>
<p>Yeah. It was a quiet month…</p>
<p>If you are enjoying Lemuroid and appreciating my work, you can support my endeavours <a href="https://swordfish90.github.io/donations">here</a>.</p>
<p>Cheers!</p>
Sat, 29 Aug 2020 10:30:00 +0000
https://swordfish90.github.io/lemuroid-1-6-0.html
https://swordfish90.github.io/lemuroid-1-6-0.html