Homebrew Homebrew game BatteryCheck - WiiU

Archerite

Well-Known Member
OP
Member
Joined
Sep 16, 2018
Messages
209
Trophies
0
Age
39
XP
1,492
Country
Netherlands
For the last three years I have been working on a homebrew project to recreate a fun little platform game called: BatteryCheck. My version of the game is actually using my own multi-platform game engine (which still has no cool sounding name) and I have working preview's in my other threads for the GameCube, Wii and 3DS already. A few week ago I also posted a proof-of-concept demo for the PlayStation 2 and also uploaded the same version for the other platforms after that.

Back in 1998 there was a campaign to promote recycling batteries in the Netherlands and part of that was a PC game on CD-ROM you could get if you brought 15 batteries in for recycling. It was based on the same engine as Jazz Jackrabbit 2 and therefore uses the same fileformats for the Tileset, Levels and Sprites. About 10 years ago the game was released as Freeware by the publisher but they removed it after a while. After some digging I found one of the companies that worked on the game and I contacted them. The game is licensed as Creative Commons but I need to ask them which specific version. I did get permission to share their download page where the game is listed but they warned about it getting removed in the future. more info about it on the jazz2online wiki
I found a "Let's play video" on youtube and had posted that in the other threads as well so here it is. The play the entire game showing both levels and the end boss....so it has a few spoilers in it :wink:

Just to be clear this video is NOT of my version of the game engine.
From the beginning the main thread has always been the Wii and that is where most of the talking and progress happend the first year. Then I stopped working on the game a few times for various reasons like other hobbies and just not enough time. While I did have a Wii U at that time I did not have the guts to install custom firmware on it. Replacements are a bit expensive compared to almost any other console, although the 3DS is going up in price lately too. The second reason I did not work on a WiiU version was that it was unclear to me how the system works and what I had to do to initialize the system , graphics, audio...etc. Now we have the great WUT that helps out with that...but it's lacking some fundamental examples (for me anyway) to show how these things work!

In another thread I asked for help on using the native libraries, but since my porting progress was going along so well last weekend I decided to try and making it work using SDL2. I am not really a fan of SDL2 since for my taste it adds too much abstraction and bloat that I do not need. But just to get this port started and working....it'll be fine. The really good news is that unlike many other of the platforms the Wii U already has workign background music thanks to SDL actually....so I am having mixed feelings about it now ;)

In the current state I think it's ready enough to be released as a pre-pre-alpha demo version only! There is an installer that will unpack the required files directly from the official Setup.exe of the PC game, but it has not been ported to the Wii U yet. The best option would be to follow the Wii instructions on a real Wii (no idea if it will work on vWii!!!) and after that copy the directory "/apps/batterycheck/data/" into your WiiU SD card. But before I upload it I want to make sure that it works on my second WiiU and then write some step by step instruction on how to install the game. :)

Special thanks to @niuus for giving me the subtle hint all these years ago like this....:yayu:....that he would like to have a Wii U version. And also to @KleinesSinchen for the testing of the game in various states and very extensive and creative testing to break my installer on the Wii.;) I hope you both like that this version is coming and are willing/able to test it as well :D


Thank you all, and stay tuned! :D
 

Archerite

Well-Known Member
OP
Member
Joined
Sep 16, 2018
Messages
209
Trophies
0
Age
39
XP
1,492
Country
Netherlands
Tested on my second Wii U following my own instructions...:rofl2:...and made a few snapshots for everyone to enjoy :D

1. The menu background with empty buttons (part of the image ;))
20210602_141712_resized.jpg

2. The level loading screen which is different for each of them.

20210602_141720_resized.jpg

3. The very start of the level where it all begins and where you return after your energy bar runs out.

20210602_141750_resized.jpg

4. Standing on a one way platform for no good reason :P
20210602_141809_resized.jpg

