21

When I was playing Super Mario Bros 1, I - as Super Mario - hit a block containing a fire flower. I then got hit by an enemy, changing me into small Mario, but the fire flower was still on-screen.

When I touched the fire flower as Small Mario, it just turned me into Super Mario instead of Fire Mario.

Why does this happen?

1
25

For a technical explanation, if we look at the disassembled code for Super Mario Bros, we can see that the routine for collecting fire flowers and super mushrooms is exactly the same.

HandlePowerUpCollision:
  jsr EraseEnemyObject    ;erase the power-up object
  lda #$06
  jsr SetupFloateyNumber  ;award 1000 points to player by default
  lda #Sfx_PowerUpGrab
  sta Square2SoundQueue   ;play the power-up sound
  lda PowerUpType         ;check power-up type
  cmp #$02
  bcc Shroom_Flower_PUp   ;if mushroom or fire flower, branch
  cmp #$03
  beq SetFor1Up           ;if 1-up mushroom, branch
  lda #$23                ;otherwise set star mario invincibility
  sta StarInvincibleTimer ;timer, and load the star mario music
  lda #StarPowerMusic     ;into the area music queue, then leave
  sta AreaMusicQueue
  rts

Shroom_Flower_PUp:
  lda PlayerStatus    ;if player status = small, branch
  beq UpToSuper
  cmp #$01            ;if player status not super, leave
  bne NoPUp
  ldx ObjectOffset    ;get enemy offset, not necessary
  lda #$02            ;set player status to fiery
  sta PlayerStatus
  jsr GetPlayerColors ;run sub to change colors of player
  ldx ObjectOffset    ;get enemy offset again, and again not necessary
  lda #$0c            ;set value to be used by subroutine tree (fiery)
  jmp UpToFiery       ;jump to set values accordingly

I would say this is intended behavior. If you somehow could get a super mushroom onscreen while you were Super Mario, he would turn into Firey Mario. Most likely, the rationale is to save space on the ROM.

0
-3

Yes as the weakened Mario the game script only allows 1 stage progression from in level items so anything for small Mario(1 hit to kill) go to super mario(2 hit to kill), then only if the item is tir 3 fire flower will grant the special mario(3 hit to kill).

-6

I always saw it as a 3 stages of Mario

Mini - Big - Fire

And the powerups do not just do +1 to the stage counter. They just boost you up to the appropriate stage (if the stage is higher than the current.)

Like if you get a mushroom and already is on the Big stage, you will not go up to fire, you stay big.

So when you touch a fire flower, that you would be Mini or big it boosts you up to Fire stage. Its like if the mushroom is always included in the flower.

3
  • youtube.com/watch?v=v2lVgHaRDf8 demonstrates that they are two separate flags, with hilarious results if you mess around with them. – phyrfox Mar 17 at 1:54
  • 8
    The question is why does it not work the way you've described. – wizzwizz4 Mar 17 at 6:53
  • 5
    How is this an up voted answer ? OP clearly states it did not work like this in his interaction. I am so confused by this site sometimes. – GamerGypps Mar 17 at 8:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.