Jump to content
IGNORED

Could every GB game be colored and released for GBC?


cartman
 Share

Recommended Posts

So there is this game Tintin in Tibet for GB that is released both with and without color respectively and it got me thinking: is this possible to with every game? What level of programming knowledge would be required and is it hard to accomplish? How long would it take on average per game?

Are there any people on this forum that would be able to pull this off?

  • Like 1
Link to comment
Share on other sites

Super Game Boy can color the games and you can customize the scheme. You still get only four colors, but taking things away from monochrome can do wonders.

Increasing the number of colors would be a one game at a time thing, and you would have to write code for whatever you want more colorful, sprites or backgrounds or other objects. 

Link to comment
Share on other sites

Yes i know but i'm not talking about color palettes like the ones offered on GBC-onwards and Super Game Boy. I mean the full spectrum of colors like the games released for GBC would've allowed.

Is it fully doable to write code for any GB game like that and make it run on GBC? Are there any games where technical issues just wouldn't allow it?

 

Spoiler

 

 

Link to comment
Share on other sites

Any GB game does run on GBC already, in the same way a black and white movie plays on a color screen. 

I’m not clear on what your followup line of questioning is, beyond what I said in my second paragraph. No, you can’t write a template that would blanket cover all GB games to advance them to have more than 4 colors. Maybe additional aliasing, but nothing about that would look good. It would just add intermediate shades and result in things looking blurry.

Like colorizing black and white media —  moving or still images — there would be a lot of specific individualized manual work to upgrade the graphics. That’s why the Super Mario All Stars or ZeldaHD (WW/TP) treatment hasn’t been done for more games already. 

 

Link to comment
Share on other sites

Member · Posted

Well, some fan made Super Mario Land DX, so I assume it could be done, but it depends on how much work and effort you want to put into it. I think SML was a rather simple game.so the more complex or big the game, the more difficult the conversion.

Link to comment
Share on other sites

6 hours ago, Link said:

Any GB game does run on GBC already, in the same way a black and white movie plays on a color screen. 

I’m not clear on what your followup line of questioning is, beyond what I said in my second paragraph. No, you can’t write a template that would blanket cover all GB games to advance them to have more than 4 colors. Maybe additional aliasing, but nothing about that would look good. It would just add intermediate shades and result in things looking blurry.

Like colorizing black and white media —  moving or still images — there would be a lot of specific individualized manual work to upgrade the graphics. That’s why the Super Mario All Stars or ZeldaHD (WW/TP) treatment hasn’t been done for more games already. 

 

Yes i know man but we're talking past each other. I am not talking about a bluescale or brownscale instead of black & white/greyscale that you can use to play a GB game on a GBC system. Neither am i talking about that unique color scheme where the GBC offers some kind of dark green with some purple for game objects (if i remember correctly how it looked).

I mean a fully colored game that is based on the GBC color spectrum rather than a palette. How a legit GBC game would be released.

Link to comment
Share on other sites

1 hour ago, RH said:

Well, some fan made Super Mario Land DX, so I assume it could be done, but it depends on how much work and effort you want to put into it. I think SML was a rather simple game.so the more complex or big the game, the more difficult the conversion.

Yes that's a good one. But is it really a 100% replica? I think i heard there where some miniscule details changed in the mechanics for it to run smoothly, something that you'd barely even notice.

 

Link to comment
Share on other sites

Member · Posted
13 minutes ago, cartman said:

Yes that's a good one. But is it really a 100% replica? I think i heard there where some miniscule details changed in the mechanics for it to run smoothly, something that you'd barely even notice.

 

Well, that makes it a better reference game. If they had to modify that game to run smoothly (and I honestly know little about that project beyond that it exists) then more likely than not, any other game would need subtle modifications.

Link to comment
Share on other sites

16 hours ago, cartman said:

is this possible to with every game?

yes

16 hours ago, cartman said:

What level of programming knowledge would be required

a lot

16 hours ago, cartman said:

and is it hard to accomplish?

yes

16 hours ago, cartman said:

How long would it take on average per game?

a month or two, full-time. Average, after figuring out a decent workflow.

16 hours ago, cartman said:

Are there any people on this forum that would be able to pull this off?

able? yes. willing? maybe for one personal favorite game, but I don’t think it’s likely.

