Ultra Air Hockey DX Source Code release!

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.



DreamPi NOOBS-compatible image release

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!


Merry Christmas/Repairaganza

Merry Christmas 2017/Repairaganza!

   Hope everyone has a very Merry Christmas/New Year for 2017!

      Although I did not get as much done as I wanted with EagleSoft Ltd this year (I took the year off to focus on my professional video game development job), I plan to do a lot for the early next year. Since the job started in January 2017, I have gotten a year's worth of valuable, real-world professional experience in the video game industry. Both my rรฉsumรฉ and the portfolio sections of the EagleSoft Ltd website are quite outdated now, and will be updated early next year as much as NDA allows me to, especially for the professional projects.

    There are also a few older, cancelled projects from a few years ago that I'd like to upload and document on the site, and I'm going to try finishing Socket the Hedgeduck hack next year. Those two older projects were a Super Mario 64 and F-Zero X ROM hack. A lot of work was put into the Socket the Hedgeduck hack, and I would love to do what it takes to polish it up to completion as a personal project. This ROM hack really helped me understand how the Sega Genesis hardware works, and was one of the projects that helped me get my professional video game development job. Other plans are to begin either a YouTube channel or Twitch channel called Nerdology, where I will review old video games and technology ๐Ÿ˜€.

Repairaganza 2017

     On a different note, I recently received from someone a few old video game consoles and other video game memorabilia (including a custom arcade cabinet). Some of the consoles had some issues, and needed repair, while others were working and needed some cosmetic refurbishment. In a few previous posts, I repaired a Sega Game Gear and an awesome Sega Saturn, but recently received a few other consoles. I would like to use the rest of this post to detail the repairs in getting them fixed, for fun. These consoles will obviously be used when I begin reviewing video games for the Nerdology channel, coming next year!

  • Nintendo
    • Game Boy Color chassis
    • GameCube
    • Wii 
    • Custom piano SNES
    • Misc.
      • N64 Arcade Cabinet
  • Sony
    • Fat PS2
  • Microsoft
    •  XBox 360
      • Yerf-Dog
      • Refurbished unit
Game Boy Color chassis replacement

      One of the items received was a lime-green Game Boy Color Chassis. Although, back in the day, my parents gave me a lime-green Game Boy Color (which I still own), this unit cosmetically was trashed, especially for the screen. The screen got pretty badly scratched and scraped after loaning it out to a friend back in 4th grade, and the chassis edges got pretty badly dirtied by myself. (I owned it way back when I was younger, and, being younger, I did not take very good care of the handheld.) Now having a Tri-wing screwdriver and this older chassis, I figured it was finally time to restore its appearance, by transplanting the Game Boy Color motherboard to the new chassis.

     Transplanting was easy, after following some iFixit guides for the front and back covers. The old chassis was somewhat dirty, and needed cleaning. Opening it up also gave me the chance to apply rubbing alcohol to the button pads, which I really found to help in maintenance of buttons for gamepads and such. I managed to transplant the motherboard without breaking anything.

