Reviw: Adventure Island

PlatformGame Boy
GenrePlayformer, run-and-jump
Players1
DeveloperHudson Soft
PublisherHudson Soft
Released1992
Playtime1 hour

“Adventure Island” is a run-and-jump game for the Game Boy that despite sharing name and cover art (at least in the PAL region) bears more resemblance to the sequel rather than the original outing on the NES.

You play as Master Higgins, a somewhat heavy lad with an underbite wearing nothing but a loin cloth and a baseball cap being in a constant state of famine. You must explore 8 critter-infested islands in order to save your girlfriend Tina from the monsters holding her captive. That’s it, that’s the whole story.

The gameplay is all about running from left to right, defeating and avoiding flora and fauna on the way, while hatching eggs containing axes, skateboards and friendly dinosaur to ride. These dinos each has their own ability which can wary from shooting electricity from the tail to taking off to the skies. They won’t alter the overall experience dramatically, but will make traveling a bit faster and easier.

Stash items and dinos between stages for later when the going gets tough.

Being released 1992 here in euro territory, it feels heavily outdated standing next to contemporary titles such as “Super Mario Land 2: 6 Golden Coins” and “Kirby’s Dreamland”. Not only does the graphics feel bland, but the repetitiveness of both sounds and level design wears my patience thin throughout the entire game. About half-way through the levels starts to be rehashed and there’s nothing new that entices the player to continue their journey. The bosses are incredibly simple and even if you do reach the end, the reward for beating the game isn’t worthwhile the roughly hour it takes to complete it.

Should this have been a release title I could have seen through its shortcomings, but unfortunately I cannot recommend this game to anyone who wants to experience a varied, challenging platformer on the go.

Two miniature Master Higgins out of five.

Review: Tinykin

Platform(s)Steam, Xbox One/Series X, Playstation 4/5, Nintendo Switch
Genre3D puzzle-platformer, collect-a-thon
Players1
DeveloperSplashteam
PublishertinyBuild
Released2022
PlaytimeAround 7h normal playthrough, 12h completionist

So, what do you get if you take equal parts “Pikmin,” “Paper Mario,” and “Banjo-Kazooie” and add a dash of French animation? Well, if you answered “a Frankenstein’s monster of game concepts,” then you’d be right. However, the point being that “Tinykin” is a marvelous game that takes a little inspiration from each of these mentioned titles, culminating in its own thing.

Milodane holding a red, ignited tinykin. Milodane holds an anxious face while the tinykin seem excited.

In “Tinykin,” you play as Milodane, an archaeologist from the planet Aegis, who is determined to find the origins of the human race by following a signal emanating from a nearby galaxy. Unfortunately, something went wrong during the bubble teleportation, and he wound up the size of a dust bunny inside a gigantic house! Now, it’s up to you to assist Milodane in exploring the house and unraveling the mystery of the intergalactic human migration. And, of course, to help him regain his proper size.

You soon run into these small, round creatures – tinykin, if you will – that are helpful in several ways. Sure, you can pick them up and throw them around to your heart’s content, but they actually possess special abilities which are determined by their colors. Pink tinykin help you haul small and large household items around, while red ones explode upon impact and can light stuff up. Green ones stack together and are used as vertical ladders, whereas yellow ones can bridge large gaps (where applicable). Blue tinykin are electrically conductive, which is quite useful when you need to turn on appliances. Don’t worry, they actually enjoy the pain.

Milodane climbing up a string hanging down from a large cat tree.

The house consists of five different levels, with two areas acting as connecting hubs between them. The levels are actually rooms in the house, while one of the connecting hubs is the foyer and a level in itself, all of which are open to explore as you please once you have unlocked them all. Each room is inhabited by an assortment of people, or rather, insects such as ants, praying mantises, and shield bugs. For each level, you are tasked with completing a list of objectives requested by these insectoid citizens, and successfully doing so will reward you with one of the machine pieces necessary for Milodane to return home. Each objective is a quirky little happening in the world of these insects, for example, starting up a CD player so that a group of religious dragonflies can sing the canticle of their deity, Arwin, or helping resolve a dispute between anxious dung beetles and partying silverfishes.

Besides completing these chores, one of the main objectives of the game is to gather pollen. A challenging but fun task as there are about a total of 1200 pieces scattered around each level. Pocketing around 900 of these rewards you with bubbles which let you float through the air. In your aid in finding and reaching every pollen, you have the tinykin, the aforementioned bubble floater, as well as a soap bar that is unlocked early on in the game. The soap bar acts as a sort of hovercraft/skateboard, which lets you travel fast and grind upon furniture edges like a miniature Tony Hawk. Who would have thought that cleaning the floors would be such fun?

