Claim set · data/claims/super-mario-bros-2-ddp.yaml

Super Mario Bros. 2 from Yume Kōjō Doki Doki Panic (both games compared)

Game: Super Mario Bros. 2.

IGN's history says Mario, Luigi, Peach, and Toad were built on the models of Doki Doki Panic's Brother, Mama, Sister, and Papa. The two manuals describe the four in parallel terms: Mario and Imajin jump lower with an item; Luigi and Mama jump high and far but slowly; Toad and Papa jump lowest, but an item changes neither their jump nor their running speed; and the Princess and Lina, third in jumping power, float for about 1.5 seconds while A is held. The manuals disagree on the highest jump: Doki Doki Panic's gives it to Imajin (いちばん高く), with Mama as high, where Super Mario Bros. 2's calls Mario average and gives it to Luigi. super-mario-bros-2-ddp/characters

Manual夢工場ドキドキパニック (Yume Kōjō: Doki Doki Panic) instruction booklet · p. 14, 4人のジャンプ力 (the four players' jumping power) — the four differ in jumping power and its nature (our translation); the page names Imajin (イマジン), Lina (リーナ), Mama (ママ), and Papa (パパ) beside their descriptions; checked in the audit against an OCR of the page image4人のジャンプ力や、その性質には違いがあるのだ。夢工場ドキドキパニック (Yume Kōjō: Doki Doki Panic) instruction booklet · p. 14, 4人のジャンプ力 (the four players' jumping power), Imajin — he can jump the highest, but carrying an item his height drops a little (our translation); checked in the audit against an OCR of the page imageいちばん高くジャンプできるんだ。でもアイテムをかついだとき、跳べる高さは少しだけ落ちる。夢工場ドキドキパニック (Yume Kōjō: Doki Doki Panic) instruction booklet · p. 14, 4人のジャンプ力 (the four players' jumping power), Lina — her jumping power is third; holding A she can walk in the air for about 1.5 seconds (our translation); checked in the audit against an OCR of the page imageジャンプ力は3番目だ。Ⓐボタンを押し続けると、約1.5秒くらい空中歩行ができる。夢工場ドキドキパニック (Yume Kōjō: Doki Doki Panic) instruction booklet · p. 14, 4人のジャンプ力 (the four players' jumping power), Mama — she jumps as high as Imajin, and her slow jump goes farther (our translation); checked in the audit against an OCR of the page imageイマジンと同じ高さに跳べる。スロージャンプできるので、もっと遠くまでいける。夢工場ドキドキパニック (Yume Kōjō: Doki Doki Panic) instruction booklet · p. 14, 4人のジャンプ力 (the four players' jumping power), Papa — his jump is the lowest, but he is strong, so an item changes neither his jump nor his running speed (our translation); checked in the audit against an OCR of the page image太っているので、ジャンプ力はいちばん低い。でもパワーがあるから、アイテムをかついでも跳べる高さ、走る速さは変わらない。Super Mario Bros. 2 instruction booklet (North America) · Know what each character can do, Jumping powerMario Average jumping power in almost all situations. But, the height he can jump decreases a little when he is carrying an item.Super Mario Bros. 2 instruction booklet (North America) · Know what each character can do, Jumping powerLuigi He can jump the highest and can go much farther but he jumps slowly.Super Mario Bros. 2 instruction booklet (North America) · Know what each character can do, Jumping powerToad He has the least jumping power. But since he has lifting power, the height he can jump and the speed he can run does not change even if he is carrying an item.Super Mario Bros. 2 instruction booklet (North America) · Know what each character can do, Jumping powerShe is No.3 in jumping power. When you hold down the A button, she can float in the air for about 1.5sec.IGN Presents: The History of Super Mario Bros. · Super Mario Bros. 2Mario, Luigi, Peach and Toad were built on Brother, Mama, Sister and Papa's models.

IGN gives family roles, not names: pairing Mario with Imajin and the Princess with Lina rests on its "Brother" and "Sister" and on the manuals' matching descriptions. The stats table (stats-table) matches each SMB2 character's block to one on the Doki disk. The five Doki manual quotes were checked in the audit (2026-10-26) against an OCR of the page image, PDF p. 14 (printed p. 14).

Cited by: Super Mario Bros. 2

Doki Doki Panic's disk holds Super Mario Bros. 2's character stats table, 92 bytes in the same layout. Mario's, Toad's, and the Princess's 23 bytes each equal the first, second, and fourth blocks on the disk. Luigi's block, the third, differs only in its six take-off speeds, each $02 lower in SMB2, so read as SMB2 reads them, Luigi leaves the ground 0.125 px/frame faster than the disk's block would. The four offsets before the table hold the same values, with the last two swapped. super-mario-bros-2-ddp/stats-table

About: Super Mario Bros. 2 Jump

Value
{
 "equalBlocks": 3,
 "changedBytes": 6,
 "step": 2
}
CodeSuper Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-a-b.asm#L264-L268StatOffsets: .db (MarioStats - CharacterStats) .db (PrincessStats - CharacterStats) .db (ToadStats - CharacterStats) .db (LuigiStats - CharacterStats)Super Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-a-b.asm#L321-L333LuigiStats: … .db $D6 ; Jump Speed, still - no object .db $D6 ; Jump Speed, still - with object .db $C9 ; Jump Speed, charged - no object .db $C9 ; Jump Speed, charged - with object .db $D0 ; Jump Speed, running - no object .db $D4 ; Jump Speed, running - with objectSuper Mario Bros. 2 (USA) · 0x143dd-0x1440a — MarioStats and ToadStats, $83CD-$83FA in bank $AYume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x10116-0x10143 — the same 46 bytes in TEMP-PRG, $60EF-$611CSuper Mario Bros. 2 (USA) · 0x14422-0x14438 — PrincessStats, $8412-$8428Yume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x1015b-0x10171 — the same 23 bytes in TEMP-PRG, $6134-$614ASuper Mario Bros. 2 (USA) · 0x14411-0x14416 — LuigiStats' six jump speeds, $D6 $D6 $C9 $C9 $D0 $D4Yume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x1014a-0x1014f — the disk's six bytes in that place, $D8 $D8 $CB $CB $D2 $D6 (TEMP-PRG $6123-$6128); the rest of the block equals LuigiStatsSuper Mario Bros. 2 (USA) · 0x143d9-0x143dc — StatOffsets, $00 $45 $17 $2EYume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x10112-0x10115 — the disk's four bytes before the table, $00 $45 $2E $17 (TEMP-PRG $60EB-$60EE)Yume Koujou - Doki Doki Panic (Japan) (DV 2) · 0x10112-0x10171 — DV 2's copy of the offsets and table, equal to DV 1'sChecked by claude, 2026-10-26 — read the four stats blocks and StatOffsets at the pinned commit (each block is pick-up speeds, jump speeds, quicksand jump, floating time, gravities, and run speeds, as smb2/mario-stats); found the 46 bytes of Mario's and Toad's blocks on the DV 1 disk with rom-find-style search and compared the 96 bytes from there byte by byte, DV 1 against DV 2 too. Jump speeds are signed 4.4 fixed point (smb2/velocity-format): $D6 is 2.625 px/frame up, $D8 2.5

Which of Doki Doki Panic's characters each block belongs to comes from the manuals (characters), not from Doki's code: the fourth block holds the only floating time, $3C, and the third the low gravities of Luigi's (Mama's slow jump).

