News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Metroid II EJRTQ Colorization  (Read 22509 times)

Quantam

  • Jr. Member
  • **
  • Posts: 21
    • View Profile
Metroid II EJRTQ Colorization
« on: January 20, 2019, 07:37:42 pm »
EDIT: This post is old. The beta is over. You can download the final version from http://www.romhacking.net/hacks/4388/.

Hi, all. As there are still a couple things I want to add and thus it's only a beta right now and can't be posted on RH.net yet, I wanted to let everybody know about Metroid II EJRTQ Colorization, which converts Metroid II: Return of Samus to full color. This mod combines the art of the beautiful but buggy EJRT colorization 1.2 with entirely rewritten code, fixing bugs and crashes, allowing it to run on most emulators, and adding additional graphical improvements.

The beta is fully playable and the only changes planned before full release are graphical and a suite of changes to make it more useful as a base for other mods (in particular allowing larger, more complex mods with more graphics, maps and scripts). It is known to have been fully completed on BGB, and partially completed (with no known gameplay-affecting bugs) on mGBA, Higan, Game Boy Player, and PocketSprite. It should work on just about any emulator, but is known to not work properly with Game Boy Online.

v1.3 Release Candidate (includes release notes)
Old Beta Link
Gameplay video of slightly older build

« Last Edit: March 30, 2019, 10:56:02 pm by Quantam »

Chicken Knife

  • Sr. Member
  • ****
  • Posts: 296
    • View Profile
Re: Metroid II EJRTQ Colorization
« Reply #1 on: January 20, 2019, 10:11:29 pm »
This looks great! I agree that the previous attempt at colorization needed a lot of work. Bravo for taking this on. I'm looking forward to playing.

ShadowOne333

  • Hero Member
  • *****
  • Posts: 1221
    • View Profile
Re: Metroid II EJRTQ Colorization
« Reply #2 on: January 20, 2019, 10:26:41 pm »
Nice! I was hoping for an update to this amazing colorization. :)
Do you happen to have a list of the bugfixes done?

I know the Metroid Queen fight used to flicker a lot, and the enemies didn't change colors when hit by the Ice beam. Have those been addressed?
I also remember that Samus' visor was not coloured green when you aim up or down with the arm cannon, it changed to the orange colour of the suit instead

toruzz

  • Full Member
  • ***
  • Posts: 182
    • View Profile
Re: Metroid II EJRTQ Colorization
« Reply #3 on: January 20, 2019, 11:09:01 pm »
Wait, what? I'm quite surprised at this to say the least and for several reasons :o

I am ridiculously happy this exists, but I would have very much appreciated EJRT telling me about this project. Let me tell you that I was working on the very same thing with him until he lost motivation and I put the project on hold. Some of you already knew because I mentioned it during a livestream.

Also I won't be mad or anything, but is this based on my code? The similarities in some respects are more than striking. Anyways, it's no use to me anymore, so if you're curious this is what I had (ROM CRC32: DEE05370): https://www.mediafire.com/file/9ci05d9cdd5ghq4/M2DX.ips/file

EDIT: Quantam contacted me -his reply is held up in moderation- but it turns out it's just a big coincidence.

Anyway, great job man, I'm really happy to see more quality colorization projects :beer:
« Last Edit: January 21, 2019, 12:57:56 am by toruzz »

Quantam

  • Jr. Member
  • **
  • Posts: 21
    • View Profile
Re: Metroid II EJRTQ Colorization
« Reply #4 on: January 20, 2019, 11:11:33 pm »
Nice! I was hoping for an update to this amazing colorization. :)
Do you happen to have a list of the bugfixes done?

I know the Metroid Queen fight used to flicker a lot, and the enemies didn't change colors when hit by the Ice beam. Have those been addressed?
I also remember that Samus' visor was not coloured green when you aim up or down with the arm cannon, it changed to the orange colour of the suit instead

