Download Mario Kart 64 CPUs use human items including shells ROM Hack

Mario Kart 64 CPUs use human items including shells Game
Spread the love:
Parameter Info
Console: N64
Original Game: Mario Kart 64
Type: Improvement
Genre: Racing
Modifications: GP
Creator: triclon
Date Created: 11/18/2019
Last Modified: 11/19/2019
Parameter Info
File Name: Mario_Kart_64_CPUs_use_human_items.zip
Downloads: 447
Requirements: No Special Requirements
Version: 2.5
Rating:

Mario Kart 64 CPUs use human items including shellsDescription

Don’t think this is gonna be a 100% Gold Remake, it’ll have its differences. Extra battles (some’ll be optionals, tough but rewarding), Hoenn Pokemon (in every area, and hard to find) New areas, Remapped some dungeons (so your old guides wont work) , Extra recurring characters (some’ll hate you, some’ll help you)

Note that the hack is incomplete but feel free to enjoy the hack as-is.

Mario Kart 64 CPUs use human items including shellsRead Me

What do you need?
A Mario Kart 64 rom in the .z64 format

Patch with the .bps file:
I recommend you use the online rom patcher on hack64.net (https://hack64.net/tools/patcher.php) but any old rom patching program should work.

Patch with the python script:
If you have python 3 installed, you can use the python script to patch the rom.  On the command line you will type the following after modifying the paths:
python Patch_Mario_Kart_64_CPUs_use_human_items_v2.5.py path/to/rom.z64 path/to/patched_rom.z64


What is this patch?
This patch for Mario Kart 64 (USA/NTSC) gives the CPUs in Grand Prix mode some of the same items a human can use.  CPUs can finally fire shells, use multibananas, and triple mushrooms.  Normally CPUs can only use single bananas, stars, ghosts, fake item boxes, single mushroom boosts, and lightning.  They spawn the items all at the same time up to three times per lap and draw from their own item probability tables.  CPUs never used shells, multi-bananas, triple mushrooms, or golden mushrooms.  Through an exhaustive look into the game's code, micro500 and I were able to deduce how CPU players spawn items.  It turns out that a lot of this code never made it into the final game, and has remained hidden for over 20 years in the inside the game's rom.  Some of it it was never fully debugged or finished.  This patch takes most of the unused CPU item spawning code that works and adds it back into the game with some custom assembly code.  If you want to know more about the game's CPU item spawning code, I recommend you look at micro500's excellent notes on the subject here: 
https://github.com/micro500/mariokart64/wiki/CPU-Item-Spawning

So what has been tweaked/added?
-CPUs now use the human item probability table instead of their own table.
-CPUs can now use single green shells, single red shells, multibanans, and triple mushrooms.  These items have fully functional (or nearly fully functional) code to handle the logic of CPUs using them.
-The CPU item spawn timing has been staggered so all the characters don't spawn items all at once, giving the game a more "natural" feel.
-Lightning probability for CPUs has been toned down from human values to make the game way less annoying to play.
-If a CPU gets triple shells, they are replaced with single shells of the same type since the game's code lacks a way to handle triple shells for CPUs.
-If a CPU gets a blue shell, it is replaced by a red shell, since the game's code lacks CPU blue shell usage.
-Golden mushrooms are replaced with triple mushrooms because the golden mushroom code for CPUs is unfinished.  If a CPU uses a golden mushroom, there is no timer to stop them from boosting infinitely so they will just zoom past you and win the race.

How does it work?
Look at the python script to see where in the rom the patch is being applied. 
See the google sheet where I wrote out most of my assembly (https://docs.google.com/spreadsheets/d/1FnmOFWeccoS6ri1Ay3RCmSXts5FqXRKtg_PNRHmKz6M/edit?usp=sharing).  Also see micro500s notes for reference (https://github.com/micro500/mariokart64/wiki/CPU-Item-Spawning).

Have questions, comments, or found a bug? Contact me: 
E-mail: [email protected]

Credits:
-triclon is I who wrote the patch
-micro500 for helping deduce a lot of the CPU item spawning code
-streams for helping test this patch through its many buggy crash prone iterations
-parasyte who's old Gameshark code for preventing CPUs from spawning items pointed me to the right part of the rom to look for CPU item spawning code