Cited by: Super Mario Bros. 2

Super Mario Bros. 2's manual gives B a third use, running faster, and its code raises the top speed by half while B is held (smb2/run-cap). Doki Doki Panic's manual gives B only lifting and throwing. Both manuals say every character runs at the same speed. super-mario-bros-2-ddp/run-button

About: Super Mario Bros. 2 Running

Manual夢工場ドキドキパニック (Yume Kōjō: Doki Doki Panic) instruction booklet · p. 18, コントローラの使い方 (how to use the controller) — B's first label, lift items and enemies (our translation); checked in the audit against an OCR of the page imageアイテム・敵を持ち上げる夢工場ドキドキパニック (Yume Kōjō: Doki Doki Panic) instruction booklet · p. 18, コントローラの使い方 (how to use the controller) — B's second and last label, throw items and enemies (our translation); checked in the audit against an OCR of the page imageアイテム・敵を投げる夢工場ドキドキパニック (Yume Kōjō: Doki Doki Panic) instruction booklet · p. 15, the running and lifting speeds — everyone's running speed is the same (our translation); checked in the audit against an OCR of the page image走るスピードはみんな同じだけど、Super Mario Bros. 2 instruction booklet (North America) · How to use the controllerPick up items or lift enemies. Throw items or enemies. Go faster.Super Mario Bros. 2 instruction booklet (North America) · Acceleration speed — the OCR reads "8" for BYou can run faster and faster by pressing either the left or right of the control pad and the 8 button at the same time.Super Mario Bros. 2 instruction booklet (North America) · RunningThey all run at the same speed, but if they are carrying somethingSuper Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-0-1.asm#L2848-L2856; 1.5x max speed when the run button is held! loc_BANK0_8DE0: LDA RunSpeedRight, Y BIT Player1JoypadHeld BVC loc_BANK0_8DEC … LSR A CLC ADC RunSpeedRight, Y

SMB2's B test, BIT Player1JoypadHeld and BVC (bytes 24 F7 50), occurs nowhere on either Doki disk, but Doki's code could test B another way, so the disk alone doesn't show the button is absent. Both disks hold the run speeds themselves unchanged (stats-table). The "same speed" both manuals give is the top speed without B, $18 for all four.

Cited by: Super Mario Bros. 2

Both games have the charged crouch jump. Doki Doki Panic's manual says the character flashes while Down is held and then jumps about 1.5 times as high as a standing jump, and Super Mario Bros. 2's manual says the same of its power squat jump. SMB2's code charges it after 60 frames of crouching on the ground (smb2/jump-start). super-mario-bros-2-ddp/crouch-jump

About: Super Mario Bros. 2 Jump

