Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - What's Up With Rainbow Islands?

Reply to topic
Author Message
  • Joined: 02 Jan 2005
  • Posts: 667
Reply with quote
What's Up With Rainbow Islands?
Post Posted: Fri Jun 03, 2005 4:31 am
What's up with Rainbow Islands? I played through level 7, got the bad ending because I didn't have the diamonds, did the level select code at the title screen, and chose Stage 8 for the heck of it. After completing that, I got what I presumed to be another bad ending since I still didn't have the diamonds. After something is mentioned about not being able to see the diamond rod, the screen glitches up and the game resets. Would this happen if I had all the diamonds? Is this glitch a reason why some don't like the SMS version?
  View user's profile Send private message Visit poster's website
  • Joined: 16 Dec 2004
  • Posts: 495
  • Location: El Cerrito, CA
Reply with quote
Post Posted: Fri Jun 03, 2005 4:09 pm
I used the level select to jump to the final boss battle, beat it, and saw the good ending.
This was on my US SMS1. I've never heard of any glitches in the game before.
  View user's profile Send private message Visit poster's website
  • Joined: 02 Jan 2005
  • Posts: 667
Reply with quote
Post Posted: Fri Jun 03, 2005 7:45 pm
Perhaps it was a rom or emulator problem (I was playing it on my Dreamcast), but it didn't seem like it.
  View user's profile Send private message Visit poster's website
  • Joined: 03 Apr 2001
  • Posts: 601
  • Location: Asturias
Reply with quote
Post Posted: Sat Mar 07, 2015 2:03 am
Okay, what is up with Rainbow Islands?

I've just gone through the whole game and finished it with all the diamonds and crystal balls on a real Japanese Mega Drive, and the ending glitched up just like in this video:

GRRR... >=(



<=(
  View user's profile Send private message Visit poster's website
  • Joined: 08 Dec 2005
  • Posts: 488
  • Location: Melbourne, Australia
Reply with quote
Post Posted: Sat Mar 07, 2015 1:15 pm
Put simply, the European release of Rainbow Islands contains a bug.

At $7329, the game uses "push ix; pop ix" as a delay between two VDP accesses. It tries to do the same again at $7331, but instead has "push ix; push ix". Needless to say, this is causes problems - if not at the next stack access (a "ret" instruction), then later on.

This bug is fixed in the Brazilian release.


P.S. I notice that meka.nam* describes the Brazilian version as "an earlier build than the European version". Given that it contains the above bug fix, I believe the Brazilian version is in fact the later of the two builds.

* https://github.com/svn2github/meka states that it is "not updated anymore". It looks like the owner of svn2github would be willing to resume updates if requested.

Admin: link now goes to official Meka repository.
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8644
  • Location: Paris, France
Reply with quote
Post Posted: Sat Mar 07, 2015 1:20 pm
Paul Baker wrote
P.S. I notice that meka.nam* describes the Brazilian version as "an earlier build than the European version". Given that it contains the above bug fix, I believe the Brazilian version is in fact the later of the two builds.


Very good point. I think it would be worth investigation some of the other Brasilian variations. I don't remember the reasoning that led me to label Rainbow Island in this order. I recall the title screen is different too.

I will move Meka to github.
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8644
  • Location: Paris, France
Reply with quote
Post Posted: Sat Mar 07, 2015 3:36 pm
Meka has been moved to github
https://github.com/ocornut/meka
  View user's profile Send private message Visit poster's website
  • Joined: 03 Apr 2001
  • Posts: 601
  • Location: Asturias
Reply with quote
Post Posted: Sat Mar 07, 2015 7:55 pm
Man, I can't believe they released this game with a bug in the ending...

I guess not many people cared about this particular release back in the day, since I hadn't seen this mentioned anywhere.
  View user's profile Send private message Visit poster's website
  • Joined: 03 Apr 2001
  • Posts: 601
  • Location: Asturias
Reply with quote
Post Posted: Sun Mar 08, 2015 2:12 am
I've just 100%-ed the Brazilian version and I can confirm that the good ending works on real hardware...
  View user's profile Send private message Visit poster's website
  • Joined: 08 Dec 2005
  • Posts: 488
  • Location: Melbourne, Australia
Reply with quote
Post Posted: Sun Mar 08, 2015 12:35 pm
ICEknight wrote
Man, I can't believe they released this game with a bug in the ending...

I guess not many people cared about this particular release back in the day, since I hadn't seen this mentioned anywhere.

It seems that the bug in the European version was probably missed during testing (and not mentioned by players back in the day) because it does not cause significant problems on a European Master System with a BIOS. You were affected by the bug because you were using a Mega Drive, and CRV was affected because he/she was using an emulator.

In detail:

Paul Baker wrote
At $7329, the game uses "push ix; pop ix" as a delay between two VDP accesses. It tries to do the same again at $7331, but instead has "push ix; push ix". Needless to say, this is causes problems - if not at the next stack access (a "ret" instruction), then later on.

The buggy code runs between screens of both the good and bad endings, immediately after detecting that the button has been pressed. It is also used elsewhere, such as during the cut-scene between worlds 7 and 8.

During the endings, it seems the code runs with the "ix" register consistently containing the value $df60, so the "ret" instruction causes a control transfer to that address. What happens next depends on the contents of RAM.

The RAM at $df60 - $df8f seems to consistently contain zero bytes ("nop"s), so execution continues to $df90. Interestingly, $df90 - $dffb never seems to be written to by the game, so contains whatever it did when the game started:

  • In MEKA (with Region = Japan), $df90 contains $f0 ("ret p"). This return is always taken, so the bug has almost no effect. The endings run correctly.

  • On a system with a BIOS, $df90 - $dffb will have been zeroed, and execution will continue through $e000. Although this area does not contain genuine code, it seems that a return instruction is coincidentally hit before any damage is done. Again, the endings run correctly.

  • On a system without a BIOS, including a Mega Drive, Game Gear and most emulators, the contents of $df90 - $dffb will essentially be random - many possibilities could cause the game to glitch and likely reset.
  View user's profile Send private message Visit poster's website
  • Joined: 08 Dec 2005
  • Posts: 488
  • Location: Melbourne, Australia
Reply with quote
Post Posted: Sun Mar 08, 2015 12:37 pm
Bock wrote
I recall the title screen is different too.

The copyright text at the bottom of the title screen differs between the two versions:

European:
© SEGA 1993

  LICENSED BY TAITO CORP

Brazilian:
© TAITO CORPORATION 1993

  ALL RIGHTS RESERVED

Comparing the ROMs, a similar change was made to copyright text in one other location. Perhaps the copyright strings also appear as part of the credits?

Does anybody know how to view the credits in this game?
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8644
  • Location: Paris, France
Reply with quote
Post Posted: Sun Mar 08, 2015 1:49 pm
Amazing find.

My reasoning for the old versionning order was:
- Bubble Bobble, Chase H.Q. and Rastan all have a Taito logo on the front and have copyright by Taito on the cover.
- Rainbow Islands doesn't, it appears to have been published by Sega. Back of the inlay says "(c) 1993 Sega".

So my intuition is that the game was developed with the intent of being published by Taito, with a Taito copyright. Then it was sold / published to Sega and they changed the copyright. Based on this I had labelled the European version as [v1].
  View user's profile Send private message Visit poster's website
  • Joined: 03 Apr 2001
  • Posts: 601
  • Location: Asturias
Reply with quote
Post Posted: Sun Mar 08, 2015 6:32 pm
My guess is that both versions come from one same buggy Taito build, which SEGA altered for their European distribution to include their copyright and Tectoy altered for their Brazilian release to fix the bug but not changing anything else.

I mean, everything else is exactly the same, isn't it?
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14681
  • Location: London
Reply with quote
Post Posted: Sun Mar 08, 2015 8:14 pm
I really doubt TecToy had the technical ability and attention to detail to fix that. More likely a fix was found for the bug, but the export release never had a second production run worth making the change for.
  View user's profile Send private message Visit poster's website
  • Joined: 08 Nov 2014
  • Posts: 92
Reply with quote
Post Posted: Mon Mar 09, 2015 3:32 pm
[quote="Paul Baker"]
ICEknight wrote

[*]On a system with a BIOS, $df90 - $dffb will have been zeroed, and execution will continue through $e000. Although this area does not contain genuine code, it seems that a return instruction is coincidentally hit before any damage is done. Again, the endings run correctly.


Jammy Bastards! ;)
  View user's profile Send private message
  • Joined: 06 Apr 2009
  • Posts: 207
Reply with quote
Post Posted: Mon Mar 09, 2015 3:39 pm
So in other words, the only people that have ever had a problem with this game are those who are doing so in an emulator or with a converter. The lesson seems simple to me, use real hardware!
  View user's profile Send private message
  • Joined: 05 Jun 2010
  • Posts: 757
  • Location: Pennsylvania, USA
Reply with quote
Post Posted: Mon Mar 09, 2015 4:15 pm
Maxim wrote
I really doubt TecToy had the technical ability and attention to detail to fix that. More likely a fix was found for the bug, but the export release never had a second production run worth making the change for.


Well, they did make some buggy unique titles. It's hard to say for sure.
  View user's profile Send private message Visit poster's website
  • Joined: 03 Apr 2001
  • Posts: 601
  • Location: Asturias
Reply with quote
Post Posted: Wed Mar 11, 2015 1:22 am
Logbomber wrote
So in other words, the only people that have ever had a problem with this game are those who are doing so in an emulator or with a converter. The lesson seems simple to me, use real hardware!
The Mega Drive is supposed to be backwards compatible. And it's real hardware. =P
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8644
  • Location: Paris, France
Reply with quote
Post Posted: Wed Mar 11, 2015 9:44 am
We wouldn't learn those things if people weren't using different platforms to run the game.

Paul you suggest that "most emulators" would leave the RAM randomly initialised but I would expect that to be very unlikely. In fact I would be surprised if ANY emulator would leave RAM uncleared.
  View user's profile Send private message Visit poster's website
  • Joined: 08 Dec 2005
  • Posts: 488
  • Location: Melbourne, Australia
Reply with quote
Post Posted: Fri Mar 27, 2015 12:22 pm
tripledonkey wrote
Paul Baker wrote

[*]On a system with a BIOS, $df90 - $dffb will have been zeroed, and execution will continue through $e000. Although this area does not contain genuine code, it seems that a return instruction is coincidentally hit before any damage is done. Again, the endings run correctly.

Jammy Bastards! ;)

