# Repurpose and Mod your old PC into a FreeBSD Arcade Cabinet



## Samuel Venable (Sep 19, 2021)

Hey Guys!

I created Live CD Images that can be written to a >= 5GB USB stick and be booted from on almost any 64-bit Intel based computer. It supports both Legacy BIOS boot for older machines and UEFI boot for newer machines. It contains FreeBSD 13.0-RELEASE along with Xorg-minimal. When it is done booting, Xorg minimal will start automatically and it will run a startup script, which ultimately runs a specific game executable, which may be replaced with your own game, software, or launcher executable. If your game, app, or launcher does not require internet connection, it's as simple as mounting the USB drive's second partion on an existing FreeBSD system as a UFS type, then replace the example game executable found in the Home Folder with an executable you'd like to run instead on boot. The dependencies written to live system are all of the ones needed to run a STIGMA-created game, (STIGMA is an ENIGMA / enigma-dev fork I am currently working on as a hobby, and hoping to gain some traction from FreeBSD users, especially, for those here interested)! At the time of writing it should also work with ENIGMA-created games.

STIGMA dev can be downloaded here:








						STIGMA Development Environment by Samuel Venable
					

stigma-dev




					samuel-venable.itch.io
				




Live Images are available here (amd64):





						FreeBSD - Google Drive
					






					drive.google.com
				




The license of STIGMA is GPLv3, however the authors of the software agree you don't need to share the source code of your games or software at all, provided you do not use STIGMA / ENIGMA code to create a Game _Development_ software or environment in specific, in which case then you would have to provide source code. They are planning a linking exception to make this less of a concern for anyone who is hesistent to do this, or anyone who is skeptical about it regarding the current license choice, just in case. You may replace the contents (not rename!) the existing startup script also found in the Home Folder to have it go ahead and run the desired executable, using the default posix shell as the shell interpreter, and you can also run any additional cleanup code you minght need in the script if you don't want the files the executable writes to disk to be persistent across boots, similar to what I have done. Make sure if you do that, there is a means to close the app you ran in the actual interface, because it only will shutdown and run cleanup in the script after the app has closed manually, and if you press the power button and try to shutdown that way; this will allow the files to be persistent even if you run cleanup code in your script, but this highly depends on whether the file cleanup is executed after the game/software/laucher executable, not before. If you do cleanup first, it will delete the files you chose before the executable even gets the chance to run obviously; it will never keep the files persistently by the time the executable  runs. Then mod your PC! STIGMA / ENIGMA has SDL2 Joystick / Gamepad support.

Raspberry Pi 4 Images are planned for the near future.  If I run out of Google Drive space, I intend to move hosting to itch.io in the long-term.

Cheers,
Samuel


----------



## sidetone (Sep 20, 2021)

Atari Jaguar was opensourced to public domain. It's not in ports, though.

That would be a good basis for homebrew arcade games.

I also wonder about opensource and shareware Dos games. Dos games would be up to 16 bit style graphics. There's a DOS called PDOS, Public Domain OS.


----------



## Samuel Venable (Sep 20, 2021)

sidetone you know, if i can fit the dependencies of other software compressed down to less than 1 GB like I was able to for the STIGMA deps, there's really nothing stopping me from making more of these in different flavors and hosting them all on itch.io, since they are nice enough to allow uploads up to 1GB free.

I'm busy working for a client atm, but that is definitely something I'd like to pursue and will check it out.


----------



## sidetone (Sep 20, 2021)

I understand that Stigma is an Enigma fork and Gamemaker clone. (Gamemaker is proprietary). From the website, Stigma has better utf8 support, so games don't crash due to text. I notice WebM as a container format for royalty free audio and video. This is mostly for this over the internet. Other royalty-free container formats to look at are oga (ogg audio) and ogv (ogg video). WebM and oga are both containers that use the same audio formats of Opus (https://xiph.org/, https://opus-codec.org/) and Vorbis. The containers use different types of video.

What other major ways is Stigma different than Enigma? Are the scripts for starting up included in it?

Also, the name Stigma is kind of negative. IMO, any naming needs a positive or neutral connotation. Naming associates with the project.

Edit: What about Sigma?


----------



## Samuel Venable (Sep 20, 2021)