Manual夢工場ドキドキパニック (Yume Kōjō: Doki Doki Panic) instruction booklet · p. 19, ためジャンプ (charged jump) — hold Down and the player flashes; jump then and you rise about 1.5 times as high as a jump on the spot (our translation); read from the page image (PDF p. 19) in the audit, 2026-10-26; the OCR misses it十字ボタンの下を押しているとプレイヤーが点滅する。このときジャンプすると、その場ジャンプの約1.5倍跳び上がれる。Super Mario Bros. 2 instruction booklet (North America) · How to use the controller, Power squat jumpThe player will flash when the bottom of the control pad is pressed and held. When you jump, you will be able to jump 1.5 times higher than regular jumps.Super Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-0-1.asm#L2482-L2486LDA CrouchJumpTimer ; check if crouch jump is charged CMP #$3C BCS loc_BANK0_8C92 … INC CrouchJumpTimer ; increment crouch jump chargeChecked by claude, 2026-10-26 — read the crouch routine (sub_BANK0_8C1A); the timer counts frames of Down held on the ground and stops at $3C

The disk's stats table holds the same charged take-off speeds for three of the four characters (stats-table); Luigi's charged speed is one of the six that changed.

Cited by: Super Mario Bros. 2

Both games start the life meter at two marks and let it grow to four. Doki Doki Panic's manual says so, as does Super Mario Bros. 2's, whose code sets health from a table of three values, two to four marks, by the number of extra marks found, and sets two marks again when a level ends, on a game over, and on a warp. super-mario-bros-2-ddp/life-meter

About: Super Mario Bros. 2 Hit points

Manual夢工場ドキドキパニック (Yume Kōjō: Doki Doki Panic) instruction booklet · p. 16, ライフゲージが0になるとアウト! (out when the life gauge reaches 0) — the life gauge starts at two marks (our translation); checked in the audit against an OCR of the page imageライフゲージは2目盛りから始まるんだ。夢工場ドキドキパニック (Yume Kōjō: Doki Doki Panic) instruction booklet · p. 16, ライフゲージが0になるとアウト! (out when the life gauge reaches 0) — the gauge grows to four marks at most (our translation); checked in the audit against an OCR of the page imageこのゲージは最高4目盛りまで増えるぞ。Super Mario Bros. 2 instruction booklet (North America) · Watch out for Game OverThe life meter starts from the 2nd mark. When the marks are all white, you lose a life. This meter can increase to a maximum of 4 marks.Super Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-e-f.asm#L3314-L3324RestorePlayerToFullHealth: LDY PlayerMaxHealth ; Get player's current max HP LDA PlayerHealthValueByHeartCount, Y ; Get the health value for this amount of hearts STA PlayerHealth RTS PlayerHealthValueByHeartCount: .db PlayerHealth_2_HP .db PlayerHealth_3_HP .db PlayerHealth_4_HPSuper Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-e-f.asm#L1348-L1352ResetAreaAndProcessGameMode_NotTitleCard: LDA #PlayerHealth_2_HP STA PlayerHealth LDA #$00 STA PlayerMaxHealthChecked by claude, 2026-10-26 — read RestorePlayerToFullHealth and ResetAreaAndProcessGameMode, which reaches the reset for the game modes after a level (the Bonus Chance), a warp, and a game over, not after a death's title card; PlayerHealth_2_HP to _4_HP are $1F, $2F, $3F in src/defs.asm

Cited by: Super Mario Bros. 2

Super Mario Bros. 2 shrinks a character whose life meter is down to one mark. Chris Kohler's report on Kensuke Tanabe's talk says it was added because growing and shrinking was one of Mario's best-known traits. SMB2's cartridge keeps a full-size and a small tile bank for each character; Doki Doki Panic's disk has one tile file for each of its four, IMAJIN-C, LINA-C, MAMA-C, and PAPA-C, of 832 bytes. super-mario-bros-2-ddp/shrinking

About: Super Mario Bros. 2 Hit points

InterviewThe secret history of Super Mario Bros. 2 · closing paragraphsBecause one of Mario's most notable features at the time was his ability to grow and shrink when he ate magic mushrooms, this was added to the game.Super Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-0-1.asm#L1925-L1938LDA #$00 ; Check if the player needs to change size LDY #$10 CPY PlayerHealth ROL A EOR PlayerCurrentSize BEQ loc_BANK0_8A26 LDY PlayerCurrentSize LDA GrowShrinkSFXIndexes, Y STA SoundEffectQueue2 LDA #$1E STA PlayerStateTimer LDA #PlayerState_ChangingSize …Super Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/defs.asm#L784-L791CHRBank_Mario = $00 CHRBank_Luigi = $01 CHRBank_Princess = $02 CHRBank_Toad = $03 CHRBank_MarioSmall = $04 CHRBank_LuigiSmall = $05 CHRBank_PrincessSmall = $06 CHRBank_ToadSmall = $07Yume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x18cd3-0x18ce2 — side B's file header for IMAJIN-C: CHR, $0340 (832) bytesYume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x19024-0x19033 — the header for LINA-C: CHR, 832 bytesYume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x19375-0x19384 — the header for MAMA-C: CHR, 832 bytesYume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x196c6-0x196d5 — the header for PAPA-C: CHR, 832 bytesChecked by claude, 2026-10-26 — read HandlePlayerState's size test (small when health is $10 or less; health is $0F at one mark) and LoadCharacterCHRBanks, which picks a bank by character and size; parsed the disk's file list (block type 3 headers: file number, id, name, load address, size, type)