Nintendo GameCube refurbishment/repair

     Two other things I received were a working (albeit dirty) Nintendo GameCube, and a Nintendo Wii. The Nintendo GameCube was working, but sometimes the power button (which is spring loaded) would not depress all the way to actually turn the console on. This was easily fixed by removing the plastic button altogether; there's a hole there now where the button can be manually depressed with a long, pointed object (such as a screwdriver). It was quite dirty, and I had to open the GameCube up in order to vacuum up the dirt/dust near the fan, by following this iFixit guide.

    Unfortunately, I ended up damaging the GameCube in the process of cleaning up the fan, by accidentally breaking off a lever for the CD sensor switch when putting the top lid back on. Most CD-based game consoles have a CD sensor switch; this is used to determine if the CD lid is open (for top-loader based systems, such as the original PS1) or if the CD tray is slid out all the way (for front-loader based systems, such as the fat, original PS2). Most top-loader systems (such as the GameCube) have a piece of plastic on the lid, which depresses a switch somehow. This switch is usually a "normally-opened" (NO) type of switch. When this switch is closed, the console knows that the CD lid is closed/tray is in; when the switch is opened, the console knows that the CD lid is opened/tray is slid out. When the switch is opened, the CD motor spindle is idle; when it is closed, the machine begins spinning and reading the disc (since there should be one in there now). The Nintendo GameCube uses a DPDT (Double-Pole, Double-Throw) type of switch, using two lever switches. One of the levers got broken off.

       The circuit board for the Nintendo GameCube CD sensor switch is about the size of a US quarter, and easy to replace (being a modular PCB component). Rather than waste $6-$12 for the replacement part on eBay (which seems excessively expensive for how simple the CD sensor switch module is), I just soldered up an override switch on the CD sensor switch module with a spare SPST switch to get around the broken switch. I could technically use this sensor override switch to do a swap-trick if I really wanted to do so. (The swap-trick is a method where the user puts in an authentic disc into a game system, and quickly swaps out the authentic CD with a bootleg copy at the right time. This is done with an override switch, in order to fool the console that the CD lid is closed when it is actually opened physically, and vice-versa when needed. If the swap-trick is done correctly and quickly enough, the console will not know that the authentic CD was swapped, and will use the authentication data from the authentic disc to boot the bootleg disc. This is an especially useful technique to run bootlegs on security-based CD consoles, such as the Sega Saturn, Sony PS1, and the Sony PS2. However, it is a risky trick, and, if done incorrectly, the motor or console can be damaged.)

GameCube CD Sensor switch

Repaired GameCube ๐Ÿ˜Ž
     The main reason for picking up this GameCube (even though I also got a Wii, which is backwards compatible with GameCube discs), is the fact that, unlike the Wii, only the GameCube is compatible with the Game Boy Player add-on (which I have). It is an awesome add-on for the GameCube, which allows the user to play original Game Boy, Game Boy Color, and Game Boy Advanced games on a TV via the GameCube. In the future, I plan on either installing an XenoGC modchip (which allows the playing of mini DVD-R discs without the swap trick) or purchasing an SD Media Launcher bundle for playing homebrew on the console. The latter loader method contains a special GameCube software disc (with the proper BCA area, so that it is read as an authentic disc), which can launch homebrew from a special memory card which interfaces with an SD card, as well as boot mini DVD-R backups. One homebrew I would love try out is the Game Boy Interface, which is an advanced Game Boy Player boot disc, which fixes all of the issues for the original boot disc made by Nintendo for the add-on.

     I also received with this GameCube a turbo-enabled GameStop controller and a semi-rare GameCube Lodgenet controller. It was a special controller that worked with a special Lodgenet GameCube model. This GameCube model was used in Lodgenet hotels for a simple pay-to-play trial system, and came with this special controller for using the system menu. The special controller includes special buttons for the menu interface. The controller uses a 6P6C RJ11 connection (instead of the standard GameCube connector) with a super long telephone cord, and I plan to solder up an adapter after doing some original research in the near future.

