On this page
  1. How it plays
  2. Across the series
  3. Related
  4. Mechanics
  5. References
  6. Sources

Super Mario Bros. 3 is Nintendo’s side-scrolling platformer for the Famicom and NES. It came out in Japan on 23 October 19881,1. Nintendo of America’s list of NES games dates the North American release February 19902,2. A British magazine expected it in Britain in November 19913.

Mario crosses eight worlds to reach Bowser at the end of the eighth4. Each world has a map screen, on which the player walks to the next level and uses the items Mario has collected5. The staff’s letter at the end of both manuals names the map and a new two-player game as what is new6.

Nintendo Power named Shigeru Miyamoto as project head, Takashi Tezuka as a director, Nakago as coding director, and Koji Kondo as the composer7. In a 2016 interview, Miyamoto and Tezuka put the team at 20 to 30 people, and Kondo said he was alone on sound8. Work began in the spring of 1986, and the game was first built with a view from above at a slant9. A centaur power-up was rejected in favor of a tail and flight10.

Famicom Tsūshin’s reviewers gave it 35 of 4011,11, and its staff named it the action game of 198812. Each of Electronic Gaming Monthly’s four reviewers scored it 9 of 1013, and Mean Machines gave it 98%14,14. The film The Wizard showed it in its finale two months before the North American release15. A Nintendo spokeswoman said more than 250,000 copies sold in its first two days there16. David Sheff’s Game Over counts 7 million sold in the United States and 4 million in Japan17. Nintendo Power’s readers’ chart had it at no. 1 by May 1990 and still at the end of 199118. In 1997 Electronic Gaming Monthly called it the best platform game of all time, and IGN later ranked it the best NES game19.

#How it plays

Mario walks at up to 1.5 px/frame, and holding B lets him speed up to 2.5 px/frame20. As Raccoon Mario holding B, he gains speed on 14 frames out of every 16 from a standstill and reaches running speed in 46 frames. Every form but Frog Mario speeds up at that rate, while Frog Mario gains 2 a frame21. Let go of the d-pad and he slows to a stop on the ground but keeps his speed in the air21,22.

Running at full speed fills the P-meter in the status bar, one of its seven steps every 8 frames23. A full meter raises his top speed to 3.5 px/frame20. Once he stops running, a full meter stays full for 16 frames more and then loses a step every 24 frames23.

A jump takes off at 3.5 px/frame from a standstill and up to 4 px/frame at full speed24. Holding A keeps gravity light until the rise slows to 2 px/frame25. Held, a standing jump rises 71 px, about four and a half tiles. Tapped, it rises 21 px26. A fall levels off at 4 px/frame27.

The Super Leaf makes Mario Raccoon Mario, and the Tanooki Suit makes him Tanooki Mario28. Both can fly and wag a tail29. A jump with the P-meter full starts a flight of about 256 frames, 4¼ seconds. While it lasts, each press of A in the air lifts him at 1.5 px/frame, and near its end the lift fades30. A landing doesn’t end the flight, so he can take off again until the time runs out31. Out of flight time, each press of A holds a fall to 1 px/frame for 16 frames30,32. B swings the tail33.

Tanooki Mario can also turn to stone. Hold Down and press B, and he stays a statue for up to about 3.2 seconds while Down is held, unable to move sideways and falling fast34. Enemies and their fireballs can’t hurt a statue. A statue landing on most enemies squashes or defeats them, even ones Mario couldn’t otherwise stomp35.

On the ground Frog Mario moves only in hops, and in the air he steers like the other forms36. Under water the d-pad sets his speed directly, and holding A doubles it37. Fire Mario’s fireballs start downward and the Hammer Suit’s hammers upward. Ducking in the Hammer Suit, Mario destroys the fireballs of four kinds of enemy instead of being hurt by them38.

Holding only Down on a slope starts a slide that the slope speeds up, except in the Frog or Hammer Suit39. Holding B as he touches a shell picks it up, and letting go of B kicks it. A shell kicked while he runs the same way goes faster40. A carried shell let go against a wall breaks instead41. A Bob-omb is thrown in an arc rather than kicked42.

A hit takes Mario down one step. From the Fire Flower or any suit he goes back to Super Mario, from Super Mario to small Mario, and small Mario loses a life43. He then blinks for a while, and further hits are ignored44.

#Across the series

Against Super Mario Bros., Mario’s walking and running top speeds are the same45,20. He also reaches running speed in about the same time, 45 frames there and 46 here46,21. The P-meter’s third top speed is new23.

The jump takes off slower, at 3.5 to 4 px/frame against 4 to 547,24. In Super Mario Bros., holding A keeps a standing jump’s gravity at 0.125 px/frame² until the peak48,49. Here the held gravity is lighter, 1/16 px/frame², but only while Mario rises faster than 2 px/frame. From there to the peak a held jump gains 5/16 px/frame², heavier than Super Mario Bros.‘s25. A fall’s gravity is lighter here, 5/16 against 7/16 px/frame²50,25. A standing jump held to its peak rises 71 px against 6651,26.

In Super Mario Bros., Mario’s speed in the air picks the running or walking limits, whatever B does52. Here B sets the top speed in the air as it does on the ground, and a faster speed carries on until he lands21.

In Super Mario Bros. a hit turns Super or Fiery Mario straight back into small Mario53. Here a Fire Flower or a suit is lost first, back to Super Mario43.

Mechanics

