If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
This article has a talk page!

Magic Knight Rayearth (Sega Saturn)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Magic Knight Rayearth

Developer: Sega
Publishers: Sega (JP), Working Designs (US)
Platform: Sega Saturn
Released in JP: August 25, 1995
Released in US: November 30, 1998


DebugIcon.png This game has debugging material.
RegionIcon.png This game has regional differences.


ProtoIcon.png This game has a prototype article

One of a surprisingly large number of video game adaptations of CLAMP's successful effort to combine the magical girl and giant robot genres, the Saturn Magic Knight Rayearth is an action RPG that's unusually high budget and solidly produced for a licensed title. Join everyone's favorite Magic Knights on their quest to inspect every kitchen in Cefiro!

The English version, which came over three years after the Japanese version's release, was the last Saturn game to be released in North America.

Sub-Page

Read about prototype versions of this game that have been released or dumped.
Prototype Info

Debug Leftovers

Hmmm...
To do:
Check for code referencing these.
ROUND
CINEPACK
SOUND AREA
SOUND BANK
SOUND SONG
0123456789ABCDEF
EVENT CHK
VOICE
CDAD
SOUND STOP
nakamura
* INITMENU

These strings for what seems to be a debug menu appear around 0xA56E8 (US version) in 0, the main code/data file.

Regional Differences

Forgive us, we tried.

(Source: "Magic Knight Rayearth" US manual, Page 18)

Short version: Working Designs.

Long version: Working Designs rather infamously took two-and-a-half years to actually produce the US version of the game after licensing it, due at least in part to Sega losing some of the source code in a hard drive crash. Never fear, though - nothing could stop Working Designs from cranking up a game's difficulty!