The files' tiles: of their 199 non-blank tiles, 2 (both in IMAJIN-C) appear anywhere in SMB2's CHR ROM. Tanabe also said the small characters' heads were drawn bigger so they couldn't slip through gaps (ars-technica-kohler-2011-smb2).

Cited by: Super Mario Bros. 2

Doki Doki Panic's manual says the two children are saved only if the whole family beats Mamu, so each of the four must clear the last page. In Super Mario Bros. 2 the last level leads to the ending whichever character clears it; the end of each level adds one to the character's count of levels cleared, which the ending shows. super-mario-bros-2-ddp/completion

Manual夢工場ドキドキパニック (Yume Kōjō: Doki Doki Panic) instruction booklet · p. 13, the chapters and the family rule (CHAPTER diagram) — it is no good for just one to clear the last page; unless the whole family beats Mamu, the two can't be saved (our translation); checked in the audit against an OCR of the page image1人だけが最後のページまでクリアしてもダメ。家族全員がマムーを倒さないと、2人を助けられないのだ。Super Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-e-f.asm#L1512-L1529EndOfLevel: … ; Increase current characters "contribution" counter LDX CurrentCharacter INC CharacterLevelsCompleted, X … LDA CurrentLevel CMP #$13 EndOfLevelJump: … BNE EndOfRegularLevel EndOfLastLevel: …Checked by claude, 2026-10-26 — read EndOfLevel; level $13 is the twentieth, and the contributor scene (contributor-animation in the ROM map) draws the counts

Cited by: Super Mario Bros. 2

Super Mario Bros. 2's magic potion is Doki Doki Panic's magic lamp: in both manuals, the item thrown makes a door appear, and Up at the door enters the other side, Subspace in SMB2. SMB2's code turns a thrown potion into a door where it lands, except in a vertical area, where it puffs away. super-mario-bros-2-ddp/lamp-potion

Manual夢工場ドキドキパニック (Yume Kōjō: Doki Doki Panic) instruction booklet · p. 26, 魔法のランプで裏画面へ (to the reverse screen with the magic lamp) — if the item you took is a lamp, throw it, and a door appears there (our translation); the section's next sentence says Up enters the reverse screen (裏画面); checked in the audit against an OCR of the page image取ったアイテムがランプだったら、投げてみよう。するとそこにドアが現れるんだ。Super Mario Bros. 2 instruction booklet (North America) · Really useful items, Go to Sub-space with magicIf you find a magic potion, try throwing it. When you do that a door will appear. You'll enter the sub space if you press the top of the control pad while in front of the door.Super Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-2-3.asm#L3553-L3593EnemyBehavior_SubspacePotion_CheckGroundCollision: PLA AND #CollisionFlags_Down BEQ EnemyBehavior_Vegetable … LDA #Enemy_SubspaceDoor STA ObjectType, X … ; No Subspace Doors allowed in vertical levels LDA IsHorizontalLevel BNE EnemyBehavior_SubspacePotion_CreateDoor … …Checked by claude, 2026-10-26 — read EnemyBehavior_SubspacePotion; landing (the down collision flag) changes the object's type to the door; in a vertical area the code plays a sample and destroys it

Cited by: Super Mario Bros. 2

Both games turn the grass on the other side into money for only two visits an area: medals in Doki Doki Panic's manual, coins in Super Mario Bros. 2's. SMB2's code counts a Subspace visit that pulled at least one coin, and after two, grass in Subspace gives small vegetables. super-mario-bros-2-ddp/subspace-coins

Manual夢工場ドキドキパニック (Yume Kōjō: Doki Doki Panic) instruction booklet · p. 26, 魔法のランプで裏画面へ (to the reverse screen with the magic lamp) — the grass on the reverse screen becomes medals until the lamp has been used twice on each page (our translation); checked in the audit against an OCR of the page image裏画面にある草は、各ページでランプを2度使うまでメダルになる。Super Mario Bros. 2 instruction booklet (North America) · Really useful items, Go to Sub-space with magicThe grass in Sub-space will turn into coins until you use magic twice in that area.Super Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-0-1.asm#L3811-L3823LDX InSubspaceOrJar CPX #$02 BNE loc_BANK0_91E3 LDA SubspaceVisits CMP #$02 BCS loc_BANK0_91E2 ; skip if we've already visited Subspace twice INC SubspaceCoins LDX #$00 loc_BANK0_91E2: TXASuper Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-e-f.asm#L1258-L1265LDA InSubspaceOrJar BNE loc_BANKF_E609 LDA SubspaceCoins BEQ loc_BANKF_E627 INC SubspaceVisitsSuper Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-0-1.asm#L3514-L3521PickUpToEnemyTypeTable: .db Enemy_MushroomBlock ; $00 .db Enemy_MushroomBlock ; $01 .db Enemy_MushroomBlock ; $02 .db Enemy_POWBlock ; $03 .db Enemy_Coin ; $04 .db Enemy_VegetableLarge ; $05 .db Enemy_VegetableSmall ; $06Checked by claude, 2026-10-26 — read the grass pick-up in Subspace (InSubspaceOrJar 2): with SubspaceVisits under 2 the index is 0, plus 4, a coin; otherwise X stays 2, plus 4, a small vegetable. SubspaceVisits rises on leaving Subspace with SubspaceCoins above zero, and ResetAreaAndProcessGameMode clears it with the level state

