Super Mario World (NES)

From SMWiki
Jump to: navigation, search

Super Mario World is a pirated port of the SNES game Super Mario World to the NES console. This is yet another Hong Kong Original. The game physics are horrible, and graphical glitches are everywhere. However, this is better than most pirated games. This Super Mario World has many many things from its SNES counterpart. It has power ups, Yoshi, castles, ghost houses, the map screen, and even the cut scenes!

Contents

Additional Info

  • The game begins with its faithful "SUPER MARIO WORLD" title screen. Even with less colors and limited animation, it still gives off the same feeling as the real thing.
  • Music is very low quality, but still better than most earbleeding pirates.
  • Some Koopalings are still accessible by hacking, but most castles contain Reznors. It makes sense, as the NES lacks rotation hardware.
  • The map screen shares similarities with the actual Super Mario World, but it is still very different. Many levels are missing, there's no submaps, no switch palaces, and no secret exits.
  • As the NES is limited in its sprites per scanline, Mario and many other objects flicker. There are a few cases in which the NES could not handle enough sprites for certain elements, such as Banzai Bill. Due to the NES' 64 sprite limit, and eight per scanline, it was replaced by three fireballs.
  • An example of horrible physics: Mario can run faster going up a slope than down.

Versions

There are two versions of the game. One version ends at Castle #4. Another version is completed. This version has a world select when you start the game.

Levels

Yoshi's Island

  • Yoshi's House
  • Yoshi's Island 1
  • Yoshi's Island 2
  • Yoshi's Island 3
  • #1 Iggy's Castle

Donut Plains

  • Donut Plains 1
  • Yoshi's House
  • Donut Plains 3
  • Donut Ghost House
  • #2 Morton's Castle

Vanilla Dome

  • Vanilla Dome 1
  • Donut Secret 1
  • Donut Secret House
  • #3 Lemmy's Castle

Cookie Mountain

  • Butter Bridge 2
  • Cheese Bridge Area
  • Cookie Mountain
  • #4 Ludwig's Castle

Chocolate Island

  • Forest of Illusion 4
  • Choco-Ghost House
  • Chocolate Island 1
  • Chocolate Fortress

Valley of Bowser

  • Chocolate Island 3
  • Valley of Bowser 3
  • Valley Ghost House
  • Front Door

RAM Variables

  • $036A - Number of lives
    • Lock to a nonzero value for infinite lives.
  • $0624 - Mario's Current State
    • 00: Small Mario
    • 01: Big Mario
    • 02: Fire Mario
    • 03: Cape Mario
    • 04: Flying Cape Mario
    • 05: Small Mario (spinning)
    • 06: Big Mario (spinning)
    • 07: Fire Mario (spinning)
    • 08: Cape Mario (spinning)
    • [And so on...]
  • $061F - Mario's Current State With Yoshi
    • 00: No Yoshi
    • 01: Normal Yoshi
    • 02: "P" button dropping Yoshi
    • 03: Spring dropping Yoshi
    • 04+: Fire Breathing Yoshi
  • $061D - Swimming State
    • A nonzero value means underwater/swimming. The game seems to set it to 0x40, but it doesn't matter.

Cleared to 0 on game start along with the rest of the RAM, then upon entering the first level after the "Mario Start", it's assigned its value from an array in ROM data (each level has flags specifying its properties, such as whether or not it's a swimming level.

The swimming state for the level is set up with the following code:

    B1FC: 29 c0    and #$C0
    B1FC: 8D 1D 06 sta $061D

which in hex is:

    bd 43 b5 [29] c0 8D 1D 06

Simply search for this hex strings in the ROM, and the change the 29 to A9 to always be swimming. It changes the and opcode to an lda. It is not just this string that appears twice in the ROM, but also the bank it's contained it. We are unable to verify if it is just padding free space, or if it's a bad dump.

  • $0638 - Star Powered Invincibility State
    • A nonzero value means that mario is invincible and it "star powered" mode. This is a counter, which is set when Mario obtains a star and decremented until zero.

It is possible to hack the ROM to make mario immune to some enemies but not others.

Also, if you are at a Koopa boss, and have star power, he will die when touching you. However, since you're supposed to jump on him to kill him, you will be stuck there until time's up. Of course, you can also exit though "Start+Select", as in the SNES version.

  • $039E - The Current Level Unlocked
    • When the game begins, this is set to #$01. Yoshi's house is level #0, where you start on the map, and level #1 is the first level, which you can go to. When you complete level #1, naturally it unlocks level #2, and so forth.

Using an emulator, this can be locked to "99" or another such value to unlock all the levels. As well, a ROM hack can be done to permanently unlock all levels.

    The level unlocked is initialized when the game begins with the following code:

        808B: a9 01    lda #$01 ; level 1 unlocked
        808D: 8d 9e 03 sta #039E
        8090: 8d 9f 03 sta #039F

    which in hex is:

        a9 [01] 8d 9e 03 8d 9f 03

    Simply search for this hex string in the ROM (there's only one occurrence), and
    then change the 01 to 99 or such to unlock everything.
Personal tools