Kaname Training Suite
A collection of speedrun practice ROMs for Super Mario Bros. (NTSC & PAL), Super Mario Bros. 2 (FDS), and All Night Nippon Super Mario Bros.
Download BPS Patches
You can patch the NES/FDS files using a tool such as ROM Patcher JS by Marc Robledo.
If you are patching Super Mario Bros. 2 (FDS) or All Night Nippon Super Mario Bros., please change the file extension from FDS to NES after patching.
Required SHA-1 checksums for BPS patches.
- Super Mario Bros. (NTSC - NES 2.0):
33D23C2F2CFA4C9EFEC87F7BC1321CE3CE6C89BD
- Super Mario Bros. (PAL - NES 2.0):
B4140688F9A5B3434276C5A7394B56022436E57A
- Super Mario Bros. 2 (DV 0):
20E50128742162EE47561DB9E82B2836399C880C
- All Night Nippon Super Mario Bros.:
F30BDD3C556604D7EAA6D0F4864D5566E519B5D4
- Super Mario Bros. (NTSC - INES):
EA343F4E445A9050D4B4FBAC2C77D0693B1D0922
- Super Mario Bros. (PAL - INES):
AB30029EFEC6CCFC5D65DFDA7FBC6E6489A80805
If you are attempting to patch the practice hack onto SMB1, please check the SHA-1 hash to determine whether you have an iNES or NES 2.0 headered ROM, and download the appropriate patch.
If you wish to convert your iNES ROM to NES 2.0, please replace the first 16 bytes in the ROM with the following using a hex editor such as HxD, or by using the NES Header Editor in Mesen.
- For SMB1 NTSC ROM:
4E 45 53 1A 02 01 01 08 00 00 00 00 02 00 00 01
- For SMB1 PAL ROM:
4E 45 53 1A 02 01 01 08 00 00 00 00 01 00 00 01
Some dumps of Super Mario Bros. 2 (FDS) and All Night Nippon Super Mario Bros. may have a 16 byte header known as the fwNES header, please remove it before patching.
Features
All Games
- Custom status bar with additional information
- Frame counter display for key actions.
- Framerule remainder display at the end of levels.
- Sockfolder-style position display.
- Sockfolder-style entrance frame/room score display.
- Two user-defined addresses in internal RAM ($0000-$07FF).
- Practice menu with options, opened by pausing during gameplay
- Set power-up state and player size, with selections also applying to quick restart.
- Switch between Mario and Luigi.
- Set current coin count, primarily useful for practicing firework avoidance in SMB2 and ANNSMB.
- Enable or disable the hidden 1-Up Mushroom.
- Enable or disable practice information.
- Enable or disable the input display.
- Set the two user-defined addresses to desired internal RAM values.
- Grant invincibility to practice sections without risk of contact damage
- Return to the in-game title screen.
- Return to the practice ROM title screen.
- Advanced features for those who want to experiment.
- This is accessed by holding the A button while pressing start on the practice ROM title screen.
- Ability to select one of the 32,767 possible RNG states during normal gameplay. This is useful for messing around with frame offsets and can be calculated at this page: RNG value calculator
- Select where in the 21-frame cycle you would like to enter the level at, useful for practicing judges in 8-1 of SMB1 for example.
- Toggle pre-set frame offsets for specific categories by pressing the A button on the in-game title screen.
- SMB2: Both Endings and All Stages
- Infinite lives, so you never have to worry about getting a game over.
- 5 selectable save slots for framerules.
- Integrated Inputlog by Threecreepio. This can be accessed from the main menu.
Super Mario Bros.:
- Integrated Game Genie code support for select Category Extensions, which can be selected in the settings menu.
- Minus World (Disk) and Minus World (Cart) support integrated, which can also be toggled in settings.
- Toggle between first and second quest by pressing the B button on the in-game title screen.
Super Mario Bros. 2 (FDS):
- Toggle for Warpless game-states by pressing the B button on the in-game title screen.
This sets up wrong-warps for Worlds 8-1 and C-1, and allows you to enter 9-1 from 8-4. Dying in 9-1 will return you to the title screen, similarly to the original game.
All Night Nippon Super Mario Bros.:
- Toggle between first and second quest by pressing the B button on the in-game title screen.
Improvements over Pellsson's practice ROM (v6.0 Prototype)
- Every 100th framerule is no longer broken thanks to threecreepio's quick resume code.
- Dying in the cartridge version of World -1 will not take you to the disk version.
- User-defined addresses are hidden when "INFO" is set to "OFF".
- Completely rebuilt SMB2 FDS to NES conversion by Simplistic6502 using doppelganger's disassembly, fixing issues such as the broken ending in 8-4 and D-4.
- Added extra frame counter updates for specific instances, such as when Bowser starts moving.
- Disabled frame counter updates when collecting a coin or shattering a brick.
- Remainders now display on the intermediate screen when starting from the title screen or exiting a warp zone.
- Each game has its own ROM now, and each ROM uses the MMC3 mapper to maximize compatibility.
- Updated VRAM buffer system using the Popslide library to allow for additional practice information to be displayed.
- Hotkeys are less strict; you can hold other buttons while performing your hotkey combination.
- SNES Controller support for hotkeys, all buttons are supported. SNES hotkeys are stored independently from NES hotkeys.
- Holding A + Start on SMB1 NTSC or PAL will take you to 8-1 on second quest difficulty and bypass all Framerule/RNG logic to replicate vanilla behaviour.
- Holding A + Start on SMB2J or ANNSMB will take you to A-1 and bypass all Framerule/RNG logic to replicate vanilla behaviour.
- Updated Sockfolder's calculation with improvements by 108Pi to better account for Y-Positioning.
Previously, there were 4 Y pixels with the same sockfolder value, leading to situations where the same value could give different results (such as FF0 save and frame late FF0 save both being D70).
In the new notation, the leading digit is the lowest 2 bits of Mario's Y position. This acts as a vertical offset within the sockfolder value. This doesn't change while mario is falling because he falls at 4 pixels per frame. In addition, this notation is backwards-compatible with the old notation because the last 3 digits are the same.
With regular D70 FPG inputs, the value is now 1D70. A good FF0 save becomes 3D70, and a frame late FF0 save becomes 0D70. Top step setups that give 2D70 also work, so 0D70 is the only value that can't get FPG.
Credits
- Developers: web2000, Simplistic6502, 108Pi
- Original Developers: Threecreepio, pellsson
- Sprites for Peach shamelessly stolen from Super Mario Bros.: Peach Edition
GitHub Repository
https://github.com/lain-web2000/kaname-training-suite
Repositories Referenced