sidetone said:


> I understand that Stigma is an Enigma fork and Gamemaker clone. (Gamemaker is proprietary). From the website, Stigma has better utf8 support, so games don't crash due to text. I notice WebM as a container format for royalty free audio and video. This is mostly for this over the internet. Other royalty-free container formats to look at are oga (ogg audio) and ogv (ogg video). WebM and oga are both containers that use the same audio formats of Opus (https://xiph.org/, https://opus-codec.org/) and Vorbis. The containers use different types of video.
> 
> What other major ways is Stigma different than Enigma? Are the scripts for starting up included in it?
> 
> Also, the name Stigma is kind of negative. IMO, any naming needs a positive or neutral connotation. Naming associates with the project.


There's also my xProcess library built-in so it allows for things like synchronous and asynchronous shell execution and reading from stdout, writing to stdin, etc. The UTF-8 issue was a Windows-only bug, and there are still existing issues I'm fixing little by little with that in regards to external file reading and writing. The goal is to make that a huge priority because the ENIGMA devs are considering to drop support for Windows and are unlikely to take much priority in fixing the UTF-8 issues and they all speak english with some of them even openly expressing they don't care about supporting other languages, which is pretty awful considering most of planet earth prefers to use their first language, and most of the world uses something besides English/Latin character sets. I haven't yet, but I plan to support more desktop platforms they do not wish to support, such as DragonFly BSD, OpenBSD, NetBSD, and Solaris variants, while remaining fully cross platform with most features, and DragonFly BSD support is mostly done. FreeBSD users can build their games on FreeBSD, and move their project files to these other platforms, and it should be as simple as pressing the build button from one codebase. I also prioritised desktops and dont target mobile to prevent biting off more than I can chew. The fork is still very recently started, so there aren't huge differences yet, but the two projects will drift more apart as time goes on as they take their own directions. STIGMA was chosen as joke really, as it contains most of the same letters ENIGMA, and that was the only reason I chose that name. The original meaning of the acronym STIGMA was considered vulgar by several users so I decided to detach from its original meaning and give it no actual definition. I am also looking to remove features that are not implemented fully cross-platform to avoid confusion.


----------



## Samuel Venable (Sep 26, 2021)

Haven't tested it yet, and will edit my post with whether it works, but here's a script to automate making making a fresh FreeBSD install have the same contents: https://github.com/time-killer-games/freebsd-arcadebuilder/blob/main/install.sh


----------



## grahamperrin@ (Sep 26, 2021)

Sorry! I added the wrong file to VirtualBox. FreeBSD-13.0-STABLE-amd64-20210527-024a9aa7010-245691.vhd is not one of yours. 

I have deleted my earlier comments, sorry for the confusion


----------



## Samuel Venable (Sep 28, 2021)

Hey! Just wanted to update everyone that my arcade builder script works on FreeBSD 13.0-RELEASE amd64 now. I tried it on aarch64/arm64 and it stops booting at the point it prints to the console that it recognizes the plugged keyboard I am using for my Rasperry Pi 4, does anyone know what's potentially wrong with my script on the Pi?









						GitHub - time-killer-games/freebsd-arcadebuilder: Shell Script to Create Custom FreeBSD Arcade Cabinet OS from STIGMA games
					

Shell Script to Create Custom FreeBSD Arcade Cabinet OS from STIGMA games - GitHub - time-killer-games/freebsd-arcadebuilder: Shell Script to Create Custom FreeBSD Arcade Cabinet OS from STIGMA games




					github.com
				




I will investigate it further if no one has any ideas or hints.
Samuel


----------



## Samuel Venable (Nov 26, 2021)

Wanted to let everyone I updated the *.img files download link in the OP:





						FreeBSD - Google Drive
					






					drive.google.com
				




This new version works better with UEFI bootable systems. On some machines it was known to crash when booting completed, thus shutting down thereafter, making it useless. This update should hopefully fix that issue so that it is less likely to happen on your machine, if not garanteed to work.

The UEFI image is also about 200MB smaller than it used to be, roughly in the 500MB-600MB range now.


----------



## Menelkir (Nov 26, 2021)

Maybe this can be useful for you: emulators/emulationstation.


----------