Cited by: Super Mario Bros. 2

Super Mario Bros. 2's code puts a mushroom in Subspace that adds a mark to the life meter and refills it, where Doki Doki Panic's manual describes a heart. SMB2's manual names the mushroom in its item list, but its Subspace paragraph still calls it a heart that increases the life meter. super-mario-bros-2-ddp/subspace-heart

About: Super Mario Bros. 2 Health upgrade

Manual夢工場ドキドキパニック (Yume Kōjō: Doki Doki Panic) instruction booklet · p. 26, 魔法のランプで裏画面へ (to the reverse screen with the magic lamp) — place the door in a certain spot and there is a heart that raises the life gauge (our translation); checked in the audit against an OCR of the page imageある場所にドアを置くと、ライフゲージをアップさせるハートがあるよ。Super Mario Bros. 2 instruction booklet (North America) · Really useful items, Go to Sub-space with magicIf you place a door in a certain place, there will be a heart that will increase your life meter.Super Mario Bros. 2 instruction booklet (North America) · Items that help Mario and his friends, MushroomsThese appear when you enter a warp to Sub­ space at a certain place. Your life meter will increase by one mark.Super Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-6-7.asm#L5147-L5158; Create a living fungus. ; Even most of this routine uses an enemy slot offset, the next few lines assume slot 0. ; We just set `X` to 0, so this is a safe enough assumption. LDA #Enemy_Mushroom STA ObjectType LDA #EnemyState_Alive STA EnemyState ; Keep track of which mushroom so that you can't collect it twice. STY EnemyVariable ; Reset various object timers and attributes LDA #$00Super Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-2-3.asm#L3402-L3407EnemyBehavior_PickUpMushroom: LDX EnemyVariable INC Mushroom1Pulled, X LDX byte_RAM_12 INC PlayerMaxHealth JSR RestorePlayerToFullHealthChecked by claude, 2026-10-26 — read CreateSubspaceMushroomObject and the mushroom pick-up, which raises PlayerMaxHealth and refills health from the table (life-meter)

Cited by: Super Mario Bros. 2

Both games end a level with a Bonus Chance, and Doki Doki Panic's disk holds Super Mario Bros. 2's 24 bytes of slot-machine reels with two exceptions. Where SMB2's first reel has a turnip (its second symbol) and a Snifit (its fifth), the disk has $00, the value SMB2's code reads as a cherry, so that reel holds three of SMB2's cherry values on the disk and one in SMB2. A cherry on the first reel wins a life. super-mario-bros-2-ddp/bonus-chance

About: Super Mario Bros. 2 Bonus stage

Value
{
 "equal": 22,
 "bytes": 24
}
Code夢工場ドキドキパニック (Yume Kōjō: Doki Doki Panic) instruction booklet · PDF p. 5 (unnumbered), contents — a Bonus Chance at the end of a page (our translation); checked in the audit against an OCR of the page imageページの終わりにボーナスチャンス!!Super Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-a-b.asm#L581-L589BonusChanceReel1Order: .db Slot_Snifit ; $00 .db Slot_Turnip ; $01 ; Graphics exist for a mushroom (not used) .db Slot_Star ; $02 .db Slot_Turnip ; $03 .db Slot_Snifit ; $04 .db Slot_Star ; $05 .db Slot_Cherry ; $06 .db Slot_Turnip ; $07Super Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-e-f.asm#L1692-L1697LDY #$00 LDX ObjectXLo + 6 ; Load reel 1 LDA SlotMachineReelOrder1RAM, X BNE CheckReel2Symbol ; Is this reel a cherry?Super Mario Bros. 2 (USA) · 0x14549-0x14560 — the three reels, $8539-$8550 in bank $A; Slot_Cherry is $00 (src/defs.asm)Yume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x104f2-0x10509 — the disk's 24 bytes, TEMP-PRG $64CB-$64E2; bytes 1 and 4 are $00 where SMB2 has $10 (turnip) and $18 (Snifit)Yume Koujou - Doki Doki Panic (Japan) (DV 2) · 0x104f2-0x10509 — DV 2's copy, equal to DV 1'sChecked by claude, 2026-10-26 — read the reel tables and the payout after the reels stop; found the disk's copy by its longest run (19 bytes) and compared all 24 from the aligned start

How Doki Doki Panic's code reads its reels is unread, so the disk's three $00 bytes are cherries only if it reads them as SMB2 does. The SMB2 manual mentions the Bonus Chance too (super-mario-bros-2-manual-us, "A Bonus Chance at the end of an Area").

Cited by: Super Mario Bros. 2