Stock image of a semi-rare
GameCube Lodgenet controller

   Nintendo Wii repair/hacks

    The Nintendo Wii I received was fully working, other than the fact that the Wii disc drive mechanism was jammed. It also lacked covers for the GameCube ports and the Memory Card slots, which will be replaced later, and has the final firmware version for the model (4.3U). Unlike most other CD-based consoles (which either use a top-loader system or a front-loading tray), the Wii uses a disc slot. When you insert a disc, a simple conveyor system "eats" the disc and spits it out as necessary (similar in concept to VHS players of yore, or exactly like most automotive CD audio systems). Unfortunately, the previous owner somehow got a copy of Mario Kart Wii stuck in the system. After forcibly prying out the game out with tweezers, I disassembled the Wii (using the iFixit guide at https://www.ifixit.com/Guide/Nintendo+Wii+DVD+Drive+Replacement/5164), and determined that some gears for the conveyor system got out of alignment, making some nasty clicking noises. The gears were not catching, the conveyor system would not run, and the disc could not be either sucked in or spitted out. I tried watching and following this repair video, but the gear system was too finicky/sensitive to repair. I plan just to throw out the old drive and eventually purchasing a compatible, replacement drive on eBay.

     To prepare for that replacement day, I surfed over to the Wii Drive Chip DB website in order to determine what type of DVD drive I had in the Wii during disassembly. The Wii product line contained various different DVD drives during its lifetime; some were cost reduced and had physical changes made to it in order to make modchip installation more difficult. Earlier drives can play both GameCube and Wii games, while later drives can only play Wii games. When replacing a disk drive, it is a good idea to replace it with one containing the correct drive chip. After inspecting the drive, I determined that it is a full-sized DVD drive, with a D2B drive chip, with cut pins (harder to install modchip), and no CD clip.

Wii Disc Drive identification

    After determining the drive chip type, I soft-modded my Wii with the Homebrew Channel, via Letterbomb exploit ๐Ÿ˜Ž. I later installed some fun homebrew games and applications (to tide me over until I replace the dead disc drive), and modified the Weather Channel, News Channel, Wii Mail, and Everybody Votes channel to work again online via the RiiConnect24 project. (News Channel is throwing a FORE000006 error, so I have to reset the RTC clock). The coolest part about this Wii was that the previous owner did not remove his/her Wii Shop Channel account, and left 2250 Wii points for me ๐Ÿ˜€. Unfortunately, the Wii Shop Channel is closing in January 2019, so I am trying to get as many original WiiWare titles as possible and enjoy them while they last. After the disc drive is replaced, I am going to have a blast playing some games online again via the Wiimmfi project and its patches.

Wii hacked with HBC, RiiConnect24 

Although the previous Wii owners broke the disc drive,
they left me with 2,250 Wii Points ๐Ÿ˜€
Custom piano SNES

        From the same person as the other consoles, I received a custom-painted Piano SNES that nobody wanted. (Poor SNES!) The unit was not working at all; it would power up, but would never read cartridges. Somebody I knew took a closer look at the unit with an oscilloscope; turns out the CPU (a Ricoh 5A22) was reading garbage data when cartridges were inserted, and he determined that the CPU was dead. He was able to repair the unit by soldering in a working, replacement CPU. (I am quite glad he repaired it; I do not have the hardware or skills yet to do surface mount soldering, yikes!) It is a sexy console, and works well ๐Ÿ˜Ž.

Fat Sony PS2 repairs

    I also received from this same person an older, fat PS2, with a cool barbed wire skin on it. It is a SCPH-350001 model, with relatively low versions on the system components, and the much sought-after Expansion Bay. Supposedly, it had "Disc Read Errors," but I determined that it did not have such issues. I was able to get it to read PS1, PS2 (Single Layer DVD 4GB discs), audio, and DVD Video discs. I am assuming that the tester used a Dual Layer PS2 disc (such as those in the TimeSplitters series), which have been known to have issues with some models of fat PS2s without adjusting the laser potentiometers. I remember having to do that and place transparent tape on the inner CD rings (where the motor spindle attaches) to get TimeSplitters 1 to work on my older brother's PS2 back in the day.

    The fan was incredibly dirty, the unit had some minor scuffs, and the CD tray sometimes would not open (it would jam). I cleaned out the fan, washed off the scuffs as best as I could, and cleaned off/lubricated the tray drive belt via rubbing alcohol, which improved the disc tray sliding. Controller ports and Memory cards work on this unit too. (In fact, this was the first unit that booted up a particular, old, blue, 8MB, 1st-party PS2 memory card I had in over 8 years! I thought this particular memory card corrupted years ago to the point of being unreadable, yet it read it!)

      Eventually I plan to purchase a PS2 Network Adapter for the Expansion Bay, which can mount an IDE HDD, for loading homebrew via FHDB and similar utilities.

 Before cleaning the Fat PS2 up
 During cleanup
(Look how dirty the cotton swabs
got when cleaning the fan; yuck!)
After cleanup
(So much cleaner!)

Video of disc drive before/after lubrication

Microsoft Xbox 360 repairs

     In terms of consoles, lastly, I saved two XBox 360 Fat units from the person. Both had some minor scuffs and scratches which I would clean off, and very dirty fans which I cleaned out. Both did not work fully, and I was saving both because the other unit had the parts the other lacked, and because I planned to hack one of the consoles (with RJTAG) for homebrew and other features. One would be kept stock for XBox Live features, while the other would be hacked and stay permanently offline (hacked consoles are banned on XBox Live). One had a custom sticker on top ("Yerf-Dog"), while the other one had a refurbishment sticker on it.
    The former XBox 360 model was fully working, other than a jammed CD drive, while the latter had an out-of-order wireless module. The latter would not allow the connection of wireless XBox 360 controllers, and would not display the state of the power button (the console would boot however). Both have some of the latest firmware versions available (16k and 17k versions), meaning I would have to hack one later with a complicated R-JTag hardware hack. I was also allowed to keep a 60GB HDD, and both a Composite/S-Video AV cable, and an HD Component AV cable (with SD/HDTV toggle button). While repairing them, I identified the processor type and other specs from this guide, so I could determine which XBox 360 would be better to hack.
    I repaired the jammed DVD Drive in the Yerf-Dog model by following this guide and disassembling the DVD Drive. Inside was a belt drive, which I cleaned out and lubricated with rubbing alcohol. This made the drive slide smoother and open up properly. This unit was identified with the following:

Yerf-Dog model
  • CPU
    • 2009 Jasper CPU
  • Firmware
    • Version 17000 dash (Metro Dash)
  • DVD Drive
    • Model type: Liteon
    • MS Part no : X800474-009
    • MFR Date: July 2009
    • HW Ver: A0A2
    • FM Ver: 83850C
  • 256MB Internal Memory Unit

     For the other model (the refurbished one), I was able to fix the wireless module by properly connecting the module; it was loose. This XBox 360 was cleaner than the other was, and I identified it with the following specs:

Refurbished model:
  • CPU
    • 2007 Falcon CPU
  • Firmware
    • Version 16000 dash (Metro Dash)
  • DVD Drive
    • Model type: Liteon
    • MS Part no : X800474-009
    • MFR Date: July 2009
    • HW Ver: A0A2
    • FM Ver: 83850C
    • Epoxied drive chip!
  • No Internal Memory Unit

          After repairing both units, it was determined that the refurbished model would be the better one to hack. It has an older firmware, and a Falcon processor (better R-JTag results). My only concern is the epoxied drive chip on this model.

N64 Arcade Cabinet
     The last thing (and arguably the coolest thing) I received from the person was a custom N64 arcade cabinet, and two additional, replacement LCD monitors! It was formerly a botched portable N64 stuffed into this arcade cabinet, with the N64 begin a bare motherboard. (Hence the N64 joypad ports in the front, and Super Smash Bros. 64 artwork.) The N64 was a dead motherboard. The unit had a single power supply, which powered the N64 power brick, the mini LCD, and a HiFi system. This arcade cabinet has a miniature LCD monitor, which has two RCA Video input channels and a power jack pigtail (tied to the single power supply). The LCD monitor has aspect ratio options (4:3 and 16:9) brightness, color, and contrast settings. The HiFi system outputs audio to two large speakers in the top panel of the cabinet, and accepts audio input via a left/right RCA pair (red and white jacks). The HiFi system has knobs for volume, bass, and tone, and the knobs will light up and change color when powered.
    Since the N64 was dead, I removed the N64 and de-spliced the N64 power brick from the common power supply. Some of the wires running from the HiFi system to the speaker broke off, so I repaired them by soldering them back onto the speakers. I mounted the HiFi system to the side panel, and mounted the common power brick onto the other side panel. This allows both the HiFi system and power brick to be encompassed into the cabinet design, to make the whole thing portable. I replaced the old LCD monitor with a newer one, which has two RCA video inputs, as well as a VGA input port. Lastly, I pimped the unit up by tracing the cabinet borders with cool, red EL wire. Using a battery powered EL wire inverter, the whole cabinet lights up ๐Ÿ˜Ž.

Although I have both a full-sized CRT and a LCD monitor, I use this cabinet as both a decoration and as a portable screen. It has been useful for testing consoles after repairs (such as those in this post) to make sure everything still works, and as a portable game system.

Overall, I picked up and fixed a a lot of old consoles, accessories, and a cool custom arcade cabinet. Next year is going to be more active for EagleSoft Ltd, with an updated porfolio website and even a YouTube/Twitch streaming channel called Nerdology, where I'll review old video games/consoles ๐Ÿ˜€.


Sega Saturn pickups/repairs

Sega Saturn pickups/repairs

   I'm not dead a hobo yet; just have been really busy with life lately, including having moved out of my parents' house and into my first apartment during July 2017, and being busy with a new job (in the video game development industry, at long last!) back in January 2017. I plan on making more regular blog posts and updating the website with updated portfolio items from the new job soon!

   During October 2017, I found an ad on Craigslist about somebody selling an out-of-order Model 1 Sega Saturn in the Pittsburgh area for $25. I never had a Sega Saturn growing up (heck, I didn't even know it was even a part of the 5th video game generation until a few years ago), and usually wasn't interested in looking to pick one up, since they usually sell for anywhere from $25-$70 depending on the condition. The ad said that the console was working at one time, but now wouldn't read disks.

   After doing some research (via this incredibly useful Youtube video), I found that the common repairs for the CD read issues for Model 1 Saturns were quite simple. Knowing that the fixes can be simple, I decided to reply to the ad. The seller said that the unit wouldn't spin discs at all (let that be CD audio, Saturn, or CD+G discs); nevertheless, I went to see the Saturn unit in person.

   At the seller's residency, I saw that the Saturn could indeed power up, but wouldn't spin any type of applicable discs (however, the unit would display when the CD lid was opened in the BIOS multiplayer). Knowing that the fixes can be easy, I took the risk in purchasing it for repairs. We eventually bargained for $22 for the Saturn and a generic 2 prong power cable.

During this same day, I picked up items to get what I would need to look into repairing the Saturn:
  • Eclipse Pad Saturn controller
  • Retrobit Saturn AV cable
  • Cheap copy of NBA Live '98
  After a lot of troubleshooting (and help from the previously linked Youtube video), the Saturn was quite easy to repair, and works perfectly now.

Turns out the issues were the following:
  • CD laser power potentiometer was out of spec
    • Fixed by adjusting the pot to 0.720 kฮฉ
    • This allowed the laser to power on and start spinning the CD, but still no reading of discs
  • CD Motor spindle height was out of spec
    • Fixed by adjusting the height of the spindle within tolerance (~1-2mm distance from black plastic guard and spindle)
    • This got audio CDs to play, but not Saturn game CDs
  • Saturn game CD potentiometer's resistance was too low
    • Adjusted resistance of pot until Saturn CDs could be recognized and booted
    • CD drive fully repaired afterwards.
    Not too shabby for a broken Saturn, eh? Around late October, I also picked up a few other things for pretty good prices:
  • Sega Saturn Netlink Modem ($20 on Ebay)
    • With Planetweb browser disc
  • PS/2 Netlink keyboard adapter
    • With Saturn controller extension cable
    • $10 on eBay, but the keyboard adapter got lost in the mail
    • Ended up getting another one (a little more expensive being boxed, but cheapest on eBay at the time)
    It's still possible in 2017 to play Netlink-enabled games online on the real Saturn hardware, via either an old-fashioned 56k dial-up connection (if you still have such connection) or over modern-day ethernet via a VOIP adapter. I really look forward to playing these games online in the near future after acquiring an unlocked Cisco / Linksys SPA1001 FXS VoIP Phone Adapter (maybe for Christmas ๐Ÿ˜‰ ). As for the keyboard adapter, that would be used for chat in Netlink games, and also for tinkering around with a copy of Game Basic for Sega Saturn later on. It's an obscure Japanese Saturn game that has a BASIC interpreter, used for creating Saturns games/software, in order to create some homebrew games in the future ๐Ÿ˜ƒ.

    Lastly, I recently acquired a Sega Saturn Gamer's Cartridge last week. It's an incredibly amazing, custom Saturn cartridge which can allow the user to play backups on CD-Rs, to play import games, to save BRAM data on an SD card, to migrate BRAM data to/from the internal BRAM/external SD BRAM, to emulate Floppy Disk saves (for the few games that support the Saturn FDD), to run small homebrew applications from SD card, and to do much more! It comes pre-installed with Pseudo Saturn Kai firmware in order to achieve all of these features and more. (I plan on making a separate blog post/video review about this amazing cartridge in early December 2017.)

  Below is a quick video I created discussing the repairs and some of those Saturn pickups. I plan on making more videos like this (but better quality), for reviewing old video game console hardware/repairs, and reviewing some video games in either a future Youtube channel called "Nerdology" or a Twitch channel.

 Overall, picking up that cheap $22 Saturn was worth it, considering how easy it was to repair it. The Saturn was a somewhat obscure Sega console (it didn't do very well at all in the US, but was wildly popular in Japan). Although it could do 3D graphics, it's strengths lie in its 2D graphical abilities, which is where its game library shines. Exploring the Saturn library with this repaired Saturn will be fun.


Sega Game Gear repair

Sega Game Gear repair

    During March 2017, I took a trip to the annual Pittsburgh Retro Gaming convention. It was quite a fun event, with some gaming tournaments and a lot of old video games, consoles, and merch for sale. There were even some local companies there who were showcasing their modern and retro indie video games. (You know I'm all about dat retro homebrew development and game modding!).

I picked up a few great finds there that day, all for <$50:
  • 2 Sega 32x games
    • Virtua Fighter 32x
    • Metal Head
  • 1 Atari 130XE cart game
    • Star Wars, Return of the Jedi: Death Star Battle
  • Issue of Game Players magazine
    • Dec. 1994 IIRC, details the launch of the Sega 32x add-on
  • 1 Tri-wing driver (for repairs/tinkering)
  • Poster for Legend of Zelda: Breath of the Wild (Nintendo Switch) 
  • Out-or-order Sega Game Gear
  • Sonic 2 (Game Gear)

    The most interesting find there that day was the out-of-order Sega Game Gear. I never had plans nor interest in owning a Sega Game Gear. My memories with the Sega Game Gear back in the day were brief and fleeting, especially since I did not own one growing up. During the early to mid-90s, I remember playing the Sonic series of games (specifically Sonic 1 and 2 on the Game Gear) at the house of the lady down the street. She would occasionally babysit me (I was 4-8 years old at the time), and I remember the big Game Gear case that held the games and 2 Game Gear units. My other memory was playing Sonic Spinball on the Game Gear at the dentists' office in between cleanings.

   While browsing the tables at the Expo, I found two Game Gears for sale; one for $8 and another for $4. The former unit was in better, working condition, while the latter unit was marked "$4 / works, needs new caps", lacked battery door covers, had a scratched glass screen, and had minor scuffs on the chassis. Previously, I've heard online about the notoriety of most Game Gears being manufactured with faulty capacitors ("bad caps"), which have a tendency either to stop working or worse, to leak and to corrode the GG's motherboard over several years. When these capacitors stop working, various audio and video issues can occur. The fix for these problems is to replace the capacitors with equivalent, higher quality ones.

  Due to these issues, I didn't really have much of an interest in the Sega Game Gear; however, after seeing this poor, lonely, damaged Game Gear for a very affordable $4, I decided to purchase the unit (and a cheap game to test, Sonic 2 GG) in order to attempt repairing the unit. Unfortunately, the seller did not have any batteries nor have a compatible AC adapter on hand to test the unit, so I figured for the cheap $4, I should just risk it and test it at home. I have soldering equipment and a lot of spare capacitors at home, so I might as well try to fix her.

   Doing some research online, I found the same repair article from years ago where I previously learned about the Game Gear's capacitor problem. After inserting 6 AA batteries and Sonic 2 into the console, upon boot, I discovered the unit suffered the usual symptoms of the bad caps problem; the external speaker not working, very weak audio from the 3.5mm headphone jack, and a very distorted video screen. So I knew at least the unit was still alive (although barely). After opening up the unit, I discovered it to be a single-ASIC VA1 unit.

   With all of this information in mind, I began the caps replacement. Luckily I had all of the capacitors needed for the job, except for x2 0.47 ยตF capacitors. With all but those 2 caps replaced, the audio was now amplified and working through the 3.5mm headphone jack, and the video signals were better. (The video was still not enough quality video to play a game, however.) Unfortunately, I lifted a trace on the audio PCB for a certain capacitor during the replacement, so the audio through the headphone jack is extra amplified and will begin distorting and making popping sound if the audio volume is set too high; however, it works better than it did before. Upon powering on the unit, I saw a lot of blue and white colors before Sonic 2 would boot up and play audio, so I knew it was a unit with a TMSS BIOS. (Most Game Gear units with a TMSS BIOS will accept Sega Genesis Model 2 AC power supplies for power; 'lo and behold, the tip from my model 2 power brick fits the Game Gear's power jack and will power it up.)

  Fast forward to April 2017, I order a few items for my birthday, including a x10 pack of replacement 0.47 ยตF capacitors. After replacing these capacitors, the Game Gear's video signal was perfect and back in working order!

Before/During repairs:


  I'm glad I took the risk and purchased and repaired this $4 Game Gear. It now has a second life of playing back awesome, fun games. It's a very cool, technically advanced (for its time) portable console, with a color display and even a backlight. (Although this backlight does eat through a whopping 6 AA batteries in a very short amount of time.) In the future I might be looking into homebrew development for the Game Gear, as well as doing further repairs and refurbishment for this unit, such as replacing the glass screen with a new one, 3D printing some replacement battery covers, and replacing the damaged sound board with a better one.



Colonial Combat: Release (Phases II & III)

Colonial Combat: Release (Phases  II & III)

   In a past post, I detailed out a 3-phase plan for the release of Colonial Combat, a satirical fighting video game about surviving college, graduating, and not flunking out of college as a dead, bankrupt hobo. This project was a senior project for an Integrated Engineering Design class, where I decided to make this video game. It was an unfinished tech demo of a video game from a colleague. Phase I of the release (which occurred on 08/29/16), was the v1.0 release of Colonial Combat, after a year of development. About a month later, a v1.1 bug fix release was also made, in order to prepare the game for SAGE 2016. Phase II was going to be an Android port of the game, while Phase III was going to be a source code release.

   The Android port turned out to be harder than expected to develop, due to issues with controls and random crashing, having to deal with streaming assets to get the FMVs to play correctly, and having to run my builds on the slow Android emulator on my PC. I was also worried that I could get in copyright or legal troubles if (big IF) the game would actually get approved and onto the Google Play store, due to being lazy and using a lot of copyrighted images, sound effects, music, and college branding. The game was meant to be a freeware game, with no plans of commercial release, due to these issues.

  Being tired of working on this game and not wanting to torture myself more with this project, I cancelled the Android port, and have just decided to release the entire source code of the game, which can be found on the project page. Programmers might be able to get a Android port to work with some tweaking. The source code is GPLv3 licensed, and can be used by people to learn how to make a 2D fighting game in Unity3D. There are still a few game breaking bugs, including a race condition that can still happen when entering a match and prevent the players from loading, but otherwise, is good enough for a release. Included in the release is the source code, source assets, source material and mods for creating the 3D Movie Maker files, and even the technical documents and presentation materials from IED class.

    Will there be a future sequel to this game? I don't know. I was thinking about making a Colonial Combat trilogy, with a sequel ("Colonial Combat 2: Junior Year") with more levels and more college misadventures, and a final game, "Colonial Combat 3: Billageddon", detailing the struggles I went through in Senior year, leading to the development of Colonial Combat, and my quest to get hired at a  local video game development studio.

(That glorious moment at the end of the final presentation for IED,
which was my last final exam ever before graduation)

Copyright EagleSoft Ltd. Powered by Blogger.