• Welcome to my website. I like doing activities and the purpose of this website is to have somewhere to show off some of the results of some of the activities that I do.

    I am currently referring to the results of my activities as “Things”. You can find the “Things” by using the link “Find Things”.

    I plan to announce changes and updates in the log section.


  • After correcting the errors that I had made in version 1 of Imp00001 of GCN Port: Deathchase 3D – Type A I decided to check to see if I had made the same errors in both initial versions of the two implementations of GCN Port: ReMined – Type A I had published since I had used the front matter code from those in the front matter of version 1 of Imp00001 of GCN Port: Deathchase 3D – Type.

    That indeed is where those errors had originated so I have corrected those errors and published new versions of both implementation Imp00001 and implementation Imp00002 of GCN Port: ReMined – Type A.

    “Implementation” blindspot?

    For some reason I keep making the mistake of misspelling implementation and even keep overlooking said mistake when I read through what I have written.

    After correcting the mistakes in both GCN Port: Deathchase 3D – Type A and GCN Port: ReMined – Type A I wanted to check if I had made the same misspelling of implementation in the other things that I have published. I discovered that I had indeed misspelt implementation elsewhere.

    I have made said misspelling throughout my previously published things. It seems however that I have not used the word in the actual programs and the misspelling only appears in documentation so I do not need to make new versions of the programs.

    I could go though all of the documentation, correct the errors and re-upload all of the previously published things but I have decided against doing so, to accept that mistakes happen and it’s probably not worth spending too much time going back when there are plenty of thing to move forward with.


  • Error correction

    Whilst I was developing version 1 of Implementation Imp00002 which was forked from version 1 of Implementation Imp00001 I realised that I had made a couple of errors in version 1 of Imp00001 which I have corrected with version 1.1.

    I had misspelt the word “implementation” in the title of the “About this Implementation” screen and I had mistakenly included two spaces between the “Deathchase 3D” and “- Type” portions of the program title which is displayed on every screen of the front matter.

    Control alterations

    Even though the idea behind the “GCN Port” concept was to make minimal changes to the original program being ported I felt like altering the controls in Deathchase 3D because I do not like the original controls so whilst I was in the process of developing a new version I did so.

    The original controls were [K] and [M] to accelerate and decelerate, [Z] and [X] for steering and [space] to fire missiles.

    I altered the controls to [W] and [S] to accelerate and decelerate, [A] and [D] for steering and [space] to fire missiles.

    I also altered the instructional information in the front matter to match the altered controls.


  • In a continuation of following the same process as GCN Port: ReMined – Type A I have begun a second implementation of GCN Port: Deathchase 3D – Type A which is targetted at hardware and software that is compatible with Nintendo Wii systems and the method used is to predominantly use the C programming language, devkitPPC and the Simple DirectMedia Layer (SDL) 1.2.X API.

    The controls aren’t what I was planning to use, I wanted the player to be able to use the Wii Remote d-pad to control their vehicle – up and down for accelerate and decelerate, left and right for steering – but had issues getting the Wii Remote d-pad to work in the Deathchase 3D code even though I used it in the Front Matter code. I settled for using the Wii Remote face buttons in version 1 instead.


  • Following the same process as GCN Port: ReMined – Type A I have developed GCN Port: Deathchase 3D – Type A.

    So basically I forked Deathchase 3D and added the ability to set the parameters via a user interface within the program rather than having to set the parameters from outside of the program via command-line arguments. I also convey some information specifically about the program via the same user interface.

    Deathchase 3D

    “Deathchase 3D” is a remake by Paul Robson of the videogame “Deathchase”. Deathchase was developed by Mervyn Estcourt for the Sincair ZX Spectrum and released in 1983.

    I forked from version 0.9 of “Deathchase 3D” for GCN Port: Deathchase 3D – Type A. Version 0.9 of “Deathchase 3D” was obtained from an archived copy of Paul Robson’s website archived on 11th July 2007 by Internet Archive (https://archive.org/ at the time of writing).

    Initial implementation – implementation Imp00001

    Also following the same process as GCN Port: ReMined – Type A the first implementation I have developed is targetted at hardware and software that feature keyboard and mouse as their primary user interface with the development method also being to predominantly use the C programming language along with the Simple DirectMedia Layer (SDL) 1.2.X API.


  • I have begun a second implementation of GCN Port: ReMined – Type A.

    This implementation is targetted at hardware and software that is compatible with Nintendo Wii systems.

    The method used in this implementation is to predominantly use the C programming language, devkitPPC and the Simple DirectMedia Layer (SDL) 1.2.X API.

    Problems

    As is usual in my life the plan or vision I had in my head went wrong when attempting to make it a reality.

    I chose a program programmed in C and using the Simple DirectMedia Layer (SDL) 1.2.X API as my first attempt at developing the “GCN Port:” concept because I imagined it would make for a simple and straightforward process when attemping to make my first ports since C and the Simple DirectMedia Layer (SDL) 1.2.X API are available as development methods for many systems. However, things weren’t as simple and straightforward as I thought.

    I decided to perform an uninstall and fresh install of the latest versions devkitPro, devkitPPC and SDL-Wii before beginning this implementation but after uninstalling I could not get devkitPro’s ‘pacman’ package manager to download and install anything. After a number of failed attempts over multiple days and getting stressed out about it I decided to instead attempt a port to the Sega Dreamcast using KallistiOS via DreamSDK but once again I could not get the KallistiOS ‘pacman’ package manager to download and install anything.

    Following this I decided go back to the Nintendo Wii port and to find and install an old version of devkitPro and devkitPPC from before devkitPro choose to use the ‘pacman’ package manager and provided offline installers. I then downloaded a version of SDL-Wii and manually installed that.

    I then ran into a problem when attempting to use the version of the SDL_image extention library that I had installed when porting from implementation Imp00001 where I had used the .png image format so I ended up just sticking to the basic SDL 1.2.X API which can only handle the .bmp image format.

    Another problem I encountered was that I had planned on using the Nintendo Wii emulator ‘Dolphin’ to test run version 1 of implementation Imp00002 as I was developing it so I didn’t have to keep swapping an SD card between my computer and Wii but when running the program in ‘Dolphin’ the on-screen cursor doesn’t work properly but it does on my PAL Nintendo Wii system.

    Conclusion

    In the end I have a released a program which seems to work on a real Nintendo Wii system which was the intention but I do not feel particularly satisfied with the results or the process. I’m sure the problems that I encountered are fixable but I know that I’m probably not intelligent enough and/or don’t have enough free time to expend attempting to fix them without getting stressed out over a feeling that I’m not moving forwards.

    I may at some point in the future attempt to rectify the problems that I encountered but I’m now going to move on to something else so I don’t feel like I’m going nowhere.


  • 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.


  • I have begun a third implementation of GCN Matrix – Type A.

    This implementation is targetted at hardware and software that is compatible with Atari Jaguar systems and is predominantly developed using version 1.11 of JagStudio and the dialect of the BASIC programming language which is used by version 1.11 of JagStudio.

    The initial version of Imp00003 consists of a conversion of Version 2 of Imp00002 from Sinclair 48 BASIC to a form that is compatible with Atari Jaguar systems by predominantly using version 1.11 of JagStudio and the dialect of the BASIC programming language which is used by version 1.11 of JagStudio.


  • I have updated implementation Imp00002 of GCN Matrix – Type A to include the same changes that I made between Versions 1 and 2 of Imp00001 of GCN Matrix – Type A.


  • I have developed a second version of implementation Imp00001 of GCN Matrix – Type A.

    I wasn’t happy with the algorithm I used in Version 1 when a participant can’t take their turn.

    Said algorithm simply consisted of recording the last X and Y position in the Matrix which contained a number when checking if the Matrix has been emptied and then moving the cursor to that position. In version 2 I altered the algorithm so that the cursor is now moved to a random position in the Matrix that contains a number.

    I also added a message when a participant can’t take their turn which is intended to inform them of the situation and of the cursor being relocated.


  • I have begun a second implementation of GCN Matrix – Type A.

    This implementation is targetted at hardware and software that is compatible with Sinclair ZX Spectrum systems that have 48KB of memory, predominantly uses the Sinclair 48 BASIC programming language and any textual communication is in the language “British English”.

    The initial version of Imp00002 consists of a conversion of Version 1 of Imp00001 from Sinclair 8K BASIC to Sinclair 48 BASIC which since 48 BASIC is an extension of 8K BASIC was relatively simple.


Log records
Sep 2026
M T W T F S S
 123456
78910111213
14151617181920
21222324252627
282930