Both games have 20 levels in seven parts: Doki Doki Panic's manual calls them pages in seven chapters, and Super Mario Bros. 2's calls them areas in seven worlds. SMB2's table of each world's first level, three levels a world and two in the last, is on Doki Doki Panic's disk byte for byte. super-mario-bros-2-ddp/worlds

Manual夢工場ドキドキパニック (Yume Kōjō: Doki Doki Panic) instruction booklet · p. 13, the chapters and the family rule (CHAPTER diagram) — as in the diagram above, this game is made of 20 pages in 7 chapters (our translation); checked in the audit against an OCR of the page image上の図のように、7章立ての20ページでこのゲームは構成されているんだ。Super Mario Bros. 2 instruction booklet (North America) · Know the Basic Rules of the GameThis game is comprised of 20 areas in 7 worlds as shown in the diagram above.Super Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-e-f.asm#L209-L217WorldStartingLevel: .db $00 .db $03 .db $06 .db $09 .db $0C .db $0F .db $12 .db $14Super Mario Bros. 2 (USA) · 0x1e022-0x1e029 — WorldStartingLevel, $E012-$E019 in bank $FYume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x1b0e-0x1b15 — the same 8 bytes in MAIN-PRO, $73C1-$73C8Checked by claude, 2026-10-26 — read WorldStartingLevel and its comment; found the 8 bytes on the DV 1 disk (and DV 2 at the same offset)

Cited by: Super Mario Bros. 2

Doki Doki Panic's final boss, Mamu, is Super Mario Bros. 2's Wart; each manual names its own. Kensuke Tanabe's team added enemy characters and visual nods to the Mario games for the American release, Chris Kohler reported. super-mario-bros-2-ddp/boss

Manual夢工場ドキドキパニック (Yume Kōjō: Doki Doki Panic) instruction booklet · p. 13, the chapters and the family rule (CHAPTER diagram) — on the last page the big boss, Mamu, lies in wait for you (our translation); checked in the audit against an OCR of the page image最後のページには大ボス・マムーがキミを待ちかまえているわけだ。Super Mario Bros. 2 instruction booklet (North America) · Know the Basic Rules of the GameThe big boss, Wart is waiting for you at the end of the final area once you've cleared all of the other areas.The secret history of Super Mario Bros. 2 · closing paragraphsTanabe's team made many improvements to the original for its American debut, adding more enemy characters, throwing in some visual nods to the Mario games and greatly enhancing the animation and sound effects.

Cited by: Super Mario Bros. 2

Most of Super Mario Bros. 2's enemy tiles occur on Doki Doki Panic's disk: 234 of the 244 non-blank tiles in its four banks of world enemies occur in the disk's tile files, byte for byte, and 80 of the 122 in its two banks of common enemies. Of the 199 non-blank tiles in Doki's four character files, 2 occur in SMB2's CHR ROM. Tiles are counted as often as they occur. super-mario-bros-2-ddp/enemy-tiles

Value
{
 "worldEnemies": {
  "found": 234,
  "tiles": 244
 },
 "commonEnemies": {
  "found": 80,
  "tiles": 122
 },
 "characters": {
  "found": 2,
  "tiles": 199
 }
}
CodeSuper Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-e-f.asm#L5781-L5788LoadWorldCHRBanks: LDY #CHRBank_CommonEnemies1 STY SpriteCHR2 INY STY SpriteCHR3 LDY CurrentWorldTileset LDA CHRBank_WorldEnemies, Y STA SpriteCHR4Super Mario Bros. 2 (USA) · 0x22010-0x2280fSuper Mario Bros. 2 (USA) · 0x23010-0x2400fSuper Mario Bros. 2 (USA) · 0x20010-0x4000f — the whole CHR ROM, the ROM map's tile regions end to end, searched for the character files' tilesYume Koujou - Doki Doki Panic (Japan) (DV 1) · 0xa06f-0xc05e — side A's TITLE-C, 8176 bytes of tilesYume Koujou - Doki Doki Panic (Japan) (DV 1) · 0xc070-0xcc6f — side A's ENDING-C, 3072 bytes of tilesYume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x18ce4-0x19023 — side B's IMAJIN-C, 832 bytes of tilesYume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x19035-0x19374 — side B's LINA-C, 832 bytes of tilesYume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x19386-0x196c5 — side B's MAMA-C, 832 bytes of tilesYume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x196d7-0x19a16 — side B's PAPA-C, 832 bytes of tilesYume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x19a28-0x19c27 — side B's BG-CHR-C, 512 bytes of tilesYume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x19c39-0x1a638 — side B's BG-CHR-1, 2560 bytes of tilesYume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x1a64a-0x1b049 — side B's BG-CHR-2, 2560 bytes of tilesYume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x1b05b-0x1ba5a — side B's BG-CHR-3, 2560 bytes of tilesYume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x1ba6c-0x1c46b — side B's BG-CHR-4, 2560 bytes of tilesChecked by claude, 2026-10-26 — the probe splits each range into 16-byte tiles, drops the all-$00 and all-$FF ones, looks each up among the 16-byte tiles of the other side's ranges (the disk's eleven CHR files, types read from their headers; the cartridge's whole CHR ROM), and re-reads every match at the offset foundProbe: probes/super-mario-bros-2/doki-bytes.mjs