Actually, I believe the developers were quite unlucky here. This bug could easily have been catastrophic, but its presence would then have been obvious and it would surely have been found and fixed before the game was released.

Bock wrote
Paul you suggest that "most emulators" would leave the RAM randomly initialised but I would expect that to be very unlikely. In fact I would be surprised if ANY emulator would leave RAM uncleared.

My assumption was that primitive emulators might "forget" to clear the RAM, and advanced ones might deliberately randomise its contents in search of accuracy. You are probably right, however.

In any case, I have found out that the latest version of Kega Fusion does clear the RAM, and I have been able to get Rainbow Islands to glitch using it. Perhaps then it is not true that the bug "does not cause significant problems on a European Master System with a BIOS", only that it is less likely to cause significant problems on these systems?

Would anyone like to see whether they can get the European version of Rainbow Islands to glitch on a real (unmodified) Master System?
  View user's profile Send private message Visit poster's website
  • Joined: 01 Aug 2015
  • Posts: 8
  • Location: Warwickshire, UK
Reply with quote
Post Posted: Sat Aug 01, 2015 12:31 am
Paul Baker wrote

Would anyone like to see whether they can get the European version of Rainbow Islands to glitch on a real (unmodified) Master System?


I recently got the European version of Rainbow Islands for my SMS2 and I got a game crash on the bad ending (Missing only 1 Gem) however I have modified my system to add a RCA AV connection and a 50/60htz switch.