5. A glitch in the matrix! How did that platform end up there???? It should be in the water a bit more to the right! :ohnoes: (and some graphical glitch on the left_
20210602_141859_resized.jpg

6. Freddy the Dragon waiting for you to turn in your empty batteries
20210602_141939_resized.jpg

7. One of the blue superbateries you need to collect to defeat the end boss
20210602_141958_resized.jpg

8. Showing an elevator, batteryholder, Freddy again and a blue/green door...and part of a recharge gate in the bottom.
20210602_142110_resized.jpg

Like I said before this port is using SDL2 on the Wii U and I have not figured out how to do things like flip a sprite. I am already happy that the graphics are showing up and I just take the minor glitches as they are for now. I am not sure if the framerate is 60fps...it feels slightly less and very minimal stuttering can be experienced. In the lower part of the level and shown in picture 5 the square tiles have some rendering issues.I am not sure what's causing it...but it might be a scaling artifact since I had to fight SDL to show it in full vertical resolution. I tried to use the full LCD screen but it did not show it right and looked really stretched out since it's meant for 640x480 in the original game.

I have created a very simple meta.xml for it and it launched great from HBL. My only method to get into HBL is running Mocha CFW and using the browser exploit!! Keep this in mind. I do not know if this environment is the same from the installed HBL as a channel or other CFW's. Before uploading the pre-alpha-preview I want to try one last time to make the sound effects work! It adds so much to the experience that it would feel empty without it. Music is still working great! :D

I have been searching A LOT for examples of how to deal with sound effects in SDL. Almost every single one of them loads it from WAV, MP3 or other sound files on disk! IN batterycheck I load them from the original game files....which are RAW audio samples and I know the sample rate to play them at. But I do not know how to properly instruct SDL to play them correctly!!!! They do play....at roughly the correct speed....but it sounds absolutely terrible! I don't know if it's because the SDL port has a bug or if i'm just using it wrong! I need to test it on Linux I guess to figure out the correct way to deal with it! For now I will provide two versions in the ZIP file: One with SFX and the other without! I see no other option and this way you can decide for yourself if you want to hurt your ears or not :P

I have also figured out how to flip the sprite so most things look better already than they did in the pictures above. The placement and direction of the recharge gate is still wrong sometimes. Also the pools seem to be broken for some reason!

I'll give it a bit more effort....but within 2 hours the preview will be uploaded! B-):D
 
Last edited by Archerite,

Archerite

Well-Known Member
OP
Member
Joined
Sep 16, 2018
Messages
209
Trophies
0
Age
39
XP
1,492
Country
Netherlands
The sound effects are kind of working....but they also sound horrible! I must be doing something wrong with SDL that makes it misbehave or something. To give the option to play with or without them I have included a "NoSFX" version into the .7z attached to this post. The only difference between them is that the sound effect do not play in one of them. They both have the background music since it seems to play just fine no matter what settings I use.

ONLY DOWNLOAD IF YOU THINK YOU UNDERSTAND THESE INSTRUCTIONS. PLEASE. :)

