Ultra Air Hockey DX Source Code release!

Leave a Comment
Ultra Air Hockey DX
Source Code release!


 When Ultra Air Hockey DX v1.0 was released way back in February 2015 after completing Fundamentals of Software Engineering class in the Fall semester of 2014 at RMU, I had plans to eventually port the game to Android, and to then try to publish the game on Steam with achievements and online multiplayer. The Android port eventually surfaced in a v1.1 patch of the game in summer of 2015. However, due to many years passing since then and working on many other projects (including many now in an official video game development job with a company) and not having time for an online-multiplayer release, I am releasing the source code for the game today.

   In order to get the game on Steam, I would have to create original music (the music used in-game were module music from ModArchive.org, since the game was originally freeware), as well as figure out online multiplayer and Steam Achievements. This coupled with the fact that I would have to greatly refactor the game's code for online multiplayer and due to the fact the game was created with an ancient version of Unity (3.x or 4.x if I remember correctly), I am releasing the source code, as well as the game's documentation from Fundamentals of Software Engineering class. Everything is open sourced with a GPL License, and is free for people to use as per the license. Downloads available on the project page.

Enjoy!

-Tamkis

DreamPi NOOBS-compatible image release

Leave a Comment
DreamPi NOOBS-compatible
image release!

    Two years ago for my 24th birthday, I finally picked up a Sega Dreamcast, one of Sega's coolest and most innovative game consoles, which unfortunately was discontinued prematurely during its video game generation. It's still possible today to get a Sega Dreamcast online (even without a dial-up service available at a residency), to browse the web and send emails on DC-compatible web browsers, and even to play some online games again via resurrected private servers. The Sega Dreamcast comes supplied with a 56k dial-up modem; although a DSL Broadband adapter (the infamous "BBA") exists, it's quite rare and expensive (still so today). 

 Older attempts at getting my Dreamcast back online

    During that year, I tried getting my Dreamcast online by creating a Linux-based PC-DC server on my modern laptop. A PC-DC Server is a set of software that runs on a computer that converts a modern-day ethernet internet connection to something that dial-up based computers can use to connect to the internet. The software will answer to the dial-up calls from older computers, and convert the modern-day internet connection to a dial-up connection which the older device can use. My modern development machine just so happened to have a legacy v.92 Fax-modem port. Unfortunately, the modem model of my Dreamcast requires a voltage on the dial-up connection in order to function, so I soldered up a Line Voltage Inducer circuit. Although I tried running some Linux commands on a BunsenLabs Linux virtual machine to run a PC-DC server, I was only able to connect the Dreamcast to the internet for browsing; I was unable to get it to connect to private game servers. Often a connection attempt would be flaky, which was odd, and I suspected the LVI not to be soldered that well.

   Thinking the issue could be either hardware or setup related (especially with using a virtual machine), a year later I received from someone a very nice, used, older PC tower (a custom-built K8V SE Deluxe mo'bo in a ThermalIntake XTaser3 case). Always wanting a machine dedicated to playing old DOS and Windows 95-based titles, I installed Windows ME onto an HDD for the machine. Although ME does not have direct Real Mode DOS support out of the box (it's buried in the OS), it's possible to hack Real Mode DOS functionality back into the machine. More about this machine in an upcoming blog post or video. With the machine, I installed into it a v.92 US Robotics PCI card for dial-up connections, which would give a much more authentic dial-up connection for a PC-DC server. After installing the related software to setup a PC-DC server using the PCI dial-up modem (Windows 98 guide), I still was only able to browse the web, but not connect to games. At one point the modem card caused booting up of ME to not respond indefinitely, and, due to my usage of the particular Real Mode DOS hack I used ("Real Mode DOS Patch 3", which sacrificed emergency boot and Safe Mode functionality to use) and not having a working System Restore point (due to not having an update patch which fixes system restore failure issues past an odd Sept. 2001 date), I had to reformat the drive with a fresh Windows ME install. At this point I gave on trying to setup a PC-DC server via VM and dedicated DosBox for an online connection and decided to eventually purchase a DreamPi.

Physical Windows ME
DOSBox :)

DreamPi attempt

   A DreamPi is a standardized set of software (a customized Linux Distro) and a set of hardware created by a fellow named "Kazade" which will create a simplified DC-PC server. A DreamPi setup consists of a Raspberry Pi model 2/3 computer, a Linux-compatible USB Fax modem, an ethernet connection, and a Line Voltage Inducer. The software takes care of the dial-up connection with a very minimum, automated setup for the user, and will even allow the user to create an account for the DreamPi on the Dreamcast Now website. The Dreamcast now website will show the usernames of players currently online with DreamPis, and which online compatible game they are playing, allowing for easy hooking up with people for online matches. DreamPi by extension can also get other dial-up based computers back online, including the Sega Saturn, which can browse the restored NetLink zones for NetLink compatible games (Saturn guide). One problem with the DreamPi Linux distro is that it is a raw image file, meant to be written directly to the SD Card, making it quite unsuitable for allowing multi-booting of various OSes on the same SD Card.

 DreamPi Kit

DreamPi NOOBS-compatible image

    To fix this problem, I have released a NOOBS-compatible DreamPi image, based off DreamPi v1.6. NOOBS (New Out-Of Box Setup) is a bootloader for Raspberry Pi, that allows the installation of multiple OSes in such a way as to allow multi-boot. This DreamPi image works with NOOBS, and has a nifty slideshow upon installation explaining the features of DreamPi. By extension, this image is compatible with PINN. PINN (PINN Is Not NOOBS) is an enhanced version of NOOBS, which I recommend over using NOOBS. It has the following extra features over standards NOOBS:
  • Various ways to install OSes
  • Install from SD Card (offline)
  • Install from online server (with a wider variety of OSes)
  • External Media
    • USB Flash Drive
    • External SD Card via a USB SD Card reader
  • Install additional 512MB ext4 Data partitions, for general data usage
  • Download and archive to the SD Card the OSes from the online server, for offline installation
  • Easily reinstall OSes if something goes wrong (without having to redo a fresh NOOBS/PINN setup)
  • Various maintenance capabilities
    • OS maintenance utility
    • Recovery shell
    • SD card clone utility
    • Password restorer
    • File System Checker
  The image can be downloaded on its page in the Sega Dreamcast section of my website, along with info about it and how to use it. With my DreamPi, I was finally able to get my Dreamcast and Saturn back online for web browsing, and to get the Dreamcast back online for gaming! Couple with my NOOBS-compatible image, I was able to get a few other Linux distros working on the same SD card with a multi-boot setup.


Installing and using
DreamPi NOOBS compatible image

Installation slideshow
 

Some pictures of getting my
Dreamcast back online with DreamPi :)
 Getting my Sega Saturn
to browse the web with DreamPi
 Enjoy this DreamPi NOOBS compatible image for getting your Dreamcast/other dial-up computers back online, while enabling multiboot for other Linux distros!

-Tamkis
Copyright EagleSoft Ltd. Powered by Blogger.