What would BatteryCheck look like on the GameBoy?

Because I got myself a GameBoy Color a few weeks ago I have been interested in also getting a couple of games for it, obviously. I do have a flash cart but it's not ideal to "Get to know" the games. I did not count but I have about 12 GB/GBC games now. Some are fun...some not so much. :rofl2: One thing I did to my yellow GBC is transplant it's internals into a new shell with an IPS screen. The mod is not complete...and I do not like the color scheme I chose...but it works! And now I can actually SEE the games I am playing!:D

But this post was not meant to be about the GBC mod per se....but it's part of the reason my head was spinning in this direction. Working on BatteryCheck for the last few years was fun for the most part...and challenging for 90% of the way! I am not complaining it's difficult because it's mostly my own fault! It's not even related (I think) to the many consoles my game engine can run on...or at least...not entirely.

On the consoles I have worked on the most (Wii,GC, 3DS and PS2) there is more than enough RAM and CPU resources to do things in awkward ways...and leaving out optimizations. Although the PS2 and it's complex architecture had me rethink a couple of design choices already. The first version that booted up into the game was running at 5-10 FPS!!!! There were also issues with colors but those are not related to the speed. Having found the issue....I think it was the math function "floor()"...or something. At least something that was working fine on nearly every other console except for the PS2! I still don't think it's solved completely but FPS is at least in the 30-50's I think when running on real hardware. But that was a while ago since I last tried that.

Being so "involved" with the gameboy color I watched many repair and modding video's to learn what is available. Then I also got a second one for parts and a gameboy pocket to complete my collection. I think it got a little out of hand....:blush:
gameboy-collection.png
(ignore the two DSi's in the top right...this is cropped from a bigger picture that included my DS'es and 2/3DS'es but those are not important here. ^_^)

Yep...it's a lot depending on your point of view I guess. I don't have every single variation or color scheme...or boxed version. I just got them when they were cheap-ish and over the years this is my collection. (although the DMG is borrowed for the picture and is not actually mine...because mine is in storage with a broken screen. I was a kid once to you know :P)

But the main point of this whole post was actually to show this image:

menu_gb.png


This is a "16 levels of grey" resized version of the menu screen from BatteryCheck. Still to many "colors" for the limited GB/GBC hardware but I just wanted to see what it might look like. I think I have to split up the "menu screen" into the "logo", "batteryman" and "background" to separate the colors. I need to go down to 3-4 per section! Maybe I just leave the background all white, black or the blueish green that is common in the first level.

It's not perfect...but overal for a first impression I still think it looks kind of cool! And yes...I know the resolution is "Way to small" but I have plans for it to downscale them into more common sizes for the tiny resolution. When that is "complete" I have a better starting point to go from when "upgrading" to the GBA at a later date. In more technical terms: the tile's are 32x32 pixels by default and I want to make this 16x16 and in turn resize all the sprites by 50% also. This is going to take a lot of time and effort to "look good" but the first run will just be quick-and-dirty.

One "feature" I definitely can't do on the GB/GBC is unpack and resize on the hardware! Even if the EverDrive GB (which I don't have, yet) would allow writing to the SD card it would be terribly slow! The GBA EverDrive does support writing but I have not tried it yet. We will see where it al leads and if it comes to it I will just ask the owners again. Last time they said something in the lines of "distribute in anyway you like" but make sure it's clear we are not responsible for anything.

The limited hardware is a big challenge...but if I can make it run smooth on a GameBoy Color it will run smooth on ANYTHING! Right? :rofl2: And no this is not a "deviation" from my ultimate goal with this...as I have always planned to eventually go all the way to the sega MegaDrive/Genesis! And while it's slightly more powerfull and capable than a GBC many limitations are the same I think^_^

Thanks for reading.

Comments

