================================================================================
N64 Rom Hacking Tutorials
================================================================================

Author:    orbitaldecay
Contact:   orbitaldecay@gmail.com
Updated:   September 10, 2010
Source:    http://www.orbitaldecay.com

OS:        Windows XP (software will also work under Wine).
ROM:       Mario Kart 64 (U) [!].z64
CRC1:      3E5055B6
CRC2:      2E92DA52

--------------------------------------------------------------------------------

Foreword

    This article is part of a series of tutorials concerning the art of ROM
hacking on the N64.  The series will use the U.S. version of Mario Kart 64 to
demonstrate basic concepts.  I do not condone downloading cartridge ROMs from
the internet.  This is illegal in most jurisdictions.  If you do not have a
legal copy of this ROM, purchase the original cartridge and copy it using one of
the many devices available to do so.
    This work is licensed under a Creative Commons BY-NC-ND 3.0 license.  A
copy of the license may be found at this address:

http://creativecommons.org/licenses/by-nc-nd/3.0/

    If you have not downloaded the Nintendo 64 ROM hacking tool-kit, you should
do so now.  It contains the exact software that I'll be using throughout these
tutorials.  The ROM hacking tool-kit is located at:

http://www.orbitaldecay.com/N64/N64-RomHackingToolkit.zip

--------------------------------------------------------------------------------

Introduction

    This series of tutorials will attempt to introduce the reader to the topic
of Nintendo 64 ASM hacking.  This is considered to be one of the more difficult
forms of ROM hacking.  In my experience, there is a considerable lack of
documentation on the subject.  What I am writting is a set of tutorials that I
wish I had found when I started ROM hacking.

    I've tried to write these tutorials in such a way that the reader will
require very little background knowledge to get started.  Still, there are a few
things that will be very helpful to understand in advance.  A firm understanding
of hexidecimal notation and memory addressing is essential.  It is not neccesary
that the reader have any programming experience, but it will be very helpful
(especially assembly language).

These tutorials are a work in progress.  Any feedback is greatly appreciated.

I've finally resumed these tutorials after almost a year long break.  Thanks to 
Jason Palacios for the positive feedback!

--------------------------------------------------------------------------------

Index

    Lesson I:   Locating In-Game Variables ............ With Images    Without
    Lesson II:  Converting N64 Memory Addresses ....... With Images    Without
    Lesson III: Locating Instructions during Runtime .. With Images    Without
    Lesson IV:  Editing N64 ROM Files ................. With Images    Without
    Lesson V:   ???

    More Lessons Coming Soon!

--------------------------------------------------------------------------------