Check out our Monthly Survey Page to see what our users are running.
Fairtris 2
I found out about this recently, and thought I'd let you guys know. There's a NES Tetris clone, written in FreePascal, called 'Fairtris' that runs on SDL2. I've come to favor this over the NES ROM I'd been playing on Nestopia.

They've recently released a new version for it, with subtle enhancements that are explained in detail in the readme:

https://github.com/furious-programming/Fairtris-2-UC

(The first version of the game has been taken down for some reason, but a fork can still be found here, with patches that make building a Linux native binary more convenient: https://github.com/chronoscz/Fairtris)

To build it you need to install the FreePascal IDE called 'Lazarus' -- it's on the official repos of pretty much every mainstream distro: https://repology.org/project/lazarus/versions

A very minor patch needs to be applied to make the Linux build work properly -- & it's possible to apply the same change via the Lazarus GUI (the cog/wrench icon next to the play button; 'Config and Target' heading; 'Target OS' tab):

 
diff --git a/source/Fairtris.Main.lpi b/source/Fairtris.Main.lpi
index 4739517..28915b5 100644
--- a/source/Fairtris.Main.lpi
+++ b/source/Fairtris.Main.lpi
@@ -45,6 +45,8 @@
           </SearchPaths>
           <CodeGeneration>
             <SmartLinkUnit Value="True"/>
+            <TargetCPU Value="x86_64"/>
+            <TargetOS Value="linux"/>
             <Optimizations>
               <OptimizationLevel Value="3"/>
             </Optimizations>
@@ -55,11 +57,6 @@
               <RunWithoutDebug Value="True"/>
             </Debugging>
             <LinkSmart Value="True"/>
-            <Options>
-              <Win32>
-                <GraphicApplication Value="True"/>
-              </Win32>
-            </Options>
           </Linking>
           <Other>
             <WriteFPCLogo Value="False"/>


AFAICT the only runtime requirement is SDL2; the FreePascal bindings are all included in the game repo.

Unfortunately the 2nd version of the game launches only on X11. The first launches fine on XWayland too.

Last edited by walther von stolzing on 26 Apr 2024 at 8:20 pm UTC
whizse 26 Apr 2024
Pretty neat, nice find!

diff --git a/source/Fairtris.Main.lpi b/source/Fairtris.Main.lpi
index 4739517..28915b5 100644
--- a/source/Fairtris.Main.lpi
+++ b/source/Fairtris.Main.lpi
@@ -45,6 +45,8 @@
</SearchPaths>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
+ <TargetCPU Value="x86_64"/>
+ <TargetOS Value="linux"/>
<Optimizations>
<OptimizationLevel Value="3"/>
</Optimizations>
@@ -55,11 +57,6 @@
<RunWithoutDebug Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
- <Options>
- <Win32>
- <GraphicApplication Value="True"/>
- </Win32>
- </Options>
</Linking>
<Other>
<WriteFPCLogo Value="False"/>
Your first Linux port?

Unfortunately the 2nd version of the game launches only on X11. The first launches fine on XWayland too.
I only made a quick test with Weston, but it seems to run fine here, both in Xwayland and natively in Weston.
Pretty neat, nice find!

diff --git a/source/Fairtris.Main.lpi b/source/Fairtris.Main.lpi
index 4739517..28915b5 100644
--- a/source/Fairtris.Main.lpi
+++ b/source/Fairtris.Main.lpi
@@ -45,6 +45,8 @@
</SearchPaths>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
+ <TargetCPU Value="x86_64"/>
+ <TargetOS Value="linux"/>
<Optimizations>
<OptimizationLevel Value="3"/>
</Optimizations>
@@ -55,11 +57,6 @@
<RunWithoutDebug Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
- <Options>
- <Win32>
- <GraphicApplication Value="True"/>
- </Win32>
- </Options>
</Linking>
<Other>
<WriteFPCLogo Value="False"/>
Your first Linux port?

See, it's *that* simple -- if only detractors like Tim Sweeney understood that.

I only made a quick test with Weston, but it seems to run fine here, both in Xwayland and natively in Weston.

So it might be a Plasma 6 / Wayland problem.

-- EDIT: It runs fine on Sway, but not labwc; both wlroots compositors w/ the default Fedora configurations. Weird.

Last edited by walther von stolzing on 27 Apr 2024 at 12:04 am UTC
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register