Milodane grinding on a silk string across a large room with plants and terrariums.

One of the great aspects of the game is that there are no enemies to encounter. It’s just you, the insects, and a buttload of pollen to collect. The lack of enemies means that this is a game you can play at your own pace and leisure without worrying about being killed. Although there are a couple of environmental hazards such as water, spikes, and carnivorous plants (which I guess could count as an enemy), meaning there are times you’ll see Milodane pop as a balloon more than once, if that indeed is your sort of thing.

The game is otherwise an excellent platformer, which despite being in 3D, has the characters rendered as high-resolution 2D sprites. Their animations and designs are of such high quality, though, that soon enough you’ll accept them as being as fully fleshed out as the objects around them. The music is also top-notch, with each level having its atmospheric composition. Very enjoyable, but alas, there unfortunately weren’t any tunes that got stuck in my head, and I could barely hum them after turning off the game. But still, I very much liked the soundtrack.

The main takeaway from the experience I’ve had is that “Tinykin” is a wonderful indie gem that will be a great addition to my favorite collect-a-thons of all time. This is because it’s fun and approachable, has an imaginative level design, and the fact that the actual collecting didn’t feel like a necessary chore to forward the plot. There’s also a new time trial update to the game where you can zoom around the levels and clear courses in a race against the clock. This was quite an endeavor which I soon gave up on upon collecting my first platinum medal. The stress these races invoked wasn’t quite worth it as it only awards you with different outfits in the end. Fortunately, being an add-on bonus, the time trials won’t affect the achievements so you can still complete the game 100% without grabbing all the medals.

I award this game with 4 out of 5 tinykins.

Introducing: The SatBat™!

The back of a Sega Saturn, showing off the accessory The SatBat

Tired of the constant hunt for those elusive CR2032 batteries? Fear no more, retro gaming enthusiasts! The SatBat™ is here to revolutionize your Sega Saturn experience. With The SatBat™, you’ll never miss a moment of gaming action. Features include:

  • Power on Demand: Swap out those old, underperforming CR2032 batteries for the robust, easily replaceable AA batteries. Two in series deliver a seamless 3V power surge directly to your console
  • Universal Compatibility: Whether you’re a fan of traditional or rechargeable batteries, The SatBat™ welcomes them all. Enjoy the flexibility and ease of use, no matter your preference
SatBat accessory with open compartment. Two AA batteries are showing.
  • Unmatched Battery Life: Leap from a mere 200 mAh to up to an astounding 3000 mAh. That’s right, with The SatBat™ you can enjoy up to 15 times the battery life! The game doesn’t end until you say so

🔋 SatBat: Transform Your Gaming, Amplify Your Adventure. Say goodbye to frequent replacements and hello to uninterrupted gameplay. Your Sega Saturn deserves the best. Give it the power it needs with The SatBat™!

In all seriousness, though. I’ve been waiting for a product like this to come along in a long time, until I decided to create it myself.

One of the worst things with the Sega Saturn is the SRAM, which tends to die once the CR2032 dries out, after about a year or two but sometimes even less. Yes, you can perform one of those fancy FRAM replacements, but what if you don’t want to do open heart surgery on your beloved Sega console? That’s why I made the The SatBat.

The coin cell simulator, patent pending.

It’s nothing fancy really: A 3D printed battery box which holds two AA in series, outputting a total of 3V. Don’t mind the Kapton tape in the photo above, that’s just a precaution on my side.

My initial idea was to design a doublesided PCB for the coin cell replacement, but settled upon 3D printing and copper instead. The copper tape is soldered directly to the battery pack, I was impressed of how well it worked. I had to print the coin cell 95% smaller because my model wasn’t a perfect reproduction of a CR2032, but would still sit nicely. The box was a snugly fit instead of the old cover, and there’s even plenty of room for the Satiator! See?

The Satiator inside the Sega Saturn.

You can download the STL file from Thingiverse if you fancy creating one yourself. Just be sure to either label the sides of the coin cell simulator (pat.pend.) or take note of which cable goes to the negative poles of the battery pack (negative is always the underside of the CR2032.)

And remember: DANGER OF EXPLOSION IF BATTERY IS INCORRECTLY REPLACED

Ps. If LaserBear Industries would like to create this as a professional product, feel free to do so but in that case please give me some credits (perhaps some in-store credits, wink-wink.)

Removing stickers off Nintendo boxes