Not sure what can be run on a gamebody colour.
Looking at the specs of the GBC, NES and Sega Master System and Game Gear....I think/feel they are kind of the same graphics wise except for the resolution. Except for the NES having a 6502 based CPU the others have a Z80 CPU and the GBC has the fastest clock speed. Does not say much in terms of processing speed but in simple terms: A portable NES...or a little below it. Just as the DS was a portable N64 in a way. And the GBA in terms of the games looked a lot like the SNES.
Look at Donkey Kong Country for GBC. Not the GBA version. Gives a good impression of what such a game would look like.
I hate the colors they chose to use for Donkey kong countryand it feels to me like a "cheap port" with washed out colors. It's what windows used to look like when the graphics drivers were "corrupted" or whatever it was that reverted it back to 16 colors. (have not used windows in over 14 years...ok I do have W10 but barely use it to make that count)

I plan to do "a bit more work" on finding a color balance for BatteryCheck on the Gameboy Color. ;) It really helps that most objects don't use a lot of color already. There is an option to use overlay sprites to combine them to simulate more colors in a single object. It's more work...but it will also look better I think. That is.....if I ever get far enough into this side-project. First thing to do is get something to compile and show colors at all! I am not even at that stage yet! Only text written to a screen is working now with GBDK (GameBoy Development Kit).

I'll also need to decide what programming langue to use. My current code is C++ but I don't use many advanced features...but probably enough to not work in plain C that GBDK uses. And most likely it's too bloated for the GBC anyway :D There is definitely going to be an issue with memory being limited! My current code needs 4-6MB of RAM minimum! But most of that is graphics which will be scaled down and be part of the ROM space. Going from the max ROM size and the specified size the Everdrive GB supports is 8MB so there is some wiggle room to make it fit...I think. maybe. ^_^
 
  • Like
Reactions: KleinesSinchen
I hate the colors they chose to use for Donkey kong countryand it feels to me like a "cheap port" with washed out colors.
Well. It is a "cheap port". Still kind of a good demake of a game from SNES. SNES to GBC is a huge step down.
Sprites are limited to one pallet of 4 colors. That imposes severe limits. You can assemble big figures of two sprites doubling colors, but you will run into sprite limits.
========

There are some clever tricks working seemingly around the overall 56 colors limit (Sprites, BG layer, window layer).
Don't ask a non-developer for technical details. I guess you'll have to master Z80 assembly and the complete GB(C) architecture to pull that off.
Look for these:
  • Alone in the Dark
  • Cannon Fodder (Intro → Second half looks like full motion video!!)
  • Tool Assisted Speedrun of Pokémon Yellow with arbitrary code execution. Is this
    • a Speedrun?
    • art?
    • hacking?
    • mastering of programming the GBC
    • All of the above!

For the case you do not already know this speedun: It is impressive and the description well worth reading. Regarding the color limit and general GBC limits, the most interesting part is the very, very short excerpt from a Spongebob episode having Patrick ask "How does he do that?" which is kind of self-aware for the speedrun/video.
 
  • Like
Reactions: Archerite
Well. It is a "cheap port". Still kind of a good demake of a game from SNES. SNES to GBC is a huge step down.
Sprites are limited to one pallet of 4 colors. That imposes severe limits. You can assemble big figures of two sprites doubling colors, but you will run into sprite limits.
I have the game since a few days, and played it shortly and it does look like it has the same animation speed and jumps as the SNES version. I guess back in 1998 this would have looked really cool on the go. It's true that sprites are limited to a single palette of 4 colors...of which one is always transparent! So only three usable colors left for sprites. But if you were to use two sprites and make them act as one...you have 6 colors. :) I think this is how mario on the NES is drawn too.
There are some clever tricks working seemingly around the overall 56 colors limit (Sprites, BG layer, window layer).
Don't ask a non-developer for technical details. I guess you'll have to master Z80 assembly and the complete GB(C) architecture to pull that off.
I know you're not a developer and I find it impressive enough you already know these details of the GBC. :D I have watched a bunch of video's, read articles and more about the Gameboy Color's architecture and capabilities. There is just something that draws me in because of the limitations. I had the same when I was learning about the Sega MegaDrive and it's graphics and architecture. That's what I compare it with in my mind. It's kind of the same limitations...but even more restricted because of the smaller palettes and resolution.

The difficulty is that I am not familiar with the gameboy development kit. It's completely different from what I am used to with DevKitPro for nearly everything from nintendo starting with the GBA. Also the PS2 and PSP devkits are different but they are "modern enough" to make it still work.