As I am a new member seems I am not allowed to post the image or links quite yet but apparently I can add an attachment?
IMG_7588t.jpg (45.69 KB)
IMG_7588t.jpg

  View user's profile Send private message Visit poster's website
  • Joined: 03 Apr 2001
  • Posts: 601
  • Location: Asturias
Reply with quote
Post Posted: Wed Aug 05, 2015 2:03 pm
Wait... Did the screen stay like that instead of resetting?

Thanks for testing it!
  View user's profile Send private message Visit poster's website
  • Joined: 01 Aug 2015
  • Posts: 8
  • Location: Warwickshire, UK
Reply with quote
Post Posted: Thu Aug 06, 2015 1:01 am
Yeah the game just froze and did not reset at all.

Been meaning to go through it again as I was rather miffed that I missed only one single letter for the final gem purely because it never dropped, thus resulting in the bad end.

Will report back when I do but might be a while.
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14681
  • Location: London
Reply with quote
Post Posted: Thu Aug 06, 2015 11:17 am
The RAM that gets executed could easily form a loop, to hang the game. Resetting is actually fairly unlikely, it would require the game to either execute all the way past the top of RAM or happen to jump to a location near the start.
  View user's profile Send private message Visit poster's website
  • Joined: 03 Apr 2001
  • Posts: 601
  • Location: Asturias
Reply with quote
Post Posted: Wed Aug 12, 2015 9:36 pm
Maxim wrote
The RAM that gets executed could easily form a loop, to hang the game. Resetting is actually fairly unlikely, it would require the game to either execute all the way past the top of RAM or happen to jump to a location near the start.

Well, it's happened to 2 out of 3 by now.,,
ICEknight wrote
I've just gone through the whole game and finished it with all the diamonds and crystal balls on a real Japanese Mega Drive, and the ending glitched up just like in this video:
  View user's profile Send private message Visit poster's website
  • Joined: 13 Nov 2017
  • Posts: 1
Reply with quote
Post Posted: Thu Nov 16, 2017 11:24 pm
I know it's already been a long time since the last post in this thread, but I have the actual hardware of rainbow islands and the master system and i run into the same problem described here. The game just glitches out and I couldn't finish it.

So I tried playing on an emulator recently and got the same problem as expected, as such I patched the bug and now it's working correctly. If anyone is interested I uploaded the fixed rom as an attachment.

Furthermore if you have the hardware version and also have a game genie you can use this code: E13-348-7FD to fix the same bug.

Feel free to contact me if you have any questions.
Rainbow Islands (E) (Fix).zip (97.17 KB)
Rainbow Islands (E) (Fix) [SMS]

  View user's profile Send private message
  • Joined: 05 Jan 2018
  • Posts: 1
Reply with quote
Post Posted: Fri Jan 05, 2018 11:24 am
This has bothered me for over 20 years. When I was a kid, we couldn't complete this game because of this bug, and assumed we were doing something wrong.

My memory is vague now, but I recall the manual saying that if you collected all 7 diamonds, you'd reach a final level. But the game would just reset after the dialogue scene, as per this thread.

I can confirm that this was on an unmodified SMS 2.
  View user's profile Send private message
  • Joined: 30 Mar 2020
  • Posts: 6
Reply with quote
Post Posted: Mon Mar 30, 2020 4:23 pm
Hi everyone!

Pitifully, I suffered the same glitch when I was a child. I still have nightmares about that. LOL

I'm from Spain and I had a Sega Master System 2.

In my case, I tried to access to level 8 with all the diamonds SEVERAL times and the only thing I got it was a freeze screen just after push the button in order to pass the text.

It was VERY fustrating, finally, I gave up.

But, at last, 27 years after, I don't feel alone.

PS: Sorry for my bad English.
  View user's profile Send private message
Reply to topic



Back to the top of this page

Back to SMS Power!