2 hours ago, cartman said:

. I am not talking about a bluescale or brownscale instead of black & white/greyscale

Neither am I. SGB lets you choose any 4 colors you want. You could have red yellow green and blue.

2 hours ago, cartman said:

I mean a fully colored game that is based on the GBC color spectrum rather than a palette. How a legit GBC game would be released.

Again, from the starting point of only 4 colors, getting to the GBC standards of up to 10, 32, or 56 colors on-screen at once, it would be a serious overhaul, akin to Mario All-Stars or Windwaker HD. Things would have to be added and changed. It would not be a 100% replica.

Link to comment
Share on other sites

On 2/9/2020 at 3:31 PM, RH said:

Well, that makes it a better reference game. If they had to modify that game to run smoothly (and I honestly know little about that project beyond that it exists) then more likely than not, any other game would need subtle modifications.

But there is already a game, licensed where did this take place. They released the same Tintin game for GB and GBC. I don't have the equipment to measure and decisively say whether they're 100% identical or if something was modified in programming but just by looking at it it seems identical.

Link to comment
Share on other sites

Member · Posted

Well, there are others as well.  Wario 2 has a GB and GBC release.  Majesco also released titles like Frogger and one other (I can't recall which) that had a duel release.

But the thing is, there's a big difference between having original source code to a game, and designing it in such a way that when you compile it, you can choose to compile it for either the original GB or the GBC.  There's no simple way to do this.  From the start, a dev house could absolutely structure their code and internal assets to make it easy to compile between platforms.  In fact, this has been going on in some form or fashion since the beginning of game development, that's been distributed on media.  In fact, one of the advantages for the C language was that it was one of the first that was designed to be "portable", meaning, you could spend most of your time writing 75% of your code in such a way that it could be used across system to system.

If a development studio wanted to release a game on GB and GBC, they would have specifically written their code so that it could compile for both.  They would have used special "flags" in the code files to tell the compilers "hey, when you compile for the GB, do this.  If you are compiling for the GBC, do that."  Those flags could be placed around blocks of functional code, or wrapped around the visual assets used to make the titles for the backgrounds and sprites.

But, the big difference is that from the beginning they designed their code that way.  Once a the game was compiled, some of those portions of code may be distinguishable once it's decompiled (or reversed engineered into something a bit more human-readable) because their compiler would have structured the application that way.

But, if a game was never designed to be "portable", you need to dissect it, figure out what every block of functional code does, and then figure out it's digital assets.  Images on the GB and the GBC are a bit different and initializing the pallets for colors on the screen for a given tile are even more different. You will have to slice-and-dice the code on your own to determine where pallet setting should take place, and that's something that doesn't exist in the GB because there's no need to setup and swap pallets for a green screen game.

So, I know that's a bit of a technical rant, but the short version is, if a company built a game in a way where they intended to build if for multiple systems, they structured their code to make it easy on themselves.  But, if a game studio didn't do that, and never had that intent, then reverse engineering a game and adding those types of changes would be a lot of work.

Now, shooting from the hip here, what might be a bit easier is taking a GBC game, and re-engineering it so that it can play on the GB.  As I mentioned, for GBC games, there has to be code where pallets are initialized for drawing tiles to the screen.  If you take the raw screen data and drop the pallet initialization code, there's a chance you could get some games to work. But, the GBC has two screen tile maps, so you'd still have to modify the code to just use the single tile map you get in VRAM for the GB.

Link to comment
Share on other sites

On 2/9/2020 at 8:01 AM, RH said:

Well, some fan made Super Mario Land DX, so I assume it could be done, but it depends on how much work and effort you want to put into it. I think SML was a rather simple game.so the more complex or big the game, the more difficult the conversion.

Super Mario Land 2 and Metroid 2 have also been colorized. 

 

There were also games like Blaster Master Enemy Below and Crystalis that were made to run on both GB and GBC.  Usually those games have a black cartridge.  Some of them were even compatible with GBC and Super Gameboy.  Wikipedia has some good lists of compatible games.

https://en.wikipedia.org/wiki/List_of_Super_Game_Boy_games

https://en.wikipedia.org/wiki/List_of_Game_Boy_Color_games

Edited by CMR
Link to comment
Share on other sites

On 2/10/2020 at 5:38 PM, RH said:

Well, there are others as well.  Wario 2 has a GB and GBC release.  Majesco also released titles like Frogger and one other (I can't recall which) that had a duel release.

But the thing is, there's a big difference between having original source code to a game, and designing it in such a way that when you compile it, you can choose to compile it for either the original GB or the GBC.  There's no simple way to do this.  From the start, a dev house could absolutely structure their code and internal assets to make it easy to compile between platforms.  In fact, this has been going on in some form or fashion since the beginning of game development, that's been distributed on media.  In fact, one of the advantages for the C language was that it was one of the first that was designed to be "portable", meaning, you could spend most of your time writing 75% of your code in such a way that it could be used across system to system.

If a development studio wanted to release a game on GB and GBC, they would have specifically written their code so that it could compile for both.  They would have used special "flags" in the code files to tell the compilers "hey, when you compile for the GB, do this.  If you are compiling for the GBC, do that."  Those flags could be placed around blocks of functional code, or wrapped around the visual assets used to make the titles for the backgrounds and sprites.

But, the big difference is that from the beginning they designed their code that way.  Once a the game was compiled, some of those portions of code may be distinguishable once it's decompiled (or reversed engineered into something a bit more human-readable) because their compiler would have structured the application that way.

But, if a game was never designed to be "portable", you need to dissect it, figure out what every block of functional code does, and then figure out it's digital assets.  Images on the GB and the GBC are a bit different and initializing the pallets for colors on the screen for a given tile are even more different. You will have to slice-and-dice the code on your own to determine where pallet setting should take place, and that's something that doesn't exist in the GB because there's no need to setup and swap pallets for a green screen game.

So, I know that's a bit of a technical rant, but the short version is, if a company built a game in a way where they intended to build if for multiple systems, they structured their code to make it easy on themselves.  But, if a game studio didn't do that, and never had that intent, then reverse engineering a game and adding those types of changes would be a lot of work.

Now, shooting from the hip here, what might be a bit easier is taking a GBC game, and re-engineering it so that it can play on the GB.  As I mentioned, for GBC games, there has to be code where pallets are initialized for drawing tiles to the screen.  If you take the raw screen data and drop the pallet initialization code, there's a chance you could get some games to work. But, the GBC has two screen tile maps, so you'd still have to modify the code to just use the single tile map you get in VRAM for the GB.

So if you structure the code in a certain way it becomes easier to port between platforms. Is it like a language so a game specifically coded for GB is like a localized dialect. So if someone talks Jamaican English or whatever there might be words that make communication harder if you come from the US. Maybe it's a shitty example i don't know.

But can all code be dissected? Even if it's much harder, is it always possible for someone to extract the information and adapt it, in this case to GBC? Given that someone has enough knowledge and time - is there any already existing GB game that can never be a GBC game anyway due to technical incompabilities?

 

Link to comment
Share on other sites

Member · Posted
4 hours ago, cartman said:

So if you structure the code in a certain way it becomes easier to port between platforms. Is it like a language so a game specifically coded for GB is like a localized dialect. So if someone talks Jamaican English or whatever there might be words that make communication harder if you come from the US. Maybe it's a shitty example i don't know.

But can all code be dissected? Even if it's much harder, is it always possible for someone to extract the information and adapt it, in this case to GBC? Given that someone has enough knowledge and time - is there any already existing GB game that can never be a GBC game anyway due to technical incompabilities?

 

I'd say with enough time and dedication, yes, any game could be hacked to have GBC compatibility. But, full disclosure, I've only dabbled in Homebrew but professionally I am a developer and for a while I was an embedded systems engineer, so I have had experience writing code close to the direct hardware layer. The GB/GBC are very simple devices and from my casual observation, the GBC was mostly developed to operate almost exactly like a GB, but with enough extra features and horsepower to add à decent amount of colors to the visual output.

Nintendo also knew they had a strong library of GB games and making it easy to port/upgrade those games with color was part of the design. It's cheaper and easier to make a profit.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share


  • Welcome to VGS!

    Play, Make, Collect.

    Here at VGS all kinds of gamers are welcome, and that includes you!

    Join the conversation!

×
×
  • Create New...