Author: Jeod
Contributors:
- TerrorTowers
- hxdr0n0s
- Unstoppable
- Agent
A large chunk of PortMaster ports are games using the GameMaker Engine. This engine (referred to as GMS) is an excellent beginner engine for getting into porting, but can also quickly become pretty advanced. This primer hopes to accurately summarize a few key points for how GMS ports are created and work.
PortMaster Engineers heavily rely on a few major tools that make GMS ports successful.
Using wine is a deep rabbit hole for anyone not familiar with the software, and an even deeper rabbit hole when combined with box86 or box64. This guide attempts to serve as a basic introduction to using the built-in wine and box packages included with Rocknix on a Retroid Pocket 5. While the Retroid Pocket Mini is a similar setup chain, it is weaker hardware than the Retroid Pocket 5 and thus the examples provided here may not function as well.
The first thing anyone should understand is the vernacular used throughout this guide. Two tools are used to make wine ports possible on ARM64:
Box86 and Box64 by ptitSeb are Linux x86 and x86_64 emulators targeting AARCH64/ARM64 architecture.
Wine is a software that allows Windows programs to run on Linux systems. Prebuilt wine binaries can be downloaded from the [wine-builds](https://github.com
The Retroid Pocket Mini suffers from a scaling distortion issue caused by its display driver IC (integrated circuit). This driver has a built-in image processing engine designed to enhance video quality, but it misinterprets incoming resolutions that do not match the panel’s native 1280x960
resolution.
This means that any content not rendered at exactly 1280x960 will be processed by the display driver, causing:
Although CRT shaders made the issue more noticeable (due to misaligned scanlines), the root cause is the display driver’s scaling algorithm, which affects all non-native resolutions — whether shaders are applied or not.
Sparse checkout is a useful Git feature that lets you only download and work with specific parts of a repository. The PortMaster-New repository is massive — over 50GB in size. Since you're most likely not going to be modifying multiple ports, there's no need to download the entire thing. Use sparse checkout to only grab what you need.
Since you’ll be working in the terminal, you'll need Git installed. Download and install it, either using sudo apt install git
or downloading Git for Windows depending on your platform. If you use GitHub Desktop, you may already have Git installed. You can check if it’s installed by running git --version
in your terminal.
If you haven't done so, fork the repository at https://github.com/PortsMaster/PortMaster-New. You can do this in a web browser. In your computer's terminal, clone it: `git clone --filter=blob:none --depth 1 --no-checkout https://github.com/USERNAME/PortMaster-New PortMaster-New
Website: https://www.playtron.one/
X.com: https://x.com/PLAYTR0N
What follows is my first venture into understanding what Playtron is and forming an opinion on whether it has any value to the average retro enthusiast. I first learned of Playtron about six months ago (December 2024ish) and on seeing they're a linux handheld contender based in the USA, of course I felt obligated to research. Back then they were a fairly new company to the greater SBC community we know and love, and information about them was scarce. All I could find then was "maybe arm" and they had hired ptitSeb the box64 developer. After that, my interest sort of died as they weren't too established yet--my attention turned back to ongoing projects with PortMaster and the (at the time) more prominent Retroid Pocket 5 that was generating excitement among the community.
Playtron positions itself as a Windows and Steam Deck rival, aiming to “extract the gaming ecosystem” with GameOS,