Here’s a little tutorial on how to get rid of nasty stickers and residue off Nintendo cardboard boxes. Just because a box is full of stickers, doesn’t mean it can’t be fixed! Using this method you can still transform it into a presentable state.

What you will need is basically three things:

  1. High percentage Isopropanol Alcohol
  2. Cotton buds
  3. Patience

Here’s my latest attempt at removing some nasty tamper-evident stickers off this copy of Super Mario Land in otherwise nice condition. This is how it looked on the Tradera/eBay listing:

A copy of Super Mario Land with large stickers in norwegian or danish stating that the item cannot be returned if the seal is broken

The first thing I did was to empty the box so that its contents wouldn’t be affected should anything go wrong. I proceeded to lay out some paper for the table’s protection, and then soaked a cotton bud plentiful in alcohol before starting massaging the stickers.

Even though these stickers were thick they accepted the alcohol pretty well and started to loosen up after a minute or two. Once you see that the stickers are starting to fade and you can notice the artwork underneath, you’re almost at the finish line! Keep adding alcohol if it has dried out, but don’t overdo it at this point. You’ll want to gently rub in the alcohol, not scrub as I did and managed to ruin some of the box.

A cotton bud with the sticker's print ink coming off.

Once the stickers start to become translucent, try carefully feel the corners to see if they are willing to let go of the priceless artwork. Don’t force them, they should just slide off. If not, add some more alcohol on top and around the edges.

A box of Super Mario Land, without stickers.

This was the final result. Not perfect, but a hell of a lot better than it was before. You can see the result of me rubbing a bit too hard, but still, I’m pleased with the outcome. Looking up close, it’s barely noticeable where the stickers used to reside.

Once done, I celebrated by playing the game. I know this game by heart so it took me about half an hour to complete. I simply love Hip Tanaka’s ending theme for the game. And I must admit, the game does look good in the cabinet.

Until next time, retronauts!

Aegis – The go-to 2FA for Android

(I just realized it’s been over a year that I’ve written anything on this blog. You may also have noticed that it looks a little bit different now. This is because I intend on making this blog a part of a bigger website – a homepage, if you will.)

Why Aegis?

I’ve been jumping between different two factor authenticator (2FA) apps the past year or two. I had earlier for a long time settled for Authy, mostly because I wanted to get away from Google and Microsoft. This app seemed robust enough, had some customizable logos for the connected services and also employed a backup feature – which at the time was MIA over at Google’s and Microsoft’s departments. It also had a desktop version that was synced, which at least at the time seemed like a good idea.

As the months passed by I started slowly to realize the flaws in Authy. Not only could you actually not customize the logos yourself, but the search engine used was simply a Google image search wrapper; meaning that logos showed up that either aesthetically didn’t fit or was totally unrelated to the service you tried to configure for. I tested this theory by simply searching for some random crap and Authy downloaded the image without hesitation.

Not only that, I realized that while it’s nice to have the OTP’s synced between devices, it did this through centralization. This, in my opinion, isn’t secure at all and could potentially invade my privacy.

Enough about Authy. I’ve moved on, and so should you.

A screenshot of a phone running AegisSo what makes Aegis any different? Well, first and foremost, it’s completely free (as in libre) and open source software not developed or run by a for-profit corporation.

This means that not only is the code available for anyone to examine and contribute to (which, contrary to popular beliefs is actually very important for security applications), it’s also available to download without the involvement of Google as it’s available through the F-Droid repository.

Second, it has all the features needed for a proper 2FA application and some quality-of-life improvements over its competitors, which I’ll get into shortly.

The only real downside for Aegis is that it’s not available for iOS. But if you’re using iOS, you’ve got other problems to attend to. Yes, by all means, please be offended.

Features

Customizable views

This is one of the most important features for me, as I’ve got almost all my accounts configured with 2FA and will be picking up my phone several times a day to fetch their one-time codes.

Since Aegis allows you to pick your own icons, or even download icon packs from them, the account is instantly recognized through its branding. And for a better overview, you may also configure how the codes are displayed in different sizes: normal, compact, small and tiles. I personally like the setting “small”.

You can also separate the codes between groups. Say you want to have your work OTP’s in the same app as your private, you can create a group for those and have those filtered out by default. This is especially useful if you have two or more different accounts on the same service.

Security

The configurations are safely stored on your device with encryption, which can be unlocked by a password or by using bio-metrics such as fingerprints and/or face unlock. It also allows for a separate encryption password for the backups, should you want an extra layer of security.