MechanicKindHow
RunningP-meterB raises the top speed to 2.5 px/frame, and a full P-meter to 3.5
JumpSpeed from the runone take-off speed plus a small boost from the run, 3.5 to 4 px/frame
GravityLighter while held1/16 px/frame² while A is held on a fast rise, 5/16 otherwise
Variable jump heightHeld gravityheld, a standing jump rises 71 px; tapped, 21 px
Air controlMomentuma held direction speeds Mario up in the air as on the ground, and let go he keeps his speed
FlightRun-upa full P-meter at take-off gives the Raccoon and Tanooki suits about 4¼ seconds of flight
Power-upUntil hitthe Fire Flower and the four suits last until a hit, which takes Mario back to Super Mario
Invincibility framesFrame timera hit sets a blink in which further hits are ignored
Slope slidingOn DownDown on a slope starts a slide the slope speeds up
ProjectileBallisticFire Mario's fireballs start downward and the Hammer Suit's hammers upward
Water physicsthe Frog Suit swims at speeds set straight from the d-pad, doubled with A
Coyote timeSome platformsa few objects leave a 4- to 15-frame window to jump from the air
Stage selecta map screen for each world, where Mario walks to the next level's panel
MultiplayerAlternatingtwo players take turns, each with their own continues
Status bar splitScanline IRQthe MMC3's scanline counter fires an IRQ above the status bar
CHR bank switchingMid-framethe status bar gets its own tile banks, and background tiles animate by cycling banks every 8 frames
Raster effectsSeveral bandsthe N-Spade game scrolls three rows independently with three IRQs
DPCM samplesMusic tracksamples play as a track in the music
Every claim about this game, by concept (56)
generalRaccoon and Tanooki Mario swing the tail on a press of B when Down isn't held and no swing is under way: Player_TailAttack is set to $12, 18 frames of the swing.Code
PowerUp_Ability gives each form two flags: bit 0, flight and the tail wag, for the Raccoon and Tanooki suits; bit 1, which keeps Mario from starting a slope slide, for the Frog and Hammer suits. Small, Super, and Fire Mario have neither.Code
In the Tanooki suit, a press of B while Down is held, when he isn't a statue already, queues the statue: Player_Update sets Player_Statue to $C0, and it counts down one a frame while Down stays held, about 3.2 seconds at most; letting go of Down, or the count reaching 1, ends it. A statue doesn't move sideways, gets 7 a frame of gravity in the air in place of the jump routine's, and skips the suit's other moves; at $60 left, Player_FlashInv is set so he blinks for the rest.Code
Enemies and their fireballs don't hurt a Tanooki statue: Player_GetHurt, the enemy-contact check, and the special objects' contact check all return while Player_Statue is set. Where an enemy can't otherwise be stomped, or Mario is in water, landing on it from above as a statue (or in Kuribo's Shoe) leaves an enemy flagged OA2_STOMPDONTCARE as it was, since the routine returns; any other enemy is stomped, then squashed if a stomp would squash it, or else killed outright.Code
Out of water and not holding anything, Frog Mario hops. On the ground, when no hop is under way, his horizontal speed is set to 0, and a held direction starts a hop (Player_FrogHopCnt = $1F), during which the Frog's acceleration entry adds 2 a frame (ground-accel). In the air, unless he is sinking in quicksand, the hop count is cleared and Player_GroundHControl steers him as it does the other suits. Holding something, he moves like the other suits on the ground too.Code
Under water the Frog suit sets Mario's speed straight from the d-pad: 16 (1 px/frame) each way, doubled to 32 while A is held, and with a direction released that speed eases back toward 0 by 1 a frame; Up gives 0 while he is above the top of the screen.Code
With the Fire Flower or the Hammer Suit, a press of B throws a weapon unless Mario is ducking, kicking, in a pipe, or the game is halted: Fire Mario's fireball starts downward, the Hammer Suit's hammer upward. Ducking in the Hammer Suit, the fireballs of Piranha Plants, Nippers, Fire Bros., and Fire Chomps collide with him as if he had a Starman's invincibility, which destroys the fireball instead of hurting him.Code
In this release a hit takes Mario down one step: from the Fire Flower or any suit (Raccoon, Frog, Tanooki, Hammer) back to Super Mario, from Super to small, and as small Mario he dies. In Kuribo's Shoe the hit takes the shoe and he keeps his form. A hit is ignored while he blinks from the last one, is a statue, has a Starman, has just lost a suit, or the game is halted, and while the debug no-hit flag is set.Code
Player_GetHurt jumps over a block that Southbird's comments mark as the Japanese version's code, and a comment says the Japanese version "always" shrinks Mario: in that block, any hit on a powered Mario queues small Mario, with the Frog, Tanooki, and Hammer suits flying off.Code notes
Touching a shell as a statue or in Kuribo's Shoe kicks it. Otherwise the touch does nothing while he is already holding something; with B held he picks the shell up, and without B he kicks it. A carried shell is kicked when B is let go, except while he is in a pipe or dying. A kicked shell gets 3 px/frame ($30) the way he faces, or for a shell on the ground away from him, plus half his speed when he moves the same way. A Bob-omb is thrown instead (bobomb-throw), and a carried shell let go against a wall dies (shell-wall-kill).Code
Kicking a Bob-omb, lit or not, throws it instead: it keeps its normal state, bounces up at -$20, and moves away from Mario at $28, or at $30 plus half his speed when he moves that way.Code
Kicking a carried object other than a Bob-omb or an ice block first gives it a speed of 1 the way Mario faces and tests it against the level. If it touches a wall it dies instead, flying up at -$40, for 100 points; otherwise the kick goes ahead (shell-carry).Code
Famitsu's database gives 23 October 1988 as the date Super Mario Bros. 3 came out on the Famicom in Japan. The staff's letter that closes the Japanese manual is dated the same day.Web
Nintendo of America's list of NES games dates the North American release February 1990, and Electronic Gaming Monthly's April 1990 review gives 15 February.Publisher
Mean Machines, a British magazine, wrote in July 1991 that the game would come out in Britain in early November, and its review in the October 1991 issue gives the release as November.Magazine
The game has eight worlds, which the North American manual calls the eight kingdoms of the Mushroom World. A Koopa Kid guards each world, and Bowser waits at the end of World 8.Manual
The North American manual lists the items that change Mario's form: the Super Leaf makes him Raccoon Mario (spelled "Racoon" there), the Frog Suit Frog Mario, and the Tanooki Suit Tanooki Mario, besides the Super Mushroom and the Fire Flower.Manual
Both manuals close with a letter from the staff naming what is new against the earlier games: a map screen between the action scenes, on which the player charts progress, and a new two-player game. The Japanese letter likens the map to a board game.Manual
On the map screen the player picks the next level by walking to its panel and pressing A. Some paths are blocked until an item clears them, such as a hammer for a pile of rocks, and items Mario has collected can be used there before a level. Enemies roam the map, and meeting one starts a fight that wins another item. A mini-fortress stands partway through each world.Magazine
In the two-player game each player can continue separately. Electronic Gaming Monthly's review describes claiming areas of the map and fighting over them in a game derived from Mario Bros.Manual
Nintendo Power's January 1990 feature on the making of the game names Shigeru Miyamoto as project head, Takashi Tezuka as a director and planner, Mr. Nakago as coding director, and Koji Kondo as the composer. It credits the design and programming to the staff of the Research and Development departments of Nintendo's Kyoto headquarters, NCL.Magazine
In Nintendo's 2016 interview, Miyamoto and Tezuka put the team at 20 to 30 people. Miyamoto describes a "Map Room" where programmers entered map data from paper sheets every day, and Kondo says he was alone on sound.Interview
Miyamoto says work began in the spring of 1986, after The Lost Levels, and that a spring 1988 release slipped by another six months. Tezuka says the game was first built with a view from above at a slant; Miyamoto told him that view lost the sense of distance to the ground, and the game became a side view.Interview
Nintendo Power's making-of feature says a power-up turning Mario into a centaur was rejected, and the team settled on a tail and flight instead.Magazine
Famicom Tsūshin's cross review gave it 35 of 40, which placed it in the magazine's Platinum Hall. One reviewer called it close to the best form a sequel to Super Mario could take.Web
Famicom Tsūshin's staff named it the action game of 1988, citing the leaf that lets Mario fly.Magazine
Electronic Gaming Monthly's four reviewers each scored it 9 of 10. One called it the best Nintendo game ever made, another the best game ever made for the NES, and a third one of the best Nintendo games ever made.Magazine
Mean Machines scored it 98% overall; its reviewer Julian called it the finest video game he had played.Magazine
Nintendo Power's readers' chart had it at no. 1 by the May/June 1990 issue, with about twice the points of Tetris in second place, and still at no. 1 after 26 months in December 1991. In December 1994, after 63 months on the chart, it was no. 2 among NES games.Magazine
The Chicago Tribune reported in March 1990, citing a Nintendo spokeswoman, that more than 250,000 cartridges sold at about $50 each in the game's first two days in stores.Web
David Sheff's book Game Over says the game sold 7 million copies in the United States and 4 million in Japan, more than any video game until then.Book
Universal's film The Wizard, released on 14 December 1989, ends in a tournament played on Super Mario Bros. 3, two months before the game's North American release; Nintendo Power promoted it as a preview of the game. Sheff writes that Nintendo was paid a licensing fee and approved the script and the game footage.Magazine
Sheff writes that Nintendo of America's television commercial for the game showed no game footage, only crowds of children chanting "Mario".Book
A remake for the Super NES came in Super Mario All-Stars in 1993, and the NES game is one of the games built into Nintendo's Classic Mini NES of 2016.Magazine
Electronic Gaming Monthly's 1997 list of the 100 best games ranked its All-Stars version no. 2 and called it the best platform game of all time, crediting among much else the map that spread the levels out. IGN's list of the 100 best NES games ranks it no. 1, as the greatest NES game.Magazine
Air controlWith neither Left nor Right held, Mario's horizontal speed gets friction only on the ground; in the air the routine returns and he keeps his speed.Code
CHR bank switchingAt the status bar the IRQ handler switches the background's two 2 KB CHR banks to the status bar's tiles and all four 1 KB sprite banks to blank tiles, so no sprite shows over the bar.Code
In ordinary levels the game picks the 2 KB background bank at PPU $0800 from PT2_Anim, banks $60, $62, $64, $66, by frame-counter bits 3-4, so the animated tiles step every 8 frames on a 32-frame loop; an active P-Switch forces bank $3E.Code
Coyote timeSome objects Mario rides set Player_AllowAirJump, a countdown in which a jump still starts in the air, to 5, 8, or 16; the Parabeetle sets 5 as it droops. Player_JumpFlyFlutter decrements the count before testing it, so those values leave 4, 7, or 15 updates in which a press of A jumps.Code
DPCM samplesThe music data has a sample track beside the other channels' tracks; each note byte on it queues a sample, and Music_PlayDMC loads that sample's rate, address, and length from three 16-entry tables and restarts the DMC.Code
The 16 sample entries play 9 recordings, some reused at a lower rate or cut short; their rate bytes are $0F (33,144 Hz) for most, and $0E (24,858 Hz) or $0D (21,307 Hz) for some of the reused copies.Code
FlightThe P-meter, Player_Power, is seven bits. Mario runs, for the meter, on a frame he is on the ground and not sliding, with B held and his speed already $28 or more. Each time Player_PMeterCnt reaches 0, a running frame adds a step and sets it to 8, and any other frame takes one away and sets it to 24; at 0 steps the counter stays 0, so the next run adds one at once. A full meter, $7F, takes 7 steps, and each running frame at full sets the counter to 16, so the meter stays full 16 frames past the last one. While Player_FlyTime is counting, none of this runs (flight-time). Measured in Mesen from power-on as Raccoon Mario at World 1-1's start, with Right and B held from rest the first step comes the frame after he reaches $28, then one every 8 frames to full; with B let go, it drops 16 frames later and then every 24.Verified
A jump with the meter full and no flight time left sets Player_FlyTime to $80, which counts down every other frame, about 256 frames; when it reaches 0 the meter empties ($FF, the P-Wing's value, never counts down). In the Raccoon or Tanooki suit, the suits with the flight bit in PowerUp_Ability, each press of A in the air starts a 16-frame wag. During a wag, unless he is rising faster than -$18, his vertical speed is set to -$18 while the timer is $0F or more, to -$10 from $0E to $08, and to 0 from $07 to $01; since the timer ticks every other frame, those two stages last 14 frames each. At 0 the tail only slows a fall (tail-wag). Measured in Mesen from power-on as Raccoon Mario at World 1-1's start, a jump at full speed with A pressed every 4 frames sets the timer to $80, climbs at -$18, then for 14 frames at -$10 and 14 at 0, and the timer and meter run out 255 frames after the take-off.Verified
On the ground, Player_JumpFlyFlutter clears Player_FlyTime unless the suit has the flight bit, so Raccoon and Tanooki Mario keep the rest of a flight through a landing, with the meter still full, and can take off again; for the other suits a full-meter jump's timer ends when they land.Code
Out of flight time, a wag of A with the Raccoon or Tanooki tail caps Mario's fall at PLAYER_TAILWAG_YVEL, $10, and leaves a rise or a slower fall alone. Measured in Mesen from power-on as Raccoon Mario at World 1-1's start, wagging every 4 frames after a flight runs out, his fall levels off at $10, 1 px a frame.Verified
GravitySuper Mario Bros. 3 keeps Mario's speeds as 4.4 fixed point: the high nibble is whole pixels per frame, the low nibble sixteenths. Player_ApplyYVelocity caps the fall at FALLRATE_MAX, $40, before the frame's gravity is added, so the move never exceeds 4 px a frame. Measured in Mesen from power-on as Raccoon Mario at World 1-1's start, a jump's fall levels off at 4 px a frame.Verified
In the air Player_JumpFlyFlutter adds 5 to Mario's vertical speed each update, or 1 while A is held and he rises faster than $20; a Micro-Goomba stuck to him keeps the 5 even with A held. A tail wag can then overwrite the speed (flight-time, tail-wag), and a Tanooki statue skips this routine (tanooki-statue). Measured in Mesen from power-on as Raccoon Mario at World 1-1's start, a jump with A held gains 1 a frame until the rise slows to -$20, then 5 a frame; with A pressed for one frame it gains 5 a frame from the frame after the take-off.Verified
Invincibility framesA hit that doesn't kill Mario, including one that only takes Kuribo's Shoe, sets Player_FlashInv to $71, and Player_GetHurt ignores hits while it is nonzero. Player_Draw counts it down each time it runs, blinking Mario in 2-tick halves.Code
JumpA jump takes off at PLAYER_JUMP, -$38, minus Player_SpeedJumpInc indexed by the whole part of Mario's horizontal speed: -$38, -$3A, -$3C, or -$40. Measured in Mesen from power-on as Raccoon Mario at World 1-1's start, a jump from a standstill and one at the full-meter speed $38 take off at -$38 and -$40 (the first frame's speed, one more after that frame's held-A gravity).Verified
A jump starts on the frame A goes down if Mario is on the ground, or in the air while Player_AllowAirJump is counting down.Code
Raster effectsIn the N-Spade card game three IRQs, at scanlines 32, 84, and 136, each give one row its own horizontal scroll and set the next IRQ 52 lines on, and a fourth restores the status bar, so three bands of the screen slide independently.Code
RunningOff uphill slopes, Mario's speed tops out at $18 walking, $28 holding B, and $38 while the P-meter is full; walking uphill, the cap comes from Player_UphillSpeedVals instead. Measured in Mesen from power-on as Raccoon Mario at World 1-1's start, holding Right levels off at $18, and Right with B at $28 until the meter fills, then at $38.Verified
Below the top speed, a held direction adds the suit's entry in Player_XAccelMain plus the carry from adding its Player_XAccelPseudoFrac entry to Counter_Wiggly, on the ground and in the air. Each frame Counter_Wiggly becomes its high nibble minus $90, so it steps through all 16 high nibbles: computed, an $E0 fraction carries on 14 of every 16 frames, so every suit but the Frog gains 1 on 14 frames in 16, about 0.88 a frame, while the Frog's entry adds 2 every frame. Pressing against the motion adds 2 the other way for every suit. With no direction held on the ground, or over the top speed on the ground, the friction entry takes 1 on each frame without a carry: 14 in 16 for Super, Fire, and Raccoon Mario ($20), 10 in 16 for small, Tanooki, and Hammer Mario ($60), and every frame for the Frog ($00). Over the top speed in the air nothing changes it, and slippery ground uses other entries. Measured in Mesen from power-on as Raccoon Mario at World 1-1's start, holding Right from rest gains 1 on 14 of any 16 frames and reaches $28 (with B) on the 46th.Verified
Slope slidingHolding only Down on a slope starts a slide, except in the Frog or Hammer suit (bit 1 of PowerUp_Ability) or Kuribo's Shoe. Each update the slope's push is added to the slide speed, which is capped at $40 and then loses 1 toward 0, so it tops out at $3F.Code
Status bar splitEach frame the NMI handler loads the MMC3's scanline counter with 192, and the IRQ it raises points the PPU at the status bar's nametable rows and swaps in the status bar's tile banks.Code
Variable jump heightMeasured in Mesen from power-on as Raccoon Mario standing at World 1-1's start, a jump with A held rises 71 px, about four and a half tiles, and a jump with A pressed for one frame rises 21 px. Both follow from the take-off (jump-speed) and the two gravities (gravity).Verified

References

  1. ^ abcFamitsu's database gives 23 October 1988 as the date Super Mario Bros. 3 came out on the Famicom in Japan. The staff's letter that closes the Japanese manual is dated the same day.WebFamitsu.com, SMB3 (FC) · Super Mario Bros. 3 Japanese manualrevised
    How we know
    1988年10月23日
    game data · archived copy ↗
    1988. 10. 23.
    last page (PDF p. 45), "To Mario's Players" · archived copy ↗

    The quote matches our archived copy.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  2. ^ abcNintendo of America's list of NES games dates the North American release February 1990, and Electronic Gaming Monthly's April 1990 review gives 15 February.PublisherNintendo, NES Games · EGM 9
    How we know
    Super Mario Bros. 3
    PDF p. 12 · archived copy ↗
    2/15/90
    p. 10, review box · archived copy ↗

    The quote matches our archived copy.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  3. ^ abMean Machines, a British magazine, wrote in July 1991 that the game would come out in Britain in early November, and its review in the October 1991 issue gives the release as November.MagazineMean Machines 10 · Mean Machines 13
    How we know
    will doubtlessly do the same when it's released over here in early November
    p. 10 · archived copy ↗
    RELEASE DATE: NOVEMBER
    p. 59, review box · archived copy ↗

    The quote matches our archived copy.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  4. ^The game has eight worlds, which the North American manual calls the eight kingdoms of the Mushroom World. A Koopa Kid guards each world, and Bowser waits at the end of World 8.ManualSuper Mario Bros. 3 US manual · Mean Machines 13 · Nintendo Power, SMB3 strategy guiderevised
    How we know
    Let's take a look at the 8 kingdoms that make up the Mushroom World.
    p. 30 (PDF p. 31), "The Eight Kingdoms" · archived copy ↗
    Each Mushroom World is guarded by an evil Koopa child … The object is to reach the end of world eight where Bowser lies in wait
    p. 56 · archived copy ↗
    Castle Of Koopa
    p. 3, contents · archived copy ↗

    The quote matches our archived copy.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  5. ^On the map screen the player picks the next level by walking to its panel and pressing A. Some paths are blocked until an item clears them, such as a hammer for a pile of rocks, and items Mario has collected can be used there before a level. Enemies roam the map, and meeting one starts a fight that wins another item. A mini-fortress stands partway through each world.MagazineNintendo Power 11 · Mean Machines 13
    How we know
    Screen and hit the A Button and you’ll be whisked to an Action Scene.
    pp. 8-9 · archived copy ↗
    if there's a pile of rocks blocking your way, use the hammer to knock the obstacle away! … Items are selected with the A button, and these can help you in your selected level. … Mario can rendezvous with these critters and beat them about a bit, thus gaining another useful item!
    p. 58 · archived copy ↗
    In the middle of each World is stationed … a Mini-Fortress defended by Boo Diddly
    pp. 8-9 · archived copy ↗

    The quote matches our archived copy.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  6. ^Both manuals close with a letter from the staff naming what is new against the earlier games: a map screen between the action scenes, on which the player charts progress, and a new two-player game. The Japanese letter likens the map to a board game.ManualSuper Mario Bros. 3 US manual · Super Mario Bros. 3 Japanese manual
    How we know
    In addition to the action scenes, we've added a World Map on which you can plot your progress as well as play a new 2 player game.
    p. 42 (PDF p. 43), "To Mario's Players" · archived copy ↗
    マップ画面という少しボードゲームの要素も入り
    last page (PDF p. 45) · archived copy ↗

    The quote matches our archived copy.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  7. ^Nintendo Power's January 1990 feature on the making of the game names Shigeru Miyamoto as project head, Takashi Tezuka as a director and planner, Mr. Nakago as coding director, and Koji Kondo as the composer. It credits the design and programming to the staff of the Research and Development departments of Nintendo's Kyoto headquarters, NCL.MagazineNintendo Power 10, The Making of SMB3
    How we know
    project head in charge of development on SMB 3
    pp. 20-23, "The Making of Super Mario Bros. 3" · archived copy ↗
    Mr. Tezuka, a director and planner of SMB 3 … Mr. Nakago, coding director on SMB 3 … He composed the music for SMB 3.
    pp. 20-23 · archived copy ↗
    staff of NCL's Research and Development Departments
    p. 20 · archived copy ↗

    The quote matches our archived copy.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  8. ^In Nintendo's 2016 interview, Miyamoto and Tezuka put the team at 20 to 30 people. Miyamoto describes a "Map Room" where programmers entered map data from paper sheets every day, and Kondo says he was alone on sound.InterviewNintendo Classic Mini interview, vol. 3
    How we know
    Maybe 20 to 30? … We had what we called the Map Room … But I was alone on sound.
    Human Wave Tactics · archived copy ↗

    The quote matches our archived copy.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  9. ^Miyamoto says work began in the spring of 1986, after The Lost Levels, and that a spring 1988 release slipped by another six months. Tezuka says the game was first built with a view from above at a slant; Miyamoto told him that view lost the sense of distance to the ground, and the game became a side view.InterviewNintendo Classic Mini interview, vol. 3
    How we know
    We began after Super Mario Bros.: The Lost Levels in the spring of 1986 … We wanted to release it in spring of 1988, but we couldn't do that either, so it dragged on for another six months! … At first, we were making it with a bird's-eye view rather than a side view. … you lost your sense of distance to the ground
    Human Wave Tactics · archived copy ↗

    The quote matches our archived copy.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  10. ^Nintendo Power's making-of feature says a power-up turning Mario into a centaur was rejected, and the team settled on a tail and flight instead.MagazineNintendo Power 10, The Making of SMB3
    How we know
    A concept that was rejected was having Mario power-up as a Centaur … to give Mario a tail and the ability of flight
    p. 20 · archived copy ↗

    The quote matches our archived copy.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  11. ^ abFamicom Tsūshin's cross review gave it 35 of 40, which placed it in the magazine's Platinum Hall. One reviewer called it close to the best form a sequel to Super Mario could take.WebFamitsu.com, SMB3 (FC)
    How we know
    プラチナ殿堂
    game data · archived copy ↗
    『スーパーマリオ』の続編としては、最高の形に近いと思う。
    review comments · archived copy ↗

    The quote matches our archived copy.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  12. ^Famicom Tsūshin's staff named it the action game of 1988, citing the leaf that lets Mario fly.MagazineFamitsu 67, '88 Best Hit Game Awards
    How we know
    アクションゲーム賞
    p. 8, genre awards chosen by the staff · archived copy ↗
    今回はハッパのアイテムで空を飛んだり
    p. 8 · archived copy ↗

    The quote matches our archived copy.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  13. ^Electronic Gaming Monthly's four reviewers each scored it 9 of 10. One called it the best Nintendo game ever made, another the best game ever made for the NES, and a third one of the best Nintendo games ever made.MagazineEGM 9
    How we know
    you get the best game ever made for the NES! … This is the best Nintendo game ever made. … the best Nintendo games ever made!
    p. 10, Review Crew · archived copy ↗

    The quote matches our archived copy.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  14. ^ abMean Machines scored it 98% overall; its reviewer Julian called it the finest video game he had played.MagazineMean Machines 13
    How we know
    OVERALL 98%
    p. 59, scores · archived copy ↗
    Super Mario III is simply the finest videogame I've ever played.
    p. 57 · archived copy ↗

    The quote matches our archived copy.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  15. ^Universal's film The Wizard, released on 14 December 1989, ends in a tournament played on Super Mario Bros. 3, two months before the game's North American release; Nintendo Power promoted it as a preview of the game. Sheff writes that Nintendo was paid a licensing fee and approved the script and the game footage.MagazineNintendo Power 9 · Sheff, Game Over (1999)
    How we know
    On December 14, Universal City Studios will premiere
    pp. 89-90, "The Wizard" · archived copy ↗
    pits the finalists against each other on Super Mario Bros. 3 … a great chance to get a preview of Super Mario Bros. 3
    pp. 89-90 · archived copy ↗
    approval of both the script and the film's game footage
    "The Grinch Who Stole Christmas", pp. 190-191 · archived copy ↗

    The quote matches our archived copy.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  16. ^The Chicago Tribune reported in March 1990, citing a Nintendo spokeswoman, that more than 250,000 cartridges sold at about $50 each in the game's first two days in stores.WebChicago Tribune, SMB3 launchrevised
    How we know
    more than 250,000 cartridges were bought … first two days on the shelves
    29 March 1990 · archived copy ↗

    The quote matches our archived copy.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  17. ^ abDavid Sheff's book Game Over says the game sold 7 million copies in the United States and 4 million in Japan, more than any video game until then.BookSheff, Game Over (1999)
    How we know
    would sell more copies than any video game in history … 7 million in the United States and 4 million in Japan
    Prologue, pp. 4-5 · archived copy ↗

    The quote matches our archived copy.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  18. ^Nintendo Power's readers' chart had it at no. 1 by the May/June 1990 issue, with about twice the points of Tetris in second place, and still at no. 1 after 26 months in December 1991. In December 1994, after 63 months on the chart, it was no. 2 among NES games.MagazineNintendo Power 12 · Nintendo Power 31 · Nintendo Power 67
    How we know
    11,595 … 5,570
    pp. 42-43, Top 30 · archived copy ↗
    8,825
    pp. 90-91, Top 30 · archived copy ↗
    63 months
    p. 101, NES Top 20 · archived copy ↗

    The quote matches our archived copy.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  19. ^Electronic Gaming Monthly's 1997 list of the 100 best games ranked its All-Stars version no. 2 and called it the best platform game of all time, crediting among much else the map that spread the levels out. IGN's list of the 100 best NES games ranks it no. 1, as the greatest NES game.MagazineEGM 100 · IGN, Top 100 NES Games (SMB3)
    How we know
    single best platform game of all time … the levels were spread out on an overworld map that sprawled in every direction
    no. 2 · archived copy ↗
    we can unequivocally call it the greatest NES game of all time
    no. 1 · archived copy ↗

    The quote matches our archived copy.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  20. ^ abcOff uphill slopes, Mario's speed tops out at $18 walking, $28 holding B, and $38 while the P-meter is full; walking uphill, the cap comes from Player_UphillSpeedVals instead. Measured in Mesen from power-on as Raccoon Mario at World 1-1's start, holding Right levels off at $18, and Right with B at $28 until the meter fills, then at $38.VerifiedSouthbird's SMB3 disassembly
    How we know
    3559PLAYER_TOPWALKSPEED	= $18	; Highest X velocity considered as Player "walking"
    3560PLAYER_TOPRUNSPEED	= $28	; Highest X velocity when Player runs
    3561PLAYER_TOPPOWERSPEED	= $38	; Highest X velocity hit when Player is at full "power"
    3562PLAYER_MAXSPEED		= $40	; Player's maximum speed
    
    smb3.asm lines 3559–3562 at 09b1bd8 · upstream ↗
    2320Player_GroundHControl:
    2321	LDA Player_UphillFlag
    2322	BEQ PRG008_AB56	 ; If Player is not going up hill, jump to PRG008_AB56
    ⋮
    2324	INC Player_WalkAnimTicks	; Player_WalkAnimTicks++
    ⋮
    2326	LDY #10	 ; Y = 10 (Player NOT holding B)
    ⋮
    2328	BIT <Pad_Holding
    2329	BVC PRG008_AB5B	 ; If Player is NOT holding 'B', jump to PRG008_AB5B
    ⋮
    2331	LDY #1	 ; Y = 1 (Player holding B)
    2332	BNE PRG008_AB5B	 ; Jump (technically always) to PRG008_AB5B
    ⋮
    2334PRG008_AB56:
    ⋮
    2336	; Use override value
    ⋮
    2338	LDY Player_UphillSpeedIdx	 ; Y = Player_UphillSpeedIdx
    ⋮
    
    PRG/prg008.asm lines 2320–2382 at 09b1bd8 · upstream ↗

    Measured by a script in MesenCE 2.2.1 (build 4b8a196), on . It fails if the result disagrees with the claim.

    The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-26.

    Checked by a second AI model, 2026-10-21.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  21. ^ abcdBelow the top speed, a held direction adds the suit's entry in Player_XAccelMain plus the carry from adding its Player_XAccelPseudoFrac entry to Counter_Wiggly, on the ground and in the air. Each frame Counter_Wiggly becomes its high nibble minus $90, so it steps through all 16 high nibbles: computed, an $E0 fraction carries on 14 of every 16 frames, so every suit but the Frog gains 1 on 14 frames in 16, about 0.88 a frame, while the Frog's entry adds 2 every frame. Pressing against the motion adds 2 the other way for every suit. With no direction held on the ground, or over the top speed on the ground, the friction entry takes 1 on each frame without a carry: 14 in 16 for Super, Fire, and Raccoon Mario ($20), 10 in 16 for small, Tanooki, and Hammer Mario ($60), and every frame for the Frog ($00). Over the top speed in the air nothing changes it, and slippery ground uses other entries. Measured in Mesen from power-on as Raccoon Mario at World 1-1's start, holding Right from rest gains 1 on 14 of any 16 frames and reaches $28 (with B) on the 46th.VerifiedSouthbird's SMB3 disassemblyrevised
    How we know
    1141Player_XAccelMain:
    ⋮
    1143	; F = "Friction" (stopping rate), "N = "Normal" accel, S = "Skid" accel, X = unused
    1144	; Without B button	With B button
    1145	;      F   N   S   X     F   N   S   X
    1146	.byte -1,  0,  2,  0, 	-1,  0,  2,  0	; Small
    1147	.byte -1,  0,  2,  0, 	-1,  0,  2,  0	; Big
    1148	.byte -1,  0,  2,  0, 	-1,  0,  2,  0	; Fire
    1149	.byte -1,  0,  2,  0, 	-1,  0,  2,  0	; Leaf
    1150	.byte -1,  2,  2,  0, 	-1,  2,  2,  0	; Frog
    1151	.byte -1,  0,  2,  0, 	-1,  0,  2,  0	; Tanooki
    1152	.byte -1,  0,  2,  0, 	-1,  0,  2,  0	; Hammer
    
    PRG/prg008.asm lines 1141–1152 at 09b1bd8 · upstream ↗
    1167Player_XAccelPseudoFrac:
    ⋮
    1169	; F = "Friction" (stopping rate), "N = "Normal" accel, S = "Skid" accel, X = unused
    1170	; Without B button		With B button
    1171	;       F    N    S    X          F    N    S    X
    1172	.byte $60, $E0, $00, $00, 	$60, $E0, $00, $00	; Small
    1173	.byte $20, $E0, $00, $00,	$20, $E0, $00, $00	; Big
    1174	.byte $20, $E0, $00, $00, 	$20, $E0, $00, $00	; Fire
    1175	.byte $20, $E0, $00, $00, 	$20, $E0, $00, $00	; Leaf
    1176	.byte $00, $00, $00, $00, 	$00, $00, $00, $00	; Frog
    1177	.byte $60, $E0, $00, $00, 	$60, $E0, $00, $00	; Tanooki
    1178	.byte $60, $E0, $00, $00, 	$60, $E0, $00, $00	; Hammer
    
    PRG/prg008.asm lines 1167–1178 at 09b1bd8 · upstream ↗
    2384	DEY
    2385	TYA
    2386	ASL A
    2387	ASL A
    2388	ASL A
    2389	ADD #$40	
    2390	; Y = 40 if slippery
    2391	; Y = 46 if very slippery
    2392	; Y = ((Player_Slippery - 1) << 3) + $40
    2393	TAY
    2394	BNE PRG008_AB9E	 ; And as long as that's not zero, jump to PRG008_AB9E
    ⋮
    2396PRG008_AB98:
    ⋮
    
    PRG/prg008.asm lines 2383–2497 at 09b1bd8 · upstream ↗
    339	; Makes for "wobbly" raising of the airship at least..
    340	LDA Counter_Wiggly
    341	AND #$F0
    342	SUB #$90
    343	STA Counter_Wiggly
    
    PRG/prg008.asm lines 339–343 at 09b1bd8 · upstream ↗

    Measured by a script in MesenCE 2.2.1 (build 4b8a196), on . It fails if the result disagrees with the claim.

    The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  22. ^With neither Left nor Right held, Mario's horizontal speed gets friction only on the ground; in the air the routine returns and he keeps his speed.CodeSouthbird's SMB3 disassembly
    How we know
    2413PRG008_ABA6:
    2414	LDA <Pad_Holding
    2415	AND #(PAD_LEFT | PAD_RIGHT)
    2416	BNE PRG008_ABB8	 ; If Player is pressing LEFT or RIGHT, jump to PRG008_ABB8
    ⋮
    2420	LDA <Player_InAir
    2421	BNE PRG008_AC01	 ; If Player is mid air, jump to PRG008_AC01 (RTS)
    
    PRG/prg008.asm lines 2413–2421 at 09b1bd8 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-21.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  23. ^ abcThe P-meter, Player_Power, is seven bits. Mario runs, for the meter, on a frame he is on the ground and not sliding, with B held and his speed already $28 or more. Each time Player_PMeterCnt reaches 0, a running frame adds a step and sets it to 8, and any other frame takes one away and sets it to 24; at 0 steps the counter stays 0, so the next run adds one at once. A full meter, $7F, takes 7 steps, and each running frame at full sets the counter to 16, so the meter stays full 16 frames past the last one. While Player_FlyTime is counting, none of this runs (flight-time). Measured in Mesen from power-on as Raccoon Mario at World 1-1's start, with Right and B held from rest the first step comes the frame after he reaches $28, then one every 8 frames to full; with B let go, it drops 16 frames later and then every 24.VerifiedSouthbird's SMB3 disassembly
    How we know
    2346PRG008_AB62:
    2347	LDY #PLAYER_TOPWALKSPEED
    ⋮
    2349	BIT <Pad_Holding
    2350	BVC PRG008_AB83	; If Player is NOT holding 'B', jump to PRG008_AB83
    ⋮
    2352	; Player is holding B...
    ⋮
    2354	LDA <Player_InAir
    2355	ORA Player_Slide
    2356	BNE PRG008_AB78	 ; If Player is mid air or sliding, jump to PRG008_AB78
    ⋮
    2358	LDA <Temp_Var3
    2359	CMP #PLAYER_TOPRUNSPEED
    2360	BMI PRG008_AB78	 ; If Player's X Velocity magnitude is less than PLAYER_TOPRUNSPEED, jump to PRG008_AB78
    ⋮
    2362	; Player is going fast enough while holding B on the ground; flag running!
    ⋮
    
    PRG/prg008.asm lines 2346–2375 at 09b1bd8 · upstream ↗
    981Player_PowerUpdate:
    982	LDY Player_FlyTime	 
    983	BEQ PRG008_A4E4	 ; If Player is not flying (or at least high-speed jumping), jump to PRG008_A4E4
    ⋮
    985	CPY #$ff
    986	BEQ Sound_FullPowerRing	 ; If Player_FlyTime = $FF (P-Wing active), jump to Sound_FullPowerRing
    ⋮
    988	LDA <Counter_1
    989	AND #$01
    990	BEQ PRG008_A4D5	 ; Every other tick, jump to PRG008_A4D5
    ⋮
    992	DEY			 
    993	STY Player_FlyTime ; Player_FlyTime--
    ⋮
    995PRG008_A4D5:
    996	TYA		 ; Y (Player_FlyTime) -> A 
    ⋮
    
    PRG/prg008.asm lines 981–1058 at 09b1bd8 · upstream ↗
    378	; Decrement several adjacent counters!
    379	LDX #$07	 ; X = 7
    ⋮
    381PRG008_A1DE:
    382	LDA Event_Countdown,X
    383	BEQ PRG008_A1E6	 ; If counter is = 0, jump to PRG008_A1E6
    ⋮
    385	DEC Event_Countdown,X	 ; Otherwise, decrement it!
    ⋮
    387PRG008_A1E6:
    388	DEX		 ; X--
    389	BPL PRG008_A1DE	 ; While X >= 0, loop!
    
    PRG/prg008.asm lines 378–389 at 09b1bd8 · upstream ↗
    1545	; NOTE: Event_Countdown and the following 7 are all decremented together!
    1546	Event_Countdown:	.ds 1
    ⋮
    1548	Player_TailCount:	.ds 1	; Determines display frame of tail wag
    1549	Player_InAir_OLD:	.ds 1	; Stores backup of Player_InAir
    1550	Player_FireCount:		; Player shoots fireball/hammer, sets sprite frame (shared with Player_FrogHopCnt)
    1551	Player_FrogHopCnt:	.ds 1	; Counter used for frog hopping along the ground (shared with Player_FireCount)
    ⋮
    1553				.ds 1	; $0514 unused
    ⋮
    1555	Player_PMeterCnt:	.ds 1	; Tick counter used to count when to increase/decrease Power Meter
    
    smb3.asm lines 1545–1555 at 09b1bd8 · upstream ↗

    Measured by a script in MesenCE 2.2.1 (build 4b8a196), on . It fails if the result disagrees with the claim.

    The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-26.

    Checked by a second AI model, 2026-10-21.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  24. ^ abA jump takes off at PLAYER_JUMP, -$38, minus Player_SpeedJumpInc indexed by the whole part of Mario's horizontal speed: -$38, -$3A, -$3C, or -$40. Measured in Mesen from power-on as Raccoon Mario at World 1-1's start, a jump from a standstill and one at the full-meter speed $38 take off at -$38 and -$40 (the first frame's speed, one more after that frame's held-A gravity).VerifiedSouthbird's SMB3 disassembly
    How we know
    3563PLAYER_JUMP		= -$38	; Player's root Y velocity for jumping (further adjusted a bit by Player_SpeedJumpInc)
    
    smb3.asm line 3563 at 09b1bd8 · upstream ↗
    1199Player_RootJumpVel:	.byte PLAYER_JUMP
    ⋮
    1204Player_SpeedJumpInc:	.byte $00, $02, $04, $08
    
    PRG/prg008.asm lines 1199–1204 at 09b1bd8 · upstream ↗
    2608	TAX	 ; X = Magnitude of Player's X Velocity >> 4 (the "whole" part)
    ⋮
    2610	LDA Player_RootJumpVel	 	; Get initial jump velocity
    2611	SUB Player_SpeedJumpInc,X	; Subtract a tiny bit of boost at certain X Velocity speed levels
    2612	STA <Player_YVel		; -> Y velocity
    
    PRG/prg008.asm lines 2604–2612 at 09b1bd8 · upstream ↗

    Measured by a script in MesenCE 2.2.1 (build 4b8a196), on . It fails if the result disagrees with the claim.

    The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-26.

    Checked by a second AI model, 2026-10-21.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  25. ^ abcIn the air Player_JumpFlyFlutter adds 5 to Mario's vertical speed each update, or 1 while A is held and he rises faster than $20; a Micro-Goomba stuck to him keeps the 5 even with A held. A tail wag can then overwrite the speed (flight-time, tail-wag), and a Tanooki statue skips this routine (tanooki-statue). Measured in Mesen from power-on as Raccoon Mario at World 1-1's start, a jump with A held gains 1 a frame until the rise slows to -$20, then 5 a frame; with A pressed for one frame it gains 5 a frame from the frame after the take-off.VerifiedSouthbird's SMB3 disassembly
    How we know
    2644PRG008_ACB3:
    ⋮
    2646	; Player is mid air...
    ⋮
    2648	LDY #$05	 ; Y = 5
    ⋮
    2650	LDA <Player_YVel
    2651	CMP #-$20
    2652	BGS PRG008_ACC8	 ; If Player's Y velocity >= -$20, jump to PRG008_ACC8
    ⋮
    2654	LDA Player_mGoomba
    2655	BNE PRG008_ACCD	 ; If Player has got a microgoomba stuck to him, jump to PRG008_ACCD
    ⋮
    2657	LDA <Pad_Holding
    2658	BPL PRG008_ACC8	 ; If Player is NOT pressing 'A', jump to PRG008_ACC8
    ⋮
    2660	LDY #$01	 ; Y = 1
    2661	BNE PRG008_ACCD	 ; Jump (technically always) to PRG008_ACCD
    ⋮
    
    PRG/prg008.asm lines 2644–2672 at 09b1bd8 · upstream ↗

    Measured by a script in MesenCE 2.2.1 (build 4b8a196), on . It fails if the result disagrees with the claim.

    The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-26.

    Checked by a second AI model, 2026-10-21.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  26. ^ abMeasured in Mesen from power-on as Raccoon Mario standing at World 1-1's start, a jump with A held rises 71 px, about four and a half tiles, and a jump with A pressed for one frame rises 21 px. Both follow from the take-off (jump-speed) and the two gravities (gravity).VerifiedSouthbird's SMB3 disassembly
    How we know
    3563PLAYER_JUMP		= -$38	; Player's root Y velocity for jumping (further adjusted a bit by Player_SpeedJumpInc)
    
    smb3.asm line 3563 at 09b1bd8 · upstream ↗
    2644PRG008_ACB3:
    ⋮
    2646	; Player is mid air...
    ⋮
    2648	LDY #$05	 ; Y = 5
    ⋮
    2650	LDA <Player_YVel
    2651	CMP #-$20
    2652	BGS PRG008_ACC8	 ; If Player's Y velocity >= -$20, jump to PRG008_ACC8
    ⋮
    2654	LDA Player_mGoomba
    
    PRG/prg008.asm lines 2644–2654 at 09b1bd8 · upstream ↗

    Measured by a script in MesenCE 2.2.1 (build 4b8a196), on . It fails if the result disagrees with the claim.

    The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  27. ^Super Mario Bros. 3 keeps Mario's speeds as 4.4 fixed point: the high nibble is whole pixels per frame, the low nibble sixteenths. Player_ApplyYVelocity caps the fall at FALLRATE_MAX, $40, before the frame's gravity is added, so the move never exceeds 4 px a frame. Measured in Mesen from power-on as Raccoon Mario at World 1-1's start, a jump's fall levels off at 4 px a frame.VerifiedSouthbird's SMB3 disassembly
    How we know
    6945	CMP #FALLRATE_MAX
    6946	BLS PRG008_BFF9	 ; If Player_YVelo < FALLRATE_MAX, jump to PRG008_BFF9
    ⋮
    6949	LDA #FALLRATE_MAX
    6950	STA <Player_YVel ; Player_YVel = FALLRATE_MAX
    
    PRG/prg008.asm lines 6945–6950 at 09b1bd8 · upstream ↗
    21FALLRATE_MAX		= $40	; Maximum Y velocity falling rate
    
    PRG/prg024.asm line 21 at 09b1bd8 · upstream ↗

    Measured by a script in MesenCE 2.2.1 (build 4b8a196), on . It fails if the result disagrees with the claim.

    The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-26.

    Checked by a second AI model, 2026-10-21.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  28. ^The North American manual lists the items that change Mario's form: the Super Leaf makes him Raccoon Mario (spelled "Racoon" there), the Frog Suit Frog Mario, and the Tanooki Suit Tanooki Mario, besides the Super Mushroom and the Fire Flower.ManualSuper Mario Bros. 3 US manualrevised
    How we know
    Changes Mario into R acoon Mario.
    pp. 23-24 (PDF pp. 24-25), items you can use on the map screen · archived copy ↗
    Frog Suit Changes Mario into Frog Mario. … Tanooki Suit Changes Mario into Tanooki Mario. … Changes Mario into Fire Mario.
    pp. 23-24 (PDF pp. 24-25) · archived copy ↗

    The quote matches our archived copy.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  29. ^PowerUp_Ability gives each form two flags: bit 0, flight and the tail wag, for the Raccoon and Tanooki suits; bit 1, which keeps Mario from starting a slope slide, for the Frog and Hammer suits. Small, Super, and Fire Mario have neither.CodeSouthbird's SMB3 disassembly
    How we know
    558PowerUp_Ability:
    559	;     Small, Big, Fire, Leaf, Frog, Tanooki, Hammer
    560	.byte $00,   $00, $00,  $01,  $02,  $01,     $02
    
    PRG/prg000.asm lines 558–560 at 09b1bd8 · upstream ↗
    583LevelInit_StartSliding:
    584	LDY <Player_Suit
    585	LDA PowerUp_Ability,Y
    586	AND #$02
    587	BNE LevelInit_DoNothing	; If this powerup is not able to slide on slopes, jump to LevelInit_DoNothing
    ⋮
    589	INC Player_Slide	 ; Otherwise, begin sliding...
    
    PRG/prg008.asm lines 583–590 at 09b1bd8 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  30. ^ abA jump with the meter full and no flight time left sets Player_FlyTime to $80, which counts down every other frame, about 256 frames; when it reaches 0 the meter empties ($FF, the P-Wing's value, never counts down). In the Raccoon or Tanooki suit, the suits with the flight bit in PowerUp_Ability, each press of A in the air starts a 16-frame wag. During a wag, unless he is rising faster than -$18, his vertical speed is set to -$18 while the timer is $0F or more, to -$10 from $0E to $08, and to 0 from $07 to $01; since the timer ticks every other frame, those two stages last 14 frames each. At 0 the tail only slows a fall (tail-wag). Measured in Mesen from power-on as Raccoon Mario at World 1-1's start, a jump at full speed with A pressed every 4 frames sets the timer to $80, climbs at -$18, then for 14 frames at -$10 and 14 at 0, and the timer and meter run out 255 frames after the take-off.VerifiedSouthbird's SMB3 disassemblyrevised
    How we know
    2621	LDA Player_Power
    2622	CMP #$7f
    2623	BNE PRG008_AC9E		; If Player is not at max power, jump to PRG008_AC9E
    ⋮
    2625	LDA Player_FlyTime
    2626	BNE PRG008_AC9E	 	; If Player still has flight time left, jump to PRG008_AC9E
    ⋮
    2628	LDA #$80
    2629	STA Player_FlyTime	; Otherwise, Player_FlyTime = $80
    
    PRG/prg008.asm lines 2621–2629 at 09b1bd8 · upstream ↗
    981Player_PowerUpdate:
    982	LDY Player_FlyTime	 
    983	BEQ PRG008_A4E4	 ; If Player is not flying (or at least high-speed jumping), jump to PRG008_A4E4
    ⋮
    985	CPY #$ff
    986	BEQ Sound_FullPowerRing	 ; If Player_FlyTime = $FF (P-Wing active), jump to Sound_FullPowerRing
    ⋮
    988	LDA <Counter_1
    989	AND #$01
    990	BEQ PRG008_A4D5	 ; Every other tick, jump to PRG008_A4D5
    ⋮
    992	DEY			 
    993	STY Player_FlyTime ; Player_FlyTime--
    ⋮
    995PRG008_A4D5:
    996	TYA		 ; Y (Player_FlyTime) -> A 
    ⋮
    
    PRG/prg008.asm lines 981–999 at 09b1bd8 · upstream ↗
    2673	BEQ PRG008_ACD9	 ; If Player_WagCount = 0, jump to PRG008_ACD9
    ⋮
    2675	DEC <Player_WagCount ; Otherwise, $F0--
    ⋮
    2677PRG008_ACD9:
    2678	LDA Player_Kuribo
    2679	BNE PRG008_ACEF	 ; If Player is wearing Kuribo's shoe, jump to PRG008_ACEF
    ⋮
    2681	LDX <Player_Suit
    ⋮
    2683	LDA PowerUp_Ability,X	; Get "ability" flags for this power up
    2684	AND #$01	 
    2685	BEQ PRG008_ACEF	 	; If this power up does not have flight, jump to PRG008_ACEF
    ⋮
    2687	LDY <Temp_Var1		; Y = $80 if Player was pressing 'A' when this all began
    2688	BEQ PRG008_ACEF	 	; And if he wasn't, jump to PRG008_ACEF
    ⋮
    2690	LDA #$10	 
    ⋮
    
    PRG/prg008.asm lines 2673–2730 at 09b1bd8 · upstream ↗
    558PowerUp_Ability:
    559	;     Small, Big, Fire, Leaf, Frog, Tanooki, Hammer
    560	.byte $00,   $00, $00,  $01,  $02,  $01,     $02
    
    PRG/prg000.asm lines 558–560 at 09b1bd8 · upstream ↗

    Measured by a script in MesenCE 2.2.1 (build 4b8a196), on . It fails if the result disagrees with the claim.

    The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-26.

    Checked by a second AI model, 2026-10-21.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  31. ^On the ground, Player_JumpFlyFlutter clears Player_FlyTime unless the suit has the flight bit, so Raccoon and Tanooki Mario keep the rest of a flight through a landing, with the meter still full, and can take off again; for the other suits a full-meter jump's timer ends when they land.CodeSouthbird's SMB3 disassembly
    How we know
    2631PRG008_AC9E:
    2632	LDA <Player_InAir
    2633	BNE PRG008_ACB3		; If Player is mid air, jump to PRG008_ACB3
    ⋮
    2635	LDY <Player_Suit
    2636	LDA PowerUp_Ability,Y	; Get "ability" flags for this power up
    2637	AND #$01
    2638	BNE PRG008_AD1A	 	; If power up has flight ability, jump to PRG008_AD1A
    ⋮
    2640	LDA #$00
    2641	STA Player_FlyTime	; Otherwise, Player_FlyTime = 0 :(
    2642	JMP PRG008_AD1A	 ; Jump to PRG008_AD1A
    
    PRG/prg008.asm lines 2631–2642 at 09b1bd8 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  32. ^Out of flight time, a wag of A with the Raccoon or Tanooki tail caps Mario's fall at PLAYER_TAILWAG_YVEL, $10, and leaves a rise or a slower fall alone. Measured in Mesen from power-on as Raccoon Mario at World 1-1's start, wagging every 4 frames after a flight runs out, his fall levels off at $10, 1 px a frame.VerifiedSouthbird's SMB3 disassembly
    How we know
    2683	LDA PowerUp_Ability,X	; Get "ability" flags for this power up
    2684	AND #$01	 
    2685	BEQ PRG008_ACEF	 	; If this power up does not have flight, jump to PRG008_ACEF
    ⋮
    2687	LDY <Temp_Var1		; Y = $80 if Player was pressing 'A' when this all began
    2688	BEQ PRG008_ACEF	 	; And if he wasn't, jump to PRG008_ACEF
    ⋮
    2690	LDA #$10	 
    2691	STA <Player_WagCount 	; Otherwise, Player_WagCount = $10
    
    PRG/prg008.asm lines 2683–2691 at 09b1bd8 · upstream ↗
    2720PRG008_AD0E:
    2721	LDA <Player_YVel
    2722	BMI PRG008_AD1A	 ; If Player's Y velocity < 0 (moving upward), jump to PRG008_AD1A
    ⋮
    2724	CMP #PLAYER_TAILWAG_YVEL
    2725	BLT PRG008_AD1A	 ; If Player's Y velocity < PLAYER_TAILWAG_YVEL, jump to PRG008_AD1A
    ⋮
    2727	LDY #PLAYER_TAILWAG_YVEL ; Y = PLAYER_TAILWAG_YVEL
    ⋮
    2729PRG008_AD18:
    2730	STY <Player_YVel ; Set appropriate Y velocity
    
    PRG/prg008.asm lines 2720–2730 at 09b1bd8 · upstream ↗

    Measured by a script in MesenCE 2.2.1 (build 4b8a196), on . It fails if the result disagrees with the claim.

    The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-26.

    Checked by a second AI model, 2026-10-21.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  33. ^Raccoon and Tanooki Mario swing the tail on a press of B when Down isn't held and no swing is under way: Player_TailAttack is set to $12, 18 frames of the swing.CodeSouthbird's SMB3 disassembly
    How we know
    3574Player_TailAttackAnim:
    3575	LDA <Pad_Holding
    3576	AND #PAD_DOWN
    3577	BNE PRG008_B109	 ; If Player is holding down, jump to PRG008_B109
    ⋮
    3579	BIT <Pad_Input
    3580	BVC PRG008_B0E2	 ; If Player is NOT pressing 'B', jump to PRG008_B0E2
    ⋮
    3582	LDA Player_TailAttack
    3583	BNE PRG008_B0E2	 ; If Player is performing tail attack, jump to PRG008_B0E2
    ⋮
    3585	LDA #$12
    3586	STA Player_TailAttack	 ; Player_TailAttack = $12
    ⋮
    3588	; Plays the tail wag sound
    3589	LDA Sound_QLevel1
    ⋮
    
    PRG/prg008.asm lines 3574–3591 at 09b1bd8 · upstream ↗
    2010GndMov_Leaf:
    2011	JSR Player_GroundHControl ; Do Player left/right input control
    2012	JSR Player_JumpFlyFlutter ; Do Player jump, fly, flutter wag
    2013	JSR Player_AnimTailWag ; Do Player's tail animations
    2014	JSR Player_TailAttackAnim ; Do Player's tail attack animations
    2015	RTS		 ; Return
    
    PRG/prg008.asm lines 2010–2015 at 09b1bd8 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  34. ^In the Tanooki suit, a press of B while Down is held, when he isn't a statue already, queues the statue: Player_Update sets Player_Statue to $C0, and it counts down one a frame while Down stays held, about 3.2 seconds at most; letting go of Down, or the count reaching 1, ends it. A statue doesn't move sideways, gets 7 a frame of gravity in the air in place of the jump routine's, and skips the suit's other moves; at $60 left, Player_FlashInv is set so he blinks for the rest.CodeSouthbird's SMB3 disassembly
    How we know
    3319Player_TanookiStatue:
    3320	LDA <Pad_Holding		 
    3321	AND #PAD_DOWN
    3322	TAY
    3323	BEQ PRG008_AFE3	 ; If Player is NOT pressing down, jump to PRG008_AFE3
    ⋮
    3325	BIT <Pad_Input
    3326	BVC PRG008_AFE3	 ; If Player is NOT pressing 'B', jump to PRG008_AFE3
    ⋮
    3328	LDA Player_Statue
    3329	BNE PRG008_AFE3	 ; If Player is transformed into a statue, jump to PRG008_AFE3
    ⋮
    3331	JSR Sound_StatueSwitch	 ; Play statue transformation sound
    ⋮
    3333	LDA #$20
    3334	STA Player_QueueSuit	 ; Player_QueueSuit = $20
    ⋮
    
    PRG/prg008.asm lines 3319–3400 at 09b1bd8 · upstream ↗
    794Player_Update:
    795	LDA Player_QueueSuit
    796	BEQ PRG008_A3FA	 ; If we don't have a suit change queued, jump to PRG008_A3FA
    ⋮
    798	CMP #$0f
    799	BLS PRG008_A3EC	 ; If Player_QueueSuit < $0F (statue enable), jump to PRG008_A3EC
    ⋮
    801	CMP #$80
    802	BNE PRG008_A3DC	 ; If Player_QueueSuit <> $80 (Kuribo's shoe), jump to PRG008_A3DC
    ⋮
    804	; Kuribo's shoe enable!
    805	INC Player_Kuribo	; Set the Player_Kuribo flag
    806	BNE PRG008_A3F2	 ; Jump (expectedly always) to PRG008_A3F2
    ⋮
    808PRG008_A3DC:
    809	CMP #$40
    ⋮
    
    PRG/prg008.asm lines 794–815 at 09b1bd8 · upstream ↗
    2238GndMov_Tanooki:
    2239	JSR Player_TanookiStatue  ; Change into/maintain Tanooki statue (NOTE: Will not return here if statue!)
    2240	JSR Player_GroundHControl ; Do Player left/right input control
    2241	JSR Player_JumpFlyFlutter ; Do Player jump, fly, flutter wag
    2242	JSR Player_AnimTailWag ; Do Player's tail animations
    2243	JSR Player_TailAttackAnim ; Do Player's tail attack animations
    2244	RTS		 ; Return
    
    PRG/prg008.asm lines 2238–2244 at 09b1bd8 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  35. ^Enemies and their fireballs don't hurt a Tanooki statue: Player_GetHurt, the enemy-contact check, and the special objects' contact check all return while Player_Statue is set. Where an enemy can't otherwise be stomped, or Mario is in water, landing on it from above as a statue (or in Kuribo's Shoe) leaves an enemy flagged OA2_STOMPDONTCARE as it was, since the routine returns; any other enemy is stomped, then squashed if a stomp would squash it, or else killed outright.CodeSouthbird's SMB3 disassemblyrevised
    How we know
    5620Player_GetHurt:
    5621	; If Player is...
    5622	LDA Player_FlashInv		; ... flashing invincible ...
    5623	ORA Player_Statue		; ... a statue ...
    5624	ORA Player_StarInv		; ... invincible by star ...
    5625	ORA Player_SuitLost		; ... just lost a power-up suit ...
    5626	ORA <Player_HaltGame		; ... gameplay halted ...
    5627	ORA Player_HaltTick		; ... Player halted ...
    5628	ORA Player_DebugNoHitFlag	; ... debug invincibility flag is set (unused) ...
    5629	BNE PRG000_D9B7	 ; ... then jump to PRG000_D9B7 (RTS)
    ⋮
    5631	JMP PRG000_DA15	 ; Jump to PRG000_DA15 (skips lost/dead Japanese version code)
    
    PRG/prg000.asm lines 5620–5631 at 09b1bd8 · upstream ↗
    3862PRG000_D267:
    ⋮
    3864	; Player is in water (can't stomp in water) OR attribute 3 bit 5 is set (can't stomp anyway)...
    ⋮
    3866	LDA Player_Kuribo
    3867	ORA Player_Statue
    3868	BNE PRG000_D272	 ; If in Kuribo's shoe or transformed into statue, ignore this and jump to PRG000_D272
    ⋮
    3870	JMP PRG000_D355	 ; Jump to PRG000_D355 (hurt Player!)
    ⋮
    3872PRG000_D272:
    ⋮
    3874	; Enemy got stomped!
    ⋮
    3876	LDY ObjGroupRel_Idx	 ; Y = group relative index
    3877	LDA ObjectGroup_Attributes2,Y	 ; Get object attribute set 2
    3878	AND #OA2_STOMPDONTCARE	 
    3879	BNE PRG000_D2B3	 	; If OA2_STOMPDONTCARE is set (object is indifferent about stomping), jump to PRG000_D2B3 (RTS)
    ⋮
    
    PRG/prg000.asm lines 3862–3904 at 09b1bd8 · upstream ↗
    4070PRG000_D355:
    ⋮
    4072	; Player potentially gonna get hurt!
    ⋮
    4074	LDA Player_FlashInv	; If Player is flashing from getting hit recently...
    4075	ORA Player_Statue	; ... or Player is a statue ...
    
    PRG/prg000.asm lines 4070–4075 at 09b1bd8 · upstream ↗
    4769PRG007_B805:
    4770	LDA Player_FlashInv	; If Player is flashing from being hit ...
    4771	ORA Player_Statue	; ... if Player is a statue ...
    4772	ORA <Player_HaltGame	; ... if gameplay is halted ...
    4773	ORA Player_IsDying	; ... Player is dying ...
    4774	ORA Player_OffScreen	; ... Player is off-screen ...
    4775	ORA Player_Behind_En	; ... Player is legitimately hidden behind the scenes ...
    4776	ORA <Temp_Var14		; ... or special object is not vertically on-screen ...
    4777	BNE PRG007_B843	 	; ... jump to Player_Behind_En (RTS)
    
    PRG/prg007.asm lines 4769–4777 at 09b1bd8 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  36. ^Out of water and not holding anything, Frog Mario hops. On the ground, when no hop is under way, his horizontal speed is set to 0, and a held direction starts a hop (Player_FrogHopCnt = $1F), during which the Frog's acceleration entry adds 2 a frame (ground-accel). In the air, unless he is sinking in quicksand, the hop count is cleared and Player_GroundHControl steers him as it does the other suits. Holding something, he moves like the other suits on the ground too.CodeSouthbird's SMB3 disassemblyrevised
    How we know
    2019GndMov_Frog:
    2020	JSR Player_GroundHControl ; Do Player left/right input control
    2021	JSR Player_JumpFlyFlutter ; Do Player jump, fly, flutter wag
    ⋮
    2023	LDA Player_IsHolding
    2024	BNE PRG008_AA23	 ; If Player is holding something, jump to PRG008_AA23
    ⋮
    2026	LDA <Player_InAir
    2027	BEQ PRG008_AA00	 ; If Player is NOT in mid air, jump to PRG008_AA00
    ⋮
    2029	LDA Player_SandSink
    2030	LSR A
    2031	BCS PRG008_AA00	 ; If bit 0 of Player_SandSink is set, jump to PRG008_AA00
    ⋮
    2033	LDA #$00
    2034	STA Player_FrogHopCnt	 ; Player_FrogHopCnt = 0
    ⋮
    
    PRG/prg008.asm lines 2019–2063 at 09b1bd8 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  37. ^Under water the Frog suit sets Mario's speed straight from the d-pad: 16 (1 px/frame) each way, doubled to 32 while A is held, and with a direction released that speed eases back toward 0 by 1 a frame; Up gives 0 while he is above the top of the screen.CodeSouthbird's SMB3 disassemblyrevised
    How we know
    2082Frog_Velocity:
    2083	.byte 16, -16
    ⋮
    2085Swim_Frog:
    2086	LDX #$ff	 ; X = $FF
    ⋮
    2088	LDA <Pad_Holding
    2089	AND #(PAD_UP | PAD_DOWN)
    2090	BEQ PRG008_AA61	 ; If Player is NOT pressing up/down, jump to PRG008_AA61
    ⋮
    2093	STA <Player_InAir
    ⋮
    2095	LSR A
    2096	LSR A
    2097	LSR A
    2098	TAX		 ; X = 1 if pressing up, else 0
    ⋮
    
    PRG/prg008.asm lines 2082–2175 at 09b1bd8 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  38. ^With the Fire Flower or the Hammer Suit, a press of B throws a weapon unless Mario is ducking, kicking, in a pipe, or the game is halted: Fire Mario's fireball starts downward, the Hammer Suit's hammer upward. Ducking in the Hammer Suit, the fireballs of Piranha Plants, Nippers, Fire Bros., and Fire Chomps collide with him as if he had a Starman's invincibility, which destroys the fireball instead of hurting him.CodeSouthbird's SMB3 disassembly
    How we know
    479	CMP #PLAYERSUIT_HAMMER
    480	BEQ PRG007_A251	 ; If Player is wearing a Hammer Suit, jump to PRG007_A251
    ⋮
    482	CMP #PLAYERSUIT_FIRE
    483	BNE PRG007_A268	 ; If Player is not Fire, jump to PRG007_A268
    ⋮
    485PRG007_A251:
    ⋮
    487	; Player wearing a Hammer Suit or Fire
    ⋮
    489	LDA Player_HaltTick	; If Player is not halted ...
    490	ORA Player_IsDucking	; ... Player is ducking ...
    491	ORA Player_Kick	 	; ... Player is kicking ...
    492	ORA Player_InPipe	; ... Player is in a pipe ...
    493	ORA <Player_HaltGame	; ... gameplay is halted ...
    494	BNE PRG007_A268	 	; ... then jump to PRG007_A268
    ⋮
    
    PRG/prg007.asm lines 479–499 at 09b1bd8 · upstream ↗
    586	LDA #$01	 ; A = 1
    ⋮
    588	LDY <Player_Suit
    589	CPY #PLAYERSUIT_HAMMER
    590	SEC		 ; Set carry (if NOT wearing the hammer suit)
    591	BNE PRG007_A2E3	 ; If Player is NOT wearing the Hammer Suit, jump to PRG007_A2E3
    592	ASL A		 ; Clears carry, also A = 2
    593PRG007_A2E3:
    594	STA PlayerProj_ID,X	 ; Set projectile as type 1 or 2
    ⋮
    596	; Set Player Projectile Y velocity
    597	LDA #$03	 ; A = $03 (Fireballs are thrown down)
    598	BCS PRG007_A2EC	 ; If Player is NOT wearing Hammer Suit, jump to PRG007_A2EC
    599	LDA #-$03	 ; A = -$03 (Hammers are thrown up)
    ⋮
    
    PRG/prg007.asm lines 586–601 at 09b1bd8 · upstream ↗
    3184	.word SObj_Fireball	; 04: Nipper fireball
    3185	.word SObj_Fireball	; 05: Piranha fireball
    ⋮
    3192	.word SObj_Fireball	; 0C: Fire bro bouncing fireball
    ⋮
    3198	.word SObj_Fireball	; 12: Fire Chomp's fire
    
    PRG/prg007.asm lines 3184–3198 at 09b1bd8 · upstream ↗
    5213PRG007_BA6E:
    ⋮
    5215	; Set fireball attributes
    5216	STA Sprite_RAM+$02,Y
    ⋮
    5218	LDX <SlotIndexBackup	 ; X = special object slot index
    ⋮
    5220	LDA <Player_Suit
    5221	CMP #$06
    5222	BNE PRG007_BA8F	 ; If Player is not wearing the Hammer Suit, jump to PRG007_BA8F
    ⋮
    5224	LDA Player_IsDucking
    5225	BEQ PRG007_BA8F	 ; If Player is NOT ducking (immunity to fireballs), jump to PRG007_BA8F
    ⋮
    5227	LDA Player_StarInv
    5228	PHA		 ; Save Player's Star Man invincibility status
    ⋮
    5230	; Collide with it like Player were invincible!  (Visually the shell protects him)
    ⋮
    
    PRG/prg007.asm lines 5213–5242 at 09b1bd8 · upstream ↗
    4805PRG007_B836:
    4806	LDA Player_StarInv
    4807	BNE PRG007_B844	 ; If Player is Star Man invincible, jump to PRG007_B844
    ⋮
    4809	JMP Player_GetHurt	 ; Hurt Player and don't come back!
    ⋮
    4811SpecialObj_Remove:
    ⋮
    4813	; Remove special object
    4814	LDA #$00
    4815	STA SpecialObj_ID,X
    ⋮
    4817PRG007_B843:
    4818	RTS		 ; Return
    ⋮
    4820PRG007_B844:
    ⋮
    4822	; Player is invincible; destroy the special object!
    ⋮
    
    PRG/prg007.asm lines 4805–4824 at 09b1bd8 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  39. ^Holding only Down on a slope starts a slide, except in the Frog or Hammer suit (bit 1 of PowerUp_Ability) or Kuribo's Shoe. Each update the slope's push is added to the slide speed, which is capped at $40 and then loses 1 toward 0, so it tops out at $3F.CodeSouthbird's SMB3 disassemblyrevised
    How we know
    5990PRG008_BBBF:
    5991	LDA Player_Slide
    5992	BNE PRG008_BBE0	 ; If Player is sliding, jump to PRG008_BBE0
    ⋮
    5994	; Check ability to slide
    ⋮
    5996	TXA		 ; Effect on velocity -> 'A'
    5997	BEQ PRG008_BC0D	 ; If no effect (flat ground), jump to PRG008_BC0D
    ⋮
    5999	LDY <Player_Suit
    6000	LDA PowerUp_Ability,Y
    6001	AND #$02	 
    6002	BNE PRG008_BC0D	 ; If the Player's suit CANNOT slide on slopes, jump to PRG008_BC0D
    ⋮
    6004	LDA Player_Kuribo
    6005	BNE PRG008_BC0D	 ; If Player is wearing Kuribo's shoe, jump to PRG008_BC0D
    ⋮
    
    PRG/prg008.asm lines 5990–6017 at 09b1bd8 · upstream ↗
    6024	CMP #$40
    6025	BLS PRG008_BBFD	 ; If magnitude of Player_Slide < $40, jump to PRG008_BBFD
    ⋮
    6037	DEC Player_Slide ; Player_Slide--
    6038	BPL PRG008_BC08	 ; If Player_Slide >= 0, jump to PRG008_BC08
    ⋮
    6041	INC Player_Slide
    6042	INC Player_Slide
    
    PRG/prg008.asm lines 6024–6042 at 09b1bd8 · upstream ↗
    1590	Player_Slide:		.ds 1	; Positive values sliding forward, negative values sliding backward; directly sets Player_XVel
    
    smb3.asm line 1590 at 09b1bd8 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-21.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  40. ^Touching a shell as a statue or in Kuribo's Shoe kicks it. Otherwise the touch does nothing while he is already holding something; with B held he picks the shell up, and without B he kicks it. A carried shell is kicked when B is let go, except while he is in a pipe or dying. A kicked shell gets 3 px/frame ($30) the way he faces, or for a shell on the ground away from him, plus half his speed when he moves the same way. A Bob-omb is thrown instead (bobomb-throw), and a carried shell let go against a wall dies (shell-wall-kill).CodeSouthbird's SMB3 disassemblyrevised
    How we know
    4042Object_HoldKickOrHurtPlayer:
    ⋮
    4044	LDA Objects_State,X
    4045	CMP #OBJSTATE_SHELLED
    4046	BNE PRG000_D355	 ; If object state is not Shelled, jump to PRG000_D355 (hurt Player!)
    ⋮
    4048	LDA Player_Kuribo
    4049	ORA Player_Statue
    4050	BEQ PRG000_D343	 ; If Player is NOT in Kuribo's shoe and NOT in a statue, jump to PRG000_D343
    4051	JMP PRG000_D2A2	 ; Otherwise, jump to PRG000_D2A2
    ⋮
    4053PRG000_D343:
    4054	LDA Player_ISHolding_OLD
    4055	BNE PRG000_D39F	 ; If Player WAS holding something, jump to PRG000_D39F (RTS)
    ⋮
    4057	BIT <Pad_Holding
    ⋮
    
    PRG/prg000.asm lines 4042–4066 at 09b1bd8 · upstream ↗
    2794ObjectKickXVelMoving:	.byte -$30, $30
    
    PRG/prg000.asm line 2794 at 09b1bd8 · upstream ↗
    2810ObjState_Held:
    2811	LDA <Player_IsDying 
    2812	BEQ PRG000_CE28	 ; If Player is NOT dying, jump to PRG000_CE28
    ⋮
    2814	JMP PRG000_CF98	 ; Jump to PRG000_CF98 (just draw held object) 
    ⋮
    2816PRG000_CE28:
    2817	JSR Object_ShellDoWakeUp ; Wake up while Player is holding object... 
    2818	BIT <Pad_Holding 
    2819	BVC Player_KickObject	 ; If Player is NOT holding B button, jump to Player_KickObject  
    ⋮
    2821PRG000_CE2F:
    2822	JMP PRG000_CEEF	 ; Jump to PRG000_CEEF
    ⋮
    2825Player_KickObject:
    2826	LDA Level_PipeMove	 
    ⋮
    
    PRG/prg000.asm lines 2810–2849 at 09b1bd8 · upstream ↗
    2934PRG000_CEB4:
    ⋮
    2936	; Object kicked not against wall...
    ⋮
    2938	LDY #0	 	; Y = 0
    ⋮
    2940	LDA <Player_FlipBits
    2941	BEQ PRG000_CEBB	; If Player has not turned around, jump to PRG000_CEBB
    ⋮
    2943	INY		; Y = 1
    ⋮
    2945PRG000_CEBB:
    2946	JMP PRG000_CEC6	; Jump to PRG000_CEC6
    ⋮
    2948PRG000_CEBE:
    ⋮
    2950	; Object kicked, was not held
    ⋮
    2952	; Make sure Player is facing object he's kicking
    2953	JSR Level_ObjCalcXDiffs
    ⋮
    
    PRG/prg000.asm lines 2934–2988 at 09b1bd8 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  41. ^Kicking a carried object other than a Bob-omb or an ice block first gives it a speed of 1 the way Mario faces and tests it against the level. If it touches a wall it dies instead, flying up at -$40, for 100 points; otherwise the kick goes ahead (shell-carry).CodeSouthbird's SMB3 disassemblyrevised
    How we know
    2880PRG000_CE79:
    ⋮
    2882	; Anything besides a Bob-omb...
    ⋮
    2884	; Clear Objects_KillTally 
    2885	LDA #$00	
    2886	STA Objects_KillTally,X
    ⋮
    2888	LDA Objects_State,X
    2889	CMP #OBJSTATE_HELD
    2890	BNE PRG000_CEBE	 ; If object's state is not Held, jump to PRG000_CEBE
    ⋮
    2892	; This object is being held by Player...
    ⋮
    2894	LDA Level_ObjectID,X
    2895	CMP #OBJ_ICEBLOCK
    2896	BEQ PRG000_CEB4	 ; If this is an ice block, jump to PRG000_CEB4
    ⋮
    
    PRG/prg000.asm lines 2880–2933 at 09b1bd8 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  42. ^Kicking a Bob-omb, lit or not, throws it instead: it keeps its normal state, bounces up at -$20, and moves away from Mario at $28, or at $30 plus half his speed when he moves that way.CodeSouthbird's SMB3 disassemblyrevised
    How we know
    2794ObjectKickXVelMoving:	.byte -$30, $30
    ⋮
    2796	; Set appropriate flip bits based on object's relative position to Player
    2797PlayerKickFlipBits:	.byte $00, $40
    ⋮
    2799	; X velocities depending on kick direction
    2800BobombKickXVel:	.byte -$28, $28
    
    PRG/prg000.asm lines 2794–2800 at 09b1bd8 · upstream ↗
    2844	CMP #OBJ_BOBOMBEXPLODE
    2845	BEQ PRG000_CE54	 ; If this is a Bob-omb ready to explode, jump to PRG000_CE54
    ⋮
    2847	CMP #OBJ_BOBOMB	 
    2848	BNE PRG000_CE79	 ; If this is NOT a Bob-omb, jump to PRG000_CE79
    ⋮
    2850PRG000_CE54:
    ⋮
    2852	; Bob-ombs only...
    ⋮
    2854	; State remains "normal"
    2855	LDA #OBJSTATE_NORMAL
    2856	STA Objects_State,X
    ⋮
    2858	; Set Y vel to -$20 (bounce up)
    2859	LDA #-$20
    2860	STA <Objects_YVel,X
    ⋮
    
    PRG/prg000.asm lines 2844–2879 at 09b1bd8 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  43. ^ abIn this release a hit takes Mario down one step: from the Fire Flower or any suit (Raccoon, Frog, Tanooki, Hammer) back to Super Mario, from Super to small, and as small Mario he dies. In Kuribo's Shoe the hit takes the shoe and he keeps his form. A hit is ignored while he blinks from the last one, is a statue, has a Starman, has just lost a suit, or the game is halted, and while the debug no-hit flag is set.CodeSouthbird's SMB3 disassembly
    How we know
    5620Player_GetHurt:
    5621	; If Player is...
    5622	LDA Player_FlashInv		; ... flashing invincible ...
    5623	ORA Player_Statue		; ... a statue ...
    5624	ORA Player_StarInv		; ... invincible by star ...
    5625	ORA Player_SuitLost		; ... just lost a power-up suit ...
    5626	ORA <Player_HaltGame		; ... gameplay halted ...
    5627	ORA Player_HaltTick		; ... Player halted ...
    5628	ORA Player_DebugNoHitFlag	; ... debug invincibility flag is set (unused) ...
    5629	BNE PRG000_D9B7	 ; ... then jump to PRG000_D9B7 (RTS)
    ⋮
    5631	JMP PRG000_DA15	 ; Jump to PRG000_DA15 (skips lost/dead Japanese version code)
    
    PRG/prg000.asm lines 5620–5632 at 09b1bd8 · upstream ↗
    5673PRG000_DA15:
    5674	LDA Player_Kuribo
    5675	BNE PRG000_DA32	 ; If Player is in Kuribo's shoe, jump to PRG000_DA32
    ⋮
    5677	LDA <Player_Suit
    5678	CMP #PLAYERSUIT_FIRE		; SB: Change this to "PLAYERSUIT_SUPERSUITBEGIN" and you restore Japanese version's "always shrink" code!!
    5679	BLS PRG000_DA4E	 ; If Player is Big or small, jump to PRG000_DA4E
    ⋮
    5690	LDA #$02	; Return to Big (SB: Would be small in Japanese version!!)
    5691	JMP PRG000_DA44	 ; Jump to PRG000_DA44
    ⋮
    5705	LDA #$00
    5706	STA <Temp_Var1	 ; Temp_Var1 = 0
    ⋮
    5708	JSR Player_LoseKuribo	 ; Setup effect of Kuribo's shoe "flying off"
    5709	JMP PRG000_DA47	 ; Jump to PRG000_DA47
    ⋮
    
    PRG/prg000.asm lines 5673–5755 at 09b1bd8 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  44. ^A hit that doesn't kill Mario, including one that only takes Kuribo's Shoe, sets Player_FlashInv to $71, and Player_GetHurt ignores hits while it is nonzero. Player_Draw counts it down each time it runs, blinking Mario in 2-tick halves.CodeSouthbird's SMB3 disassembly
    How we know
    5620Player_GetHurt:
    5621	; If Player is...
    5622	LDA Player_FlashInv		; ... flashing invincible ...
    ⋮
    5629	BNE PRG000_D9B7	 ; ... then jump to PRG000_D9B7 (RTS)
    
    PRG/prg000.asm lines 5620–5629 at 09b1bd8 · upstream ↗
    5744PRG000_DA6D: 
    5745	LDA #$71
    5746	STA Player_FlashInv	 ; Player_FlashInv = $71
    
    PRG/prg000.asm lines 5744–5746 at 09b1bd8 · upstream ↗
    423	LDA Player_FlashInv
    424	BEQ PRG029_CED7	 	; If Player_FlashInv = 0, jump to PRG029_CED7
    ⋮
    426	DEC Player_FlashInv	; Player_FlashInv--
    427	AND #$02	 
    428	BEQ PRG029_CED7	 	; Every 2 ticks, draw Player
    
    PRG/prg029.asm lines 423–429 at 09b1bd8 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-21.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

  45. ^Mario's top ground speed is $18 walking and $28 running (B held).CodeXkeeper0/smb1 · Jdaster64 n.d.
    How we know
    4873MaxRightXSpdData:
    4874	.db $28, $18, $10
    
    src/prg.asm lines 4873–4874 at 1cc3c92 · upstream ↗
    5009	AND #B_Button
    5010	BNE SetRTmr                                  ; if pressed, skip ahead to set timer
    ⋮
    5014	INY                                          ; if running timer not set or level type is water,
    
    src/prg.asm lines 5000–5014 at 1cc3c92 · upstream ↗
    Maximum walk speed (normal, castle cutscene) 01900 | Maximum running speed 02900
    SMB PHYSICS 101 / GROUND PHYSICS, Mario table · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-20.

    Checked by a second AI model, 2026-10-27.

    In the claim ledger

  46. ^Measured from a standstill in World 1-1, Mario reaches $18 on frame 40 walking and $28 on frame 45 running, and let go at those speeds he stops in 40 and 49 frames.VerifiedXkeeper0/smb1revised
    How we know
    4877FrictionData:
    4878	.db $e4, $98, $d0
    
    src/prg.asm lines 4877–4878 at 1cc3c92 · upstream ↗
    5042	LDA PlayerFacingDir
    
    src/prg.asm lines 5042–5047 at 1cc3c92 · upstream ↗
    4870MaxLeftXSpdData:
    4871	.db $d8, $e8, $f0
    ⋮
    4873MaxRightXSpdData:
    4874	.db $28, $18, $10
    
    src/prg.asm lines 4870–4874 at 1cc3c92 · upstream ↗
    5029	STA MaximumLeftSpeed
    ⋮
    5036	STA MaximumRightSpeed
    
    src/prg.asm lines 5028–5036 at 1cc3c92 · upstream ↗

    Measured by a script in MesenCE 2.2.1 (build 4b8a196), on . It fails if the result disagrees with the claim.

    The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-25.

    Checked by a second AI model, 2026-10-21.

    Revised after a check by a second AI model, 2026-10-25.

    In the claim ledger

  47. ^PlayerYSpdData starts a jump at −4 px/frame (rows 0–2) or −5 px/frame (rows 3–4).CodeXkeeper0/smb1 · Jdaster64 n.d.
    How we know
    4864PlayerYSpdData:
    4865	.db $fc, $fc, $fc, $fb, $fb, $fe, $ff
    
    src/prg.asm lines 4864–4865 at 1cc3c92 · upstream ↗
    4972	LDA PlayerYSpdData,y
    4973	STA Player_Y_Speed
    
    src/prg.asm lines 4972–4973 at 1cc3c92 · upstream ↗
    04000 | 04000 | 05000
    JUMPING/VERTICAL PHYSICS, Mario table, Initial Velocity (−Y) · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-20.

    Checked by a second AI model, 2026-10-27.

    In the claim ledger

  48. ^In rows 0–1, the standing and slow jumps, held gravity is $20/256 = 0.125 px/frame².CodeXkeeper0/smb1
    How we know
    4858JumpMForceData:
    4859	.db $20, $20, $1e, $28, $28, $0d, $04
    
    src/prg.asm lines 4858–4859 at 1cc3c92 · upstream ↗
    6681	LDA SprObject_Y_MoveForce,x
    6682	CLC
    6683	ADC $00                                      ; add downward movement amount to contents of $0433
    6684	STA SprObject_Y_MoveForce,x
    6685	LDA SprObject_Y_Speed,x                      ; add carry to vertical speed and store
    6686	ADC #$00
    
    src/prg.asm lines 6681–6687 at 1cc3c92 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-20.

    Checked by a second AI model, 2026-10-27.

    In the claim ledger

  49. ^JumpSwimSub swaps in falling gravity, never back, once speed is zero or downward, or once the jump has risen at least DiffToHaltJump on a frame when A is not held, or was not held the frame before.CodeXkeeper0/smb1 · Jdaster64 n.d.revised
    How we know
    4757	BPL DumpFall                                 ; or moving downwards, branch to falling
    ⋮
    4760	AND PreviousA_B_Buttons                      ; and was pressed in previous frame
    4761	BNE ProcSwim                                 ; if so, branch elsewhere
    ⋮
    4765	CMP DiffToHaltJump                           ; compare to value set here to see if player is in mid-jump
    ⋮
    4768	LDA VerticalForceDown                        ; otherwise dump falling into main fractional
    4769	STA VerticalForce
    
    src/prg.asm lines 4756–4769 at 1cc3c92 · upstream ↗
    so long as they are moving upward in a jump, holding “A” will make them rise more slowly
    JUMPING/VERTICAL PHYSICS · archived copy ↗

    Checked against the evidence by its author, an AI model, 2026-10-27.

    Revised after a check by a second AI model, 2026-10-27: "Not held both this frame and last" read two ways; held gravity stays only while A is held on both frames.

    In the claim ledger

  50. ^In rows 0–1, falling gravity is $70/256 = 0.4375 px/frame².CodeXkeeper0/smb1
    How we know
    4861FallMForceData:
    4862	.db $70, $70, $60, $90, $90, $0a, $09
    
    src/prg.asm lines 4861–4862 at 1cc3c92 · upstream ↗
    6683	ADC $00                                      ; add downward movement amount to contents of $0433
    6684	STA SprObject_Y_MoveForce,x
    
    src/prg.asm lines 6681–6687 at 1cc3c92 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-20.

    Checked by a second AI model, 2026-10-27.

    In the claim ledger

  51. ^Measured in the game with A held, Mario's jumps peak at 66 px standing, 71 px walking, and 83 px running.VerifiedXkeeper0/smb1revised
    How we know
    4758	LDA A_B_Buttons
    ⋮
    4763	SEC
    ⋮
    4767DumpFall:
    ⋮
    4769	STA VerticalForce
    
    src/prg.asm lines 4756–4769 at 1cc3c92 · upstream ↗
    6681	LDA SprObject_Y_MoveForce,x
    6682	CLC
    ⋮
    6684	STA SprObject_Y_MoveForce,x
    ⋮
    6686	ADC #$00
    6687	STA SprObject_Y_Speed,x
    ⋮
    6690	LDA SprObject_Y_MoveForce,x
    
    src/prg.asm lines 6664–6696 at 1cc3c92 · upstream ↗
    4958	STA DiffToHaltJump
    
    src/prg.asm lines 4957–4958 at 1cc3c92 · upstream ↗

    Measured by a script in MesenCE 2.2.1 (build 4b8a196), on . It fails if the result disagrees with the claim.

    The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-25.

    Revised after a check by a second AI model, 2026-10-25.

    In the claim ledger

  52. ^In the air X_Physics takes the running cap $28 and acceleration $E4 while Mario's speed is $19 or more, and the walking cap $18 with $98 (or $D0 while RunningSpeed is set) below it, whatever B does.CodeXkeeper0/smb1
    How we know
    4991X_Physics:
    4992	LDY #$00
    4993	STY $00                                      ; init value here
    4994	LDA Player_State                             ; if mario is on the ground, branch
    4995	BEQ ProcPRun
    4996	LDA Player_XSpeedAbsolute                    ; check something that seems to be related
    4997	CMP #$19                                     ; to mario's speed
    4998	BCS GetXPhy                                  ; if =>$19 branch here
    4999	BCC ChkRFast                                 ; if not branch elsewhere
    
    src/prg.asm lines 4991–4999 at 1cc3c92 · upstream ↗
    5013ChkRFast:
    5014	INY                                          ; if running timer not set or level type is water,
    5015	INC $00                                      ; increment Y again and temp variable in memory
    5016	LDA RunningSpeed
    5017	BNE FastXSp                                  ; if running speed set here, branch
    
    src/prg.asm lines 5013–5023 at 1cc3c92 · upstream ↗

    Measured by a script in MesenCE 2.2.1 (build 4b8a196), on . It fails if the result disagrees with the claim.

    Checked against the evidence by its author, an AI model, 2026-10-21.

    Checked by a second AI model, 2026-10-21.

    In the claim ledger

  53. ^Power-ups hidden in bricks and invisible blocks change Mario: the Magic Mushroom into Super Mario, the Fire Flower into Fiery Mario, who throws fireballs with B, and the Starman into Invincible Mario. A hit turns Super or Fiery Mario back into regular Mario, who flickers and can't be hurt for a short while. An extra life comes from a 1-up mushroom or 100 coins.ManualSuper Mario Bros. instruction bookletrevised
    How we know
    If you come across mushrooms who have been turned … into bricks or made invisible, they reward you by … *When Super Mario or Fiery Mario are bumped into by a bad guy, they don't die … but simply return to their old regular-Mario selves. … For a short while after turning back into his regular-Mario self, Mario flickers. … During this time, he can not be killed by bad guys (he's invincible).
    Mario's Friends · archived copy ↗
    Fireballs ...... After you pick up the fire flower, you can use this button to throw
    2. Names of Controller Parts, B button · archived copy ↗
    If Mario picks up 1 up mushroom, he gets an extra life. … If Mario picks up 100 coins, he gets an extra life.
    Bonus Prizes · archived copy ↗

    The quote matches our archived copy.

    Revised after a check by a second AI model, 2026-10-26.

    In the claim ledger

  54. ^Player_GetHurt jumps over a block that Southbird's comments mark as the Japanese version's code, and a comment says the Japanese version "always" shrinks Mario: in that block, any hit on a powered Mario queues small Mario, with the Frog, Tanooki, and Hammer suits flying off.Code notesSouthbird's SMB3 disassembly
    How we know
    5631	JMP PRG000_DA15	 ; Jump to PRG000_DA15 (skips lost/dead Japanese version code)
    ⋮
    5633	;;;;;;;;;;;;;; Begin SMB3-J Only Code ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ⋮
    5635	; SB: Lost/Dead Code -- This was the Japanese version suit loss code
    5636	; For detail why it was removed, see PRG007 LostShoe_Pattern
    5637; $D9EC
    5638	LDA Player_Kuribo
    5639	BNE PRG000_D9F7	 ; If Player is in Kuribo's Shoe, jump to PRG000_D9F7
    ⋮
    5641	; Player is NOT in Kuribo's Shoe...
    ⋮
    5643	LDA <Player_Suit
    5644	CMP #PLAYERSUIT_SUPERSUITBEGIN
    5645	BLS PRG000_DA4E	 ; If Player is not in one of the Super Suits, jump to PRG000_DA4E
    ⋮
    5656	LDY <Player_Suit	; Y = Player's power up
    ⋮
    
    PRG/prg000.asm lines 5631–5671 at 09b1bd8 · upstream ↗
    5678	CMP #PLAYERSUIT_FIRE		; SB: Change this to "PLAYERSUIT_SUPERSUITBEGIN" and you restore Japanese version's "always shrink" code!!
    
    PRG/prg000.asm line 5678 at 09b1bd8 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-26.

    Checked by a second AI model, 2026-10-26.

    In the claim ledger

Sources

Code

Primary

  • Nintendo. 1988. “スーパーマリオブラザーズ3 取扱説明書 (HVC-UM).” HVC-UM instruction booklet, 48 PDF pp. Nintendo. original · archived · licence, all uses
  • America, Nintendo of. n.d. “NES Games (Nintendo of America release list).” Nintendo of America. original · archived · licence, all uses
  • America, Nintendo of. 1990. “Super Mario Bros. 3 instruction booklet (NES-UM-USA-1).” NES-UM-USA-1 instruction booklet, 48 PDF pp. Nintendo of America. original · archived · licence, all uses
  • Shigeru, Miyamoto,, Tezuka, Takashi, Kondo, Koji, Sao, and Akinori (interviewer). 2016. “Nintendo Classic Mini: NES special interview – Volume 3: Super Mario Bros.” Nintendo Classic Mini: NES special interview, Volume 3. Nintendo. original · archived · licence, all uses
  • Nintendo. 1985. “Super Mario Bros. instruction booklet (NES).” Super Mario Bros. instruction booklet, pp. 1-16. Nintendo of America. original · archived · licence, all uses

Secondary

  • Famitsu.com editors. n.d. “スーパーマリオブラザーズ3 [ファミコン] / ファミ通.com title page.” Enterbrain / Gzbrain. original · archived · licence, all uses
  • Steve, Harris,, Semrad, Ed, Alessi, Martin, Stockhausen, and Jim. 1990. “Electronic Gaming Monthly, issue 9 (April 1990): Super Mario Bros. 3 review.” Electronic Gaming Monthly, no. 9, p. 10 ("Review Crew"). Sendai Publications. original · archived · licence, all uses
  • Mean Machines editors. 1991. “Mean Machines, issue 10 (July 1991): Nintendo's Ace Line-Up.” Mean Machines, no. 10, p. 10. EMAP. original · archived · licence, all uses
  • Julian, Rignall, and Mean Machines editors. 1991. “Mean Machines, issue 13 (October 1991): Super Mario Bros. 3 review.” Mean Machines, no. 13, pp. 56-59. EMAP. original · archived · licence, all uses
  • Nintendo Power editors. 1990. “Nintendo Power: Super Mario Bros. 3 strategy guide (1990).” Nintendo Power special strategy guide, pp. 3-80. Nintendo of America. original · archived · licence, all uses
  • Nintendo Power editors. 1990. “Nintendo Power, issue 11 (March/April 1990): Super Mario Bros. 3 feature.” Nintendo Power, vol. 11 (March/April 1990), pp. 6-13, 20, 40-41. Nintendo of America. original · archived · licence, all uses
  • Nintendo Power editors. 1990. “Nintendo Power, issue 10 (January/February 1990): The Making of Super Mario Bros. 3.” Nintendo Power, vol. 10 (January/February 1990), pp. 20-23. Nintendo of America. original · archived · licence, all uses
  • staff, Famicom Tsūshin editorial. 1989. “Famicom Tsūshin, no. 67 (3 February 1989): 1988 Best Hit Game Awards.” Famicom Tsūshin (ファミコン通信), no. 67 (1989-02-03), pp. 6-9; the action award is on p. 8. ASCII Corporation. original · archived · licence, all uses
  • Nintendo Power editors. 1989. “Nintendo Power, issue 9 (1989-11).” Nintendo Power, vol. 9. Nintendo of America. original · archived · licence, all uses
  • Sheff and David. 1999. “Game Over, Press Start to Continue (1999 edition).” Prologue 'A New Leader of the Club', pp. 3-5; chapter 'The Grinch Who Stole Christmas', pp. 190-191. CyberActive Media Group. original · archived · licence, all uses
  • staff, Chicago Tribune. 1990. “U.S. Parents! Get Ready For The 3rd Invasion Of Super Mario Bros.” Chicago Tribune, 29 March 1990 (features). Chicago Tribune. original · archived · licence, all uses
  • Nintendo Power editors. 1990. “Nintendo Power, issue 12 (1990-05).” Nintendo Power, vol. 12 (May/June 1990). Nintendo of America. original · archived · licence, all uses
  • Nintendo Power editors. 1991. “Nintendo Power, issue 31 (1991-12).” Nintendo Power, vol. 31. Nintendo of America. original · archived · licence, all uses
  • Nintendo Power editors. 1994. “Nintendo Power, issue 67 (1994-12).” Nintendo Power, vol. 67. Nintendo of America. original · archived · licence, all uses
  • Davis, Ziff. 1997. “Electronic Gaming Monthly, issue 100 (November 1997).” original · archived · licence, all uses
  • staff, IGN. n.d. “Top 100 NES Games: 1, Super Mario Bros. 3.” IGN Entertainment. original · archived · licence, all uses
  • Jdaster64. n.d. “A Complete Guide to SMB's Physics Engine.” original · archived · licence, all uses