Update December 24, 2020: This Hot Potato Battle hack is now obsolete and has been superseded by Battle Kart 64 which includes everything from Hot Potato Battle, plus much much more. Please go to https://www.romhacking.net/hacks/5618/ to download the latest version of Battle Kart 64.
Update April 14, 2020: New version 1.1! New gameplay options include infinite green shells, flat courses, and auto-items. New quality of life options include the ability to enable widescreen, disable anti-aliasing, enable music in 3 and 4 player modes, and an option to allow players to select the same characters.
This rom hack fundamentally changes how battle mode works in Mario Kart 64 into a frantic game of hot potato. Previously you had three balloons that you had to pop on each player and be the last player standing to win. This hack replaces the balloons with hit points (HP) and a countdown timer. When the battle starts, the first person hit becomes the “hot potato” and they start smoking and the timer starts counting down to zero. If another player gets hit before the countdown timer reaches zero, that player becomes the “hot potato” instead and will start smoking. This means if you are the hot potato, you need to hit someone else before the countdown timer reaches zero, leading to some fun frantic chases. Whoever is the hot potato when the counter reaches zero will briefly flash and lose 1 HP. When a player's HP reaches zero, they die. The timer then resets and waits for the next player to be hit and the whole process starts all over again. Whoever is the last player standing wins.
See the YouTube video here:
Triclon's Mario Kart 64 website:
Mario Kart Hot Potato Battle v1.1
by Triclon
Questions, comments, or found a bug?
Email me at
[email protected]
Visit my YouTube channel: https://www.youtube.com/user/triclon
Visit my website: https://sites.google.com/view/triclons-mario-kart-64-page/home
What does this rom hack do?
This rom hack fundamentally changes how battle mode works in Mario Kart 64 into a frantic game of hot potato. Previously you had three balloons that you had to pop on each player and be the last player standing to win. This hack replaces the balloons with hit points (HP) and a countdown timer. When the battle starts, the first person hit becomes the “hot potato” and they start smoking and the timer starts counting down to zero. If another player gets hit before the countdown timer reaches zero, that player becomes the “hot potato” instead and will start smoking. This means if you are the hot potato, you need to hit someone else before the countdown timer reaches zero, leading to some fun frantic chases. Whoever is the hot potato when the counter reaches zero will briefly flash and lose 1 HP. When a player's HP reaches zero, they die. The timer then resets and waits for the next player to be hit and the whole process starts all over again. Whoever is the last player standing wins.
How to patch:
* Apply the .bps patch to a (USA/NTSC) Mario Kart 64 rom that is in .z64 format using your own patching utility or one of the following fine online Patchers:
https://www.romhacking.net/patch/
https://hack64.net/tools/patcher.php
* Some emulators can also soft patch a .bps file to a vanilla rom.]
* If you have python 3 and know how to use it, you can also use the script "patch_mk64_hot_potato_battle.py" by modifying "input_file" and "output_file" filenames at the top of the script and running the script in the command line as "python patch_mk64_hot_potato_battle.py"
How to play:
* Load the rom on a flash cart for console or your favorite emulator.
* On the title screen, Player 1 can use the control stick in the menu.
* Select the settings you want in the menu (see below) then press start.
* Start a 2P, 3P, or 4P battle.
* You can always come back to the title screen to adjust settings in the menu.
Menu options:
* HP - Adjust the maximum HP. I prefer to keep the the max HP low, 1, 2 or 3 since it makes the game more fun, but you can put the HP up to 99 if you want to play for hours on end.
* COUNTDOWN - Adjust the default countdown timer up or down in 5 second intervals. 30 seconds seems like the optimal countdown time but try adjusting it to see what works for you. When a player is hit the timer starts counting down to zero. Whoever is the last person who was hit (the hot potato) when the timer reaches zero loses 1 HP. The timer then resets back to default value. You can mimic "Traditional" battle mode by setting the countdown timer to zero (traditional battle mode will also be an option in a future release).
* STAR ITEMS - Enables or disables stars as items that can be used in battle. By default they are off. I have found the game is more fun without defensive items like stars or ghosts.
* GHOST ITEMS - Enables or disables ghosts as items that can be used in battle. By default they are off.
* INF.G.SHELLS - Turning this option on gives all players infinite green shells making the game play more like a first person shooter. Item boxes are disabled in this mode. Since the game can only handle up to 100 objects on the course, it is recommended you play on a course where the shells can fall off such as Big Donut or Skyscraper.
* FLAT COURSES - Turning this option on flattens all the battle courses using the game's built in vertical scaling variable. It is highly recommended that you also turn on the AUTO-ITEMS option because item boxes will become inaccessible. This feature is experimental and you might encounter some minor graphical glitches. Big Donut also does not work properly so stick with the other three courses. Block Fort is probably the best for this mode.
* AUTO-ITEMS - Replaces the item boxes with everyone just being handed items randomly every few seconds. Necessary if you want to play FLAT COURSES.
* WIDESCREEN - Enables anamorphic widescreen.
* DISABLE AA - Disables the N64's built in anti-aliasing and gets rid of a lot of blur. This will give the game a sharper more pixelated look (which in my opinion looks better on modern TVs). Disabling the anti-aliasing also increases the FPS a bit.
* 3P/4P MUSIC - Enables music for 3 player and 4 player modes. Might cause a small amount of lag, but nothing really noticeable. I don't know why Nintendo didn't include this in the regular game.
* SAME CHARS - Allows multiple players to select the same character on the character select screen.
Troubleshooting:
* If you have trouble seeing the text in an emulator, try changing the video plugin your emulator is using.
* Note that the HP will not display if it is set equal to 1. This is a feature, not a bug.
Source code:
I have included the source code for this rom hack. This rom hack is written almost entirely in custom assembly code in a python script. Believe it or not, the hardest part was building the custom menu on the title screen from scratch. The main script is "patch_mk64_hot_potato_battle.py" which contains all the assembly code to patch the rom and "mk64lib.py" is a python library that acts as the assembler and inserts data into the rom. This is provided "as is" without documentation beyond the comments in the code itself so the curious among you can study how it works. If you have any questions about source code, feel free to email me.
Known bugs:
* Big Donut won't work in Flat Course mode. This is caused by the zero point on the course height being below the "water level". I am aware of the issue but not sure how to fix it at the moment.
Changelog:
v1.1 - April 13, 2020 - A bunch of new features!
* New infinite green shells mode.
* New flat courses mode.
* New auto-items mode.
* Added widescreen option.
* Added option to disable anti-aliasing.
* Added option to enable music in 3P/4P modes.
* Added option to allow multiple players to select the same character.
* A lot of under the hood changes to the code for space and optimization and to allow future expansion.
* The next release will include more game modes than just Hot Potato. I will probably rename this hack Battle Kart 64 or something like that.
v1.0 - April 4, 2020 - Public release
* Only a few changes from the last version.
* Added some text to the title screen.
* Set min HP to 1 instead of 0.
v0.3 - April 4, 2020
* Added toggling stars and ghost items on or off as options in the menu.
* Increased duration of lighting flash when you lose 1 HP so it is more noticeable.
* A lot of under the hood changes.
* Some code optimized for size and speed.
* Moved custom code to overwrite the path following function at 0x121F4 in the rom (regular tracks will no longer load).
* This gives plenty of room for custom assembly without the need to use the Expansion Pak. Forced battle mode to avoid crashing because path following function no longer exists.
v0.2 - April 1, 2020
* Added a single balloon back in so players can see each other easier.
* Disabled stars and ghosts completely from the item probability table.
* Might make this a menu option in a future release if people want to be able to turn stars and ghosts back on.
v0.1 - March 29, 2020 - First public beta.
* Counter and HP engine created and debugged.
* Text display code created and debugged.
* Hid balloon graphics.
* Added custom menu on title screen to adjust HP and Countdown timer.
* Tweaked item probability table so stars are rare to balance the game out (stars made it less fun).
Database match: Mario Kart 64 (USA)
Database: No-Intro: Nintendo 64 (v. 20180814-043336)
File/ROM SHA-1: 579C48E211AE952530FFC8738709F078D5DD215E
File/ROM CRC32: 434389C1