General

  • As with all Working Designs releases, the script was rewritten. This game is noticeably more restrained with its changes than some, with relatively few injected "jokes", but there are still many, many cases of dialogue being arbitrarily altered or added. For example, an instance of Umi simply exclaiming "Alcione!" in the Japanese version was turned into "This evil suits you well! I'm not surprised you would use children to further your agenda!" in the US version.
  • In the Japanese version, almost all dialogue by characters that have a portrait is voiced. The US version cuts out all of it except for the intro, FMVs, and a handful of lines from the villains. The manual attempts to spin this as a feature ("It slowed down the flow of the game").
  • Supposedly as a replacement for the missing voice acting, the US version adds optional voice-overs for the game's diary entries. While the manual claims this was done using disc space "reclaimed" from the dialogue voice-overs, all the Japanese lines that weren't dubbed are still present on the US disc unaltered.
  • A few portraits have extra animation that was removed in the US version, probably due to a combination of difficulty generating lip flaps and the fact that these animations are very rarely used (e.g. Hikaru has an arm-raising animation that's used exactly once, during the intro sequence).
  • There are a handful of instances where one character's portrait was swapped for another for no apparent reason, such as in the dialogue shown the first time the "island" in Lekuido is moved (where Hikaru's "shocked" portrait is switched with Umi's).
  • FMVs are unskippable in the Japanese version, but can be skipped with Start in the US version.
  • The US version increases the number of save slots from three to six and adds the ability to save using the Back-Up RAM Cartridge.
  • What the manual describes as "sprite consolidation and reduction" was performed in the US version to reduce lag. The exact changes made aren't clear.
  • An option to listen to voice acting outtakes was added as an additional reward for collecting all the Rainbow Amulets.
  • Working Designs wasn't willing to shell out the bucks to license the Japanese opening theme, "Yuzurenai Negai", so it was replaced with an original composition.
  • An alternate version of the new opening theme was added and made unlockable via a button code. From the Saturn bootup menu accessed by turning on the console and holding A, select "Start Application", press Start, then hold X + B + Z + L + R until the intro begins.
(Source: GameFAQs)
  • For some reason, the ending cutscene was re-encoded (or perhaps re-sourced from VHS?) in the US release - the video quality is significantly degraded from the Japanese version. The visual content doesn't seem to have changed, so it's not clear why this was done.

Enemies

Apparently, the two-and-a-half years Working Designs spent putting together the US version weren't for nothing, as this game contains some of the company's most elaborate and involved difficulty changes. Not only do nearly all the enemies do more damage, they've actually been sped up, making them extremely fast and aggressive. The above comparison video demonstrates selected changes - since nearly every enemy in the game was altered in this way, a comprehensive video would be far longer.

(One can't help but wonder how much sooner the game might have been ready without these changes, especially if they had to be hacked into the game using 1996 technology.)

The following sections list the exact changes made.

Stats

First, these changes stem from alterations to constants embedded directly in code stored in various OLXX.BIN files. The "Attack" value is simply the amount of damage the attack does per hit. Offsets are for the US version.

Offset Name Attack Offset Name Attack Offset Name Attack
OL05.BIN

0x2572

Caldina Fight 1 Projectile 1
1 -> 3
(+2)
OL05.BIN

0x2A8E

Caldina Fight 1 Projectile 2
1 -> 2
(+1)
OL09.BIN

0x1C0E

Caldina Fight 3 Fan
1 -> 2
(+1)
OL14.BIN

0x884

Rafargar Body
1 -> 2
(+1)
OL14.BIN

0x5de

Rafargar Standing Swing
3 -> 4
(+1)
OL14.BIN

0x190E

Rafargar Sliding Swing (1)
3 -> 4
(+1)
OL14.BIN

0x19BA

Rafargar Sliding Swing (2)
3 -> 4
(+1)
OL14.BIN

0x1090

Rafargar Projectiles
3 -> 4
(+1)
OL13.BIN

0xB4F6

Zagat Electric Balls
3 -> 6
(+3)
OL13.BIN

0xBDDE

Zagat Fireballs
5 -> 10
(+5)
OL13.BIN

0x2C16

Zagat Machine Body
1 -> 2
(+1)
OL13.BIN

0x3316

Zagat Machine Sword
4 -> 8
(+1)
OL13.BIN

0x4B1A

Zagat Machine Minions
2 -> 4
(+2)
OL13.BIN

0x586E

Final Boss Left Horn
3 -> 12
(+9)
OL13.BIN

0x5926

Final Boss Right Horn
3 -> 12
(+9)
OL13.BIN

0x5a06

Final Boss Head
3 -> 12
(+9)
OL13.BIN

0x5fa2

Final Boss Laser
3 -> 12
(+9)
OL13.BIN

0x622E

Final Boss Star 1
2 -> 8
(+6)
OL13.BIN

0x629A

Final Boss Star 2
2 -> 8
(+6)
OL13.BIN

0x7278

Final Boss Electric Beams
2 -> 8
(+6)
OL13.BIN

0x7D00

Final Boss Spread Attack
3 -> 12
(+9)
OL13.BIN

0x60e4

Final Boss Orb 1
3 -> 12
(+9)
OL13.BIN

0x6142

Final Boss Orb 2
3 -> 12
(+9)
OL13.BIN

0x7972

Final Boss Small Projectiles
1 -> 4
(+3)

The remainder of these entries are stored in a table at the specified offsets in 0, the game's main code/data file.

In addition to Attack, there is a second statistic associated with each object that was occasionally changed. Its effect isn't currently known, but it's listed here for completeness.

Hmmm...
To do:
Enemy names.
Offsets Attack ? Offsets Attack ? Offsets Attack ? Offsets Attack ?
JP: 0x67888

US: 0x68A04

1 -> 2
(+1)
1
JP: 0x67C90

US: 0x68E0C

1 -> 3
(+2)
6
JP: 0x67D08

US: 0x68E84

1 -> 5
(+4)
8
JP: 0x67E10

US: 0x68F8C

1 -> 3
(+2)
1
JP: 0x683F8

US: 0x69574

1 -> 4
(+3)
100
JP: 0x68440

US: 0x695BC

1 -> 3
(+2)
3
JP: 0x693B8

US: 0x6A534

3 -> 4
(+1)
20 -> 15
(-5)
JP: 0x693D0

US: 0x6A54C

1 -> 4
(+3)
9 -> 10
(+1)
JP: 0x693E8

US: 0x6A564

1 -> 3
(+2)
6
JP: 0x69400

US: 0x6A57C

1 -> 3
(+2)
1
JP: 0x69418

US: 0x6A594

1 -> 3
(+2)
1
JP: 0x69430

US: 0x6A5AC

1 -> 3
(+2)
1
JP: 0x69448

US: 0x6A5C4

3 -> 4
(+1)
30 -> 23
(-7)
JP: 0x69478

US: 0x6A5F4

1 -> 3
(+2)
2
JP: 0x69508

US: 0x6A684

2 -> 4
(+2)
10 -> 12
(+2)
JP: 0x695E0

US: 0x6A75C

1 -> 2
(+1)
60 -> 45
(-15)
JP: 0x695F8

US: 0x6A774

1 -> 5
(+4)
79 -> 60
(-19)
JP: 0x69610

US: 0x6A78C

1 -> 8
(+7)
44 -> 22
(-22)
JP: 0x69628

US: 0x6A7A4

1 -> 5
(+4)
32 -> 11
(-21)
JP: 0x69640

US: 0x6A7BC

2 -> 10
(+8)
103 -> 78
(-25)
JP: 0x69658

US: 0x6A7D4

1 -> 2
(+1)
0
JP: 0x69670

US: 0x6A7EC

1 -> 2
(+1)
0
JP: 0x696A0

US: 0x6A81C

2 -> 3
(+1)
123 -> 93
(-30)
JP: 0x696B8

US: 0x6A834

1 -> 12
(+11)
100 -> 79
(-21)
JP: 0x696E8

US: 0x6A864

1 -> 8
(+7)
55 -> 30
(-25)
JP: 0x69700

US: 0x6A87C

1 -> 3
(+2)
120 -> 96
(-24)
JP: 0x69718

US: 0x6A894

1 -> 2
(+1)
20 -> 15
(-5)
JP: 0x69730

US: 0x6A8AC

1 -> 5
(+4)
57 -> 34
(-23)
JP: 0x69778

US: 0x6A8F4

1 -> 9
(+8)
10 -> 18
(+8)
JP: 0x698F8

US: 0x6AA74

2 -> 5
(+3)
7
JP: 0x69910

US: 0x6AA8C

1 -> 3
(+2)
1 -> 3
(+2)
JP: 0x69BE0

US: 0x6AD5C

2 -> 4
(+2)
12
JP: 0x6BB48

US: 0x6CCC4

2 -> 3
(+1)
255 -> 191
(-64)
JP: 0x6BB60

US: 0x6CCDC

2 -> 5
(+3)
40 -> 31
(-9)
JP: 0x6BB90

US: 0x6CD0C

4 -> 8
(+4)
4 -> 8
(+4)
JP: 0x6BBA8

US: 0x6CD24

2 -> 6
(+4)
127 -> 95
(-32)
JP: 0x6BC68

US: 0x6CDE4

1 -> 3
(+2)
127 -> 95
(-32)
JP: 0x6BC80

US: 0x6CDFC

1 -> 3
(+2)
127 -> 95
(-32)
JP: 0x6BC98

US: 0x6CE14

1 -> 4
(+3)
127 -> 95
(-32)
JP: 0x6BCB0

US: 0x6CE2C

1 -> 4
(+3)
127 -> 95
(-32)
JP: 0x6BCC8

US: 0x6CE44

1 -> 4
(+3)
127 -> 95
(-32)

Additionally, one object had a number of other unknown parameters changed:

Offsets Attack ? ? ? ? ? ?
JP: 0x69778

US: 0x6A8F4

1 -> 9
(+8)
10 -> 18
(+8)
1 -> 3
(+2)
1 -> 2
(+1)
1 -> 0
(-1)
1 -> 2
(+1)
17 -> 16
(-1)

Speed

The values given here are approximated from the game's native representation of speed (fixed-point pixel/subpixel, with 16 bits of precision for each). An offset of N/A for the Japanese version indicates a new constant was introduced in the US version (due to the quirky nature of constants in the SH-2 CPU architecture).

Note that apart from the changes listed, the fireballs in Bewildering Cave had their speed doubled (by multiplying it in code, hence their exclusion from the tables below).

0
Offsets Speed Offsets Speed Offsets Speed Offsets Speed Offsets Speed
JP: 0x3AC00

US: 0x3EF4C

0.50 -> 1.05
+0.55, ×2.10
JP: 0x3AE0C

US: 0x3F158

0.50 -> 1.05
+0.55, ×2.10
JP: 0x3B268

US: 0x3F5B4

1.60 -> 2.40
+0.80, ×1.50
JP: 0x3B5A4

US: 0x3F8F0

1.60 -> 2.40
+0.80, ×1.50
JP: 0x3B8E8

US: 0x3FC34

0.80 -> 1.20
+0.40, ×1.50
JP: 0x3B8F0

US: 0x3FC3C

1.60 -> 2.40
+0.80, ×1.50
JP: 0x3BA40

US: 0x3FD8C

1.60 -> 2.40
+0.80, ×1.50
JP: 0x3BC3C

US: 0x3FF88

1.60 -> 2.40
+0.80, ×1.50
JP: 0x3BD44

US: 0x40090

1.60 -> 2.40
+0.80, ×1.50
JP: 0x3BE70

US: 0x401BC

1.60 -> 2.40
+0.80, ×1.50
JP: 0x3C02C

US: 0x40378

1.60 -> 2.40
+0.80, ×1.50
JP: 0x3C3F8

US: 0x40744

1.60 -> 4.80
+3.20, ×3.00
JP: 0x3C7E8

US: 0x40B34

0.80 -> 2.40
+1.60, ×3.00
JP: 0x3C7F4

US: 0x40B40

1.60 -> 4.80
+3.20, ×3.00
JP: 0x3D054

US: 0x413A0

2.00 -> 6.00
+4.00, ×3.00
JP: 0x40698

US: 0x449EC

1.00 -> 1.12
+0.12, ×1.12
JP: 0x407B8

US: 0x44B0C

1.00 -> 1.12
+0.12, ×1.12
JP: 0x41558

US: 0x458AC

1.00 -> 2.25
+1.25, ×2.25
JP: 0x420C0

US: 0x46414

1.50 -> 2.25
+0.75, ×1.50
JP: 0x422D8

US: 0x4662C

1.50 -> 2.25
+0.75, ×1.50
JP: 0x4293C

US: 0x46C90

0.50 -> 0.75
+0.25, ×1.50
JP: 0x42AF4

US: 0x46E48

0.50 -> 0.75
+0.25, ×1.50
JP: 0x42F20

US: 0x47278

0.50 -> 0.75
+0.25, ×1.50
JP: 0x431C0

US: 0x47518

2.00 -> 3.00
+1.00, ×1.50
JP: 0x43648

US: 0x479A0

3.00 -> 4.50
+1.50, ×1.50
JP: 0x43650

US: 0x479A8

2.50 -> 3.75
+1.25, ×1.50
JP: 0x43658

US: 0x479B0

2.00 -> 3.00
+1.00, ×1.50
JP: 0x43DE0

US: 0x48138

1.50 -> 2.25
+0.75, ×1.50
JP: 0x46488

US: 0x4A7E0

3.00 -> 4.50
+1.50, ×1.50
JP: 0x46690

US: 0x4A9E8

3.00 -> 4.50
+1.50, ×1.50
JP: 0x467D4

US: 0x4AB2C

3.00 -> 4.50
+1.50, ×1.50
JP: 0x46B90

US: 0x4AEE8

1.00 -> 3.00
+2.00, ×3.00
JP: 0x46CBC

US: 0x4B014

1.00 -> 3.00
+2.00, ×3.00
JP: 0x46E80

US: 0x4B1D8

0.50 -> 1.12
+0.62, ×2.25
JP: 0x47314

US: 0x4B66C

1.00 -> 3.00
+2.00, ×3.00
JP: 0x473EC

US: 0x4B744

1.00 -> 3.00
+2.00, ×3.00
JP: 0x47510

US: 0x4B868

1.00 -> 3.00
+2.00, ×3.00
JP: 0x47628

US: 0x4B980

4.00 -> 6.00
+2.00, ×1.50
JP: 0x47CBC

US: 0x4C014

1.60 -> 2.40
+0.80, ×1.50
JP: 0x47CC4

US: 0x4C01C

0.80 -> 1.20
+0.40, ×1.50
JP: 0x48154

US: 0x4C4AC

3.00 -> 4.50
+1.50, ×1.50
JP: 0x48248

US: 0x4C5A0

1.00 -> 1.50
+0.50, ×1.50
JP: 0x48EB0

US: 0x4D208

0.60 -> 0.90
+0.30, ×1.50
JP: 0x4A370

US: 0x4E6F4

0.80 -> 1.60
+0.80, ×2.00
JP: N/A

US: 0x4E6EC

1.00 -> 2.00
+1.00, ×2.00
JP: 0x48DFC

US: 0x4D154

0.30 -> 0.45
+0.15, ×1.50
JP: 0x3E00C

US: 0x4235C

0.01 -> 0.02
+0.01, ×2.00
JP: 0x3E13A

US: 0x4248E

0.02 -> 0.03
+0.02, ×2.00
OL05.BIN
Offsets Speed Offsets Speed Offsets Speed Offsets Speed Offsets Speed
JP: 0x688

US: 0x688

3.00 -> 4.50
+1.50, ×1.50
JP: 0xB24

US: 0xB24

1.80 -> 2.70
+0.90, ×1.50
JP: 0xB2C

US: 0xB2C

1.00 -> 1.50
+0.50, ×1.50
JP: 0xC24

US: 0xC24

1.80 -> 2.70
+0.90, ×1.50
JP: 0xC30

US: 0xC30

1.00 -> 1.50
+0.50, ×1.50
JP: 0xC34

US: 0xC34

3.00 -> 4.50
+1.50, ×1.50
JP: 0x3A44

US: 0x3A4C

1.00 -> 1.50
+0.50, ×1.50
JP: 0x3A48

US: 0x3A50

2.00 -> 3.00
+1.00, ×1.50
JP: 0x4064

US: 0x406C

1.00 -> 1.50
+0.50, ×1.50
JP: 0x4068

US: 0x4070

2.00 -> 3.00
+1.00, ×1.50
JP: 0x6A4

US: 0x6A4

-1.00 -> -2.50
-1.50, ×2.50
JP: 0x405C

US: 0x4064

-2.00 -> -3.00
-1.00, ×1.50
JP: 0x4060

US: 0x4068

-3.00 -> -5.50
-2.50, ×1.83
OL07.BIN
Offsets Speed Offsets Speed Offsets Speed Offsets Speed Offsets Speed
JP: 0x40C

US: 0x40C

1.00 -> 2.25
+1.25, ×2.25
JP: 0xCC0

US: 0xCC0

4.00 -> 9.00
+5.00, ×2.25
JP: 0x1044

US: 0x1044

1.00 -> 2.25
+1.25, ×2.25
JP: 0x166C

US: 0x166C

4.00 -> 9.00
+5.00, ×2.25
JP: 0x1A3C

US: 0x1A3C

2.00 -> 3.00
+1.00, ×1.50
JP: 0x1B9C

US: 0x1B9C

2.00 -> 3.00
+1.00, ×1.50
JP: 0x1BA4

US: 0x1BA4

4.00 -> 6.00
+2.00, ×1.50
JP: 0x1CEC

US: 0x1CEC

4.00 -> 6.00
+2.00, ×1.50
OL08.BIN
Offsets Speed Offsets Speed Offsets Speed Offsets Speed Offsets Speed
JP: 0x814

US: 0x814

1.60 -> 2.50
+0.90, ×1.56
JP: 0x1D78

US: 0x1D6C

2.00 -> 3.00
+1.00, ×1.50
JP: 0x1F7C

US: 0x1F68

2.00 -> 3.00
+1.00, ×1.50
JP: 0x2990

US: 0x29A4

2.50 -> 4.50
+2.00, ×1.80
JP: 0x2C3C

US: 0x2C50

2.50 -> 4.50
+2.00, ×1.80
JP: 0x2D88

US: 0x2D9C

2.50 -> 4.50
+2.00, ×1.80
JP: 0x1E90

US: 0x1E7C

-2.00 -> -3.00
-1.00, ×1.50
JP: 0x1F90

US: 0x1F7C

-2.00 -> -3.00
-1.00, ×1.50
JP: 0x1C80

US: 0x1C7C

2.00 -> 3.00
+1.00, ×1.50
JP: 0x1D64

US: 0x1D58

-2.00 -> -3.00
-1.00, ×1.50
OL09.BIN
Offsets Speed Offsets Speed Offsets Speed
JP: 0x8E0

US: 0x8DC

1.50 -> 2.25
+0.75, ×1.50
JP: 0x179C

US: 0x1774

3.00 -> 4.50
+1.50, ×1.50
JP: N/A

US: 0x1E58

1.00 -> 1.50
+0.50, ×1.50
OL12.BIN
Offsets Speed Offsets Speed Offsets Speed Offsets Speed Offsets Speed
JP: 0x7AC

US: 0x7AC

2.00 -> 3.00
+1.00, ×1.50
JP: 0x9A4

US: 0x9A8

4.00 -> 6.00
+2.00, ×1.50
JP: 0xD30

US: 0xD34

1.20 -> 1.80
+0.60, ×1.50
JP: 0xE9C

US: 0xEA0

3.00 -> 4.50
+1.50, ×1.50
JP: 0x2EBC

US: 0x2EC0

4.00 -> 6.00
+2.00, ×1.50
JP: 0x3978

US: 0x397C

3.00 -> 4.50
+1.50, ×1.50
JP: 0x44A0

US: 0x44A4

4.00 -> 6.00
+2.00, ×1.50
JP: 0x86C

US: 0x870

-2.00 -> -3.00
-1.00, ×1.50
JP: 0xEA4

US: 0xEA8

-3.00 -> -5.50
-2.50, ×1.83
JP: 0x2184

US: 0x2188

-3.00 -> -5.50
-2.50, ×1.83
OL13.BIN
Offsets Speed Offsets Speed Offsets Speed Offsets Speed Offsets Speed
JP: 0x791C

US: 0x7928

2.00 -> 4.00
+2.00, ×2.00
JP: 0x7A80

US: 0x7A88

3.00 -> 6.00
+3.00, ×2.00
JP: 0x7BC4

US: 0x7BC8

1.00 -> 2.00
+1.00, ×2.00
JP: 0x7DBC

US: 0x7DC4

2.00 -> 4.00
+2.00, ×2.00
JP: 0x790C

US: 0x791C

-2.00 -> -4.00
-2.00, ×2.00
OL14.BIN
Offsets Speed Offsets Speed Offsets Speed
JP: 0x534

US: 0x534

1.00 -> 4.00
+3.00, ×4.00
JP: 0x1850

US: 0x1858

5.00 -> 20.00
+15.00, ×4.00
JP: 0x184C

US: 0x1854

-5.00 -> -20.00
-15.00, ×4.00