There is now no known graphical corruption, flicker during gameplay, or crashes. Other details can be found in the readme. The only remaining graphical things are the hidden blocks not being hidden (to be fixed) and when entering the queen room the screen flashes white for a couple frames (this is actually present in the original game but only occurs with GBC hardware, and I'm not planning to try to fix it).

EDIT: I actually never noticed the visor thing before, so I haven't fixed it.
« Last Edit: January 21, 2019, 04:40:26 am by Quantam »

Quantam

  • Jr. Member
  • **
  • Posts: 21
    • View Profile
Re: Metroid II EJRTQ Colorization
« Reply #5 on: January 20, 2019, 11:20:42 pm »
Wait, what? I'm quite surprised at this to say the least and for several reasons :o

I am ridiculously happy this exists, but I would have very much appreciated EJRT telling me about this project. Let me tell you that I was working on the very same thing with him until he lost motivation and I put the project on hold. Some of you already knew because I mentioned it during a livestream.

Also I won't be mad or anything, but is this based on my code? The similarities in some respects are more than striking. Anyways, it's no use to me anymore, so if you're curious this is what I had (ROM CRC32: DEE05370): https://www.mediafire.com/file/9ci05d9cdd5ghq4/M2DX.ips/file

I made repeated attempts to get in touch with EJRT on both Twitter and Linked In, and never received any reply. In fact when I started this I intended it to be EJRT 1.3, but with no response from him I released it as a separate entity. I still want to get in touch with him as, as I said on Twitter in most of my tweets at him, I really want to get him to take advantage of scripted palette changes (currently used only to fix the wall color in the queen room) to significantly increase the number of available colors. There's also better than 50% chance I will implement GBC double-VRAM mode allowing for double the number of tiles, and change the metatile system to support double the metatiles, which he could use to break up the monotony of certain areas like ruins.

While I knew of the existence of M2DX, I never played or looked at it at all. All of the code is original, as is like 90% of the reverse-engineering (I didn't discover MetConst until after EJRTQ 1.2 beta was released (see readme), if memory serves).

EDIT: Hey, if you want to chat I see you were at one time on gbdev Discord. I'm in the gbdev and MetConst Discords, though you may need to @ or PM me as I'm not currently actively following their channels.
« Last Edit: January 20, 2019, 11:55:52 pm by Quantam »

dACE

  • Sr. Member
  • ****
  • Posts: 353
    • View Profile
Re: Metroid II EJRTQ Colorization
« Reply #6 on: January 21, 2019, 03:25:47 am »
Have the palette for Samus, during the best ending (no suit), been updated?

/dACE

Quantam

  • Jr. Member
  • **
  • Posts: 21
    • View Profile
Re: Metroid II EJRTQ Colorization
« Reply #7 on: January 21, 2019, 03:53:38 am »
Have the palette for Samus, during the best ending (no suit), been updated?

/dACE

With one exception I've left the art decisions entirely unchanged, as my intent was to fix EJRT not make a derivative work. Though I have been wondering for a while whether that decision was a prank, a political statement, or merely that there wasn't a good palette to use (as EJRT uses a single set of palettes for the entire game). It's something I could fix now that there's a mechanism for screen-specific palettes, but at this time I'm not planning on changing it.

dACE

  • Sr. Member
  • ****
  • Posts: 353
    • View Profile
Re: Metroid II EJRTQ Colorization
« Reply #8 on: January 21, 2019, 09:22:32 am »
I just swapped it to another palette and cleaned up the gfx (stray pixels that looks out-of-place when colorized).

By the way - exactly HOW did you ’fix’ the short-comings of the original hack?

How I did it is explained in this thread:
http://www.romhacking.net/forum/index.php?topic=15989.msg358910#msg358910

/dACE

ShadowOne333

  • Hero Member
  • *****
  • Posts: 1221
    • View Profile
Re: Metroid II EJRTQ Colorization
« Reply #9 on: January 21, 2019, 10:20:49 am »
There is now no known graphical corruption, flicker during gameplay, or crashes. Other details can be found in the readme. The only remaining graphical things are the hidden blocks not being hidden (to be fixed) and when entering the queen room the screen flashes white for a couple frames (this is actually present in the original game but only occurs with GBC hardware, and I'm not planning to try to fix it).

EDIT: I actually never noticed the visor thing before, so I haven't fixed it.
Nice!
As for the visor thing, yeah it's easily overlooked.
But when you aim the arm cannon up or down, and Samus turns her head to said direction, you can clearly see that the visor changes colour to orange.
I think this might be related to tilemaps or something similar, I am not sure, but it happens when you aim both up and down.

Also, it's worth noting that there is a slight pixel below Samus' visor that is not coloured properly, it can be seen here:


I think that's the only issue I've encountered so far.
I'm loving this :D

Psyklax

  • Hero Member
  • *****
  • Posts: 1056
    • View Profile
    • Psyklax Translations
Re: Metroid II EJRTQ Colorization
« Reply #10 on: January 21, 2019, 10:49:03 am »
I have been wondering for a while whether that decision was a prank, a political statement, or merely that there wasn't a good palette to use

Now I want to see what EJRT did. :D

But anyway, it's good to see Metroid 2 getting a colour hack since OG Game Boy is the only way to play it (thanks, Nintendo...). Good luck with the process!

dACE

  • Sr. Member
  • ****
  • Posts: 353
    • View Profile
Re: Metroid II EJRTQ Colorization
« Reply #11 on: January 21, 2019, 11:16:15 am »
Brown skin-tone and blue (I think) hair.

The absurd hair-color gives it away as a "I never checked - since I never got the best ending",
rather than "I'm making a statement about race, or whatever".

EDIT: Just remembered Samus haircolor is supposed to be Green - so who knows.

But hey - people can set whatever palette they want to, as long as they have the skills/time.

/dACE
« Last Edit: January 21, 2019, 11:32:28 am by dACE »

Sephirous

  • Sr. Member
  • ****
  • Posts: 414
    • View Profile
Re: Metroid II EJRTQ Colorization
« Reply #12 on: January 21, 2019, 11:16:36 am »
I only have one question.

Do the transitions between areas actually fade correctly (Backgrounds don't glitch out) and does the queen battle run smooth without glitches?

Almost every color attempt has those annoying glitches, Always hoping there might be a fix someday.

If this already got asked my bad.  :thumbsup:

vivify93

  • Submission Reviewer
  • Hero Member
  • *****
  • Posts: 1084
  • Guardian of Mystery
    • View Profile
Re: Metroid II EJRTQ Colorization
« Reply #13 on: January 21, 2019, 01:32:56 pm »
It looks like it's all fixed! Quantam posted a video in the first post of the area leading up to the Queen battle, and everything looks great. https://www.youtube.com/watch?v=i2YVIQ88zeE
All my life I've tried to fight what history has given me.

Chicken Knife

  • Sr. Member
  • ****
  • Posts: 296
    • View Profile
Re: Metroid II EJRTQ Colorization
« Reply #14 on: January 21, 2019, 02:59:58 pm »
So I played a little bit of this. Overall I thought it looked great.

Two graphical nitpicks I wanted to highlight, besides what ShadowOne333 brought up about the pixel on Samus's face that appears the wrong color in some frames.

1st, the arm cannon has received a thorough redesign from the original game and IMO it looks off. Something about the coloration and that horizontal line down the middle doesn't work for me. I went back to the native graphics and saw that they are totally different for the cannon. I like the original better.

Also, the flying enemy--I think it's called a Yumbo. His entire body is blinking for some reason. The other enemies don't have that effect and he didn't blink in the original game.

Metalwario64

  • Jr. Member
  • **
  • Posts: 85
    • View Profile
Re: Metroid II EJRTQ Colorization
« Reply #15 on: January 21, 2019, 03:05:12 pm »
Brown skin-tone and blue (I think) hair.

The absurd hair-color gives it away as a "I never checked - since I never got the best ending",
rather than "I'm making a statement about race, or whatever".

EDIT: Just remembered Samus haircolor is supposed to be Green - so who knows.

But hey - people can set whatever palette they want to, as long as they have the skills/time.

/dACE
In the original NES game, Samus' hair is green with the Varia Suit, and brown without it.

Quantam

  • Jr. Member
  • **
  • Posts: 21
    • View Profile
Re: Metroid II EJRTQ Colorization
« Reply #16 on: January 21, 2019, 07:51:27 pm »
I just swapped it to another palette and cleaned up the gfx (stray pixels that looks out-of-place when colorized).

By the way - exactly HOW did you ’fix’ the short-comings of the original hack?

How I did it is explained in this thread:
http://www.romhacking.net/forum/index.php?topic=15989.msg358910#msg358910

/dACE
Both the graphics corruption and crashes came down to how he was doing the colorization. He was coloring the entire screen every frame in the interrupt handler, taking up to 10k cycles (if the screen was scrolling at the time). The time window for the interrupt is only 2k cycles, and after that VRAM becomes off limits and access will cause data loss or memory corruption. I moved the colorization code out of the interrupt handler and colored blocks in the update list (and in the interrupt handler made updates load color data as well), not the entire screen (reducing the work per frame from 1024 background tiles to 64). For convenience sprites are colored every frame, but that was moved outside the interrupt handler as there's a sprite memory buffer anyway and there are only 40 of them. Various additional things were done to implement fading, freezing, etc.

EDIT: After chatting with toruzz, it appears he had implemented the superior method I was planning to implement in the future. The above, where I color the tiles separately from loading the tile numbers from ROM, is one of several things I took an "if it ain't broke don't fix it" approach to, leaving data and algorithms from EJRT in place unless they needed to be changed to work properly (though all but a single EJRT function has been replaced with new code in EJRTQ). The superior method is to add color information to the metatile and metasprite tables themselves, rather than adding the coloring in a separate step later. This is the proper method and how Nintendo would have implemented it themselves if they'd actually produced a full color version; it will also allow modders to do more complex things in mods based on EJRTQ, which is the reason I'm going to implement this in the future.

January 21, 2019, 10:00:11 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
1st, the arm cannon has received a thorough redesign from the original game and IMO it looks off. Something about the coloration and that horizontal line down the middle doesn't work for me. I went back to the native graphics and saw that they are totally different for the cannon. I like the original better.

Also, the flying enemy--I think it's called a Yumbo. His entire body is blinking for some reason. The other enemies don't have that effect and he didn't blink in the original game.

Huuh. I never noticed the arm cannon thing, nor that, while testing it, I also noticed that the cannon looks different before you first switch to missiles and all other times during the game. It appears the horizontal line thing is due to the differing ways the GB and GBC prioritize overlapping sprites. There is actually no difference whatsoever in the sprites between the two (as can be seen when facing to the left), but in GBC the cannon is drawn on top of the tile to its lower left when facing to the right, resulting in a few more pixels of the cannon being visible than in the GB (in GB the cannon is behind the lower left tile). I'll add it to the list and see if I can fix it by reordering the sprites.

As for the Yumbo, my assumption is that that was intended by EJRT, so I have not changed it. In general I don't modify things that seem like graphic design decisions.
« Last Edit: January 21, 2019, 10:00:11 pm by Quantam »

cjv84us

  • Newbie
  • *
  • Posts: 2
    • View Profile
Re: Metroid II EJRTQ Colorization
« Reply #17 on: January 21, 2019, 10:10:07 pm »
I was wondering, could this coloring edit be applied to the Justin Bailey hack of this game too?

Quantam

  • Jr. Member
  • **
  • Posts: 21
    • View Profile
Re: Metroid II EJRTQ Colorization
« Reply #18 on: January 21, 2019, 10:23:01 pm »
I was wondering, could this coloring edit be applied to the Justin Bailey hack of this game too?
It could, though it's not quite that simple. The key limitation is the palettes. With GBC you get 8 sprite palettes of 3 colors each, and each 8x8 tile uses one of them. So you'd have to set up palettes for the new coloring and possibly change the colors of other enemies if there aren't suitable palettes for a suitless Samus.

That said, I'm not sure why you'd want to. I just looked it up and Justin Bailey's Samus sprite is downright scary looking.

ShadowOne333

  • Hero Member
  • *****
  • Posts: 1221
    • View Profile
Re: Metroid II EJRTQ Colorization
« Reply #19 on: January 23, 2019, 04:37:22 pm »
Forgive my boldness and intrusiveness, but I was wondering if you are perhaps aiming towards releasing this hack as an entry in here?
And if you are, what goals or things do you want to include before doing so?
I'm curious to see what ideas you guys have for this incredible colorization hack.

I, for instance, would like to see the fixed pixels for Samus' visor when she looks up/down, and I would personally want to go through the game and perhaps change the colours of some enemies to match the colours found in Samus Returns. Like for example the Hornoad's color scheme is slightly off with the official artwork and depiction of it in Samus Returns:



(For this particular enemy, all I did was fire up a Tile Editor, and paint his dark green portion of the underbelly with the light green from part of his legs, and that made it look really close to the original artwork)

Small things like that, but that's of almost no-importance, whatever it is that you guys have planned I'm sure will be great :)
« Last Edit: January 23, 2019, 04:42:53 pm by ShadowOne333 »