Cited by: Super Mario Bros. 2

Super Mario Bros. 2's song data shares no run of more than 5 bytes with either Doki Doki Panic disk: that is the longest run found for the twelve data regions of the ROM map's music part (the songs, their pointers and headers, and the level music indexes). The sound engine's six regions share none of more than 17 bytes and the sound effects' three none of more than 14, while the two routines that pick an area's music share a run of 24 bytes. Tanabe's team greatly enhanced the sound effects, Chris Kohler reported. super-mario-bros-2-ddp/music

Value
{
 "songs": 5,
 "songRegions": 12,
 "musicCode": 24,
 "engine": 17,
 "sfx": 14,
 "otherRegions": 236,
 "otherShared": 68
}
InterviewThe secret history of Super Mario Bros. 2 · closing paragraphsgreatly enhancing the animation and sound effectsYume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x0-0x1ffb7 — the whole DV 1 image, both sides, searchedYume Koujou - Doki Doki Panic (Japan) (DV 2) · 0x0-0x1ffb7 — the whole DV 2 image, both sides, searchedSuper Mario Bros. 2 (USA) · 0x9010-0x912d — music-pointers-and-headers (audio-music)Super Mario Bros. 2 (USA) · 0x912e-0x9478 — music-ending (audio-music)Super Mario Bros. 2 (USA) · 0x9479-0x94cc — music-starman (audio-music)Super Mario Bros. 2 (USA) · 0x94cd-0x955f — music-underground (audio-music)Super Mario Bros. 2 (USA) · 0x9560-0x964d — music-subspace (audio-music)Super Mario Bros. 2 (USA) · 0x964e-0x98bc — music-title (audio-music)Super Mario Bros. 2 (USA) · 0x98bd-0x9be3 — music-character-select (audio-music)Super Mario Bros. 2 (USA) · 0x9be4-0x9f2b — music-overworld (audio-music)Super Mario Bros. 2 (USA) · 0x9f2c-0x9fd6 — music-boss (audio-music)Super Mario Bros. 2 (USA) · 0x9fd7-0xa0ca — music-wart (audio-music)Super Mario Bros. 2 (USA) · 0xa0cb-0xa19c — music-jingles (audio-music)Super Mario Bros. 2 (USA) · 0xd51e-0xd538 — load-area-music (audio-music)Super Mario Bros. 2 (USA) · 0x1f104-0x1f108 — level-music-indexes (audio-music)Super Mario Bros. 2 (USA) · 0x1f6d0-0x1f6e9 — ensure-correct-music (audio-music)Super Mario Bros. 2 (USA) · 0x8010-0x8047 — sound-queue-entry (audio-engine)Super Mario Bros. 2 (USA) · 0x836b-0x8756 — music-engine (audio-engine)Super Mario Bros. 2 (USA) · 0x8757-0x876e — frequency-table (audio-engine)Super Mario Bros. 2 (USA) · 0x8f10-0x8fc2 — note-lengths (audio-engine)Super Mario Bros. 2 (USA) · 0xa19d-0xa3fe — instruments (audio-engine)Super Mario Bros. 2 (USA) · 0x1ec8c-0x1ec99 — do-sound-processing (audio-engine)Super Mario Bros. 2 (USA) · 0x8048-0x819e — sound-effect-queues-1-2 (audio-sfx)Super Mario Bros. 2 (USA) · 0x819f-0x829d — sound-effect-data (audio-sfx)Super Mario Bros. 2 (USA) · 0x829e-0x830c — sound-effect-queue-3 (audio-sfx)Probe: probes/super-mario-bros-2/doki-bytes.mjs

The probe finds, for each region cited, the longest run of its bytes anywhere on either disk image; for contrast, 68 of the cartridge's 236 regions outside the audio, tile, free, and unused parts share a run of 50 bytes or more. Short runs of 5 bytes or so turn up by chance in a disk of 130 KB. Different bytes need not mean different songs: the same tunes could be encoded anew, and whether the melodies match is unread.

Cited by: Super Mario Bros. 2

Super Mario Bros. 2's cartridge keeps Doki Doki Panic data that it never shows. The 24 bytes the disassembly calls MysteryData14439, copied to RAM and unused, are on Doki's disk unchanged, and so are the 32 bytes of sprite entries it labels as the heads of Imajin, Lina, Mama, and Papa. After the heads, SMB2 has a PPU write of 20 blank tiles ($FB) at $20C6, which the disassembly labels BonusChanceUnused_BONUS_CHANCE; the disk's write at the same place holds text (bonus-chance-text). super-mario-bros-2-ddp/leftover-data