Instructions to run:
- If you do not have tested a version on another platform yet, I would suggest to follow the Wii instructions here. (it's been confirmed that this works in vWii :D)
- Please keep in mind....Official download page is gone now, so the download instructions are vague and obscure for a reason. sorry :blush:
- If you followed the Wii instruction in your vWii envirionment the data files are on the SD card now (sd:/apps/batterycheck/data/*)
- unpack the .7z and place it onto the SD card into (sd:/wiiu/apps/*). Choose either both or just the NoSFX version.
- Put the card back in the Wii U and boot into HBL
- Sorry...there are no icons included. Copyright licensing sucks! (I will later provide a temporary one)
- Launch one of the versions you put on the card

You should see the splashscreen if everything went well. It will stay for 5 seconds and switch to the level loading screen for an additional 10 seconds. Nothing is happening when they are shown and the timing is chosen purely for entertainment purposes. You can press A anythime to skip them though ;)

NOTE: I DO NOT MAKE ANY PROMISES AND I AM NOT RESPONSIBLE FOR ANY DAMAGES!!


With that out of the way...here is BatteryCheck - Wii U v0.3.6 - ALPHA! :yayu:

Have fun and enjoy :D
 

Attachments

  • batterycheck-wiiu-v0.3.6-ALPHA.7z
    2.7 MB · Views: 60
Last edited by Archerite, , Reason: Got a report it works in vWii. Adjusted the instruction a bit
  • Like
Reactions: Zense

Archerite

Well-Known Member
OP
Member
Joined
Sep 16, 2018
Messages
209
Trophies
0
Age
39
XP
1,492
Country
Netherlands
open source ?
The current mess of my code is not something I dare to make public.:blush:

Once I have cleaned it up and decided which opensource license I am comfortable with, some parts of the game engine will be open source.
At first i thought it was checking the battery of the wii u gamepad.
With a name like this I don't blame you, someone in the PlayStation 2 thread said the same thing.:rofl2:

The original game only released in the Netherlands, and in Dutch it's not confusing at all. The objective of the game is activate machines with batteries, so you check them before you swap the battery I guess. Then recycle them when you meet Freddy the Dragon :D
 
Last edited by Archerite,

KleinesSinchen

GBAtemp's Backup Reminder + Fearless Testing Sina
Member
GBAtemp Patron
Joined
Mar 28, 2018
Messages
2,523
Trophies
2
XP
5,598
Country
Germany
The original game only released in the Netherlands, and in Dutch it's not confusing at all. The objective of the game is activate machines with batteries, so you check them before you swap the battery I guess. Then recycle them when you meet Freddy the Dragon :D
And for the 3DS there IS a homebrew program for checking the battery.
https://gbatemp.net/threads/release-3ds-battery-checker.531142/

I'm astonished that the name of the game hasn't caused confusion before.
 

E1ite007

Weird avatar guy
Member
Joined
Nov 19, 2016
Messages
899
Trophies
0
Website
ughax.tk
XP
1,711
Country
Mexico

InsaneNutter

Well-Known Member
Member
Joined
Dec 26, 2007
Messages
931
Trophies
0
Age
35
Location
Yorkshire, UK
Website
digiex.net
XP
2,098
Country
When i read the title of this thread I though "i wonder if that's BatteryCheck, the game that uses the same engine used for Jazz Jackrabbit 2".

I played Jazz Jackrabbit 2 a lot in the late 90s / early 2000's, so this is certainly interesting to see.

So am i correct in thinking your multi-platform game engine is capable of loading the actual BatteryCheck levels? if so it would be nice to see support for Jazz Jackrabbit 2 in the future.
 
  • Like
Reactions: Archerite

Archerite

Well-Known Member
OP
Member
Joined
Sep 16, 2018
Messages
209
Trophies
0
Age
39
XP
1,492
Country
Netherlands
Since multiple posts shortly after each other are not appreciated I will combine my answers here :shy::wink:

And for the 3DS there IS a homebrew program for checking the battery.
https://gbatemp.net/threads/release-3ds-battery-checker.531142/

I'm astonished that the name of the game hasn't caused confusion before.
I had no idea there really was a homebrew app that checked the battery on the 3DS! It's screenshots say "Battery Mark" so it's odd they named it differently in the thread. The only time I got a reply from someone thinking it checked the CMOS battery of the PlayStation 2. The name is implying it in a way, but it's the real actual name of the game. I did not make it up :D:wink:

It definately has.
I've read in the past people refering to Battery Checker, as BatteryCheck, and when people try to look up for it, they end up with the port by @Archerite.
For anyone that was inconvenienced by this similar name, my sincere apologies. :)

Like I said above I had no idea really:blush: In my defense though, my first post of the 3DS version was on December 7 2018. That's two months before the "3DS Battery Checker" thread was created...:D:wink: As for actually checking the battery of the Wii U gamepad battery, I was thinking of having the home button activate the same menu as official games! This will also allow changing the LCD brightness while in the game. But only if possible off course...:D
When i read the title of this thread I though "i wonder if that's BatteryCheck, the game that uses the same engine used for Jazz Jackrabbit 2".

I played Jazz Jackrabbit 2 a lot in the late 90s / early 2000's, so this is certainly interesting to see.

So am i correct in thinking your multi-platform game engine is capable of loading the actual BatteryCheck levels? if so it would be nice to see support for Jazz Jackrabbit 2 in the future.
Yes, that is exaclty what my multi-platform game engine is doing. It is even a requirement to have the files on the SD card for it to run, I should really improve error messages if they are not there though. ;)

If you are interested I suggest you do a search for "BatteryCheck" on the forum, I noticed nearly all results are either my threads or blogs :blush:. Especially in my blogs I go into the low level details of what I did in the past to make it work. The short summary is that I load the original game files and read the level, tileset and sprites and convert them into whatever is needed on the running platform. :D For nearly all of them I also made an installer that can take the original 12MB Setup.exe normally used on windows to install the game. I have reverse engineered that setup.exe to see how and where the files are stored in there. And now the installer can unpack them on any console I ported it to. (only PS2 and WiiU do not have it yet).

While I do have plans to have it running Jazz2 levels in the future...it might take a few years! :blush: I have to admit I never really played Jazz2 but did buy the GOG pack when I started this project. Early testing showed the levels are 99% the same and even the tile animations were working! Aside from the basic engine itself there is also the difference in the objects, and more notably the amount of them! BatteryCheck has a quite managable 30 unique objects. Each of them has behaviour that is different and needs to be examined in detail. I have only a small amount of the objects currently working, compared to Jazz2 with it's 200+ different objects that is a long way to go before it will happen.

Maybe I can put a small demo together just to show it's kind of possible with one of the battle levels of Jazz2. :wink:
 

KleinesSinchen

GBAtemp's Backup Reminder + Fearless Testing Sina
Member
GBAtemp Patron
Joined
Mar 28, 2018
Messages
2,523
Trophies
2
XP
5,598
Country
Germany
I had no idea there really was a homebrew app that checked the battery on the 3DS! It's screenshots say "Battery Mark" so it's odd they named it differently in the thread. The only time I got a reply from someone thinking it checked the CMOS battery of the PlayStation 2. The name is implying it in a way, but it's the real actual name of the game. I did not make it up :D:wink:
"Battery Checker" ←→ "Battery Mark" The 3DS application had its name changed → https://github.com/Core-2-Extreme/Battery_mark_for_3DS/releases

The idea on the PS2: As nice it would be, I don't think checking a primary lithium cell is even possible – let alone by software methods on a PS2. Those have a pretty flat discharge curve holding their voltage between 3.1V and 2.95V over their lifetime to suddenly drop down when they are done for.

For anyone that was inconvenienced by this similar name, my sincere apologies. :)
Why apologize? You can't do anything about it. The game name is as it is.
===========

Back to the actual topic:
The Wii U Gamepad with 854*480 resolution which is way better than the limited low-res screen on the 3DS. It looks good on the photos.
 
  • Like
Reactions: Archerite

InsaneNutter

Well-Known Member
Member
Joined
Dec 26, 2007
Messages
931
Trophies
0
Age
35
Location
Yorkshire, UK
Website
digiex.net
XP
2,098
Country
While I do have plans to have it running Jazz2 levels in the future...it might take a few years! :blush: I have to admit I never really played Jazz2 but did buy the GOG pack when I started this project. Early testing showed the levels are 99% the same and even the tile animations were working! Aside from the basic engine itself there is also the difference in the objects, and more notably the amount of them! BatteryCheck has a quite managable 30 unique objects. Each of them has behaviour that is different and needs to be examined in detail. I have only a small amount of the objects currently working, compared to Jazz2 with it's 200+ different objects that is a long way to go before it will happen.

Maybe I can put a small demo together just to show it's kind of possible with one of the battle levels of Jazz2. :wink:

Ah yes I totally understand why that would be a lot more complex now. It would certainly be interesting to see a demo of Jazz2 running if you get chance to :)

The Jazz community is still quite active, so you might well get some interest in helping you advance support if that's something you wanted.
 
  • Like
Reactions: Archerite

V10lator

Well-Known Member
Member
Joined
Apr 21, 2019
Messages
435
Trophies
0
Age
33
XP
1,065
Country
Germany
Back in 1998 there was a campaign to promote recycling batteries in the Netherlands and part of that was a PC game on CD-ROM you could get if you brought 15 batteries in for recycling. It was based on the same engine as Jazz Jackrabbit 2 and therefore uses the same fileformats for the Tileset, Levels and Sprites. About 10 years ago the game was released as Freeware by the publisher but they removed it after a while.
Thanks god mirrors exist: https://archive.org/details/BATTERYCHECK

The game is licensed as Creative Commons
some parts of the game engine will be open source.
Wait, so you're rewriting a open source game into a parts-closed game?
 

Archerite

Well-Known Member
OP
Member
Joined
Sep 16, 2018
Messages
209
Trophies
0
Age
39
XP
1,492
Country
Netherlands
Ah yes I totally understand why that would be a lot more complex now. It would certainly be interesting to see a demo of Jazz2 running if you get chance to :)

The Jazz community is still quite active, so you might well get some interest in helping you advance support if that's something you wanted.
As you now understand it might take a few years to fully implement all the objects of Jazz2, but a small little proof-of-concept demo with a simple battle level "might" be possible in a few months. I'll see what I can do about it if I get the time for it. :wink:

I know they are, and I am in contact with them on the Jazz2Online forums to make them aware of my project. They have more in depth knowledge of Jazz2 an BatteryCheck so hopefully they can help me with a couple of things to optimize my game engine for these two games. It was actually their extensive documentation of the Jazz2 file formats that made my project possible! I had been wanting to do it for almost 15 years...but I did not know how to read the game files. Now I do. :D
That is indeed the mirror that I have been avoiding of sharing up until now! :wink: But I did ask a question if sharing that link would be ok on this site and provide it with my instructions. I think the answer is "sure, should be fine" but I need to read to through the replies again.:)
Wait, so you're rewriting a open source game into a parts-closed game?
No, the original game has never been open source. It's released as freeware around 2008 by Stibat who are the owners of the game, but they stopped hosting the download a few years later. When I started my project here I had found a website that belonged to the company that was part of the team that created BatteryCheck. They had the download for the game on their website and I was allowed to share the link to their page, but they gave me no guarantee it would stay up forever.

The version I am working on that runs on the Wii U (and also GameCube, Wii, 3DS and PlayStation 2) is entirely written by myself! Except ofcourse for platform specific libraries to use gamepads, GPU, sound etc...but the actual "game engine" is my own creation! So it was never open source to begin with...but I had plans to do it once it's good enough. And in it's current state it's just too big of a mess to share.
Always great to see games get ported to the Wii U through the homebrew scene.
Thanks. I might be going to attempt porting other games in the future, but no promises yet. :wink:
 
  • Like
Reactions: InsaneNutter

V10lator

Well-Known Member
Member
Joined
Apr 21, 2019
Messages
435
Trophies
0
Age
33
XP
1,065
Country
Germany
No, the original game has never been open source.
I just googled this and you're right: https://www.jazz2online.com/wiki/Jazz_Jackrabbit_2_Source_Code
Anyway, I'm still confused about this statement of you:
The game is licensed as Creative Commons
Let me quote from https://creativecommons.org/licenses/?lang=en :
All Creative Commons licenses have many important features in common. Every license helps creators — we call them licensors if they use our tools — retain copyright while allowing others to copy, distribute, and make some uses of their work — at least non-commercially.
If the games code isn't CC licensed what else is? The assets? And what CC license exactly (if you look at the link above you'll see there are multiple slightly different CC licenses but all of them have one thing in common: They allow you to include and distribute these assets with your game. So no need for the end user to extract them from the official windows exe) ?

//EDIT: You shold even be allowed to encode the raw sounds to i.E. mp3 to save some space. ;)
 
Last edited by V10lator,

Archerite

Well-Known Member
OP
Member
Joined
Sep 16, 2018
Messages
209
Trophies
0
Age
39
XP
1,492
Country
Netherlands
Glad to have that cleared up:wink:
Anyway, I'm still confused about this statement of you:

Let me quote from https://creativecommons.org/licenses/?lang=en :

If the games code isn't CC licensed what else is? The assets? And what CC license exactly (if you look at the link above you'll see there are multiple slightly different CC licenses but all of them have one thing in common: They allow you to include and distribute these assets with your game. So no need for the end user to extract them from the official windows exe) ?

//EDIT: You shold even be allowed to encode the raw sounds to i.E. mp3 to save some space. ;)
To be honest the text you quoted from me I wrote years ago and I have been copy/pasting it into the newer threads for a while now....thinking it was just a summary of what the game is about. Without ever reading that snippet of text again! :blush:You are also the first to dive deep into the Creative Commons license thing....and I never really looked back on it.;)

When I started my project and it reached a point where I wanted to share it I needed a way for others to try it out. Therefore they needed to get the game files somehow and be able to download it if they did not have the original CD-ROM. I found an old website that had the batterycheck download and it was perfect! I researched the company and they turned out to be part of the original team that created BatteryCheck! With a little encouragement of @Cyan in my thread here I sent them an e-mail asking about the download page and what the licensing was etc...
They told me the license was "creative commons" but not which version. I was meaning to ask them...but as the months went by I felt it was "too late" for that. Guess I was to scared or something for their answer. :blush: If you still want to read more see my question , the wii thread or more specifically: this post.

My view on the whole licensing issue is that it sucks! But it's a choice I have made by remaking this game and using it's graphics, animations, music and sound effects. I will never claim that those are mine and I have made this very clear from the beginning in the Wii thread. If I would have chosen Jazz JackRabbit 2 for my project to start with....the situation would be slightly different. That game is still sold on GOG for a fair price I would say and that would be the way to obtain the assest legally. My homebrew version would just allow you to play the game on a gameconsole instead of being PC only. (this is planned for the future by the way;)). But to make it clear: I will NOT provide the graphics directly with my game! Unless I know the graphics are "Free to use" or have explicit written permission to do so.

The only way to get a copy of the original game files is from: the original CD-ROM, the freeware download, the old page I linked to before that is now offline, the archive.org you linked to, and another one on digex. But I did not know for sure if linking was allowed to be shared on GBATemp, and I did not want to cause problems for the admins. Or myself.:wink: Considering the response to my question I asked and linked to above I now think that it's "allowed" to link to those files for this game.

...So no need for the end user to extract them from the official windows exe...
Let's zoom in on that a little just for fun ;)

Only the first few months of my project there was a requirement to actually run the windows setup.exe on an actual windows computer. (or on Linux with Wine). Then I spend about three months reverse engineering that setup.exe to see exactly what it did while unpacking the files. The main reason I really wanted to do this was to make it possible to install and run the game on a Raspberry Pi without running Wine or first installing on a windows PC! When I had figured all of that out and knew what to do I had written a prototype in Python3 and was able to extract all the files perfectly! In about a month I rewrote that script into C++ and created an installer for the Wii, GameCube and 3DS. (There are blog posts about the details if you are interested.;))

Please don't take this the wrong way. I do appreciate critical comments just as much as positive reactions from people who have tested my version of the game. The goal is to make it near 98% the exact same experience as it has been on a PC back in 1998. I do plan on making the camera movement a little better and less sticky to the player. Just like in Mario and Sonic games :D

Thank you :D

The installer has not had much attention anymore and I need to see in what kind of state it currently in. I have been working on adding a gui to it...or at least show the progress of unpacking the files. But I know I stopped working on it because of time...interest....difficulty etc..

I am going to have a look at it today and maybe get it working "good enough" to upload for the Wii U. Then new users have it a little easier to get things working. :wink:
 
Last edited by Archerite,

Archerite

Well-Known Member
OP
Member
Joined
Sep 16, 2018
Messages
209
Trophies
0
Age
39
XP
1,492
Country
Netherlands
I recently discovered Jazz² Resurrection, a reimplementation of Jazz Jackrabbit 2 for Windows, OSX, Linux, Android and WebAssembly, this reminded me of your BatteryCheck Wii U port, so thought i'd share the link with you on the off chance its of any use.
I did know about Jazz2 Resurrection and maybe some of the effects or collision detection/correction methods could be examined in the code. I can't use it directly as it's written in C# and I used C++. Thanks for sharing the link though :D

This did give me a reminder that I still have not uploaded the "audio fixed" version here. It's only on the 4TU discord:blush:. The main reason for not uploading it yet is that I wanted to work out the details with the owners and port the installer over to the WiiU. It would make installing it a lot easier. ;)

And on the side I tried fixing all the other bugs floating around in the code that made it crash on the other platforms. Really need to dive back into it in a few days....just got back from vacation :D. I won't make any promisses but hopefully an updated WiiU version that includes the installer should be possible by the end of this month. ;)
 
  • Like
Reactions: InsaneNutter
General chit-chat
Help Users
    KennieDaMeanie @ KennieDaMeanie: Bob Ross Positive Energy Drink...