Aegis can also be configured to disallow screenshots from being taken, should you ever have been infected by malware that tries to steal your OTP’s. You can also configure to have the codes be hidden from prying eyes until you tap on them.

These are just a few of the security settings I figured was worth mentioning.

Backup, import and export

Another key feature is being able to restore your 2FA configurations should your device ever be lost. Instead of having the vault sync using a centralized service, you can configure continuous backup instead.

Since the vault is encrypted, this means you can put your backup wherever you want. You can use your device’s automatic cloud backup as well as backup through Storage Access Framework in Android, perfect if you’ve got a personal Nextcloud server.

If you’ve got multiple devices, these can be synced using the import/export functions of the app. You can also use the import function to fetch configurations from other 2FA apps, but unfortunately it does not support Authy (this isn’t Aegis fault though, it’s simply because Authy doesn’t support export at all.)

Final words

I mean, there isn’t much else I can share with you guys. It’s only a 2FA app, after all.

It works securely and with personal customization, it’s open and free and has awesome features. So if you’re ever in need of two factor authentication, look no further than Aegis.

Git the hub outta here: Climbing the Codeberg

A screenshot of my Codeberg profile

Today I took the step in migrating all my public repos from Github to Codeberg. If you would like to see what I’ve been tinkering with in the past (please excuse my scriptkiddie competence) I can now be found on https://codeberg.org/thanius. From there you can even follow me on my projects or subscribe to my RSS feed.

There might be some interesting code and nifty releases there if you’re a Swede like me, for example my Swedish translation of The Secret of Monkey Island or an integration to update a Google Calendar with dates whenever PostNord decides to deliver some mail.

Soon another little project of mine will be uploaded there, so keep your eyes peeled if you like old computers!

Hello world! (or: How to WordPress behind Reverse Proxy)

Why does it have to be so troublesome?

I have now, knock on wood, finally managed to set up WordPress multisite behind an Nginx Reverse Proxy with working subdomains and corresponding certificates. Previous attempts had resulted in long response times and timeouts, which almost made me give up on the idea. But today, I once again delved into the madness and started with some terminal-fu.

In previous attempts, I had installed the Fastest Cache plugin, which satisfied WordPress’s recommendation to use page and object caching, all within a single plugin. The problem with this is that it adds a lot of redirects to the .htaccess file, and I suspect that this was causing the long response times for pages and the API.

And since there are probably more people who need a setup like this, I thought I’d share my settings.

First and foremost, we need an Nginx configuration for the domain/subdomain that needs to be accessed. This configuration will also provide the pages with their certificates:

server {
server_name chuggybumba.com;

listen 443 ssl http2;
ssl_certificate /etc/letsencrypt/live/chuggybumba.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/chuggybumba.com/privkey.pem;

location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://[INTERN IP-ADRESS]:443/;
}
}

server {
if ($host = chuggybumba.com) {
return 301 https://$host$request_uri;
}

server_name chuggybumba.com;
listen 80;
return 404;
}

As you can see, Let’s Encrypt is already configured here. To get started with Let’s Encrypt using this configuration, set up a virtual host that only listens on port 80, and then let CertBot take care of the configuration. Once it’s done, adjust using the settings mentioned above. Note that it’s absolutely important to have a slash ( / ) after the port number in the proxy_pass command!

We’re proxying directly to port 443 on the internal server, as this is to ensure that the WordPress API functions smoothly and doesn’t need to go through multiple redirects.

The next configuration is for the local Apache server (though Nginx could be used here as well, I’m following the WordPress-recommended installation, so Apache it is!)

<VirtualHost *:443>
ServerAdmin admin@chuggybumba.com

ServerName chuggybumba.com
DocumentRoot /var/www/wordpress

SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www/wordpress>
Options FollowSymLinks
AllowOverride Limit Options FileInfo
DirectoryIndex index.php
Require all granted
</Directory>

<Directory /var/www/wordpress/wp-content>
Options FollowSymLinks
Require all granted
</Directory>
</VirtualHost>

In the Apache configuration, we don’t need to set up any subdomain virtual hosts, as these are handled by the reverse proxy on the Nginx machine. We also don’t need to use a valid certificate here. Instead, we have installed a snake-oil certificate to allow us to deliver encrypted traffic to the reverse proxy.

After this, you can simply follow WordPress’s own instructions to set up the multisite configuration.

Once everything is up and running, make sure not to use plugins that add their own redirects to the .htaccess file, such as Fastest Cache, as this will only lead to issues. Instead, I recommend installing WP Super Cache for page caching and Memcached for object cache storage.