CodeSuper Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-a-b.asm#L381-L387; What is this for? It gets copied to RAM and then...that's all. … MysteryData14439:Super Mario Bros. 2 (USA) · 0x14449-0x14460 — MysteryData14439, $8439-$8450 in bank $AYume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x103e8-0x103ff — the same 24 bytes in TEMP-PRG, $63C1-$63D8Super Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-a-b.asm#L611-L618BonusChanceUnusedImajinHead: .db $CB, $B0, $00, $A0, $CB, $B0, $40, $A8 BonusChanceUnusedLinaHead: .db $CB, $B2, $00, $A0, $CB, $B2, $40, $A8 BonusChanceUnusedMamaHead: .db $CB, $B6, $00, $A0, $CB, $B6, $40, $A8 BonusChanceUnusedPapaHead: .db $CB, $B4, $00, $A0, $CB, $B4, $40, $A8Super Mario Bros. 2 (USA) · 0x14569-0x14588 — the four heads, $8559-$8578Yume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x10512-0x10531 — the same 32 bytes in TEMP-PRG, $64EB-$650ASuper Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-a-b.asm#L621-L627; Based on the position and the number of tiles, this probably used to say... ; ; --- BONUS CHANCE --- ; BonusChanceUnused_BONUS_CHANCE: .db $20, $C6, $14 .db $FB, $FB, $FB, $FB, $FB, $FB, $FB, $FB, $FB, $FB, $FB, $FBSuper Mario Bros. 2 (USA) · 0x14589-0x145a0 — the PPU write of 20 tiles at $20C6, all $FB (blank)Checked by claude, 2026-10-26 — read the data and comments at the pinned commit; found the 24 and 32 bytes on the DV 1 disk, the same at the same offsets on DV 2

What Doki Doki Panic's own code does with these bytes is unread.

Cited by: Super Mario Bros. 2

Where Super Mario Bros. 2 writes 20 blank tiles at $20C6, Doki Doki Panic's disk writes 20 tiles that, decoded through SMB2's own letter codes, read "--- BONUS CHANCE ---", the text the disassembly's comment guessed from the write's place and length. This is a decode, not a byte match: the letters are SMB2's codes from its "NO BONUS", "PUSH (A) BUTTON", and title-card text, and how Doki Doki Panic draws its own text is unread. super-mario-bros-2-ddp/bonus-chance-text

CodeSuper Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-a-b.asm#L621-L627; Based on the position and the number of tiles, this probably used to say... ; ; --- BONUS CHANCE --- ; BonusChanceUnused_BONUS_CHANCE: .db $20, $C6, $14 .db $FB, $FB, $FB, $FB, $FB, $FB, $FB, $FB, $FB, $FB, $FB, $FBYume Koujou - Doki Doki Panic (Japan) (DV 1) · 0x10532-0x10549 — the disk's write at the same place, TEMP-PRG $650B-$6522, also to $20C6 with 20 tiles: $F3 $F3 $F3 $FB, $DB $E8 $E7 $EE $EC, $FB, $DC $E1 $DA $E7 $DC $DE, $FB, $F3 $F3 $F3Super Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-a-b.asm#L631-L636 — NO BONUS: B O N U S are $DB $E8 $E7 $EE $EC, the disk's first wordBonusChanceText_NO_BONUS: .db $22, $86, $14 .db $FB, $FB, $FB, $FB, $FB, $FB .db $E7, $E8, $FB, $DB, $E8, $E7, $EE, $EC ; NO BONUS .db $FB, $FB, $FB, $FB, $FB, $FB .db $00Super Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-a-b.asm#L638-L641 — PUSH (A) BUTTON: H is $E1BonusChanceText_PUSH_A_BUTTON: .db $22, $89, $0E .db $E9, $EE, $EC, $E1, $FB, $0E, $F,$FB, $DB, $EE, $ED, $ED, $E8, $E7 ; PUSH (A) BUTTON .db $00Super Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-a-b.asm#L676-L690 — the title card: D is $DD, the dash is $F3 (in 1-1), E is $DE, and A is $DATitleCardText: … ; WORLD 1-1 .db $24, $CA, $0B .db $FB, $F0, $E8, $EB, $E5, $DD, $FB, $FB, $D1, $F3, $D1 ; EXTRA LIFE... 0 .db $23, $48, $10 .db $DE, $F1, $ED, $EB, $DA, $FB, $E5, $E2, $DF, $DE …Checked by claude, 2026-10-26 — read the four pieces of text at the pinned commit and decoded the disk's 20 tiles with them; the disk's bytes are DV 1's, the same at the same offset on DV 2

Every code but one is in SMB2's text: C, $DC, is inferred, as the code between B ($DB) and D ($DD). The leading and trailing $F3 are read as dashes from WORLD 1-1.

Cited by: Super Mario Bros. 2

Super Mario Bros. 2's ending still writes $80 to $4080, a sound register of the Famicom Disk System, which a cartridge game has no use for; the disassembly marks it as a leftover. super-mario-bros-2-ddp/fds-leftover

CodeSuper Mario Bros. 2, Discombobulated: a disassembly for asm6f (Xkeeper0/smb2) · src/prg-e-f.asm#L1851-L1855LDA #$80 ; FDS leftover; $4080 is an old sound register ; The prototype had two writes to this address! ; It looks like they missed this one, though. STA FDS_WAVETABLE_VOLChecked by claude, 2026-10-26 — read EndingSceneRoutine; FDS_WAVETABLE_VOL is $4080 in src/defs.asm

Cited by: Super Mario Bros. 2