The biggest challenge is that it seems the gameboy's devkit (GBDK) is only meant for C and not C++ which is what I have written BatteryCheck in right now. I don't know if it's really impossible to use C++ or that it's just not included. There are obviously memory limitations that might be the biggest reason for this. But I do know that it's possible for the Sega Mega Drive, and that also has limited memory.

Learning Z80 assembly could be fun but that's not the way I want to go right now. First I just want a simple picture to show on screen. Or even just a movable rectangle would be great! Then work up to more advanced features. The biggest challenge might be that a lot of bank switching is required on the GBC. This means that memory needs to be mapped in and out and some parts are not available all the time.

About the speedrunning...I know it exists but I have never looked into it. I do know there is also one of those that can "hack" SMW on the SNES and then inject a Snake game in there using the SMW sprites.

My biggest example of what it might look like...BatteryCheck on the GBC is Wario Land 3! It looks really colorful despite the limitations. And also Shantae looks really good....although I gave up hope of owning the original cart. like ever! But the selected colors do make it work within the limitations....that is kind of what I am going for. At least...that's the plan but I have no idea how realistic it is.

I might end up reusing the resized graphics on the 3DS to give it more "view of the level"....if they are good enough ofcourse. But resizing is the only option on the smaller screens of GBC, GBA and DS, DSi. The even more limited colors on the GBC might help in selecting better colors on the GBA and DS later when I get back on those.

Sorry...long answer again. I'll stop now.
 

Blog entry information

Author
Archerite
Views
349
Comments
5
Last update

More entries in Personal Blogs

More entries from Archerite

General chit-chat
Help Users
  • No one is chatting at the moment.
  • S @ salazarcosplay:
    hunter x hunter
  • S @ salazarcosplay:
    he has not allowed anyone to continue it for him for example
  • Xdqwerty @ Xdqwerty:
    @salazarcosplay, theres a dragon ball af mod for budokai 3
  • Xdqwerty @ Xdqwerty:
    updated ship of harkinian, gonna install some hd texture pack
  • Xdqwerty @ Xdqwerty:
    I might download rayman revolution for my ps3
  • BigOnYa @ BigOnYa:
    I may try the new ram site, and download more RAM to my Switch. Not sure if ddr3 is the right ram
    for it tho. Edit- no it uses floppy Ram, just like @AncientBoi
    +1
  • Xdqwerty @ Xdqwerty:
    aeiou
  • BigOnYa @ BigOnYa:
    And sometimes Z
  • SylverReZ @ SylverReZ:
    @K3Nv2, MAGA supporters be wearing tin foil hats lol.
    +1
  • Xdqwerty @ Xdqwerty:
    @SylverReZ, whats maga?
  • BigOnYa @ BigOnYa:
    It stands for Maniacs Against General Acceptance
    +1
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, people rejecting general consensus about stuff?
    +1
  • BigOnYa @ BigOnYa:
    Yup, nuh its really just Trump followers
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, im not american so i dont care about trump
    +1
  • Xdqwerty @ Xdqwerty:
    or us elections
  • BigOnYa @ BigOnYa:
    Me niether, us north Koreans don't care
  • Xdqwerty @ Xdqwerty:
    good night
  • BakerMan @ BakerMan:
    i don't care either, even if i'm american
  • BakerMan @ BakerMan:
    truth be told, i agree with psi, i dislike both candidates, but i'd probably vote trump simply because the economy was better during his presidency
  • AngryCinnabon @ AngryCinnabon:
    Just be careful, if trump ends up winning and using project 2025 America might really change...for the worse.
  • AngryCinnabon @ AngryCinnabon:
    I'm not american and even that sends shivers down my spine.
  • AngryCinnabon @ AngryCinnabon:
    anything that offers trump an opportunity to become an actual dictator
    is bad in my book, i could care less if it wasn't for that...
  • K3Nv2 @ K3Nv2:
    Canada: America's Russia
  • NinStar @ NinStar:
    people are so dramatic that I can't even tell if they are being serious
    NinStar @ NinStar: people are so dramatic that I can't even tell if they are being serious