# Table of Contents - [N64 Functions Reference (HTML Manual Pages) Home Page](#n64-functions-reference-html-manual-pages-home-page) - [ My ongoing WTB list : Nintendo (Ultra) 64](#-my-ongoing-wtb-list-nintendo-ultra-64) - [ New – Nintendo 64 – Audio Development Guide : Nintendo (Ultra) 64](#-new-nintendo-64-audio-development-guide-nintendo-ultra-64) - [ Kyoto Microcomputer Co., Ltd. (KµC) : Nintendo (Ultra) 64](#-kyoto-microcomputer-co-ltd-k-c-nintendo-ultra-64) - [ website updates : Nintendo (Ultra) 64](#-website-updates-nintendo-ultra-64) - [ level42 : Nintendo (Ultra) 64](#-level42-nintendo-ultra-64) - [ Creating a Nintendo 64 Development Environment in VMWare Workstation : Nintendo (Ultra) 64](#-creating-a-nintendo-64-development-environment-in-vmware-workstation-nintendo-ultra-64) - [ ultra64.ca launches! : Nintendo (Ultra) 64](#-ultra64-ca-launches-nintendo-ultra-64) - [ Blog : Nintendo (Ultra) 64](#-blog-nintendo-ultra-64) - [ Intelligent Systems : Nintendo (Ultra) 64](#-intelligent-systems-nintendo-ultra-64) - [ Gallery : Nintendo (Ultra) 64](#-gallery-nintendo-ultra-64) - [ Credits : Nintendo (Ultra) 64](#-credits-nintendo-ultra-64) - [ website : Nintendo (Ultra) 64](#-website-nintendo-ultra-64) - [ New Content : Nintendo (Ultra) 64](#-new-content-nintendo-ultra-64) - [ SN Systems : Nintendo (Ultra) 64](#-sn-systems-nintendo-ultra-64) - [ My Pokemon games collection : Nintendo (Ultra) 64](#-my-pokemon-games-collection-nintendo-ultra-64) - [ Make your own Partner N64 console, for use with IS Viewer : Nintendo (Ultra) 64](#-make-your-own-partner-n64-console-for-use-with-is-viewer-nintendo-ultra-64) - [ Software : Nintendo (Ultra) 64](#-software-nintendo-ultra-64) - [ Tools : Nintendo (Ultra) 64](#-tools-nintendo-ultra-64) - [ Tutorial Demo : Nintendo (Ultra) 64](#-tutorial-demo-nintendo-ultra-64) - [ ultra64.ca : Nintendo (Ultra) 64](#-ultra64-ca-nintendo-ultra-64) - [ Rare Ltd. : Nintendo (Ultra) 64](#-rare-ltd-nintendo-ultra-64) - [ updates : Nintendo (Ultra) 64](#-updates-nintendo-ultra-64) - [ Creating a Nintendo 64 Development Environment in Oracle VM VirtualBox : Nintendo (Ultra) 64](#-creating-a-nintendo-64-development-environment-in-oracle-vm-virtualbox-nintendo-ultra-64) - [ Demo : Nintendo (Ultra) 64](#-demo-nintendo-ultra-64) - [Unknown](#unknown) - [Unknown](#unknown) - [Unknown](#unknown) - [Unknown](#unknown) - [Unknown](#unknown) - [Unknown](#unknown) - [Unknown](#unknown) - [Unknown](#unknown) --- # N64 Functions Reference (HTML Manual Pages) Home Page ![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/space.gif)![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/space.gif)![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/space.gif)![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/space.gif)![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/space.gif)[![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/ncube.gif)](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/misc/home.html) **Main Menu** **Nintendo® Confidential** [![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/folder.gif) al - Audio Library Functions](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/al/al.html) [![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/folder.gif) gDP - DP GBI Macros](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/gdp/gdp.html) [![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/folder.gif) gdSP - General GBI Macros](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/gdsp/gdsp.html) [![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/folder.gif) gSP - SP GBI Macros](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/gsp/gsp.html) [![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/folder.gif) gt - Turbo Microcode RDP](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/gt/gt.html) [![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/folder.gif) gu - Graphics Utilities](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/gu/gu.html) [![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/folder.gif) Math - Math Functions](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/math/math.html) [![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/folder.gif) nuSys - NuSystem](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/nusys/nusys.html) [![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/folder.gif) os - N64 Operating System](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/os/os.html) [![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/folder.gif) sp - Sprite Library Functions](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/sp/sp.html) [![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/folder.gif) uh - Host to Target IO](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/uh/uh.html) [![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/folder.gif) 64DD - N64 Disk Drive](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/64dd/64dd.html) [![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/folder.gif) Demos and Sample Code](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/demoinfo/demoinfo.html) [![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/folder.gif) Miscellaneous Tools](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/tools/tools.html) [![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/folder.gif) Emulator 2.0 INDY Device](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/u64/u64.html) [![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/folder.gif) Microcode](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/ucode/ucode.html) | | | --- | | [![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/btn_ss.gif)](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/misc/search.html)
    [![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/btn_rn.gif)](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/misc/ReleaseNotes.html) | | ![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/space.gif) |     ![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/space.gif)[![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/mantitle.gif)](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/misc/home.html) [![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/n64html.gif)](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/misc/home.html) | | | --- | | ![](https://ultra64.ca/files/documentation/online-manuals/functions_reference_manual_2.0i/images/nin_logo.gif) | | **Nintendo® Confidential**

**Warning:** all information in this document is confidential and covered by a non-disclosure agreement. You are responsible for keeping this information confidential and protected. Nintendo will vigorously enforce this responsibility.

**
Copyright © 1998
Nintendo of America Inc. All Rights Reserved
Nintendo and N64 are registered trademarks of Nintendo
Last Updated January 1998** | --- # My ongoing WTB list : Nintendo (Ultra) 64 My ongoing WTB (Want to Buy) list ================================= | | | | | --- | --- | --- | | **Nintendo Entertainment System**
--------------------------------- | | | | #### **NES junk games (Collection Filler)** | #### I’m looking for a bunch of NES games, (A lot so to say), nothing fancy, in relatively decent condition. (No Doubles) Preferably, I’m looking for a local seller, cash in hand type deal.

#### My Current Collection — > | #### ![My Current Collection](http://i.imgur.com/dxnbrPi.png) | | #### **Nintendo Tray Holder** | #### **Bounty – $10** | #### ![Nintendo Tray Holder](http://i.imgur.com/cBOZWJV.png) | | **Super Nintendo Entertainment System**
--------------------------------------- | | | | #### **Chrono Trigger** | #### Bounty – $70 | #### ![Chrono Trigger](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) | | **Nintendo 64**
--------------- | | | | #### **Nintendo 64 Kiosk** | #### I’m looking for a Nintendo 64 Kiosk, preferably floor standing, as in the picture here.Ideally I’d like to be able to come pick it up, and I’m willing to drive around 200 KM to come pick it up. (Preferably within Canada)

#### If anyone has any leads on where I can find one, and approximately what they would be worth, please let me know. | #### ![Nintendo 64 Kiosk](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) | | #### **Nintendo 64 Test Cartridge** | #### Bounty – $??? | #### ![Nintendo 64 Test Cartridge](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) | | #### **Nintendo 64 Demo/Beta/Prototype Cartridges** | #### Bounty – $??? | #### ![Nintendo 64 Demo/Beta/Prototype Cartridges](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) | | #### **Nintendo 64 Joybus Board** | #### Bounty – $??? | #### ![Nintendo 64 Joybus Board](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) | | #### **SN64 Development Kit** | #### Bounty – $300-400 | #### ![SN64 Development Kit](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) | | #### **Nintendo WideBoy 64 CGB/AGB** | #### Bounty – $200 | #### ![Nintendo WideBoy 64 CGB/AGB](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) | | #### **Majora’s Mask Grey NFR Cartridge** | #### Bounty – $600 | #### ![Majora's Mask Grey NFR Cartridge](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) | | #### **Majora’s Mask Display Only Box (Both Variants)** | #### Bounty – $40

#### (Each) | #### ![Majora's Mask Display Only Box](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E)![Majora's Mask Display Only Box](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) | | #### **Pokemon Stadium Battle Set** | #### Bounty – $200 | #### ![Pokemon Stadium Battle Set](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) | | **Nintendo DS/3DS**
------------------- | | | | #### **Pokemon Heart Gold/Soul Silver (CI”BIG”B)** | #### Bounty Soul Silver – $40 Heart Gold – $50 | #### ![Pokemon Heart Gold/Soul Silver (CI](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) | | **GameBoy/GameBoy Advance**
--------------------------- | | | | #### **Pokemon Gold (CIB)** | #### ~Bounty – $40~ | #### ![Pokemon Gold (CIB)](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) | | #### **Pokemon Yellow (CIB)** | #### ~Bounty – $50~ | #### ![Pokemon Yellow (CIB)](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) | | #### **Pokemon Ruby Debug cartridge** | #### Wish List | #### ![Pokemon Ruby Debug cartridge](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) ![Pokemon Ruby Debug cartridge](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) | | #### **Pokemon Distribution Systems (Pre DS)** | #### Wish List | #### ![Pokemon Distribution Systems (Pre DS)](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) | \* All Bounties included shipping to Ontario Canada MW400PX   ### Leave a Reply [Cancel reply](https://ultra64.ca/other-stuff/my-ongoing-wtb-list/#respond) Your email address will not be published. Required fields are marked \* Comment \* Name \* Email \* Website Save my name, email, and website in this browser for the next time I comment. Δ This site uses Akismet to reduce spam. [Learn how your comment data is processed](https://akismet.com/privacy/) . © 2019 [ultra64.ca](https://ultra64.ca/ "Ultra64") . All Rights Reserved. --- # New – Nintendo 64 – Audio Development Guide : Nintendo (Ultra) 64 [![](https://ultra64.ca/wordpress/wp-content/uploads/2018/02/Nintendo_64_Audio_Development_Guide.png)](https://ultra64.ca/new-nintendo-64-audio-development-guide/ "New – Nintendo 64 – Audio Development Guide") [New – Nintendo 64 – Audio Development Guide](https://ultra64.ca/new-nintendo-64-audio-development-guide/ "New – Nintendo 64 – Audio Development Guide") ========================================================================================================================================================= February 1, 2018 9:57 pm Published by [level42](https://ultra64.ca/author/level42/ "Posts by level42") [2 Comments](https://ultra64.ca/new-nintendo-64-audio-development-guide/#comments) Thanks to [The National Videogame Museum](http://nvmusa.org/) , we now have a copy of the elusive Nintendo 64 – Audio Development Guide to share with all of you. [Check it out here](https://ultra64.ca/resources/documentation/) ! Categorised in: [New Content](https://ultra64.ca/category/new-content/) This post was written by level42 2 Comments ---------- * ![](https://secure.gravatar.com/avatar/174b99bd9ab5576edc53bb5991f7c13f?s=96&d=mm&r=g) Feliz says: [February 5, 2019 at 3:43 am](https://ultra64.ca/new-nintendo-64-audio-development-guide/#comment-2339) Keep up the good work. Totally agree that these resources should be saved 😀 Always thought it would be neat to program an N64 game for fun and this stuff would be extremely valuable if I ever get off my lazy… [Read more](https://ultra64.ca/new-nintendo-64-audio-development-guide/#) ass and make an effort 😛 [Reply](https://ultra64.ca/new-nintendo-64-audio-development-guide/?replytocom=2339#respond) * ![](https://secure.gravatar.com/avatar/38986f65d8425d2d0aecf822d07f7286?s=96&d=mm&r=g) Koy says: [April 9, 2018 at 9:36 am](https://ultra64.ca/new-nintendo-64-audio-development-guide/#comment-1876) Thx for this! Cant wait for the next tutorials!!! [Reply](https://ultra64.ca/new-nintendo-64-audio-development-guide/?replytocom=1876#respond) ### Leave a Reply [Cancel reply](https://ultra64.ca/new-nintendo-64-audio-development-guide/#respond) Your email address will not be published. Required fields are marked \* Comment \* Name \* Email \* Website Save my name, email, and website in this browser for the next time I comment. Δ This site uses Akismet to reduce spam. [Learn how your comment data is processed](https://akismet.com/privacy/) . --- # Kyoto Microcomputer Co., Ltd. (KµC) : Nintendo (Ultra) 64 Kyoto Microcomputer Co., Ltd. (KµC) =================================== * Partner-N64 Development Kit [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Debug Console](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9881-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9881.jpg) Debug Console Complete [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Debug Console](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9882-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9882.jpg) Debug Console [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Debug Console PCB Top](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9885-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9885.jpg) Debug Console PCB Top [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Debug Console PCB Bottom](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9886-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9886.jpg) Debug Console PCB Bottom [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Partner-N - ISA Interface Card (Front)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9896-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9896.jpg) Partner-N – ISA Interface Card (Front) [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Partner-N - ISA Interface Card (Back)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9897-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9897.jpg) Partner-N – ISA Interface Card (Back) [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Partner-N - ISA Interface Card (Edge)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9898-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9898.jpg) Partner-N – ISA Interface Card (Edge) [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Nintendo 64 DCC Board - NUS DCC-00](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9893-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9893.jpg) Nintendo 64 DCC Board – NUS DCC-00 [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Nintendo 64 DCC Board - NUS DCC-00 (Front)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9890-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9890.jpg) Nintendo 64 DCC Board – NUS DCC-00 (Front) [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Nintendo 64 DCC Board - NUS DCC-00 (Back)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9891-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9891.jpg) Nintendo 64 DCC Board – NUS DCC-00 (Back) [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Nintendo 64 DCC Board - N64JOINT-01](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9895-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9895.jpg) Nintendo 64 DCC Board – N64JOINT-01 [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Nintendo 64 DCC Board - N64JOINT-01](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9894-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9894.jpg) Nintendo 64 DCC Board – N64JOINT-01 [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Development Cartridge (Front)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9901-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9901.jpg) Partner-N – Development Cartridge (Front) [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Development Cartridge (Back)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9903-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9903.jpg) Partner-N – Development Cartridge (Back) [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Development Cartridge (Inside)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9910-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9910.jpg) Partner-N – Development Cartridge (Inside) [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Development Cartridge (Inside)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9909-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9909.jpg) Partner-N – Development Cartridge (Inside) [![Nintendo 64 Programmable Cartridge (Front)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9912-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9912.jpg) Nintendo 64 Programmable Cartridge (Front) [![Nintendo 64 Programmable Cartridge (Back)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9914-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9914.jpg) Nintendo 64 Programmable Cartridge (Back) [![Nintendo 64 Programmable Cartridge (Inside)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9915-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9915.jpg) Nintendo 64 Programmable Cartridge (Inside) [![Nintendo 64 Programmable Cartridge (Inside)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9916-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9916.jpg) Nintendo 64 Programmable Cartridge (Inside) [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Nintendo 64 Developer Tools Partner-N64PC Debugger](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9917-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9917.jpg) Nintendo 64 Developer Tools Partner-N64PC Debugger [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Nintendo 64 Developer Tools Partner-N64 /Win Setup Disks](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9919-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9919.jpg) Nintendo 64 Developer Tools Partner-N64 /Win Setup Disks [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Nintendo 64 Partner-N64PC Programmer's Manual (Cover)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9920-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9920.jpg) Nintendo 64 Partner-N64PC Programmer’s Manual (Cover) [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Nintendo 64 Partner-N64PC Programmer's Manual (Inside)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9923-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9923.jpg) Nintendo 64 Partner-N64PC Programmer’s Manual (Inside) [![Kyoto Microcomputer Co., Ltd. (KµC) Partner-N Nintendo 64 Development Kit - Nintendo 64 Partner-N64PC Programmer's Manual (Back)](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9924.jpg) Nintendo 64 Partner-N64PC Programmer’s Manual (Back) * Partner-N64 Development Kit (Old Images) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.07.17.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.07.48.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.44.30.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.44.44.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.44.58.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.36.17.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.36.23.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.37.43.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.37.31.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.37.18.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.33.01.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.33.29.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.33.53.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.22.23.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.22.03.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.22.11.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.31.08.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.31.22.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.34.34.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.20.46.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.20.54.jpg) [![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/IMG_6728-e1466434935540.jpg) © 2019 [ultra64.ca](https://ultra64.ca/ "Ultra64") . All Rights Reserved. --- # website updates : Nintendo (Ultra) 64 Categories for website updates ============================== [![](https://ultra64.ca/wordpress/wp-content/uploads/2017/09/PARTNER-N64PC_Users_Guide_COVER-1-150x150.jpg)](https://ultra64.ca/tons-of-new-resources/ "Tons of new resources!") [Tons of new resources!](https://ultra64.ca/tons-of-new-resources/ "Tons of new resources!") --------------------------------------------------------------------------------------------- September 19, 2017 6:40 pm Published by [level42](https://ultra64.ca/author/level42/ "Posts by level42") [Leave your thoughts](https://ultra64.ca/tons-of-new-resources/#respond) Thanks to a couple of users over at AssemblerGames, we now have some new content! Check out the Documentation, and... [View Article](https://ultra64.ca/tons-of-new-resources/) [![Nintendo Ultra 64 - Photo Lab](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9887-150x150.jpg)](https://ultra64.ca/new-images/ "New images") [New images](https://ultra64.ca/new-images/ "New images") ---------------------------------------------------------- July 24, 2017 1:20 pm Published by [level42](https://ultra64.ca/author/level42/ "Posts by level42") [Leave your thoughts](https://ultra64.ca/new-images/#respond) Added new images to the gallery. [![Ultra 64 Logo](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/Ultra_64_logo-150x150.jpg)](https://ultra64.ca/ultra64-ca-launches/ "ultra64.ca launches!") [ultra64.ca launches!](https://ultra64.ca/ultra64-ca-launches/ "ultra64.ca launches!") --------------------------------------------------------------------------------------- July 24, 2017 1:10 pm Published by [level42](https://ultra64.ca/author/level42/ "Posts by level42") [2 Comments](https://ultra64.ca/ultra64-ca-launches/#comments) Today is the day, I’ve finally gotten around to updating this website. Feel free to comment below if there are... [View Article](https://ultra64.ca/ultra64-ca-launches/) --- # level42 : Nintendo (Ultra) 64 Author Archives for level42 =========================== [![](https://ultra64.ca/wordpress/wp-content/uploads/2019/06/Nintendo_64_Development_Cover-e1560871971256-150x150.jpg)](https://ultra64.ca/updates-fixes-new-content/ "Updates/Fixes/New Content!") [Updates/Fixes/New Content!](https://ultra64.ca/updates-fixes-new-content/ "Updates/Fixes/New Content!") --------------------------------------------------------------------------------------------------------- June 18, 2019 8:33 am Published by [level42](https://ultra64.ca/author/level42/ "Posts by level42") [Leave your thoughts](https://ultra64.ca/updates-fixes-new-content/#respond) New Content! – Nintendo 64 Developers Documents – v5.2 – Nintendo 64 Developers Toolkit – v5.2 – Nintendo 64 Online... [View Article](https://ultra64.ca/updates-fixes-new-content/) [![](https://ultra64.ca/wordpress/wp-content/uploads/2018/02/Nintendo_64_Audio_Development_Guide.png)](https://ultra64.ca/new-nintendo-64-audio-development-guide/ "New – Nintendo 64 – Audio Development Guide") [New – Nintendo 64 – Audio Development Guide](https://ultra64.ca/new-nintendo-64-audio-development-guide/ "New – Nintendo 64 – Audio Development Guide") --------------------------------------------------------------------------------------------------------------------------------------------------------- February 1, 2018 9:57 pm Published by [level42](https://ultra64.ca/author/level42/ "Posts by level42") [2 Comments](https://ultra64.ca/new-nintendo-64-audio-development-guide/#comments) Thanks to The National Videogame Museum, we now have a copy of the elusive Nintendo 64 – Audio Development Guide... [View Article](https://ultra64.ca/new-nintendo-64-audio-development-guide/) [![](https://ultra64.ca/wordpress/wp-content/uploads/2017/09/PARTNER-N64PC_Users_Guide_COVER-1-150x150.jpg)](https://ultra64.ca/tons-of-new-resources/ "Tons of new resources!") [Tons of new resources!](https://ultra64.ca/tons-of-new-resources/ "Tons of new resources!") --------------------------------------------------------------------------------------------- September 19, 2017 6:40 pm Published by [level42](https://ultra64.ca/author/level42/ "Posts by level42") [Leave your thoughts](https://ultra64.ca/tons-of-new-resources/#respond) Thanks to a couple of users over at AssemblerGames, we now have some new content! Check out the Documentation, and... [View Article](https://ultra64.ca/tons-of-new-resources/) [![Nintendo Ultra 64 - Photo Lab](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9887-150x150.jpg)](https://ultra64.ca/new-images/ "New images") [New images](https://ultra64.ca/new-images/ "New images") ---------------------------------------------------------- July 24, 2017 1:20 pm Published by [level42](https://ultra64.ca/author/level42/ "Posts by level42") [Leave your thoughts](https://ultra64.ca/new-images/#respond) Added new images to the gallery. [![Ultra 64 Logo](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/ultra64-ca-launches/ "ultra64.ca launches!") [ultra64.ca launches!](https://ultra64.ca/ultra64-ca-launches/ "ultra64.ca launches!") --------------------------------------------------------------------------------------- July 24, 2017 1:10 pm Published by [level42](https://ultra64.ca/author/level42/ "Posts by level42") [2 Comments](https://ultra64.ca/ultra64-ca-launches/#comments) Today is the day, I’ve finally gotten around to updating this website. Feel free to comment below if there are... [View Article](https://ultra64.ca/ultra64-ca-launches/) --- # Creating a Nintendo 64 Development Environment in VMWare Workstation : Nintendo (Ultra) 64 Creating a Nintendo 64 Development Environment in VMWare Workstation ==================================================================== _\*This tutorial assumes that you have already setup and configured VMWare Workstation installed on your computer._ ### Requirements: * VMWare Workstation – [Download](http://www.vmware.com/ca/en/products/workstation/features.html) (In this example, I am using v11.0.0, though most versions should work.) * Microsoft Windows 2000 Installation Media * Security Update for Windows 2000 (KB835732) – [Download](http://level42.ca/kb835732.EXE) (Required to install VMWare Tools) * Nintendo 64 SDK – [Download](http://level42.ca/projects/ultra64/SDKs/n64sdk.7z) * 7z – [Download](http://www.7-zip.org/download.html) ### Step 1: Begin by launching VMWare Workstation, and selecting “Create a New Virtual Machine” ![VMWare-Workstation-Tut1](http://level42.ca/wordpress/wp-content/uploads/2015/08/VMWare-Workstation-Tut1.png) 6 Comments ---------- * ![](https://secure.gravatar.com/avatar/207540b66427f98c20579b8d53fe4fea?s=96&d=mm&r=g) Roque Lacroix says: [July 5, 2018 at 3:30 pm](https://ultra64.ca/tutorials/creating-a-nintendo-64-development-environment-in-vmware-workstation/#comment-2118) When following this or the other more in depth VMware tutorial there is a problem that occurs on computers using AMD processors when attempting to install Windows 98. The only fix as of writing this reply is to make sure… [Read more](https://ultra64.ca/tutorials/creating-a-nintendo-64-development-environment-in-vmware-workstation/#) you are using version 12 of VMware player or earlier. Version 14(current stable version) does not function properly. I have verified the problem and solution myself so hopefully it helps someone else out as well. Cheers [Reply](https://ultra64.ca/tutorials/creating-a-nintendo-64-development-environment-in-vmware-workstation/?replytocom=2118#respond) * ![](https://secure.gravatar.com/avatar/2a2e66c7c3aa73262f33caac0d29d676?s=96&d=mm&r=g) Schplee says: [December 2, 2016 at 8:45 am](https://ultra64.ca/tutorials/creating-a-nintendo-64-development-environment-in-vmware-workstation/#comment-62) I’d also greatly appreciate a finished tutorial! I love your website and I can’t wait to learn more! [Reply](https://ultra64.ca/tutorials/creating-a-nintendo-64-development-environment-in-vmware-workstation/?replytocom=62#respond) * ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2096%2096'%3E%3C/svg%3E) level42 says: [December 2, 2016 at 10:48 am](https://ultra64.ca/tutorials/creating-a-nintendo-64-development-environment-in-vmware-workstation/#comment-63) It’s definitely on my list of things to do, hopefully I’ll get to it soon. [Reply](https://ultra64.ca/tutorials/creating-a-nintendo-64-development-environment-in-vmware-workstation/?replytocom=63#respond) * ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2096%2096'%3E%3C/svg%3E) Schplee says: [December 3, 2016 at 7:57 pm](https://ultra64.ca/tutorials/creating-a-nintendo-64-development-environment-in-vmware-workstation/#comment-64) Definitely! Although small, all of us N64-heads would love it! [Reply](https://ultra64.ca/tutorials/creating-a-nintendo-64-development-environment-in-vmware-workstation/?replytocom=64#respond) * ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2096%2096'%3E%3C/svg%3E) TinglePants says: [September 6, 2016 at 12:53 pm](https://ultra64.ca/tutorials/creating-a-nintendo-64-development-environment-in-vmware-workstation/#comment-60) Hi, I love your site! Would you mind finishing this tutorial? Or point me to a working example for a N64 Dev environment on a virtual machine? Thanks so much for your hard work! [Reply](https://ultra64.ca/tutorials/creating-a-nintendo-64-development-environment-in-vmware-workstation/?replytocom=60#respond) * ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2096%2096'%3E%3C/svg%3E) level42 says: [September 6, 2016 at 2:53 pm](https://ultra64.ca/tutorials/creating-a-nintendo-64-development-environment-in-vmware-workstation/#comment-61) I will try to finish up the tutorial soon. I’m busy working on a new site layout. [Reply](https://ultra64.ca/tutorials/creating-a-nintendo-64-development-environment-in-vmware-workstation/?replytocom=61#respond) ### Leave a Reply [Cancel reply](https://ultra64.ca/tutorials/creating-a-nintendo-64-development-environment-in-vmware-workstation/#respond) Your email address will not be published. Required fields are marked \* Comment \* Name \* Email \* Website Save my name, email, and website in this browser for the next time I comment. Δ This site uses Akismet to reduce spam. [Learn how your comment data is processed](https://akismet.com/privacy/) . © 2019 [ultra64.ca](https://ultra64.ca/ "Ultra64") . All Rights Reserved. --- # ultra64.ca launches! : Nintendo (Ultra) 64 [![Ultra 64 Logo](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/Ultra_64_logo.jpg)](https://ultra64.ca/ultra64-ca-launches/ "ultra64.ca launches!") [ultra64.ca launches!](https://ultra64.ca/ultra64-ca-launches/ "ultra64.ca launches!") ======================================================================================= July 24, 2017 1:10 pm Published by [level42](https://ultra64.ca/author/level42/ "Posts by level42") [2 Comments](https://ultra64.ca/ultra64-ca-launches/#comments) Today is the day, I’ve finally gotten around to updating this website. Feel free to comment below if there are any suggestions or opinions. In addition to the new website, I have some big items planned including new releases, a new gallery with updated images, and more! Stay tuned! Tags: [ultra64.ca](https://ultra64.ca/tag/ultra64-ca/) , [updates](https://ultra64.ca/tag/updates/) , [website](https://ultra64.ca/tag/website/) Categorised in: [website updates](https://ultra64.ca/category/website-updates/) This post was written by level42 2 Comments ---------- * ![](https://secure.gravatar.com/avatar/d1aef6e237ed8c9e815fea8427f5b446?s=96&d=mm&r=g) Pascal says: [July 26, 2017 at 9:04 pm](https://ultra64.ca/ultra64-ca-launches/#comment-66) Thank you so much for doing this. Last time I was on [http://level42.ca](http://level42.ca/) there was no updates on the N64 articles,glad that you’re still on it. Great work, keep it up. Greetings from switzerland. [Reply](https://ultra64.ca/ultra64-ca-launches/?replytocom=66#respond) * ![](https://secure.gravatar.com/avatar/29f3099fd1a16252881ef1246f3dbe84?s=96&d=mm&r=g) level42 says: [July 27, 2017 at 10:14 am](https://ultra64.ca/ultra64-ca-launches/#comment-67) Well, at the moment, there is no new content (Asides from some new, updated images that I’m slowly uploading) but the new website was a huge hurdle that always stood in my way. Now that it for the most part… [Read more](https://ultra64.ca/ultra64-ca-launches/#) is out of the way, I can finally start focusing on some new content. Keep in mind, I’m just a one man operation and things will still take time to come, but I will do my best to provide as much information as I can. Thanks for the comment. [Reply](https://ultra64.ca/ultra64-ca-launches/?replytocom=67#respond) ### Leave a Reply [Cancel reply](https://ultra64.ca/ultra64-ca-launches/#respond) Your email address will not be published. Required fields are marked \* Comment \* Name \* Email \* Website Save my name, email, and website in this browser for the next time I comment. Δ This site uses Akismet to reduce spam. [Learn how your comment data is processed](https://akismet.com/privacy/) . --- # Blog : Nintendo (Ultra) 64 Latest Posts ============ [![](https://ultra64.ca/wordpress/wp-content/uploads/2019/06/Nintendo_64_Development_Cover-e1560871971256-150x150.jpg)](https://ultra64.ca/updates-fixes-new-content/ "Updates/Fixes/New Content!") [Updates/Fixes/New Content!](https://ultra64.ca/updates-fixes-new-content/ "Updates/Fixes/New Content!") --------------------------------------------------------------------------------------------------------- June 18, 2019 8:33 am Published by [level42](https://ultra64.ca/author/level42/ "Posts by level42") [Leave your thoughts](https://ultra64.ca/updates-fixes-new-content/#respond) New Content! – Nintendo 64 Developers Documents – v5.2 – Nintendo 64 Developers Toolkit – v5.2 – Nintendo 64 Online... [View Article](https://ultra64.ca/updates-fixes-new-content/) [![](https://ultra64.ca/wordpress/wp-content/uploads/2018/02/Nintendo_64_Audio_Development_Guide.png)](https://ultra64.ca/new-nintendo-64-audio-development-guide/ "New – Nintendo 64 – Audio Development Guide") [New – Nintendo 64 – Audio Development Guide](https://ultra64.ca/new-nintendo-64-audio-development-guide/ "New – Nintendo 64 – Audio Development Guide") --------------------------------------------------------------------------------------------------------------------------------------------------------- February 1, 2018 9:57 pm Published by [level42](https://ultra64.ca/author/level42/ "Posts by level42") [2 Comments](https://ultra64.ca/new-nintendo-64-audio-development-guide/#comments) Thanks to The National Videogame Museum, we now have a copy of the elusive Nintendo 64 – Audio Development Guide... [View Article](https://ultra64.ca/new-nintendo-64-audio-development-guide/) [![](https://ultra64.ca/wordpress/wp-content/uploads/2017/09/PARTNER-N64PC_Users_Guide_COVER-1-150x150.jpg)](https://ultra64.ca/tons-of-new-resources/ "Tons of new resources!") [Tons of new resources!](https://ultra64.ca/tons-of-new-resources/ "Tons of new resources!") --------------------------------------------------------------------------------------------- September 19, 2017 6:40 pm Published by [level42](https://ultra64.ca/author/level42/ "Posts by level42") [Leave your thoughts](https://ultra64.ca/tons-of-new-resources/#respond) Thanks to a couple of users over at AssemblerGames, we now have some new content! Check out the Documentation, and... [View Article](https://ultra64.ca/tons-of-new-resources/) [![Nintendo Ultra 64 - Photo Lab](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/new-images/ "New images") [New images](https://ultra64.ca/new-images/ "New images") ---------------------------------------------------------- July 24, 2017 1:20 pm Published by [level42](https://ultra64.ca/author/level42/ "Posts by level42") [Leave your thoughts](https://ultra64.ca/new-images/#respond) Added new images to the gallery. [![Ultra 64 Logo](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20150%20150'%3E%3C/svg%3E)](https://ultra64.ca/ultra64-ca-launches/ "ultra64.ca launches!") [ultra64.ca launches!](https://ultra64.ca/ultra64-ca-launches/ "ultra64.ca launches!") --------------------------------------------------------------------------------------- July 24, 2017 1:10 pm Published by [level42](https://ultra64.ca/author/level42/ "Posts by level42") [2 Comments](https://ultra64.ca/ultra64-ca-launches/#comments) Today is the day, I’ve finally gotten around to updating this website. Feel free to comment below if there are... [View Article](https://ultra64.ca/ultra64-ca-launches/) --- # Intelligent Systems : Nintendo (Ultra) 64 Intelligent Systems =================== * NU64 Flash Gang Writer [![](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-05-03-20.33.54-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-05-03-20.33.54.jpg) [![](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-05-03-20.31.15-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-05-03-20.31.15.jpg) [![](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-05-03-20.33.20-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-05-03-20.33.20.jpg) [![](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-05-03-20.32.28-e1431451070919-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-05-03-20.32.28-e1431451070919.jpg) [![](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-05-03-20.31.30-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-05-03-20.31.30.jpg) [![](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-05-03-20.32.51-e1431450906531-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-05-03-20.32.51-e1431450906531.jpg) © 2019 [ultra64.ca](https://ultra64.ca/ "Ultra64") . All Rights Reserved. --- # Gallery : Nintendo (Ultra) 64 BLANK PAGE FOR SORTING © 2019 [ultra64.ca](https://ultra64.ca/ "Ultra64") . All Rights Reserved. --- # Credits : Nintendo (Ultra) 64 Credits ======= While I do my best to provide as much information here as possible, I must relay credit to those who’ve helped contribute information to this project. The National Videogame Museum (Dir. Sean Kelly) ----------------------------------------------- [The National Videogame Museum](http://nvmusa.org/) The National Videogame Museum has stepped forward to make some tremendous contributions to the Nintendo 64 Development community, providing some material not previously available. Acting Museum Director, Sean Kelly, who was generous enough to push through some elusive manuals to their scanning department to have them digitized for us all. We cannot thank Sean Kelly, and all the staff at The National Videogame Museum enough. Your contributions will become true assets to the community. Thank you again for all your hard work and dedication. For those in, and around the Dallas area of Texas, are highly encouraged to pop into The National Videogame Museum. Located at 8004 North Dallas Parkway, Frisco, TX 75034. For more information about The National Videogame Museum, please visit their website over at: [http://nvmusa.org/](http://nvmusa.org/) Gerry\_MAN ---------- [Profile](https://assemblergames.com/members/gerry_man.62060/) Gerry\_MAN has been a huge asset to this project, procuring many rare items, and releasing them here for all of us. Cannot thank Gerry\_MAN enough for all his hard work. Please check out his site here: [http://www.digital-circuitry.com](http://www.digital-circuitry.com/) fraser#9717 ----------- [Profile](https://github.com/fraser125) fraser has generously donated some equipment that will be used in a future section on ultra64.ca. Big thanks goes out to fraser! Gilgamesh --------- [Profile](https://assemblergames.com/members/gilgamesh.1270/) Big thank you goes out to Gilgamesh, who was generous enough to take some time to provide us with a older version of the Nintendo 64 Sound Tools (Version 1.0) Vinyl ----- [Profile](https://www.assemblergames.com/members/vinyl.93873/) Vinyl has allowed us to host the N64/64DD pre-release Software that he recovered from the lost tapes he found, these are a great asset for this project. Thank you Vinyl: [https://www.consolevariations.com/](https://www.consolevariations.com/) Kammedo ------- [Profile](https://assemblergames.com/members/kammedo.494/) Kammedo has generously provided us the tutotorial he worked on to create your own IS Viewer Nintendo 64. You can check out the tutorial here: Make your own Partner N64 console, for use with IS Viewer joe19 ----- [Profile](https://assemblergames.com/members/joe19.93635/) joe19 is an awesome local (to me) collector and enthusiast of Nintendo 64 Development hardware, and we even cool enough to drive his equipment over to allow me to snap some photos for the website. _\*Names are in no particular order._ © 2019 [ultra64.ca](https://ultra64.ca/ "Ultra64") . All Rights Reserved. --- # website : Nintendo (Ultra) 64 Tag Archive: website ==================== [![Ultra 64 Logo](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/Ultra_64_logo-150x150.jpg)](https://ultra64.ca/ultra64-ca-launches/ "ultra64.ca launches!") [ultra64.ca launches!](https://ultra64.ca/ultra64-ca-launches/ "ultra64.ca launches!") --------------------------------------------------------------------------------------- July 24, 2017 1:10 pm Published by [level42](https://ultra64.ca/author/level42/ "Posts by level42") [2 Comments](https://ultra64.ca/ultra64-ca-launches/#comments) Today is the day, I’ve finally gotten around to updating this website. Feel free to comment below if there are... [View Article](https://ultra64.ca/ultra64-ca-launches/) --- # New Content : Nintendo (Ultra) 64 Categories for New Content ========================== [![](https://ultra64.ca/wordpress/wp-content/uploads/2018/02/Nintendo_64_Audio_Development_Guide.png)](https://ultra64.ca/new-nintendo-64-audio-development-guide/ "New – Nintendo 64 – Audio Development Guide") [New – Nintendo 64 – Audio Development Guide](https://ultra64.ca/new-nintendo-64-audio-development-guide/ "New – Nintendo 64 – Audio Development Guide") --------------------------------------------------------------------------------------------------------------------------------------------------------- February 1, 2018 9:57 pm Published by [level42](https://ultra64.ca/author/level42/ "Posts by level42") [2 Comments](https://ultra64.ca/new-nintendo-64-audio-development-guide/#comments) Thanks to The National Videogame Museum, we now have a copy of the elusive Nintendo 64 – Audio Development Guide... [View Article](https://ultra64.ca/new-nintendo-64-audio-development-guide/) --- # SN Systems : Nintendo (Ultra) 64 SN Systems ========== * Nintendo 64 Development Kit [![SN Systems - SN64 ProDG 1.0.0.2](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9918-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/iPhone_a8941_IMG_9918.jpg) SN Systems – SN64 ProDG 1.0.0.2 * Maestro 64 Music Development Kit [![](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/image-no-image-small.png)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/image-no-image-small.png) © 2019 [ultra64.ca](https://ultra64.ca/ "Ultra64") . All Rights Reserved. --- # My Pokemon games collection : Nintendo (Ultra) 64 My Pokemon games collection =========================== ![1 - R8XqSLO](http://level42.ca/wordpress/wp-content/uploads/2015/10/1-R8XqSLO-1024x435.jpg) Currently, my Pokemon games collection consists of the following items: Pokemon Red Version Pokemon Blue Version Pokemon Green Version (Click here for details) Pokemon Yellow Version (Not pictured) Pokemon Pinball Pokemon Gold Version Pokemon Silver Version Pokemon Crystal Version Pokemon LeafGreen Version Pokemon FireRed Version (Players Choice) Pokemon FireRed Version (Sealed) Pokemon Ruby Version Pokemon Sapphire Version Pokemon Emerald Version Pokemon Chao Black Version (Rom Hack) Pokemon Frigo Returns (Rom Hack) Pokemon Perla Version (Rom Hack) Pokemon Quartz Version (Rom Hack) Pokemon Diamond Version Pokemon Pearl Version (x2) Pokemon Platinum Version Pokemon HeartGold Version (x2 \[x1 Missing Pokewalker/Manual/Cardboard insert\] \[x1 Just big box\]) Pokemon SoulSilver Version Pokemon Black Version Pokemon White Version (x3 \[x2 Sealed\]) Pokemon Black 2 Version Pokemon White 2 Version Pokemon Mystery Dungeon – Explorers of Darkness (Case/Manual only) Pokemon X Version (x2) Pokemon Y Version Pokemon Omega Ruby Version (x2 \[x1 Sealed\]) Pokemon Alpha Sapphire Version (Make chart similar to home page, with image links to detailed CIB photo of each game) © 2019 [ultra64.ca](https://ultra64.ca/ "Ultra64") . All Rights Reserved. --- # Make your own Partner N64 console, for use with IS Viewer : Nintendo (Ultra) 64 Introduction ------------ Coding on the N64 requires lots of ressources, the mostly one in the form of money (and time), because of parts of dev systems you need to get together (and comfortable with) in order to be able to develope your own games on it. The one who wants to code on the N64 has two choices : either use a non official kit not featuring important options (like great 64dd support) or getting an official one, with all options but whose cheapness is, well, not that cheap. The Partner N kit is one of those. The Partner N kit is usually composed of : * one (sometimes two) Partner N ROM Emulators (=Partner N Carts) + CD with Partner N software (debugger) * ISA / PCI control interface card * KµC N64 * N64 Software Developement kit (commonly 5 CDS: OS PC, OS SGI, Dev Tools, Online Manuals, Developer Doc) * Documentation (One or two books depending if you have the blue 64DD drive too : Partner N and 64DD Docs) Of the whole kit, you usually get to find only the Partner N’s cartridges on the net. ISA control cards are quite rare, where KµC N64 are a bit less but still hard to find. There should be a PCI version for it around too, but none of the authors have ever become to see one. The software and documentation usually can easily be retrieved with the right connections. This guide intends to get you one step closer to the world of N64, by showing you how easily you can mod your n64 to make it become compatible with a Partner N ROM emulator and the relative software. A KµC N64 is just a plain retail N64, completed with some small hacks that allow the Partner N bundle to interact with it. This is done because the Partner N64 needs signals on PI (the Parallel Interface, or PI short) bus (aka. cart connector) which are not found in a common (retail) N64. What do I need? --------------- Proper screwdrivers – the special 4,5 mm version of he Nintendo “gamebit” An XActo type knife for lifting pins Some AWG 32 cables (25-40 cm will do the job) Soldering Iron + flux Patience A firm hand Note : even being the soldering actions very easy and of reduced dimensions, it is important to have at least some experience with soldering, especially on SMD parts. You can easily find tutorials about this on the net. The mod has been performed on a NUS-CPU-04 model N64, which is similar (and thus compatible) with models NUS-CPU-03 and NUS-CPU (P)-01. All N64s have (a) CPU, (b) PI, (c) PIF and (d) reset switch, so it is also garanteed that they can all be modified! But the pictures you see here cannot be used on any different models than the three listed here. Ok, I have everything! now how should I put all that crap to use? ----------------------------------------------------------------- Carefully take the Memory Expansion pak off if you have any inserted. Open the N64 with the special screwdriver. There are 5 of them on the back of it that need to be removed. You can easily find a guide on the net that show you how if you dont know what we are talking about here. After having taked off the plastic overyou’ll find yourself in front of this : figure 3.1 Dont get scaried by that, its only a (massive) cooler. Just get all screws off, starting from the top. Remember the position of those screws. Not all of them fit in every hole, and if you want to have your N64 as you had it before opening it, you should care. Take the metal plates off as they get loose once you lift the screws away. And you’ll see.. the internal frequecency shielding of the N64 entirely! Carefully lift it from the rest. It may be hard to find a point where to lift it, but it gets away easily. So be prepared to meet the N64 in its very own fashion. figure 3.2 There you have a CPU, a RCP, and two RDRAM chips each 2MB. Well, you dont see them because of the heat dissipators on them. But they are there, just believe it. This guide (as stated) was realized on a N64 NUS-CPU-04 model. Other models could be compatilbe with the mod but that hasnt been prooved yet. We are now going to so something you should never try on your SNES, or any other console. Put your hands on the sides of the cart connector and slowly lift it from the board. Dont worry, its going to get off with just a bit of pushing. After you took off the connector, lift the N64 Board, and put it near the case. figure 3.3 There. That was it for the opening. ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) figure 3.1 ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) figure 3.2 ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) figure 3.3 Wow. This looks pretty cool! And now? ------------------------------------- We are not going to alter the N64 much. Remember, it should still be functional after the mod. The modification consists of: A. removing three signals from pins on PI bus B. wiring up new debugging related signals to these three pins The signals that are removed from the PI: PI pin 24 – “left audio” PI pin 46 – “video” PI pin 49 – “right audio” These pins are normally not in used by games. Only special carts, such as the AV-capture cart, use them. And because of this, said card is not to be held compatible with the modded N64 anymore. The signals that are added to the PI: CPU pin 28 – “int 4” PIF pin 8 – “enable” Reset – “warm reset” (aka. reset button signal) After the modification: PI\_24 = CPU\_28 PI\_46 = reset PI\_49 = PIF\_8 Disabling The Signals --------------------- PI\_46 in this retail N64 is connected to U4 pin 12. U4 is also known as VDC-NUS aka the video DAC. You need to cut the trace going to PI\_46. We located the trace just above C130 in this photo: figure 5.1 Cut the trace, as shown in the photo below. PI\_46 can then be used for other things. figure 5.2 PI\_24 and PI\_49 are used for left and right audio (if the cart has special analog audio circuits inside). These signals are handled by the AMP-NUS chip in a retail N64, and on their way to the AMP-NUS these signals go through R21/C30 and R17/C29 respectively. Removed these signals by desoldering the four SMD components R21, C30, R17 and C29 on the back side of the PCB: figure 5.3 After desoldering you have a total of 8 clean pads (two rows of four): figure 5.4 We name these 8 pads in the rest of the guide: a b c d e f g h Now you have PI\_24, PI\_46 and PI\_49 ready for alternative use. ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) figure 5.1 ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) figure 5.2 ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) figure 5.3 ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) figure 5.4 Hooking up the Partner N Signals -------------------------------- To hook up the new signals we used AWG 32 wire. If you want have wires going through the small via holes in the PCB like we did, you might want to use wire that is even thinner. It was really tight. CPU\_28 goes to pad “f” through the bigger via hole right of the „30” label. Measure the wire length you need. Then lift CPU pin 28 from the PCB with an X-Acto type knife, like shown here: figure 6.1 Solder a piece of wire to it: figure 6.2 PIF\_8 goes to pad “c”. It turns out PIF\_8 is also connected to U3 pin 4, so if you want you can solder the wire going to pad “c” to U3\_4 like this, and plug it in the nearest via hole: figure 6.3 PI\_46 goes to reset. Solder a piece of wire to it like this: figure 6.4 Then look it up to reset button like shown here (upper right corner): figure 6.5 Solder the wires going from CPU\_28 and U3\_4 (same as PIF\_8) to pads “f” and “c” respectively, like shown here: figure 6.6 There : a simple way to transform your retail N64 in a fully compatible KµC N64! 😀 ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) figure 6.1 ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) figure 6.2 ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) figure 6.3 ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) figure 6.4 ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) figure 6.5 ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) figure 6.6 Credits & Copyright Stuff ------------------------- #### Authors: ConsoleFun, kammedo #### Thanks to: Crazynation for pinouts ([www.crazynation.org](http://web.archive.org/web/20131006232809/http://crazynation.org/) ) The guys over at ASSEMBLERGames, the most obscure place of the net! #### Hosted by: ultra64.ca, with permission from kammedo #### Copyright: The usual : Every Mark is TM of the respective company. Modding is made at you own risk, and thus we cant be held responsible for you causing damage to your N64. © 2019 [ultra64.ca](https://ultra64.ca/ "Ultra64") . All Rights Reserved. --- # Software : Nintendo (Ultra) 64 Software ======== Nintendo -------- * ![Developer Documents - v5.2](https://ultra64.ca/wordpress/wp-content/uploads/2019/06/Nintendo_64_Developer_Documents_v5.2-150x150.jpg) [Developer Documents – v5.2](https://ultra64.ca/resources/software/#) * ![Developer OS/Library – IRIX v2.0I](https://ultra64.ca/wordpress/wp-content/uploads/2017/09/Nintendo_64_Developers_OS-Library_IRIX_v2.0I-150x150.jpg) [Developer OS/Library – IRIX v2.0I](https://ultra64.ca/resources/software/#) * ![Developer OS/Library – WIN95 v2.0I](https://ultra64.ca/wordpress/wp-content/uploads/2017/09/Nintendo_64_Developers_OS-Library_WIN95_v2.0I-150x150.jpg) [Developer OS/Library – WIN95 v2.0I](https://ultra64.ca/resources/software/#) * ![Developer Patch NOA9801](https://ultra64.ca/wordpress/wp-content/uploads/2017/09/Nintendo_64_Developers_Patch_NOA9801-150x150.jpg) [Developer Patch NOA9801](https://ultra64.ca/resources/software/#) * ![Developer Tool Kit – v3.0](https://ultra64.ca/wordpress/wp-content/uploads/2017/09/Nintendo_64_Developers_Toolkit_v3.0-150x150.jpg) [Developer Tool Kit – v3.0](https://ultra64.ca/resources/software/#) * ![Developer Tool Kit – v4.0](https://ultra64.ca/wordpress/wp-content/uploads/2020/02/Nintendo_64_Developers_Toolkit_v4.0-150x150.jpg) [Developer Tool Kit – v4.0](https://ultra64.ca/resources/software/#) * ![Developer Tool Kit – v4.1](https://ultra64.ca/wordpress/wp-content/uploads/2017/09/Nintendo_64_Developers_Toolkit_v4.1-150x150.jpg) [Developer Tool Kit – v4.1](https://ultra64.ca/resources/software/#) * ![Developer Tool Kit – v5.0](https://ultra64.ca/wordpress/wp-content/uploads/2017/09/Nintendo_64_Developers_Toolkit_v5.0-150x150.jpg) [Developer Tool Kit – v5.0](https://ultra64.ca/resources/software/#) * ![Developer Tool Kit – v5.2](https://ultra64.ca/wordpress/wp-content/uploads/2019/06/Nintendo_64_Developers_Toolkit_v5.2-150x150.jpg) [Developer Tool Kit – v5.2](https://ultra64.ca/resources/software/#) * ![NIFF Editor – WIN95/IRIX v1.35](https://ultra64.ca/wordpress/wp-content/uploads/2017/09/Nintendo_64_NIFF_Editor_PC-IRIX_v1.35-150x150.jpg) [NIFF Editor – WIN95/IRIX v1.35](https://ultra64.ca/resources/software/#) * ![NIFF / NuSystem – v1.0](https://ultra64.ca/wordpress/wp-content/uploads/2017/09/Nintendo_64_NIFF_NuSystem_v1.0-150x150.jpg) [NIFF / NuSystem – v1.0](https://ultra64.ca/resources/software/#) * ![Online Manuals - v4.0](https://ultra64.ca/wordpress/wp-content/uploads/2020/02/Nintendo_64_Online_Manuals_v4.0-150x150.jpg) [Online Manuals – v4.0](https://ultra64.ca/resources/software/#) * ![Online Manuals - v5.2](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [Online Manuals – v5.2](https://ultra64.ca/resources/software/#) * ![OS/PC-SGI – v2.0J](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [OS/PC-SGI – v2.0J](https://ultra64.ca/resources/software/#) * ![OS/PC – v2.0H](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [OS/PC – v2.0H](https://ultra64.ca/resources/software/#) * ![OS/PC – v2.0K](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [OS/PC – v2.0K](https://ultra64.ca/resources/software/#) * ![OS/PC – v2.0L](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [OS/PC – v2.0L](https://ultra64.ca/resources/software/#) * ![OS/SGI – v2.0k](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [OS/SGI – v2.0k](https://ultra64.ca/resources/software/#) * ![OS/SGI – v2.0L](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [OS/SGI – v2.0L](https://ultra64.ca/resources/software/#) * ![Sound Tools – WIN95 v1.0](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [Sound Tools – WIN95 v1.0](https://ultra64.ca/resources/software/#) * ![Sound Tools – WIN95-SGI v3.14](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [Sound Tools – WIN95-SGI v3.14](https://ultra64.ca/resources/software/#) Code Warrior ------------ * ![allman52](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [allman52](https://ultra64.ca/resources/software/#) * ![App Selector](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [App Selector](https://ultra64.ca/resources/software/#) * ![CW_N64_DR1](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [CW\_N64\_DR1](https://ultra64.ca/resources/software/#) * ![CWN64_r1J](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [CWN64\_r1J](https://ultra64.ca/resources/software/#) * ![CWN64R2J](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [CWN64R2J](https://ultra64.ca/resources/software/#) * ![n64kit52](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [n64kit52](https://ultra64.ca/resources/software/#) * ![os20l](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [os20l](https://ultra64.ca/resources/software/#) * ![Power Up Kit](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [Power Up Kit](https://ultra64.ca/resources/software/#) Kyoto Microcomputer Co., Ltd. (KµC) ----------------------------------- * ![Partner-N64 – Setup – v1.0](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [Partner-N64 – Setup – v1.0](https://ultra64.ca/resources/software/#) * ![Partner-N64 – Debugger – v1.03](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [Partner-N64 – Debugger – v1.03](https://ultra64.ca/resources/software/#) * ![Partner-N64 – Developer Tools and Debugger – v1.06](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [Partner-N64 – Developer Tools and Debugger – v1.06](https://ultra64.ca/resources/software/#) * ![Partner-N64 – Debugger – v1.08D + GCC – v1.2](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [Partner-N64 – Debugger – v1.08D + GCC – v1.2](https://ultra64.ca/resources/software/#) * ![Partner-N64 – Setup – v1.10b](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [Partner-N64 – Setup – v1.10b](https://ultra64.ca/resources/software/#) * ![Partner-N64 - SGI – Debugger – v1.06](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [Partner-N64 – SGI – Debugger – v1.06](https://ultra64.ca/resources/software/#) SN Systems ---------- * ![ProDG – v1.0.0.2](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [ProDG – v1.0.0.2](https://ultra64.ca/resources/software/#) Silicon Graphics ---------------- * ![SGI Nintendo Ultra 64 CES 94 Demos](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [SGI Nintendo Ultra 64 CES 94 Demos](https://ultra64.ca/resources/software/#) Multi-Gen --------- * ![Multi-Gen_GameGenII_V1.1.2+KeyGen.zip](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [GameGenII – V1.1.2 + KeyGen](https://ultra64.ca/resources/software/#) * ![TLF-SOFT-10.06.05.MULTIGEN.PARADIGM.CREATOR.V3.0-ISO.iso](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [Paradigm Creator – V3.0](https://ultra64.ca/resources/software/#) N64/64DD pre-release Software ----------------------------- * ![64dd_library.zip](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [64dd\_library.zip](https://ultra64.ca/resources/software/#) * ![isv970924.zip](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [isv970924.zip](https://ultra64.ca/resources/software/#) * ![n64_lib_files_and_debugger_1.0h.zip](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [n64\_lib\_files\_and\_debugger \_1.0h.zip](https://ultra64.ca/resources/software/#) * ![prerelease_software.zip](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [prerelease\_software.zip](https://ultra64.ca/resources/software/#) * ![software_for_irix_tape.zip](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [software\_for\_irix\_tape.zip](https://ultra64.ca/resources/software/#) Other software -------------- * ![n64dev.zip](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [n64dev.zip](https://ultra64.ca/resources/software/#) * ![n64sdk.7z](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [n64sdk.7z](https://ultra64.ca/resources/software/#) * ![NINTENDO 64 SDK 5.0 (Installer) (CD-RIP).7z](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [NINTENDO 64 SDK 5.0 (Installer) (CD-RIP).7z](https://ultra64.ca/resources/software/#) * ![iQue_Player_SDK_v1.5_Linux-SUXXORS.rar](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) [iQue\_Player\_SDK\_v1.5\_Linux-SUXXORS.rar](https://ultra64.ca/resources/software/#) _\*Not sure what the differences with some of these are. I will try to find out and explain them._ Comments: \- 11 Comments ----------- * ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2096%2096'%3E%3C/svg%3E) P Silva says: [March 26, 2018 at 6:56 am](https://ultra64.ca/resources/software/#comment-1815) Yo! I was wondering if you happened to have the complete General MIDI Soundbank AIFF files that Nintendo supplied developers with? I see reference to it in a few places in various Dev documentation. In the sound tools disc, and… [Read more](https://ultra64.ca/resources/software/#) a few of the Dev Kit Tools discs I was able to find a folder labeled Demo Songs, that have a few AIFF files that they used but not a complete library but perhaps Im just missing something! Awesome work and site though thank you [Reply](https://ultra64.ca/resources/software/?replytocom=1815#respond) * ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2096%2096'%3E%3C/svg%3E) level42 says: [March 26, 2018 at 10:17 am](https://ultra64.ca/resources/software/#comment-1816) It’s possible that the information simply haven’t surfaced yet. Myself and several others who’ve been assisting me, try to ensure that everything possible is available, however, something just haven’t seen the light of day yet. You can pop onto our… [Read more](https://ultra64.ca/resources/software/#) community Discord and ask around there, to see if anyone has any further information regarding these AIFF files. https://discord.gg/DpSXZ [Reply](https://ultra64.ca/resources/software/?replytocom=1816#respond) * ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2096%2096'%3E%3C/svg%3E) Gonzo says: [November 29, 2017 at 6:12 am](https://ultra64.ca/resources/software/#comment-456) Thank you so much for sharing these!!! Hope we get to see one day CodeWarrior for N64; it’s quite tough to come by. Keep it up! [Reply](https://ultra64.ca/resources/software/?replytocom=456#respond) * ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2096%2096'%3E%3C/svg%3E) Buu342 says: [February 28, 2018 at 6:41 am](https://ultra64.ca/resources/software/#comment-1358) You’re in luck [https://assemblergames.com/threads/n64-development-codewarrior-sdk-cds-monegi-smart-pack-a.68696/](https://assemblergames.com/threads/n64-development-codewarrior-sdk-cds-monegi-smart-pack-a.68696/) [Reply](https://ultra64.ca/resources/software/?replytocom=1358#respond) * ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2096%2096'%3E%3C/svg%3E) level42 says: [March 1, 2018 at 9:12 am](https://ultra64.ca/resources/software/#comment-1397) Yup, and everything is now posted, ready to go. [Reply](https://ultra64.ca/resources/software/?replytocom=1397#respond) * ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2096%2096'%3E%3C/svg%3E) Juan Ignacio Riesco says: [November 5, 2017 at 10:42 pm](https://ultra64.ca/resources/software/#comment-358) Hi, you have N64 translator PA-NU64N for Power Animator (Alias-Wavefront) or do you know someone has it, because i have Power animator V9.0 and i have PSX translator but i would like to have the N64 translator for making… [Read more](https://ultra64.ca/resources/software/#) 3D Animations and export to N64, please tell me, thanks [Reply](https://ultra64.ca/resources/software/?replytocom=358#respond) * ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2096%2096'%3E%3C/svg%3E) level42 says: [November 8, 2017 at 10:05 am](https://ultra64.ca/resources/software/#comment-370) Unfortunately, I don’t have this, but I will keep my eye out for it. Thanks! [Reply](https://ultra64.ca/resources/software/?replytocom=370#respond) * ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2096%2096'%3E%3C/svg%3E) Misscelan says: [September 16, 2017 at 5:33 am](https://ultra64.ca/resources/software/#comment-172) Thanks so much for hosting and relasing all this. Just wanted to mention that this file seems to be corrupted: Nintendo 64 – Developer OS/Library – WIN95 v2.0I Keep up the good work! [Reply](https://ultra64.ca/resources/software/?replytocom=172#respond) * ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2096%2096'%3E%3C/svg%3E) level42 says: [September 18, 2017 at 9:22 am](https://ultra64.ca/resources/software/#comment-175) I’ll check out the file, it was already re-ripped and re-uploaded once before. Thanks for the heads up. [Reply](https://ultra64.ca/resources/software/?replytocom=175#respond) * ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2096%2096'%3E%3C/svg%3E) Emmanuel Istace says: [May 15, 2018 at 3:29 pm](https://ultra64.ca/resources/software/#comment-1987) I confirm the corruption. [Reply](https://ultra64.ca/resources/software/?replytocom=1987#respond) * ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2096%2096'%3E%3C/svg%3E) level42 says: [May 15, 2018 at 4:04 pm](https://ultra64.ca/resources/software/#comment-1988) We actually did some testing with this ISO, and re-ripped it a few times, it seems that there’s an incompatibility with modern-day operating systems. I’m pretty sure it requires x86 or less to open, as we we’re only able to… [Read more](https://ultra64.ca/resources/software/#) open this on older 32bit machines. Try setting up a simple Virtual Machine running Windows 95 – Windows 7 in 32Bit x86, and you should be able to open and run the disk. Hope that helps. [Reply](https://ultra64.ca/resources/software/?replytocom=1988#respond) ### Leave a Reply [Cancel reply](https://ultra64.ca/resources/software/#respond) Your email address will not be published. Required fields are marked \* Comment \* Name \* Email \* Website Save my name, email, and website in this browser for the next time I comment. Δ This site uses Akismet to reduce spam. [Learn how your comment data is processed](https://akismet.com/privacy/) . © 2019 [ultra64.ca](https://ultra64.ca/ "Ultra64") . All Rights Reserved. --- # Tools : Nintendo (Ultra) 64 **Tools** ========= Documents --------- | Download | Size | Notes | | --- | --- | --- | | ![](http://ultra64.ca/wordpress/wp-content/uploads/2014/07/icon-new.png)[Loading Roms over USB to 64Drive](https://ultra64.ca/files/tools/64Drive_Loading_ROMS_over_USB_CABLE.txt) | 2KB | | | ![](http://ultra64.ca/wordpress/wp-content/uploads/2014/07/icon-new.png)[Detailed Nintendo 64 Memory Map](https://ultra64.ca/files/tools/DETAILED_N64_MEMORY_MAP.txt) | 47KB | | Tools ----- | Download | Size | Notes | | --- | --- | --- | | [64Drive\_usb.exe](http://64drive.retroactive.be/support.php) | | | | ![](http://ultra64.ca/wordpress/wp-content/uploads/2014/07/icon-new.png)[64Drive Viewer](https://ultra64.ca/files/tools/64DRIVE_VIEWER.zip) | | [Refrence](https://youtu.be/Zfj7gcLjxCM) | © 2019 [ultra64.ca](https://ultra64.ca/ "Ultra64") . All Rights Reserved. --- # Tutorial Demo : Nintendo (Ultra) 64 Step 1: ------- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum lobortis, nulla non aliquet sodales, nunc turpis gravida purus, pellentesque tristique ex dolor ut mi. Cras vitae risus a diam gravida tempor eget congue mauris. Proin turpis risus, lacinia id velit ac, finibus ultricies elit. Phasellus bibendum mi vitae arcu malesuada, semper tincidunt purus euismod. Interdum et malesuada fames ac ante ipsum primis in faucibus. Proin malesuada purus eget suscipit iaculis. Curabitur vestibulum cursus felis. Nam eget luctus turpis. Etiam ut semper sapien. Phasellus ut tempor ipsum. Sed a velit orci. * Item 1 * Item 2 * Item 3 * Item 4 ![](http://placehold.it/500x350) figure 1.1 ![](http://placehold.it/500x350) figure 1.2 Step 2: ------- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum lobortis, nulla non aliquet sodales, nunc turpis gravida purus, pellentesque tristique ex dolor ut mi. Cras vitae risus a diam gravida tempor eget congue mauris. Proin turpis risus, lacinia id velit ac, finibus ultricies elit. Phasellus bibendum mi vitae arcu malesuada, semper tincidunt purus euismod. Interdum et malesuada fames ac ante ipsum primis in faucibus. Proin malesuada purus eget suscipit iaculis. Curabitur vestibulum cursus felis. Nam eget luctus turpis. Etiam ut semper sapien. Phasellus ut tempor ipsum. Sed a velit orci. ![](http://placehold.it/500x350) figure 2.1 Step 3: ------- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum lobortis, nulla non aliquet sodales, nunc turpis gravida purus, pellentesque tristique ex dolor ut mi. Cras vitae risus a diam gravida tempor eget congue mauris. Proin turpis risus, lacinia id velit ac, finibus ultricies elit. Phasellus bibendum mi vitae arcu malesuada, semper tincidunt purus euismod. Interdum et malesuada fames ac ante ipsum primis in faucibus. Proin malesuada purus eget suscipit iaculis. Curabitur vestibulum cursus felis. Nam eget luctus turpis. Etiam ut semper sapien. Phasellus ut tempor ipsum. Sed a velit orci. Aenean aliquam tristique est, nec facilisis erat aliquam eu. Vivamus posuere est eu quam convallis elementum. Suspendisse aliquet sagittis ipsum, quis convallis leo semper ac. Morbi accumsan metus id elit pellentesque vulputate. Mauris volutpat sodales lacinia. Praesent in eleifend tellus. Maecenas non quam lacinia neque convallis ultricies. Sed in tortor a orci volutpat viverra. Mauris enim lectus, sollicitudin non luctus a, mattis at arcu. Proin nibh ipsum, aliquet suscipit nulla venenatis, maximus rutrum neque. Morbi ultrices justo tincidunt enim sollicitudin rhoncus. ![](http://placehold.it/500x350) figure 3.1 ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) figure 3.2 ![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) figure 3.3 © 2019 [ultra64.ca](https://ultra64.ca/ "Ultra64") . All Rights Reserved. --- # ultra64.ca : Nintendo (Ultra) 64 Tag Archive: ultra64.ca ======================= [![Ultra 64 Logo](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/Ultra_64_logo-150x150.jpg)](https://ultra64.ca/ultra64-ca-launches/ "ultra64.ca launches!") [ultra64.ca launches!](https://ultra64.ca/ultra64-ca-launches/ "ultra64.ca launches!") --------------------------------------------------------------------------------------- July 24, 2017 1:10 pm Published by [level42](https://ultra64.ca/author/level42/ "Posts by level42") [2 Comments](https://ultra64.ca/ultra64-ca-launches/#comments) Today is the day, I’ve finally gotten around to updating this website. Feel free to comment below if there are... [View Article](https://ultra64.ca/ultra64-ca-launches/) --- # Rare Ltd. : Nintendo (Ultra) 64 Rare Ltd. ========= * Development Cartridge [![](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.09.28-1-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.09.28-1.jpg) [![](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.09.35-2-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.09.35-2.jpg) [![](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.16.47-1-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.16.47-1.jpg) [![](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.16.13-1-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.16.13-1.jpg) [![](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.16.23-1-150x150.jpg)](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/2015-04-19-16.16.23-1.jpg) © 2019 [ultra64.ca](https://ultra64.ca/ "Ultra64") . All Rights Reserved. --- # updates : Nintendo (Ultra) 64 Tag Archive: updates ==================== [![Ultra 64 Logo](https://ultra64.ca/wordpress/wp-content/uploads/2017/07/Ultra_64_logo-150x150.jpg)](https://ultra64.ca/ultra64-ca-launches/ "ultra64.ca launches!") [ultra64.ca launches!](https://ultra64.ca/ultra64-ca-launches/ "ultra64.ca launches!") --------------------------------------------------------------------------------------- July 24, 2017 1:10 pm Published by [level42](https://ultra64.ca/author/level42/ "Posts by level42") [2 Comments](https://ultra64.ca/ultra64-ca-launches/#comments) Today is the day, I’ve finally gotten around to updating this website. Feel free to comment below if there are... [View Article](https://ultra64.ca/ultra64-ca-launches/) --- # Creating a Nintendo 64 Development Environment in Oracle VM VirtualBox : Nintendo (Ultra) 64 Creating a Nintendo 64 Development Environment in Oracle VM VirtualBox ====================================================================== ### Step 1: Installing VirtualBox Click next figure 1.1 , click next to confirm your settings figure 1.2 , click finish to complete the installataion. figure 1.3 ![VirtualBox-Tut-1.1](http://ultra64.ca/files/tutorials/setting-up-n64-env/installing-virtualbox/virtualbox-install-1.png) figure 1.1 ![VirtualBox-Tut-1.2](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) ![VirtualBox-Tut-1.3](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) ![VirtualBox-Tut-1.4](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) ![VirtualBox-Tut-1.5](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) ![VirtualBox-Tut-1.6](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) ![VirtualBox-Tut-1.7](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) ![VirtualBox-Tut-1.8](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) ### Step 2: Installing Creating a Virtual PC and installing Windows 2000 Begin by launching VMWare Workstation, and selecting “Create a New Virtual Machine” ![VirtualBox-Tut-2.1](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) ![VirtualBox-Tut-2.2](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) ![VirtualBox-Tut-2.3](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) ![VirtualBox-Tut-2.4](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) ![VirtualBox-Tut-2.5](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) ![VirtualBox-Tut-2.6](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) ![VirtualBox-Tut-2.7](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) ![VirtualBox-Tut-2.8](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) ![VirtualBox-Tut-2.9](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) ![VirtualBox-Tut-2.10](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) ![VirtualBox-Tut-2.11](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201%201'%3E%3C/svg%3E) ### Step 3: Installing the Nintendo 64 Software Development Kit #### See: Writing your first Nintendo 64 Homebrew © 2019 [ultra64.ca](https://ultra64.ca/ "Ultra64") . All Rights Reserved. --- # Demo : Nintendo (Ultra) 64 Heading 1 ========= Heading 2 --------- ### Heading 3 #### Heading 4 Paragraph [Link](https://ultra64.ca/other-stuff/demo/#) * List item 1 * List item 2 © 2019 [ultra64.ca](https://ultra64.ca/ "Ultra64") . All Rights Reserved. --- # Unknown \=========================================================================== N64 Developer Toolkit version 3.0 12/16/98 Installation Notes Nintendo of America Inc. =========================================================================== The following items are included with this software: N64 Developer Toolkit version 3.0 for PC N64 Developer Toolkit version 3.0 for SGI Follow the procedures listed below to install the appropriate version for your environment. Please contact "support@noa.com" or (425) 861-2715 for questions concerning this product. --------------------------------------------------------------------------- \[PC\] N64 Developer Toolkit version 3.0 for PC To install N64 Developer Toolkit version 3.0, run setup.exe located in the PC directory on the CD-ROM. This script will prompt you for all necessary information. NOTE: Before installing N64 Developer Toolkit version 3.0, you must remove the previous version of NIFF/NuSystem. The files will most likely be located in the following directories: C:\\Nintendo\\n64kit C:\\N64Manuals\\NIFFed C:\\N64Manuals\\NIFFspec C:\\N64Manuals\\NuSys Move these directories to a temporary location. (These are the directories containing NIFF/NuSystem.) When you have successfully completed installing N64 Developer Toolkit version 3.0, it is safe to delete the saved directories. N64 Developer Toolkit version 3.0 will be installed in C:\\Nintendo\\n64kit and C:\\N64Manuals by default. See the release notes, located in PC\\RelNotes.txt for more information. --------------------------------------------------------------------------- \[SGI\] N64 Developer Toolkit version 3.0 for SGI This installation contains a tar file called devkit3.tar. For a list of all files contained in the installation, please refer to /CDROM/sgi/files. There is no uninstall provided with this installation, so you may want to backup files that will be overwritten before proceeding. The devkit3.tar file contains the complete NIFF/NuSystem distribution. For proper installation, you must extract the devkit3.tar file in /. NOTE: There are some existing directories you must move or delete first. These are called out below. Follow the commands below for step-by-step installation instructions: CD to installation directory % cd / Copy tar file to installation directory % cp /CDROM/sgi/devkit3.tar . Move old NIFF/NuSystem directories out of the way % mv /usr/local/n64kit /tmp % mv /usr/src/PR/manual/NIFFed /tmp % mv /usr/src/PR/manual/NIFFspec /tmp % mv /usr/src/PR/manual/NuSys /tmp Untar new NIFF/NuSystem directories % tar -xvf devkit3.tar If untar successful, clean up files % rm -rf /tmp/n64kit /tmp/NIFFed /tmp/NIFFspec /tmp/NuSys % rm /devkit3.tar --- # Unknown How to install OS 2.0I for SGI Items to Note Before Installation In order to install this software, the hard disk must have at least 120MB of free space. The software will not install correctly if there is insufficient space, so please confirm this before running the installation. Moreover, additional disk space is required if supplemental patches are also to be installed, so please provide surplus room on the hard disk. DO NOT INSTALL O/S 2.0I ON TOP OF O/S 2.0H. Delete the O/S 2.0H directory before you install O/S 2.0I. The directory structure of O/S 2.0I is different from O/S 2.0H, so if the software is simply installed on top of what is already there, directories and files from the previous version will be left behind. Installation Procedure You have to be a root user in order to install the O/S 2.0I. Un-tar the "os2.0i.tar" file into /usr/dist directory. % cp /CDROM/os2.0i.tar /usr/dist % cd /usr/dist % tar -xvf os2.0i.tar Start "inst" or "swmgr" to install. % inst or % swmgr Explanation of Directories The 2.0I library comprises the following directories: usr\\include\\ ............. Header files for the N64 library usr\\lib\\ .................... The N64 library usr\\src\\pr\\ ................ N64 sample programs and documents --- # Unknown 3/16/1999 Developers Kit Version 4.1 Directory structure of Developers Kit ver4.1 CDROM This package can be used to install NIFF, NuSYSTEM, the 64DD Multifile System (MFS), and ccbl. In the Windows version only, it can also be used to install DPTEST, Monegi Multi Viewer 64, and DDTools. In addition, the Developers Kit includes an evaluation version of N64 Sound Tools. For more information, please see \\pc\\SndTools\\RelNotes.txt or /sgi/SndTools/RelNotes. \*\* Developers Toolkit Installation \*\* SGI Workstation --------------- To install the Developers Toolkit, you must be root. Copy the "n64kit41.tgz" file into /usr/local. % cd /usr/local % cp /CDROM/sgi/n64kit41.tgz . Un-zip and un-tar the "n64kit41.tgz" file. % gunzip n64kit41.tgz % tar -xvf n64kit41.tar Windows ------- Before you install this, uninstall all the programs of the previous version through "Add/Remove Programs" in Control Panel (all programs that have n64 or n64kit). Developers Toolkit 4.1 has a top-level install program (\\pc\\setup.exe) that calls individual setup programs for each software component in the Toolkit. If you use the top level installer, a setup may ask you to restart your machine at the end of its installation. In this case, please select "reboot later," and restart your machine manually after all installations are complete. \*\* Sound Tools Installation \*\* SGI Workstation --------------- To install the evaluation copy of Sound Tools, you must be root. Un-tar the "st311dmo.tar" file into /. % cd / % tar -xvf /CDROM/sgi/sndtools/st311dmo.tar Windows ------- To install the evaluation copy of Sound Tools, please run: \\pc\\SndTools\\setup.exe. NIFF(SGI/PC) 1. What's included in this release? The following are distributed for release 4.1. Nintendo Intermediate File Format ver1.0 specification HTML version Nitnendo Intermediate File Format ver2.0 specification HTML version NIFFeditor for SGI NIFFeditor for WIN NIFFAPI NIFF Tools niff2nvf converter nvfview previewer niff2gfx converter n64prev previewer MultiTextureViewer(Windows version only) 2. Directory structure The directory structure is as follows: NIFFDIR = $N64KITDIR/niff $NIFFDIR/bin/ : NIFFeditor related $NIFFDIR/niffapi/ : NIFFAPI related $NIFFDIR/nifftools/ : NIFF tools $NIFFDIR/nvfview/ : niff2nvf converter +nvfview previewer $NIFFDIR/mtv/ : MultiTextureViewer related $NIFFDIR/n64prev/ : niff2gfx converter +n64prev previewer $NIFFDIR/doc/ : Documents $NIFFDIR/sample/ : Samples $NIFFDIR/user\_data/ : User data ŚBy default, N64KITDIR will be installed in the following directories. (SGI) N64KITDIR = /usr/local/n64kit (Windows) N64KITDIR = c:\\nintendo\\n64kit NIFF editor and converter depend upon the relative relationship of the directory structure under niff. It is important that the relative relationship NOT be changed. However, it is possible to specify a separate directory for your data directory. If the structure under niff remains the same, you can copy it from under n64kit and use it under a different directory name. NIFF Editor and converter write files in directories of nvfview and n64prev. Please make sure that these directories are not write protected. When Preview is executed from the Editor, the same file name is used each time. Therefore, if more than one person will be using NIFF Editor with the same hardware, make a copy of the niff directory in a different location so that nvfview and n64prev will be separate directories. NuSystem(SGI/PC) Directory structure n64kit---/nusys --/lib Library |-/include include file |-/src Source file |-/doc Document |-/sample Sample software 64DD Multi File System(SGI/PC) n64kit---/mfs --/lib Library |-/include include file |-/doc Document |-/ddtool Tools (rombuilder, rameditor, ddump) (PC only) ccbl(SGI/PC) n64kit---/ccbl RDP function learning sample DPTEST/MonegiMultiViewer64/N64CITextureEditor (PC only) n64kit---/dptest DPTEST -/Mmv64 MonegiMultiViewer64 -/texedit N64CITextureEditor Others(SGI/PC) n64kit---/nustd Standard library -/misc Compress/decompress software Note The default setting is recommended for the directory to which the file will be installed. However, if the directory is changed from the default, rewrite the Makefile definition (of N64KIT) accordingly. Support/upgrading Please contact Nintendo Technical Support Phone: (425) 861-2736 FAX: (425) 558-7100 Support is also available through our website: www.noa-engineering.com Patches are available through the NOA Engineering Website --- # Unknown (Note: The SGI Patch can be found in the /dist directory.) This installation contains a few updates to your O/S 2.0i libraries and NuSystem, a new version of the NIFF Editor (Version 1.22) and an updated Microcode, F3DEX2 (Version 2.03). (Although this is still a Beta version, we wanted to give you a chance to start playing with it!) Please see the Readme and other text files, for each item installed, as they contain pertinent information on the changes and fixes for each patch. I've listed the directories they can be found in below with their respective component names. ("%ROOT%" is where you installed your O/S 2.0i Libraries and "%NUSYS%" is where your NIFF/NuSystem was installed.) \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* O/S 2.0i patch Readme can be found under: %ROOT%\\usr\\src\\PR\\doc\\patches\\ultra A brief description of the above patch: Allows for full screen display on PAL Televisions. Warning: If the library files fail to update, then you will need to manually update those files using the AR and RANLIB commands located in your exeGCC bin directory. The object files to update will be in the %ROOT%\\temp directory. They will only appear if the update was unsuccessful. The Debug object files should be included in libgultra\_d.a The Normal object files should be included in libgultra.a The Final object files should be included in libgultra\_rom.a \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* O/S 2.0i N64 Disk Drive patch Readme can be found under: %ROOT%\\usr\\src\\PR\\doc\\patches\\64DD A brief description of the above patch: Improves the N64 Disk Drive development environment. \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* F3DEX2 Version 2.03(Beta) Readme can be found under: %ROOT%\\usr\\src\\PR\\doc\\gfxucode.F3DEX2\\ A brief description of the above patch: Faster RSP operations, GBI command compatability and supports XBUS and FIFO. \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* NuSystem Patch Readme can be found in: %NUSYS%\\temp\\ A brief description of the above patch: Fix to hanging problem when reset is pressed. Also has a file to replace if you intend to use F3DEX2 with NuSystem. \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* There is no Readme for the new NIFF Editor, as it just replaces your current GUI. The help files have been updated. If you have any questions or concerns regarding these patches, please don't hesitate to contact our Product Support Line: (425) 861 - 2715 --- # Unknown hadows of the Empire is an action game originally developed for the Nintendo 64 video game console. It formed part of a multimedia Star Wars event consisting of a novel, soundtrack, toy line, comic books, trading cards, and other related merchan- dising. The Nintendo 64 version was released in December of 1996, and has proven to be very popular with over one million copies shipped to date. The IBM PC version was released in early September of 1997, and has enhanced cut scenes, Red Book audio (both music and voice), and high-resolution graphics. It requires the use of a 3D accelerator card. GAME DEVELOPERJANUARY 1997http://www.gdmag.com 56 STARWARS: SHADOWS OF THEEMPIRE SS by Mark Haigh-Hutchinson Dinner in Kyoto, Japan, August 1996. (Left to right: Don James, Hiro Yamada, Mark Haigh-Hutchinson, Shigeru Miyamoto, Kenji Miki.) POSTMORTEM Why Shadows? B ack in the summer of 1994, LucasArts was exploring the pos- sibility of developing a new 3D title for one of the emerging “next-generation” platforms. After some discussion, the Nintendo 64 was decided upon as the platform of choice, even though there was no hardware available at the time. Due to our close relationship with Lucasfilm, we were aware that Lucasfilm Licensing was planning the Shadows of the Empire event. Jon Knoles, the lead artist and designer on the Nintendo 64 game, took an active part in deciding the timeline of Shadows. He suggested that it take place between The Empire Strikes Back and Return of the Jedi. The Shadows story line deals mainly with the criminal underworld of the Galaxy, and the new period allowed us to explore some of the things that weren’t explained in Return of the Jedi. It also opened up some new characters that were not bound to the original story, which gave us more creative free- dom than using established figures. A bonus was that it allowed us to make use of everyone’s favorite bounty hunter, Boba Fett. Since we were developing one of the premier titles for an entirely new game machine, there was a conscious deci- sion to attempt to stretch out and cover a number of different game-play styles. We wanted to ensure that the player would have as much variety as possible, yet still enjoy a satisfying experience. A Reality Engine for $200? B y early September 1994, we had received our Silicon Graphics workstations and the core team was working. Initially the three program- mers were using Indigo 2 Extremes, with 200mhz CPUs, 64MB of RAM, and 24-bit graphics. Eventually, we would have to change our programmers’ com- puters to INDYs (still powerful machines) to install the Nintendo 64 development systems. In addition, we were fortunate that LucasArts allowed us to obtain a Silicon Graphics ONYX supercomputer. This impressive and somewhat expensive refrigerator-sized computer boasted Reality Engine 2 graphics hardware, four R4000 CPUs, and 256MB of RAM. It became an essential part of our develop- ment equipment, as it was the only hardware available that could possibly emulate how the final Nintendo 64 hardware would perform. Indeed, Nintendo and SGI supplied us with soft- ware that emulated most of the features that the real hardware would support. In late September, the programmers took a trip down to Silicon Graphics to discuss the Nintendo 64 hardware design with its chief architect, Tim Van Hook. The SGI engineers were rightly proud of their design, and promised that they would deliver hardware matching the ambitious specifications. Nine months later, we learned that they had indeed met those specifications. By Christmas of 1994, we had the basis of the first level of the game, The Battle of Hoth, running quite nicely on the ONYX — “quite nicely” being in high resolution (1280×1024), 32-bit color, and at 60 frames a second. By this point, we had also received a very early prototype of the Nintendo 64 con- troller. This consisted of a modified Super Nintendo controller with a primi- tive analogue joystick and Z trigger. Due to our strict nondisclosure agreement, we were unable to discuss the hardware or the project with anyone outside the core team. Consequently, we would furtively hide the prototype controller in a cardboard box while we used it. In answer to the inevitable questions about what we were doing, we replied jokingly that it was a new type of controller — a bowl of liquid that absorbed your thoughts through your fingertips. Of course, you had to think in Japanese.... In July of 1995, we received our first actual hardware as a plug-in board for the INDY. This later became known as the Revision 1 board, but on inspection it was extremely “clean” — no wire wraps or other temporary items in sight. Within three days, technical lead Eric Johnston and second programmer Mark Blattel had ported the game to the actual hardware. It was an awe- inspiring moment when we first saw the Battle of Hoth running on the “real” machine. The first revision of the hardware was very close to the orig- inal specifications supplied by SGI. Other than the RCP (Reality CoProcessor) not running at quite the final speed, and one of the special video “dither modes” not being avail- able, it performed extremely well. Over the next few weeks, we would receive an additional two boards, so that all the programmers were devel- oping in a similar fashion. Three months later, we would receive Revision 2 boards, which brought the RCP up to full speed as well as fixing a few minor bugs. Another pleasant sur- prise was the doubling of the amount of RAM to 4MB. A further development was the hard- ware “dither modes” that perform sev- eral different kinds of functions at the video back end — mostly to reduce the effect of Mach banding, which is com- mon when using 16-bit color. Technology S ince Eric Johnston and Mark Blattel had extensive experience with the SGI platform, we undertook to prototype the game using the Performer 3D API. This is an OpenGL- based system that is very flexible. Eventually, we would write our own http://www.gdmag.comJANUARY 1997GAME DEVELOPER 57 Images courtesy of LucasArts Entertainment Company LLC, © 1997. Mark Haigh-Hutchinson is a Project Leader and Senior Programmer at LucasArts Entertainment Company. He has been developing computer and video games as a hobby since 1979, and professionally since 1984. Cutting his teeth on numerous 8-bit computers such as the Sinclair ZX Spectrum, he has contributed to 32 published games, 16 as sole programmer. He may be reached at mhh@lucasarts.com. subset of Performer’s functionality on the Nintendo 64. This allowed us to move the game from a $140,000 SGI ONYX to a $200 Nintendo 64 in a mat- ter of just three days. Level designers used the tool set from D ARKFORCESto construct the first-per- son levels for the game. This allowed a crude form of preview using the actual D ARKFORCESengine on an IBM PC. This worked fairly well, although later in the project we were able to have a single SGI for dedicated use by the level designers. The PC solution, however, was also useful because the level design- ers were already familiar with the processes involved. Unfortunately, since the game engine wasn’t running on the PC at that point, the develop- ment cycle was somewhat slow. Additionally, the ONYX calculated the preculling visibility tree for each of these levels. The way it works is quite elegant, thanks to Eric and Mark. The world is subdivided into “sectors” — that is, polygonal regions defined by either geometry or some other criteria. These sectors control collision detec- tion, have properties relating to game play, and perform several other related functions. The visibility program tra- verses the world rendering the scene from the center of every sector in a 360- degree arc as well as three elevations. For every polygon to be rendered in the scene from a particular sector, an identi- fying 32-bit value, rather than texture information, fills the appropriate pixels in the frame buffer. It’s then a simple matter of reading the frame buffer to determine which sectors are visible from that location. This process became known as “pastelization” because the identifiers written into the frame buffer (effectively as RGBA values) caused the scene to appear as purely pastel colors. Motion Capture I n the spring of 1995, we decided to experiment with the use of motion cap- ture to control the anima- tions of the main character as well as enemies such as Stormtroopers. Fortunately for us, our sister company, Industrial Light & Magic (ILM), had a capture system available for use. It was a tethered sys- tem, using a magnetic field to deter- mine the position of each of the sen- sors. The sensors were attached to the actor at 11 locations using a combina- tion of a climbing harness, sports joint supports, bandages, and Velcro strips. The nature of the system presented several problems. First, the actor had to perform on a raised wooden platform, since the metal construction supports in the concrete floor would affect the capture system. Secondly, since the actor was on a platform as well as teth- ered, we couldn’t obtain a “clean” run cycle. Some of our more ambitious motions also proved problematic. On the positive side, once the system was calibrated, we were able to capture over 100 motions in a single day, each with two or three different “takes.” We viewed the motions in real time on a SGI Indigo 2 Extreme computer run- ning Alias PowerAnimator. This allowed us to quickly ensure that every capture was “clean” before continuing with the next action. Unfortunately, we were to discover that after analysis, the motion data proved to be unusable. This was mainly because the angle information for the joints wasn’t consistent on its represen- tation of the direction around each axis. Consequently, all the animation for the characters was redone by hand, a somewhat time-consuming task. MIDI Music O ur initial approach to music for the game was similar to that taken on some of our PC titles — namely, a MIDI-based solution. However, the first problem that we came across was hardware incompati- bilities between the MIDI keyboards used by our musicians and the Silicon Graphics computers used to develop the game. The theory was that the compositions could be previewed directly on the Nintendo 64 hardware as a musician played them on a key- board. Naturally, this would provide the best possible feedback to the musi- cian. Unfortunately, for some unknown reason(s), note on/off pairs were lost, causing chords to sound as one note. Additionally, note releases were sometimes missed completely. Before long, other unwelcome behav- iors surfaced. We worked around these mysteries by having the musicians cap- ture the sample set and play it solely on their keyboards. After some experimentation, though, we felt that the MIDI music was good, but didn’t capture the essence of the John Williams orchestral soundtrack that is so closely associated with Star Wars. Furthermore, each additional instrument channel would require more CPU time than we wanted to allocate. At this point, we tried an experiment using uncompressed digital samples of the Star Wars main theme. The quality was extremely good, even after subse- quent compression with the ADPCM encoder provided by Nintendo. After a little persuasion, Nintendo generously agreed to increase the amount of car- tridge space from 8MB to 12MB. This allowed us to include approximately 15 minutes of 16-bit, 11khz, mono music that sounded surprisingly good. Considering that most users would lis- ten to the music through their televi- sions (rather than a sophisticated audio system), the results were close to that of an audio CD, thereby justifying the extra cartridge space required. Art Path A continuing problem throughout the development of S HADOWSwas the inability to import and export data between the various 3D packages we were using. Eventually, we managed to circumvent these problems with a number of translation utilities as well as by using Alias Power Animator as our central “hub” format. However, there were still issues with scale, model GAME DEVELOPERJANUARY 1997http://www.gdmag.com 58 POSTMORTEM Jon Knoles directs actor Amos Glick who recoils from an imaginary shot. Mark Haigh-Hutchinson wrangles the cables and provides a supporting hand. hierarchies, and animation data. It was sometimes difficult for the artists to see what their artwork really looked like until it had been through the hands of our polygon wrangler (thanks Tom!). Initially, it was difficult for our texture artist to visualize the restrictions on texture size required by the hardware, as well as color reduction issues. New Hardware T here were a number of other issues that we had to deal with in devel- oping the game, not the least of which was that for the first nine months of the project, we didn’t have any real hardware on which to run the game. This deficiency wasn’t insurmountable by any means, but it restricted our choices in certain ways, especially in level design. We were forced to make some assumptions, especially regarding to performance. Fortunately, this was- n’t quite the bugbear that we anticipat- ed. Still, as is well known, those on the bleeding edge of technology are often sacrificed upon it. Other Issues T here was considerable pressure to finish the game in time for the Christmas 1996 deadline. This reality meant many, many late nights, with some team members regularly working over 100 hours every week for the best part of a year. Hopefully, this sort of workload can be avoided in future pro- jects. Time pressure is, of course, a com- mon thing in the computer games industry — and we were certainly no strangers to the phenomenon. However, since we had to release our game shortly after launch of the machine, we were under more pressure than might usually have been encountered. Game testing also became an issue because there were very few machines with which to actu- ally test the game. Game Play Variety W e were able to include a very wide variety of game play styles in S HADOWS. In retrospect, this meant that we couldn’t tune each type of game play as much as we would have liked. It also meant an almost Herculean pro- gramming task in trying to write and debug what amounted to five different game engines. These consisted of low flight over terrain, gunnery action in space, first/third person on foot or with jet pack (including a moving train sequence), high-speed chases on a speeder bike, and full 360-degree space flight. Nonetheless, the result was that most players’ experiences with the game were always interesting, at the expense of displeasing some of the more hard- core game players. A variety of game play was important for a game that, for many players, would be one of their first experiences in a fully 3D environment. Hardware Performance A s mentioned before, for the first nine months of S HADOWS, we had no real hardware with which to gauge the performance of the game — other than a rather nice Silicon Graphics http://www.gdmag.comJANUARY 1997GAME DEVELOPER 59 Game Designer/Lead Artist - Jon Knoles Project Leader/Senior Programmer - Mark Haigh-Hutchinson Technical Lead - Eric Johnston Programmer/Lycanthrope - Mark Blattel Polygon Wrangler - Tom Harper Level Designer - Jim Current Level Designers - Matthew Tateishi and Ingar Shu 3D Artists - Paul Zinnes, Andrew Holdun, and Garry M. Gaber 3D Animator - Eric Ingerson Texture Artist - Chris Hockabout 3D/Background Artist - Bill Stoneham Storyboard Artist - Paul Topolos Music Editor - Peter McConnell Sound Designers - Larry the O and Clint Bajakian Lead Tester - Darren Johnson. Production Manager - Brett Tosti Extra thanks go to Don James, Henry Sterchi, Hiro Yamada, Kensuke Tanabe, and Shigeru Miyamoto. Special thanks as always go to the staff at LucasArts, and particularly to George Lucas for his gift of the Star Wars universe. The Core Team Back Row (left to right): Steve Dauterman, Peter McConnell, Jon Knoles, Andrew Holdun, Paul Topolos, Mr. B. Fett; Middle Row (left to right): Jim Current, Matthew Tateishi, Bill Stoneham, Brett Tosti, Ingar Shu, Tom Harper, Chris Hockabout; Front Row (left to right): Garry Gaber, Mark Blattel, Eric Johnston, Mark Haigh-Hutchinson; Not shown: Paul Zinnes, Larry the O, Clint Bajakian, Eric Ingerson, and Darren Johnson. The core team developing S HADOWSfrom inception to completion consisted of mainly six people, although twenty people contributed to the game for varying lengths of time, and to varying degrees. Nonetheless, everyone played a vital role in the production of the game. ONYX. Nonetheless, when we finally received the real hardware, we were pleased to find that the performance estimates given to us by SGI proved to be very accurate. In fact, in large part due to the parallel nature of the graph- ics hardware, we were able to use float- ing-point mathematics throughout S HADOWSwith no significant impact upon performance. Additionally, S HADOWSwas pro- grammed entirely using the C language — it wasn’t necessary for us to use assembler (a first as far as I was con- cerned, and a pleasant surprise even though I’m a long-time hardcore assembler fan). Since our scene com- plexity was relatively high (usually kept to around 3,000 polygons or so, but variable according to the level type and design), the graphics task took longer to execute than the program code (that is, we were graphics-bound). Consequently, optimizations to the program code didn’t significantly improve overall performance. NTSC to PAL Conversion A fter completing the American and Japanese versions of the game, it was my task to convert the game so that it could run on the European PAL televi- sion standard. Being British, I had a vest- ed interest in making sure that the con- version was a good one. This meant two things: first, that the game used the whole of the vertical resolution of the PAL display (625 lines vs. 525 lines of NTSC); second, I wanted to ensure that the speed of the PAL game was the same as the NTSC one, even though the PAL refresh rate is 50hz rather than 60hz. Fortunately, when we started work on S HADOWS, we realized that one of the most important things to consider was that it had to be a time-based game, rather than a frame-based one. This would allow for update rates that could vary considerably depending upon scene complexity, as well as the simple fact that we didn’t have any real hardware from which to measure performance characteristics. Essentially, the program keeps track of the absolute time between each update of the game. This value, which we called delta time, became a multiplicand for any movement or other time-based quantity. By this method, the game runs independent of the video refresh rate, with all objects moving and responding at the correct frequency. The other issue had to do with the “letterbox” effect that is common to many NTSC to PAL conversions. In most cases, there is no extra rendering or increase in the vertical frame buffer size, leaving unsightly black bands above and below the visible game area. Since the vertical resolution is now greater than the original NTSC display, the aspect ratio will also change, causing the graph- ics to appear stretched horizontally. While I wasn’t willing to accept this, I had presumed that I couldn’t afford the extra CPU time necessary to render a larger frame buffer, even with the extra time available due to the 50hz video refresh rate. There was also a question of the additional RAM usage required by our triple buffering of the frame buffer. My first attempt, therefore, was simply to change both the field of view and aspect ratios of the 3D engine. This sim- ple fix solved the “stretching” problem quite nicely, although the display remained letter-boxed, of course. Unfortunately, it also meant that any 2D-overlay status information remained “stretched.” There was the potential that game play could be affected because the field of view, by definition, would affect the player’s perception of the 3D world. Again, this just wasn’t good enough. What I needed was a solution that did- n’t require extra rendering, yet would fix the aspect ratio problems. After a lit- tle bit of research, I realized that I had discovered earlier that it was possible to change the size of the final visible dis- play area on the output stage of the dis- play hardware. In reality, it’s possible to shrink or enlarge the display both hori- zontally and vertically. To compensate for the letterboxing, all I had to do was change the vertical display size by a fac- tor of 625/525 or 1.19. Once I did this, I immediately had a full-screen PAL ver- sion. Or so I thought.... One of things about S HADOWSis that we had to compress everything in the game to fit it into the cartridge space available. This included the thin operat- ing system that SGI provides as part of the development system. Therefore, upon machine reset, it’s necessary to decompress this OS to run the game. To perform this decompression, we wrote a small bootstrap program, which intro- duced a small amount of time between the hardware being initialized and the OS starting. This lag introduced a one- time glitch on the screen as the video hardware started. Not very noticeable, except to me. After many late nights, I discovered a way to remove the glitch by directly accessing the Nintendo 64 video hardware registers. Bad Idea W e then discovered that because we had accessed the hardware directly, it caused an infrequent bug. Rarely (1 out of 50 times) the Nintendo 64 would crash if the reset button were pressed at a particular point in the game. Not only that, I couldn’t repeat the bug on my hardware (I hate it when that happens). After a number of very late nights (over the Christmas holiday), with the help of Nintendo of America’s techni- cal staff (thanks Mark and Jim), we finally resolved the problem: first, by removing the code that directly accessed the video registers, and sec- ond, by restoring the registers control- ling the scaling of the output in the vertical axis upon reset. Sometimes, the simplest solution is the best. Support from SGI and Nintendo W e were very lucky to receive excellent support from both SGI and Nintendo during the production of the game. The SGI engineers (thanks in GAME DEVELOPERJANUARY 1997http://www.gdmag.com 60 POSTMORTEM particular to “Acorn”) were very helpful and would normally have an answer to our questions within a day, sometimes within the hour. I would like to thank Nintendo for their assistance in the pro- duction of the game. Nintendo of America’s technical support and QA departments also proved invaluable. In addition, three of Nintendo of Japan’s staff spent some time working directly with us at our offices. I was also fortunate enough to visit Nintendo’s head quarters in Kyoto, Japan, to discuss S HADOWSwith Shigeru Miyamoto, creator of M ARIO64. His insights were both fascinating and extremely relevant. He is simply a genius with an instinctive understand- ing of video games. Of Wampas and Men W hen developing a project on the scale of S HADOWS, there will always be some things that didn’t progress as smoothly as they could have... 1) The motion capture process proved to be a red herring for us. While originally promising a much more realistic animation solution, in our case the data proved unusable. However, I still believe that it has great potential and deserves further investigation, even though we didn’t get to the point of dealing with the potential problems matching the motions to the character’s environ- ment and so forth. Caveat emptor. 2) Attempting to use a MIDI-based music solution also proved incorrect for this game. While it promised to be an efficient solution in terms of memory (an important considera- tion for a cartridge-based game), it simply wasn’t suitable for an orches- tral soundtrack such as Star Wars. 3) When we started work on S HADOWS, a major problem (that continued throughout the duration of the pro- ject) was the inability of various 3D packages to import and export data. Although we were able, for the most part, to write our own conversion utilities, it still proved to be a stum- bling block and prevented us from having an efficient art path. Fortunately, the companies supply- ing these tools now recognize the need for importing and exporting data to other packages, and are tak- ing steps to remedy the situation — VRML, for example, is proving to be a useful format. 4) Time was the biggest enemy of all in producing the game. This is nothing new, but was exacerbated by the fact that we were working on a non-exis- tent machine for nine months. Nonetheless, even though this was, for the most part, out of our control, we were still able to produce a quali- ty game. 5) With hindsight, probably the most important lesson to be learned from the game’s development is that of focus. Do one or two things and do them extremely well. Although our ambitions were well placed in trying to provide the player with as much variety as possible, we effectively had to write five different game engines. Additionally, we could have also used a fourth programmer dedi- cated to all aspects of the front-end of the game; that is, level selection, controller options, and so forth. This would have taken some of the pres- sure away from the main program- mers towards the end of the project. Out of the Shadows... T hanks to the talent, dedication, and experience of the S HADOWS team, many things went well during the development process. 1) By using the powerful SGI comput- ers (fairly uncommon in the games industry in 1994) to prototype, com- bined with our programmers’ knowl- edge of 3D technology, we were able to develop the game rapidly, yet remain flexible in terms of perfor- mance requirements. 2) Our ability to reuse tools from our earlier D ARKFORCEStitle saved us time and resources because we did- n’t have to build all new tools, although a large number of data conversion utilities were necessary. In addition, by reusing familiar tools, our level designers could be more productive earlier in the pro- ject than otherwise might have been expected. 3) Our decision to use digitized music proved to be a crucial one. Because most users would listen to the music through their televisions, the quality approximated that of an audio CD as far as many customers were con- cerned. This alone justified the extra cartridge space required and sur- prised many players who didn’t expect that level of quality from a cartridge game. 4) The conversion of the game for the PAL television standard went extremely well and was much appre- ciated by customers in those coun- tries. It would be fair to say that S HADOWShas set the standard in that it runs both full screen and full speed. There is no reason why all games from this point on shouldn’t run just as well on PAL systems as they do on NTSC. 5) Given that we were working on completely new hardware and for the most part had to discover every- thing that we needed to know by ourselves, the support from both SGI and Nintendo was invaluable to us throughout the project. Varying Shadows E ven though we were not able to spend as much time as we would have liked tuning the game, S HADOWS does succeed in supplying the player with a variety of game-play styles. Its popularity is a testament to the creativ- ity and talent of the team of which I was fortunate enough to be a part. n 61 GAME DEVELOPERJANUARY 1997http://www.gdmag.com --- # Unknown 64Drive - N64 Flash Cartridge Using the 64Drive\_usb.exe program to load ROMS directly to the 64Drive ROM Memory over USB. ============================================================================================================ To Start, Insert your 64Drive Flash cart into the N64 console and boot it up to make sure the standard Bootloader Menu loads up as normal. If it boots up fine, then you can turn off the N64. NOTE: To load an N64 ROM game directly over USB, you need to use the "64Drive\_usb.exe" DOS program on your Windows PC computer through the MS-DOS command prompt. To make the commands work correctly, you need to specify the location of the N64 ROM image on your hard drive, the "CIC Emulation Type" and also the "Save Type" of the ROM game image...(if it supports "Gamesaves" option.) By Default this is set to "NONE". Most games do not use it, so for the most part you won't need to specify a "Save Type" to allow it to load properly. So if you are trying to load a ROM game over USB and it is not loading, chances are you need to specify a "Save Type" for this ROM. The only way to find out if the ROM game you are loading uses a specific "Save type" of memory, is to use a large N64 Game Lookup Table. This you will find on the internet with a little research. For Hombrew games....you specify this yourself within your code....so no worries there. Here is a List of the available 64Drive\_USB.EXE parameters: ============================================================= C:\\64DRIVE>64drive\_usb.exe 64drive USB Loader -------------------------------------------- (c) 2014-2016 Retroactive Compiled Sat Oct 8 21:49:41 2016 - Invalid parameter(s) - Parameters: \[optional\] -l \[bank\] \[addr\] Load binary to bank -d Dump binary from bank 1 - Cartridge ROM 2 - SRAM 256kbit 3 - SRAM 768kbit 4 - FlashRAM 1Mbit 5 - FlashRAM 1Mbit (PokeStdm2) 6 - EEPROM -s Set save emulation type 0 - None (default) 1 - EEPROM 4k 2 - EEPROM 16k 3 - SRAM 256kbit 4 - FlashRAM 1Mbit 5 - SRAM 768kbit (Dezaemon 3D) 6 - FlashRAM 1Mbit (PokeStdm2) -c Set CIC emulation type (RevB/HW2 only) 0 - 6101 (NTSC) 1 - 6102 (NTSC) 2 - 7101 (PAL) 3 - 7102 (PAL) 4 - x103 (All) 5 - x105 (All) 6 - x106 (All) 7 - 5101 (NTSC) -x Standalone mode -b Update bootloader -f Update firmware -v Verbose output for debug C:\\64DRIVE> COMMANDS FOR LOADING ROM GAMES WITH NO SAVE TYPE: --------------------------------------------------- Type the following code in your MS-DOS prompt: C:\\64Drive\_usb.exe -l C:\\folder\\gameROM.n64 1 -c 1 This will Load the Game ROM to "ROM" memory also it will set the CIC type to 6102 (NTSC) Region. - The "-l" is to specify loading a ROM file. - The "1" after the ROM filename specifies that you will load this into the "ROM" location of memory. - The "-C 1" sets the CIC EMU to 6102 (NTSC) Region. You can use different CIC EMU Types if need be. Use the appropriate -c \[x\] code for the CIC you want to load. 1 = 6102 (NTSC) 2 = 7101 (PAL) etc. (See the programming parameters as shown further above) COMMANDS FOR LOADING ROM GAMES WITH A SPECIFIC SAVE TYPE: ---------------------------------------------------------- Type the following code in your MS-DOS prompt: C:\\64Drive\_usb.exe -l C:\\folder\\gameROM.n64 1 -c 1 -s 3 - Notice the added "-s 3" this sets the Save type to "SRAM 256kBit". Connecting the 64Drive USB cable and powering on the unit. ============================================================================================================= NOTE: You don't need to have your SD card inside the 64Drive to use the USB loading feature. However, it doesn't matter if you leave it inserted in the 64Drive. It just bypasses loading the Bootloader. 1. Have the 64Drive Cartridge in the console with the Power Off. 2. Connect the USB cable to the 64Drive then connect it to your PC.....allow a few seconds for Windows to detect the USB driver. 3. Next, enter the ROM load command of your choosing. (Example shown below:) C:\\64Drive\_usb.exe -l C:\\folder\\gameROM.n64 1 -c 1 4. Next, turn on the N64 Console. The ROM image will then Boot up. 5. For further ROM loads, you can simply run the Load command again...even while the 64Drive is running the previous ROM. Simply press the Console RESET button after you load the new ROM file. It will then Boot with the newly programmed ROM image. -=END=- --- # Unknown \---========= Detailed Nintendo N64 memory Map ========--- SPECIAL NOTE: Looking at this detailed memory map for the Nintendo N64, you will notice large gaps of unmapped memory. Not including mapped external cartridge ROM (etc). If you add up each part of usable memory, you will end up allocating just over 4MB including the RDRAM. Also note that addresses over 0x80000000 are effectively mirrors of lower addresses, with the distinction that some is directly mapped (physical memory), and some is TLB mapped (virtual memory). See Below: 0x00000000 - 0x7fffffff KUSEG TLB mapping 0x80000000 - 0x9fffffff KSEG0 Direct map, cache 0xa0000000 - 0xbfffffff KSEG1 Direct map, non-cache 0xc0000000 - 0xdfffffff KSSEG TLB mapping 0xe0000000 - 0xffffffff KSEG3 TLB mapping Also, note that cartridge memory is mapped in at 0xb0000000. This isn't explicitly shown in the N64 memory map below. \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* ROM HEADER \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 0000h (1 byte): initial PI\_BSB\_DOM1\_LAT\_REG value (0x80) 0001h (1 byte): initial PI\_BSB\_DOM1\_PGS\_REG value (0x37) 0002h (1 byte): initial PI\_BSB\_DOM1\_PWD\_REG value (0x12) 0003h (1 byte): initial PI\_BSB\_DOM1\_PGS\_REG value (0x40) 0004h - 0007h (1 dword): ClockRate 0008h - 000Bh (1 dword): Program Counter (PC) 000Ch - 000Fh (1 dword): Release 0010h - 0013h (1 dword): CRC1 0014h - 0017h (1 dword): CRC2 0018h - 001Fh (2 dwords): Unknown (0x0000000000000000) 0020h - 0033h (20 bytes): Image name Padded with 0x00 or spaces (0x20) 0034h - 0037h (1 dword): Unknown (0x00000000) 0038h - 003Bh (1 dword): Manufacturer ID 0x0000004E = Nintendo ('N') 003Ch - 003Dh (1 word): Cartridge ID 003Eh - 003Fh (1 word): Country code 0x4400 = Germany ('D') 0x4500 = USA ('E') 0x4A00 = Japan ('J') 0x5000 = Europe ('P') 0x5500 = Australia ('U') 0040h - 0FFFh (1008 dwords): Boot code \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* MEMORY MAP OVERVIEW \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 0x0000 0000 to 0x03EF FFFF RDRAM Memory 0x03F0 0000 to 0x03FF FFFF RDRAM Registers 0x0400 0000 to 0x040F FFFF SP Registers 0x0410 0000 to 0x041F FFFF DP Command Registers 0x0420 0000 to 0x042F FFFF DP Span Registers 0x0430 0000 to 0x043F FFFF MIPS Interface (MI) Registers 0x0440 0000 to 0x044F FFFF Video Interface (VI) Registers 0x0450 0000 to 0x045F FFFF Audio Interface (AI) Registers 0x0460 0000 to 0x046F FFFF Peripheral Interface (PI) Registers 0x0470 0000 to 0x047F FFFF RDRAM Interface (RI) Registers 0x0480 0000 to 0x048F FFFF Serial Interface (SI) Registers 0x0490 0000 to 0x04FF FFFF Unused 0x0500 0000 to 0x05FF FFFF Cartridge Domain 2 Address 1 0x0600 0000 to 0x07FF FFFF Cartridge Domain 1 Address 1 0x0800 0000 to 0x0FFF FFFF Cartridge Domain 2 Address 2 0x1000 0000 to 0x1FBF FFFF Cartridge Domain 1 Address 2 0x1FC0 0000 to 0x1FC0 07BF PIF Boot ROM 0x1FC0 07C0 to 0x1FC0 07FF PIF RAM 0x1FC0 0800 to 0x1FCF FFFF Reserved 0x1FD0 0000 to 0x7FFF FFFF Cartridge Domain 1 Address 3 0x8000 0000 to 0xFFFF FFFF External SysAD Device \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* MEMORY MAP DETAILED \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 0x0000 0000 to 0x03EF FFFF RDRAM memory: ----------------------------------------- 0x0000 0000 to 0x001F FFFF RDRAM range 0 0x0020 0000 to 0x003F FFFF RDRAM range 1 0x0040 0000 to 0x03EF FFFF Unused 0x03F0 0000 to 0x03FF FFFF RDRAM registers: -------------------------------------------- RDRAM\_BASE\_REG - 0x03F00000 0x03F0 0000 to 0x03F0 0003 RDRAM\_CONFIG\_REG or RDRAM\_DEVICE\_TYPE\_REG 0x03F0 0004 to 0x03F0 0007 RDRAM\_DEVICE\_ID\_REG 0x03F0 0008 to 0x03F0 000B RDRAM\_DELAY\_REG 0x03F0 000C to 0x03F0 000F RDRAM\_MODE\_REG 0x03F0 0010 to 0x03F0 0013 RDRAM\_REF\_INTERVAL\_REG 0x03F0 0014 to 0x03F0 0017 RDRAM\_REF\_ROW\_REG 0x03F0 0018 to 0x03F0 001B RDRAM\_RAS\_INTERVAL\_REG 0x03F0 001C to 0x03F0 001F RDRAM\_MIN\_INTERVAL\_REG 0x03F0 0020 to 0x03F0 0023 RDRAM\_ADDR\_SELECT\_REG 0x03F0 0024 to 0x03F0 0027 RDRAM\_DEVICE\_MANUF\_REG 0x03F0 0028 to 0x03FF FFFF Unknown 0x0400 0000 to 0x0400 FFFF SP registers: ----------------------------------------- SP\_BASE\_REG - 0x04040000 0x0400 0000 to 0x0400 0FFF SP\_DMEM read/write 0x0400 1000 to 0x0400 1FFF SP\_IMEM read/write 0x0400 2000 to 0x0403 FFFF Unused 0x0404 0000 to 0x0404 0003 SP\_MEM\_ADDR\_REG Master, SP memory address (RW): \[11:0\] DMEM/IMEM address \[12\] 0=DMEM,1=IMEM 0x0404 0004 to 0x0404 0007 SP\_DRAM\_ADDR\_REG Slave, SP DRAM DMA address (RW): \[23:0\] RDRAM address 0x0404 0008 to 0x0404 000B SP\_RD\_LEN\_REG SP read DMA length (RW): \[11:0\] length \[19:12\] count \[31:20\] skip direction: I/DMEM <- RDRAM 0x0404 000C to 0x0404 000F SP\_WR\_LEN\_REG SP write DMA length (RW): \[11:0\] length \[19:12\] count \[31:20\] skip direction: I/DMEM to RDRAM 0x0404 0010 to 0x0404 0013 SP\_STATUS\_REG SP status (W): \[0\] clear halt (R): \[0\] halt \[1\] set halt \[1\] broke \[2\] clear broke \[2\] dma busy \[3\] clear intr \[3\] dma full \[4\] set intr \[4\] io full \[5\] clear sstep \[5\] single step \[6\] set sstep \[6\] interrupt on break \[7\] clear intr on break \[7\] signal 0 set \[8\] set intr on break \[8\] signal 1 set \[9\] clear signal 0 \[9\] signal 2 set \[10\] set signal 0 \[10\] signal 3 set \[11\] clear signal 1 \[11\] signal 4 set \[12\] set signal 1 \[12\] signal 5 set \[13\] clear signal 2 \[13\] signal 6 set \[14\] set signal 2 \[14\] signal 7 set \[15\] clear signal 3 \[16\] set signal 3 \[17\] clear signal 4 \[18\] set signal 4 \[19\] clear signal 5 \[20\] set signal 5 \[21\] clear signal 6 \[22\] set signal 6 \[23\] clear signal 7 \[24\] set signal 7 0x0404 0014 to 0x0404 0017 SP\_DMA\_FULL\_REG SP DMA full (R): \[0\] valid bit dma full 0x0404 0018 to 0x0404 001B SP\_DMA\_BUSY\_REG SP DMA busy (R): \[0\] valid bit dma busy 0x0404 001C to 0x0404 001F SP\_SEMAPHORE\_REG SP semaphore (R): \[0\] semaphore flag (set on read) (W): \[\] clear semaphore flag 0x0404 0020 to 0x0407 FFFF Unused 0x0408 0000 to 0x0408 0003 SP\_PC\_REG SP PC (RW): \[11:0\] program counter 0x0408 0004 to 0x0408 0007 SP\_IBIST\_REG SP IMEM BIST REG (W): \[0\] BIST check (R): \[0\] BIST check \[1\] BIST go \[1\] BIST go \[2\] BIST clear \[2\] BIST done \[6:3\] BIST fail 0x0408 0008 to 0x040F FFFF Unused 0x0410 0000 to 0x041F FFFF DP command registers: ------------------------------------------------- DPC\_BASE\_REG - 0x04100000 0x0410 0000 to 0x0410 0003 DPC\_START\_REG DP CMD DMA start (RW): \[23:0\] DMEM/RDRAM start address 0x0410 0004 to 0x0410 0007 DPC\_END\_REG DP CMD DMA end (RW): \[23:0\] DMEM/RDRAM end address 0x0410 0008 to 0x0410 000B DPC\_CURRENT\_REG DP CMD DMA end (R): \[23:0\] DMEM/RDRAM current address 0x0410 000C to 0x0410 000F DPC\_STATUS\_REG DP CMD status (W): \[0\] clear xbus\_dmem\_dma (R): \[0\] xbus\_dmem\_dma \[1\] set xbus\_dmem\_dma \[1\] freeze \[2\] clear freeze \[2\] flush \[3\] set freeze \[3\] start gclk \[4\] clear flush \[4\] tmem busy \[5\] set flush \[5\] pipe busy \[6\] clear tmem ctr \[6\] cmd busy \[7\] clear pipe ctr \[7\] cbuf ready \[8\] clear cmd ctr \[8\] dma busy \[9\] clear clock ctr \[9\] end valid \[10\] start valid 0x0410 0010 to 0x0410 0013 DPC\_CLOCK\_REG DP clock counter (R): \[23:0\] clock counter 0x0410 0014 to 0x0410 0017 DPC\_BUFBUSY\_REG DP buffer busy counter (R): \[23:0\] clock counter 0x0410 0018 to 0x0410 001B DPC\_PIPEBUSY\_REG DP pipe busy counter (R): \[23:0\] clock counter 0x0410 001C to 0x0410 001F DPC\_TMEM\_REG DP TMEM load counter (R): \[23:0\] clock counter 0x0410 0020 to 0x041F FFFF Unused 0x0420 0000 to 0x042F FFFF DP span registers: ---------------------------------------------- DPS\_BASE\_REG - 0x04200000 0x0420 0000 to 0x0420 0003 DPS\_TBIST\_REG DP tmem bist (W): \[0\] BIST check (R): \[0\] BIST check \[1\] BIST go \[1\] BIST go \[2\] BIST clear \[2\] BIST done \[10:3\] BIST fail 0x0420 0004 to 0x0420 0007 DPS\_TEST\_MODE\_REG DP span test mode (RW): \[0\] Span buffer test access enable 0x0420 0008 to 0x0420 000B DPS\_BUFTEST\_ADDR\_REG DP span buffer test address (RW): \[6:0\] bits 0x0420 000C to 0x0420 000F DPS\_BUFTEST\_DATA\_REG DP span buffer test data (RW): \[31:0\] span buffer data 0x0420 0010 to 0x042F FFFF Unused 0x0430 0000 to 0x043F FFFF MIPS interface (MI) registers: ---------------------------------------------------------- MI\_BASE\_REG - 0x04300000 0x0430 0000 to 0x0430 0003 MI\_INIT\_MODE\_REG or MI\_MODE\_REG MI init mode (W): \[6:0\] init length (R): \[6:0\] init length \[7\] clear init mode \[7\] init mode \[8\] set init mode \[8\] ebus test mode \[9/10\] clr/set ebus test mode \[9\] RDRAM reg mode \[11\] clear DP interrupt \[12\] clear RDRAM reg \[13\] set RDRAM reg mode 0x0430 0004 to 0x0430 0007 MI\_VERSION\_REG or MI\_NOOP\_REG MI version (R): \[7:0\] io \[15:8\] rac \[23:16\] rdp \[31:24\] rsp 0x0430 0008 to 0x0430 000B MI\_INTR\_REG MI interrupt (R): \[0\] SP intr \[1\] SI intr \[2\] AI intr \[3\] VI intr \[4\] PI intr \[5\] DP intr 0x0430 000C to 0x0430 000F MI\_INTR\_MASK\_REG MI interrupt mask (W): \[0/1\] clear/set SP mask (R): \[0\] SP intr mask \[2/3\] clear/set SI mask \[1\] SI intr mask \[4/5\] clear/set AI mask \[2\] AI intr mask \[6/7\] clear/set VI mask \[3\] VI intr mask \[8/9\] clear/set PI mask \[4\] PI intr mask \[10/11\] clear/set DP mask \[5\] DP intr mask 0x0430 0010 to 0x043F FFFF Unused 0x0440 0000 to 0x044F FFFF Video interface (VI) registers: ----------------------------------------------------------- VI\_BASE\_REG - 0x04400000 0x0440 0000 to 0x0440 0003 VI\_STATUS\_REG or VI\_CONTROL\_REG VI status/control (RW): \[1:0\] type\[1:0\] (pixel size) 0: blank (no data, no sync) 1: reserved 2: 5/5/5/3 ("16" bit) 3: 8/8/8/8 (32 bit) \[2\] gamma\_dither\_enable (normally on, unless "special effect") \[3\] gamma\_enable (normally on, unless MPEG/JPEG) \[4\] divot\_enable (normally on if antialiased, unless decal lines) \[5\] reserved - always off \[6\] serrate (always on if interlaced, off if not) \[7\] reserved - diagnostics only \[9:8\] anti-alias (aa) mode\[1:0\] 0: aa & resamp (always fetch extra lines) 1: aa & resamp (fetch extra lines if needed) 2: resamp only (treat as all fully covered) 3: neither (replicate pixels, no interpolate) \[11\] reserved - diagnostics only \[15:12\] reserved 0x0440 0004 to 0x0440 0007 VI\_ORIGIN\_REG or VI\_DRAM\_ADDR\_REG VI origin (RW): \[23:0\] frame buffer origin in bytes 0x0440 0008 to 0x0440 000B VI\_WIDTH\_REG or VI\_H\_WIDTH\_REG VI width (RW): \[11:0\] frame buffer line width in pixels 0x0440 000C to 0x0440 000F VI\_INTR\_REG or VI\_V\_INTR\_REG VI vertical intr (RW): \[9:0\] interrupt when current half-line = V\_INTR 0x0440 0010 to 0x0440 0013 VI\_CURRENT\_REG or VI\_V\_CURRENT\_LINE\_REG VI current vertical line (RW): \[9:0\] current half line, sampled once per line (the lsb of V\_CURRENT is constant within a field, and in interlaced modes gives the field number - which is constant for non-interlaced modes) - Writes clears interrupt line 0x0440 0014 to 0x0440 0017 VI\_BURST\_REG or VI\_TIMING\_REG VI video timing (RW): \[7:0\] horizontal sync width in pixels \[15:8\] color burst width in pixels \[19:16\] vertical sync width in half lines \[29:20\] start of color burst in pixels from h-sync 0x0440 0018 to 0x0440 001B VI\_V\_SYNC\_REG VI vertical sync (RW): \[9:0\] number of half-lines per field 0x0440 001C to 0x0440 001F VI\_H\_SYNC\_REG VI horizontal sync (RW): \[11:0\] total duration of a line in 1/4 pixel \[20:16\] a 5-bit leap pattern used for PAL only (h\_sync\_period) 0x0440 0020 to 0x0440 0023 VI\_LEAP\_REG or VI\_H\_SYNC\_LEAP\_REG VI horizontal sync leap (RW): \[11:0\] identical to h\_sync\_period \[27:16\] identical to h\_sync\_period 0x0440 0024 to 0x0440 0027 VI\_H\_START\_REG or VI\_H\_VIDEO\_REG VI horizontal video (RW): \[9:0\] end of active video in screen pixels \[25:16\] start of active video in screen pixels 0x0440 0028 to 0x0440 002B VI\_V\_START\_REG or VI\_V\_VIDEO\_REG VI vertical video (RW): \[9:0\] end of active video in screen half-lines \[25:16\] start of active video in screen half-lines 0x0440 002C to 0x0440 002F VI\_V\_BURST\_REG VI vertical burst (RW): \[9:0\] end of color burst enable in half-lines \[25:16\] start of color burst enable in half-lines 0x0440 0030 to 0x0440 0033 VI\_X\_SCALE\_REG VI x-scale (RW): \[11:0\] 1/horizontal scale up factor (2.10 format) \[27:16\] horizontal subpixel offset (2.10 format) 0x0440 0034 to 0x0440 0037 VI\_Y\_SCALE\_REG VI y-scale (RW): \[11:0\] 1/vertical scale up factor (2.10 format) \[27:16\] vertical subpixel offset (2.10 format) 0x0440 0038 to 0x044F FFFF Unused 0x0450 0000 to 0x045F FFFF Audio interface (AI) registers: ----------------------------------------------------------- AI\_BASE\_REG - 0x04500000 0x0450 0000 to 0x0450 0003 AI\_DRAM\_ADDR\_REG AI DRAM address (W): \[23:0\] starting RDRAM address (8B-aligned) 0x0450 0004 to 0x0450 0007 AI\_LEN\_REG AI length (RW): \[14:0\] transfer length (v1.0) - Bottom 3 bits are ignored \[17:0\] transfer length (v2.0) - Bottom 3 bits are ignored 0x0450 0008 to 0x0450 000B AI\_CONTROL\_REG AI control (W): \[0\] DMA enable - if LSB == 1, DMA is enabled 0x0450 000C to 0x0450 000F AI\_STATUS\_REG AI status (R): \[31\]/\[0\] ai\_full (addr & len buffer full) \[30\] ai\_busy Note that a 1to0 transition in ai\_full will set interrupt (W): clear audio interrupt 0x0450 0010 to 0x0450 0013 AI\_DACRATE\_REG AI DAC sample period register (W): \[13:0\] dac rate - vid\_clock/(dperiod + 1) is the DAC sample rate - (dperiod + 1) >= 66 \* (aclockhp + 1) must be true 0x0450 0014 to 0x0450 0017 AI\_BITRATE\_REG AI bit rate (W): \[3:0\] bit rate (abus clock half period register - aclockhp) - vid\_clock/(2\*(aclockhp + 1)) is the DAC clock rate - The abus clock stops if aclockhp is zero 0x0450 0018 to 0x045F FFFF Unused 0x0460 0000 to 0x046F FFFF Peripheral interface (PI) registers: ---------------------------------------------------------------- PI\_BASE\_REG - 0x04600000 0x0460 0000 to 0x0460 0003 PI\_DRAM\_ADDR\_REG PI DRAM address (RW): \[23:0\] starting RDRAM address 0x0460 0004 to 0x0460 0007 PI\_CART\_ADDR\_REG PI pbus (cartridge) address (RW): \[31:0\] starting AD16 address 0x0460 0008 to 0x0460 000B PI\_RD\_LEN\_REG PI read length (RW): \[23:0\] read data length 0x0460 000C to 0x0460 000F PI\_WR\_LEN\_REG PI write length (RW): \[23:0\] write data length 0x0460 0010 to 0x0460 0013 PI\_STATUS\_REG PI status (R): \[0\] DMA busy (W): \[0\] reset controller \[1\] IO busy (and abort current op) \[2\] error \[1\] clear intr 0x0460 0014 to 0x0460 0017 PI\_BSD\_DOM1\_LAT\_REG or PI\_DOMAIN1\_REG PI dom1 latency (RW): \[7:0\] domain 1 device latency 0x0460 0018 to 0x0460 001B PI\_BSD\_DOM1\_PWD\_REG PI dom1 pulse width (RW): \[7:0\] domain 1 device R/W strobe pulse width 0x0460 001C to 0x0460 001F PI\_BSD\_DOM1\_PGS\_REG PI dom1 page size (RW): \[3:0\] domain 1 device page size 0x0460 0020 to 0x0460 0023 PI\_BSD\_DOM1\_RLS\_REG PI dom1 release (RW): \[1:0\] domain 1 device R/W release duration 0x0460 0024 to 0x0460 0027 PI\_BSD\_DOM2\_LAT\_REG or PI\_DOMAIN2\_REG PI dom2 latency (RW): \[7:0\] domain 2 device latency 0x0460 0028 to 0x0460 002B PI\_BSD\_DOM2\_PWD\_REG PI dom2 pulse width (RW): \[7:0\] domain 2 device R/W strobe pulse width 0x0460 002C to 0x0460 002F PI\_BSD\_DOM2\_PGS\_REG PI dom2 page size (RW): \[3:0\] domain 2 device page size 0x0460 0030 to 0x0460 0033 PI\_BSD\_DOM2\_RLS\_REG PI dom2 release (RW): \[1:0\] domain 2 device R/W release duration 0x0460 0034 to 0x046F FFFF Unused 0x0470 0000 to 0x047F FFFF RDRAM interface (RI) registers: ----------------------------------------------------------- RI\_BASE\_REG - 0x04700000 0x0470 0000 to 0x0470 0003 RI\_MODE\_REG RI mode (RW): \[1:0\] operating mode \[2\] stop T active \[3\] stop R active 0x0470 0004 to 0x0470 0007 RI\_CONFIG\_REG RI config (RW): \[5:0\] current control input \[6\] current control enable 0x0470 0008 to 0x0470 000B RI\_CURRENT\_LOAD\_REG RI current load (W): \[\] any write updates current control register 0x0470 000C to 0x0470 000F RI\_SELECT\_REG RI select (RW): \[2:0\] receive select \[2:0\] transmit select 0x0470 0010 to 0x0470 0013 RI\_REFRESH\_REG or RI\_COUNT\_REG RI refresh (RW): \[7:0\] clean refresh delay \[15:8\] dirty refresh delay \[16\] refresh bank \[17\] refresh enable \[18\] refresh optimize 0x0470 0014 to 0x0470 0017 RI\_LATENCY\_REG RI latency (RW): \[3:0\] DMA latency/overlap 0x0470 0018 to 0x0470 001B RI\_RERROR\_REG RI error (R): \[0\] nack error \[1\] ack error 0x0470 001C to 0x0470 001F RI\_WERROR\_REG RI error (W): \[\] any write clears all error bits 0x0470 0020 to 0x047F FFFF Unused 0x0480 0000 to 0x048F FFFF Serial interface (SI) registers: ------------------------------------------------------------ SI\_BASE\_REG - 0x04800000 0x0480 0000 to 0x0480 0003 SI\_DRAM\_ADDR\_REG SI DRAM address (R/W): \[23:0\] starting RDRAM address 0x0480 0004 to 0x0480 0007 SI\_PIF\_ADDR\_RD64B\_REG SI address read 64B (W): \[\] any write causes a 64B DMA write 0x0480 0008 to 0x0480 000B Reserved 0x0480 000C to 0x0480 000F Reserved 0x0480 0010 to 0x0480 0013 SI\_PIF\_ADDR\_WR64B\_REG SI address write 64B (W): \[\] any write causes a 64B DMA read 0x0480 0014 to 0x0480 0017 Reserved 0x0480 0018 to 0x0480 001B SI\_STATUS\_REG SI status (W): \[\] any write clears interrupt (R): \[0\] DMA busy \[1\] IO read busy \[2\] reserved \[3\] DMA error \[12\] interrupt 0x0480 001C to 0x048F FFFF Unused Unused: ------- 0x0490 0000 to 0x04FF FFFF Unused Cartridge Domain 2(Address 1): ------------------------------ 0x0500 0000 to 0x05FF FFFF Cartridge Domain 2 0x0500 0508 - some roms read from this address. SRAM could be here Cartridge Domain 1(Address 1): ------------------------------ 0x0600 0000 to 0x07FF FFFF Cartridge Domain 1 This address seems to be where the n64ddrive would be addressed 0x0800 0000 to 0x0FFF FFFF Cartridge Domain 2 SRAM could be here Cartridge Domain 1(Address 2): ------------------------------ 0x1000 0000 to 0x1000 003F ROM header: --------------------------------------- 0x1000 0000 initial PI\_BSB\_DOM1\_LAT\_REG value 0x1000 0001 initial PI\_BSB\_DOM1\_PGS\_REG value 0x1000 0002 initial PI\_BSB\_DOM1\_PWD\_REG value 0x1000 0003 initial PI\_BSB\_DOM1\_PGS\_REG value 0x1000 0004 to 0x1000 0007 Clock Rate 0x1000 0008 to 0x1000 000B Boot address offset 0x1000 000C to 0x1000 000F Release offset 0x1000 0010 to 0x1000 0013 CRC1 0x1000 0014 to 0x1000 0017 CRC2 0x1000 0018 to 0x1000 001F Unused 0x1000 0020 to 0x1000 0033 Image name 0x1000 0034 to 0x1000 003A Unused 0x1000 003B Manufacturer ID 0x1000 003C to 0x1000 003D Cartridge ID 0x1000 003E Country code 0x1000 003F Unused 0x1000 0040 to 0x1000 0B6F RAMROM\_BOOTSTRAP\_OFFSET 0x1000 0B70 to 0x1000 0FEF RAMROM\_FONTDATA\_OFFSET 0x1000 0FF0 to 0x1000 0FFF Unused 0x1000 1000 to 0x10FF 9FFF RAMROM\_GAME\_OFFSET 0x10FF A000 to 0x10FF AFFF RAMROM\_APP\_READ\_ADDR 0x10FF B000 to 0x10FF BFFF RAMROM\_APP\_WRITE\_ADDR 0x10FF C000 to 0x10FF CFFF RAMROM\_RMON\_READ\_ADDR 0x10FF D000 to 0x10FF DFFF RAMROM\_RMON\_WRITE\_ADDR 0x10FF E000 to 0x10FF EFFF RAMROM\_PRINTF\_ADDR 0x10FF F000 to 0x10FF FFFF RAMROM\_LOG\_ADDR 0x1100 0000 to 0x17FF FFFF Unused 0x1800 0000 to 0x1800 0003 GIO Interrupt Register (R) 0x1800 0004 to 0x1800 03FF Unused 0x1800 0400 to 0x1800 0403 GIO Sync Register (R/W) 0x1800 0404 to 0x1800 07FF Unused 0x1800 0800 to 0x1800 0803 Cartridge interrupt Register (R) 0x1800 0804 to 0x1F39 FFFF Unused PIF Boot ROM: ------------- 0x1FC0 0000 PIF\_ROM\_START 0x1FC0 07BF PIF\_ROM\_END PIF (JoyChannel) RAM: --------------------- 0x1FC0 07C0 PIF\_RAM\_START 0x1FC0 07C4 (16 low bits) Status of controller: %X X X X X X X X X X X X X X X X A B Z ST U D L R ? ? PL PR CU CD CL CR A,B,Z,ST = A,B,Z, Start buttons U,D,L,R = Joypad directions ?,? = Unknown PL,PR = Pan left, Pan right buttons CU,CD,CL,CR = C buttons (up,down,left,right) 0x1FC0 07FF PIF\_RAM\_END Reserved: --------- 0x1FC0 0800 to 0x1FCF FFFF Reserved Cartridge Domain 1(Address 3): ------------------------------ 0x1FD0 0000 to 0x7FFF FFFF Unknown 0x8000 0000 to 0xffff ffff external SysAD device ------------------------------------------------- 0x8000 0000 to 0x9FFF FFFF kseg0 (Mirror of 0x0000 0000 to 0x1FFF FFFF) 0xA000 0000 to 0xBFFF FFFF kseg1 (Mirror of 0x0000 0000 to 0x1FFF FFFF) 0xC000 0000 to 0xDFFF FFFF ksseg (TLB mapped) 0xE000 0000 to 0xFFFF FFFF kseg3 (TLB mapped) \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* REGISTERS \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* Main CPU registers: ------------------- 00h = r0/reg0 08h = t0/reg8 10h = s0/reg16 18h = t8/reg24 01h = at/reg1 09h = t1/reg9 11h = s1/reg17 19h = t9/reg25 02h = v0/reg2 0Ah = t2/reg10 12h = s2/reg18 1Ah = k0/reg26 03h = v1/reg3 0Bh = t3/reg11 13h = s3/reg19 1Bh = k1/reg27 04h = a0/reg4 0Ch = t4/reg12 14h = s4/reg20 1Ch = gp/reg28 05h = a1/reg5 0Dh = t5/reg13 15h = s5/reg21 1Dh = sp/reg29 06h = a2/reg6 0Eh = t6/reg14 16h = s6/reg22 1Eh = s8/reg30 07h = a3/reg7 0Fh = t7/reg15 17h = s7/reg23 1Fh = ra/reg31 COP0 registers: --------------- 00h = Index 08h = BadVAddr 10h = Config 18h = \*RESERVED\* 01h = Random 09h = Count 11h = LLAddr 19h = \*RESERVED\* 02h = EntryLo0 0Ah = EntryHi 12h = WatchLo 1Ah = PErr 03h = EntryLo1 0Bh = Compare 13h = WatchHi 1Bh = CacheErr 04h = Context 0Ch = Status 14h = XContext 1Ch = TagLo 05h = PageMask 0Dh = Cause 15h = \*RESERVED\* 1Dh = TagHi 06h = Wired 0Eh = EPC 16h = \*RESERVED\* 1Eh = ErrorEPC 07h = \*RESERVED\* 0Fh = PRevID 17h = \*RESERVED\* 1Fh = \*RESERVED\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\* Explanations \*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* rs = 5-bit source register specifier rt = 5-bit target (source/destination) register or branch condition rd = 5-bit destination register specifier sa = 5-bit shift amount fs = 5-bit floating point source register specifier ft = 5-bit floating point target (source/destination) register or branch condition fd = 5-bit floating point destination register specifier base = 5-bit value imm = 16 bit immediate value offset = 16 bit branch displacement or address displacement target = 26 bit jump target address = Equal to > Greater than >= Greater than or equal to <> Not equal to < Less than <= Less than or equal to \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\* Load and Store Instructions \*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* LB rt,offset(base) Load Byte LBU rt,offset(base) Load Byte Unsigned LD rt,offset(base) Load Doubleword LDL rt,offset(base) Load Doubleword Left LDR rt,offset(base) Load Doubleword Right LH rt,offset(base) Load Halfword LHU rt,offset(base) Load Halfword Unsigned LL rt,offset(base) Load Linked word LLD rt,offset(base) Load Linked Doubleword LW rt,offset(base) Load Word LWL rt,offset(base) Load Word Left LWR rt,offset(base) Load Word Right LWU rt,offset(base) Load Word Unsigned SB rt,offset(base) Store Byte SC rt,offset(base) Store Conditional word SCD rt,offset(base) Store Conditional Doubleword SD rt,offset(base) Store Doubleword SDL rt,offset(base) Store Doubleword Left SDR rt,offset(base) Store Doubleword Right SH rt,offset(base) Store Halfword SW rt,offset(base) Store Word SWL rt,offset(base) Store Word Left SWR rt,offset(base) Store Word Right SYNC SYNChronize shared memory \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\* Atithmetic Instructions \*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* ADD rd,rs,rt ADD word ADDI rt,rs,imm ADD Immediate word ADDIU rt,rs,imm Add Immediate Unsigned word ADDU rd,rs,rt Add Unsigned word AND rd,rs,rt AND ANDI rt,rs,imm AND Immediate DADD rd,rs,rt Doubleword ADD DADDI rt,rs,imm Doubleword ADD Immediate DADDIU rt,rs,imm Doubleword ADD Immediate Unsigned DADDU rd,rs,rt Doubleword ADD Unsigned DDIV rs,rt Doubleword DIVide DDIVU rs,rt Doubleword DIVide Unsigned DIV rs,rt DIVide word DIVU rs,rt DIVide Unsigned word DMULT rs,rt Doubleword MULTiply DMULTU rs,rt Doubleword MULTiply Unsigned DSLL rd,rt,sa Doubleword Shift Left Logical DSLL32 rd,rt,sa Doubleword Shift Left Logical +32 DSLLV rd,rt,rs Doubleword Shift Left Logical Variable DSRA rd,rt,sa Doubleword Shift Right Arithmetic DSRA32 rd,rt,sa Doubleword Shift Right Arithmetic +32 DSRAV rd,rt,rs Doubleword Shift Right Arithmetic Variable DSRL rd,rt,sa Doubleword Shift Right Logical DSRL32 rd,rt,sa Doubleword Shift Right Logical +32 DSRLV rd,rt,rs Doubleword Shift Right Logical Variable DSUB rd,rs,rt Doubleword SUBtract DSUBU rd,rs,rt Doubleword SUBtract Unsigned LUI rt,imm Load Upper Immediate MFHI rd Move From HI register MFLO rd Move From LO register MTHI rd Move To HI register MTLO rd Move To LO register MULT rs,rt MULTiply word MULTU rs,rt MULTiply Unsigned word NOR rd,rs,rt Not OR OR rd,rs,rt OR ORI rt,rs,imm OR Immediate SLL rd,rt,sa Shift word Left Logical SLLV rd,rt,rs Shift word Left Logical Variable SLT rd,rs,rt Set on Less Than SLTI rt,rs,imm Set on Less Than Immediate SLTIU rt,rs,imm Set on Less Than Immediate Unsigned SLTU rd,rs,rt Set on Less Than Unsigned SRA rd,rt,sa Shift word Right Arithmetic SRAV rd,rt,rs Shift word Right Arithmetic Variable SRL rd,rt,sa Shift word Right Logical SRLV rd,rt,rs Shift word Right Logical Variable SUB rd,rs,rt SUBtract word SUBU rd,rs,rt SUBtract Unsigned word XOR rd,rs,rt eXclusive OR XORI rt,rs,imm eXclusive OR Immediate \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\* Jump and Branch Instructions \*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* BEQ rs,rt,offset Branch on = BEQL rs,rt,offset Branch on EQual Likely BGEZ rs,offset Branch on >= Zero BGEZAL rs,offset Branch on >= Zero And Link BGEZALL rs,offset Branch on >= Zero And Link Likely BGEZL rs,offset Branch on >= Equal to Zero Likely BGTZ rs,offset Branch on > Zero BGTZL rs,offset Branch on > Zero Likely BLEZ rs,offset Branch on <= Equal to Zero BLEZL rs,offset Branch on <= Zero Likely BLTZ rs,offset Branch on < Zero BLTZAL rs,offset Branch on < Zero And Link BLTZALL rs,offset Branch on < Zero And Link Likely BLTZL rs,offset Branch on < Zero Likely BNE rs,rt,offset Branch on <> BNEL rs,rt,offset Branch on <> Likely J target Jump JAL target Jump And Link JALR rs,rd Jump And Link Register JR rs Jump Register \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\* Special Instructions \*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* BREAK offset BREAKpoint SYSCALL offset SYStem CALL \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\* Exception Instructions \*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* TEQ rs,rt Trap if = TEQI rs,imm Trap if = Immediate TGE rs,rt Trap if >= TGEI rs,imm Trap if >= Immediate TGEIU rs,imm Trap if >= Immediate Unsigned TGEU rs,rt Trap if >= Unsigned TLT rs,rt Trap if < TLTI rs,imm Trap if < Immediate TLTIU rs,imm Trap if < Immediate Unsigned TLTU rs,rt Trap if < Unsigned TNE rs,rt Trap if <> TNEI rs,imm Trap if <> Immediate \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\* System Control Processor (COP0) Instructions \*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* CACHE op,offset(base) CACHE ERET Return from Exception MFC0 rt,fs Move Word From CP0 MTC0 rt,fs Move Word To CP0 TLBP Probe TLB for Matching Entry TLBR Read Indexed TLB Entry TLBWI Write Indexed TLB Entry TLBWR Write Random TLB Entry \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\* Floating-point Unit, FPU (COP1) instructions \*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* ABS.fmt fd,fs floating-point ABSolute value ADD.fmt fd,fs,ft floating-point ADD BC1F offset Branch on FP False BC1FL offset Branch on FP False Likely BC1T offset Branch on FP True BC1TL offset Branch on FP True Likely C.cond.fmt fs,ft floating-point floating point Compare CEIL.L.fmt fd,fs floating-point CEILing convert to Long fixed-point CEIL.W.fmt fd,fs floating-point CEILing convert to Word fixed-point CFC1 rt,fs Move control word From Floating-Point CTC1 rt,fs Move control word To Floating-Point CVT.D.fmt fd,fs floating-point ConVerT to Double floating-point CVT.L.fmt fd,fs floating-point ConVerT to Long fixed-point CVT.S.fmt fd,fs floating-point ConVerT to Single floating-point CVT.W.fmt fd,fs floating-point ConVerT to Word fixed-point DIV.fmt fd,fs,ft floating-point DIVide DMFC1 rt,fs Doubleword Move From Floating-Point DMTC1 rt,fs Doubleword Move To Floating-Point FLOOR.L.fmt fd,fs floating-point FLOOR convert to Long fixed-point FLOOR.W.fmt fd,fs floating-point FLOOR convert to Word fixed-point LDC1 ft,offset(base) Load Doubleword to Floating-Point LWC1 ft,offset(base) Load Word to Floating-Point MFC1 rt,fs Move Word From Floating-Point MOV.fmt fd,fs floating-point MOVe MTC1 rt,fs Move Word To Floating-Point MUL.fmt fd,fs,ft floating-point MULtiply NEG.fmt fd,fs floating-point NEGate ROUND.L.fmt fd,fs floating-point ROUND to Long fixed-point ROUND.W.fmt fd,fs floating-point ROUND to Word fixed-point SDC1 ft,offset(base) Store Doubleword from Floating-Point SQRT.fmt fd,fs floating-point SQuare RooT SUB.fmt fd,fs,ft floating-point SUBtract SWC1 ft,offset(base) Store Word from Floating-Point TRUNC.L.fmt fd,fs floating-point TRUNCate to Long fixed-point TRUNC.W.fmt fd,fs floating-point TRUNCate to Word fixed-point \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\* Pseudo opcodes \*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* NOP Assembles to SLL r0, r0, 0 MOVE rd, rs Assembles to ADD rd, r0, rs NEG rd, rt Assembles to SUB rd, r0, rt NEGU rd, rs Assembles to SUBU rd, r0, rs BNEZ rs, offset Assembles to BNE rs, r0, offset BNEZL rs, offset Assembles to BNEL rs, r0, offset BEQZ rs, offset Assembles to BEQ rs, r0, offset BEQZL rs, offset Assembles to BEQL rs, r0, offset B offset Assembles to BEQ r0, r0, offset BAL offset Assembles to BGEZAL r0, offset LI rt, imm Assembles to ORI rt, r0, imm (if imm is 16 bit) or ADDIU rt, r0, imm or LUI rt, high\_16 ORI rt, rt, low\_16 (if imm is 32 bit) S.S ft, offset(base) Assembles to SWC1 ft, offset(base) L.S ft, offset(base) Assembles to LWC1 ft, offset(base) \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* CONTROLLER \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* You first have to set 2 places in memory that contains 64 bytes of certain values, lets call them pif1 and pif2. they contain the values : pif1: DW $FF010401 DW $00000000 DW $FF010401 DW $00000000 DW $FF010401 DW $00000000 DW $FF010401 DW $00000000 DW $FE000000 DW $00000000 DW $00000000 DW $00000000 DW $00000000 DW $00000000 DW $00000000 DW $00000001 pif2: DW 0,0,0,0,0,0,0,0 ;by words we mean 32bits! DW 0,0,0,0,0,0,0,0 ;I think this is 64 bytes.. You need to initialize this register before starting (your program will run few a few seconds then die if not done) addiu t0,r0,8 lui at,$BFC0 sw t0,$07FC(at) ;CLEAR BUTTONS move #8,$BFC007FC now when you start your program and begin your main loop the begginning of the loop should begin with (if you want to read joysticks): START: lui t2,$0031 ;t2 = if org is 80310000 then $0031 ; if org is 80200000 then $0020 ;I myself am still confused bout ;how ram is mirrored in the system ;but this is how it is ori t2,t2,pif1 ;lower 16 bits pointer to pif1 lui at,$A480 ;SI DRAM ADDR. at=$A4800000 sw t2,$0000(at) ; pif1 lui t2,$1FC0 ori t2,t2,$07C0 ;t2=$1fc007c0 lui at,$A480 sw t2,$0010(at) ;64B DRAM -> PIF ;poke them thar ;registers arrrrr \[...do your stuff in here, then when ready to loop back do this to test josticks...\] lui t2,$0031 ;look familiar ori t2,t2,pif2 lui at,$A480 ;SI DRAM ADDR sw t2,$0000(at) ;$31pif2 lui t2,$1FC0 ori t2,t2,$07C0 ;PIF joychannel lui at,$A480 sw t2,$0004(at) ;64B PIF->DRAM ;peek values to dram ? i ;guess this is necassary lui t1,$BFC0 lbu t1,$07FF(t1) ;BYTE(JOY)-T1 ;for some reason this ;is done but I dont know why! lui t0,$BFC0 ;the value is disregarded lhu t0,$07C4(t0) ;\*\*HWORD(JOY)->T0\*\* nop beq t0,r0,START ;\*\*\*we have our joystick value in t0\*\*\* nop ;if no buttons mashed then start over andi t1,t0,$4000 ;each bit represents a button so ;start testing them beq t1,r0,next1 ;I used to know what each bit represented ; (what button) but I lost the info nop ;andi $4000 /$8000 A/B $100/$200 left/right etc... ; I think this is right I \[routine\] ;might have it backwords or somethin next1: etc.. etc.. ;there are a couple of bits that i ;dont know what they do. ;havent figured out where the ;analog joy data is. -------------------------------------------------------------------------- at 0x1FC0 07C4 - 07c5 is the status of the controller, each bit is 1 when the button is mashed, 0 otherwise. 07C4 (HALFWORD-16 BITS) = STATUS OF CONTROLLER %X X X X X X X X X X X X X X X X A B Z ST U D L R ? ? PL PR CU CD CL CR A,B,Z =BUTTONS ST = START U,D,L,R = JOYPAD ?,? = UNKNOWN PL,PR = PAN LEFT , PAN RIGHT BUTTONS CU,CD,CL,CR = C BUTTONS |UP,DOWN,LEFT,RIGHT -------------------------------------------------------------------------- additional controller info: init controller: rdram -> pif ff010300 ffffffff ... for each controller fe000000 ... at the end (after controller 4) than pif ram is set to: ????EE?? TTTTSS?? ... for each controller ?? ... ? zero (0x00) EE ... error field 0x80: no response (no controller connected) 0x40: Overrun error (?) 0x00: no error (controller connected) TTTT ... type field 0x0001 absolute 0x0002 relative 0x0004 joyport 0x8000 eeprom !!! SS ... status field 0x01 card on 0x02 card pull 0x04 addr crc err 0x80 eeprom busy get controller data: rdram -> pif ff010400 ffffffff ... for each controller fe000000 ... at the end (after controller 4) than pif ram is set to (!!!attention!!! pif ram is actualized every read): 0xbfc007c0: ????EE?? 0xbfc007c4: BBBBXXYY 0xbfc007c8: | 0xbfc007cc: |\_same as above but for controller 2 ... BBBB ... buttons (you have that in controll.txt) XX ... stick x pos \[-128..127\] or 0x80 (left) .. 0x00 (middle) .. 0x7f (right) YY ... stick y pos \[-128..127\] or 0x80 (down) .. 0x00 (middle) .. 0x7f (up) !!!attention!!! all pur versions seem NOT to have implemented the SIGNED XX and YY bytes correct. 0x80 0x81 0x82 ... 0xff 0x00 0x01 .. 0x7c 0x7e 0x7f -128 -127 -126 -1 0 1 125 126 127 left pos middle pos right pos down pos middle pos up pos !!!attention!!! \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* SOUND \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* Crazy nation trainer (xtremeG version) \[we tested button and its time to make sound!\] lui $t4,8031 ;make pointer to 'yes' sound addiu $t4,$t4,4F10 ;80314f10 = start addiu $t5,$zero,4A71 ;4A71=length addiu $t6,$zero,1388 ;1388= DAC rate addiu $t7,$zero,0001 ;1=BIT rate jal here nop \[draw yes\] ...... \[we tested button and time to make 'no' sound\] lui $t4,8031 ;make pointer to 'no' sound addiu $t4,$t4,12C4 ;803112C4 addiu $t5,$zero,3C45 ;3C45=length addiu $t6,$zero,1388 ;DAC rate addiu $t7,$zero,0001 ;1=BIT rate jal here nop \[draw no\] ..... \[...initialize vid, audio\] addiu $t4,$zero,0000 ;\[blank out sound\] addiu $t5,$zero,0000 ;initialize addiu $t6,$zero,0001 addiu $t7,$zero,0001 here: lui $t8,A450 sw $t4,0000($t8) ;start RDRAM address sw $t5,0004($t8) ;length addiu $t9,$zero,0001 sw $t9,0008($t8) ;1 = enable dma sw $t6,0010($t8) ;dac rate sw $t7,0014($t8) ;bit rate jr $ra nop --- # Unknown \=============================================================================== Developers Toolkit Version 5.0 8/4/1999 Nintendo of America Inc. =============================================================================== Directory structure of "Developers Kit ver5.0" CDROM "NIFF," "NuSYSTEM," "N64 Disk Drive Multi File System (MFS)," "ccbl," "HVQ/HVQM," "DPTEST," "Monegi Multi Viewer64", and "DDTools" (Windows version only) can be installed using this package. The latest version of "N64 Sound Tools" is also included. For PC, the N64 Sound Tools is not launched from the top level installer. Please double-click "\\pc\\SndTools\\Setup.exe" to install it. CD\[devkit50\]----+--\\pc README.txt | CHANGES.txt | +--\\sgi Installation Procedure ---------------------- SGI Workstation Make a backup copy of the "n64kit" directory (previous version 4.2) by renaming. (You may delete it if you wish). Expand the n64kit50.tgz file using the following commands: % cd /usr/local % gunzip -c n64kit50.tgz | tar xvf - Windows Uninstall all previous versions using "Add/Remove Programs" from the Control Panel. (Uninstall everything that begins with n64 or n64kit) Start "\\pc\\setup.exe" of this CD. The main installer will start and will start up installers for each component one-by-one (except for N64 Sound Tools). Note: It will take some time to install the entire package. Contents: NIFF (SGI/PC) ------------- 1. What's included in this release? The following are distributed for release 5.0. Nintendo Intermediate File Format ver1.0 specification HTML version Nitnendo Intermediate File Format ver2.0 specification HTML version NIFFeditor for SGI NIFFeditor for WIN NIFFAPI NIFF Tools niff2nvf converter nvfview previewer niff2gfx converter n64prev previewer MultiTextureViewer(Windows version only) 2. Directory structure The directory structure is as follows: NIFFDIR = $N64KITDIR/niff $NIFFDIR/bin/ : NIFFeditor related niffapi/ : NIFFAPI related nifftools/ : NIFF tools nvfview/ : niff2nvf converter +nvfview previewer mtv/ : MultiTextureViewer related n64prev/ : niff2gfx converter +n64prev previewer doc/ : Documents sample/ : Samples user\_data/ : User data \* By default, N64KITDIR will be installed in the following directories. (SGI) N64KITDIR = /usr/local/n64kit (Windows) N64KITDIR = c:\\nintendo\\n64kit NIFF editor and converter depend upon the relative relationship of the directory structure under niff. It is important that the relative relationship NOT be changed. However, it is possible to specify a separate directory for your data directory. If the structure under niff remains the same, you can copy the entire n64kit directory and use it under a different directory name. NIFF Editor and converter write files in directories of nvfview and n64prev. Please make sure that these directories are not write protected. When Preview is executed from the Editor, the same file name is used each time. Therefore, if more than one person will be using NIFF Editor with the same hardware, make a copy of the niff directory in a different location so that nvfview and n64prev will be separate directories. NuSystem (SGI/PC) ----------------- Directory structure n64kit---/nusys --/lib Library |-/include include file |-/src Source file |-/doc Document |-/sample Sample software 64DD Multi File System (SGI/PC) ------------------------------- n64kit---/mfs --/lib Library |-/include include file |-/doc Document |-/ddtool Tools (rombuilder,rameditor,dddump)(PC only) ccbl (SGI/PC) ------------- n64kit---/ccbl RDP function learning sample"ccbl" DPTEST/MonegiMultiViewer64/N64CITextureEditor (PC only) ------------------------------------------------------- n64kit---/dptest DPTEST -/Mmv64 MonegiMultiViewer64 -/texedit N64CITextureEditor HVQ/HVQM(SGI/PC) Hvq------/Hvq HVQ -/Hvqm HMQM -/HVQlogo logo data for HVQ NuStd (SGI/PC) -------------- n64kit---/nustd (ANSI-based) Standard Function Library Others (SGI/PC) --------------- n64kit---/misc---/slide\_v1.1 Compression/Decompression Software |-/sgi2pc Audio Tool for SGI Library (ic, adpcmenc, etc.) for PC version. \*Only PC |-/pakfatal A program that destroies ID area of Controller Pak |-/audiochk A tool that measures audio parameters including DMA buffer size |-/bmp2u64 A tool that converts BMP file into 16 bit RGBA (5551) format \* Only PC. Note: The default setting is recommended for the directory to which the file will be installed. However, if the directory is changed from the default, rewrite the Makefile definition (of N64KITDIR) accordingly. Support/upgrading ----------------- Please contact Nintendo Technical Support Phone: (425) 861-2736 FAX: (425) 558-7100 Support is also available through our website: www.noa-engineering.com, or e-mail: support@noa.com Patches are available through the NOA Engineering Website. ---