I have a new thing to show, GCN Port: ReMined – Type A.
Porting
I wanted to explore thoughts of how I could go about the process of making ports of programs where I don’t wish to make significant changes to how the original program functions, looks, is designed etc. and just wish to make the minimal changes required to adapt the program to a new form.
As someone who has observed homebrew and open source development for a couple of decades now I’ve noticed a number of occasions where I have come accross multiple programs that are intended to be ports of the same program, say Doom, Quake or OpenTTD often by multiple different people and/or of different versions of the original program often using then same name with very little information given accross to users to differentiate between them.
I wanted to ensure ports that I make are more clearly defined from a user perspective and provide useful information like what program and version of that program has been ported.
I decided to use the prefix “GCN Port:” to distinguish my ports from the original program and other possible ports/forks, the “Type -” suffix to distinguish between my possibly different ports/forks of the original program and then the further implementations suffix “Imp—–” to further distinguish between different porting/adaptation methods used.
ReMined
For my first attempt at porting a program I decided to port the Microsoft Minesweeper clone “ReMned”. The Type A designation in this case means that the port shall be based on Version 0.61 of ReMined with minimal changes to any aspects of the program where possible.
Version 0.61 of ReMined was developed by Nelson Elhage and obtained from the program’s project repository hosted at the web-based project hosting service provider SourceForge (https://sourceforge.net/ at the time of writing).
Initial implementation – implementation Imp00001
I currently only have one implementation of GCN Port: ReMined – Type A to show at this point.
The purpose of this initial implementation was to attempt to develop versions of GCN Port: ReMined – Type A that will run on hardware and software that feature keyboard and mouse as their primary user interface. The method to achieve this was to be by predominantly using the C programming language along with the Simple DirectMedia Layer (SDL) 1.2.X API.
This initial implementation is a bit of a cheat as version 0.61 of ReMined already ran on hardware and software that feature keyboard and mouse as their primary user interface and was developed using the C programming language along with the Simple DirectMedia Layer (SDL) 1.2.X API but I included a component I called “GCN Front Matter” which differentiates it from the original program and gives it a purpose.
GCN Front Matter
In keeping with my desire to ensure that ports I make provide a more useful experience to users I wanted to include a component based on the the “front matter” of books.
The “front matter” of a book contains information about that specific publication and/or the main content. The front matter is usually different per edition/publication but the actual main contents usually remains unchanged between editions/publications.
With that in mind I used the “GCN Front Matter” component to include some content specific to this version of implementation Imp00001 of GCN Port: ReMined – Type A and made the program open with this component.
Version 0.61 of ReMined includes parameters that can only my set by passing command-line arguments to the program upon launch. Using command-line arguments to set parameters can be rather user unfriendly so through the GCN Front Matter component, as well as provide information specifically about the program I also included the ability to set the program’s parameters without passing command-line arguments.