N64 Emulator Kit
From Nekochan
The purpose of the N64 Emulator Kit is to develop/debug the N64 application on the Indy workstation.
The N64 Emulator Kit can be used with the GIO bus of a Silicon Graphics Indy series workstation (Only Indy is accepted). It loads the game program into the Emulation ROM to control game execution. The emulation ROM supports up to 128Mbits and up to 4 controllers for Nintendo 64 can be connected via the JOY adapter port. The JOY adapter board comes with 4k EEPROM built-in and can be expanded to 16k. This kit cannot be used to develop for "N64 Disk Drive" or "256k SRAM"
The Configuration of the N64 Emulator Set
- N64 OS
- N64 OS 1(the DAT tape)*
- N64 emulator board
- The N64 emulator board
- The N64 controller
- The N64 controller conversion adapter
*The last known version of N64 OS was OS2.0K.
Operation Environment
You need the following environment to use the N64 Emulator Set.
- System : The Indy Workstation
- OS : IRIX 5.3*
* Later versions of the manual say that 6.2 and 6.3 are supported.
Development Hardware
The development system consists of an N64 game card on a GIO card for the Indy workstation. The ROM cartridge is replaced by 16 megabytes of RAM, called the RAMROM, that is accessible from both the Indy workstation through the GIO bus and the RCP through the PBUS. The workstation downloads the game software on to the GIO card and then the N64 executes the game. The RAMROM is also used to pass information to the debugger. The 4 megabytes of main memory uses the 9 bit RDRAMs.
Setting up the Hardware
Mounting the N64 Emulator Board
After verifying that the power of the Indy workstation is OFF, remove the upper cover and connect the GIO connector.
Mounting the N64 Controller Conversion Adapter
Insert the N64 Controller conversion adapter into the game controller port of the N64 emulator board. Insert the connector of the game controller port from left to right (viewed from the back of the Indy workstation) so that the cables do not crisscross. (The following figure is the way it should look, with the right-most modular connector vacant as viewed from the back.)
Mounting the N64 Controller and the Video Cable
Connect the N64 controller to the N64 controller conversion adapter and the video cable (purchased separately) to the AV output port of the N64 emulator board. Connect the pin plug (RCA) side of the video cable to the television.
Alter the N64 Emulator Board required for use with PAL
The following alteration is required when you use the N64 emulator board to create an application for Europe (corresponding to PAL).
- Alter the N64 Emulator Board
- Part number X6 : Change the crystal oscillator (14.3MHz -> 17.7MHz)
- Part number R8 : Remove the resistance (4.7k ohm)
- Part number R6 : Add resistance (0 ohm)
- Alter the Flash ROM Cartridge
- Change CIC (for NTSC -> for PAL)
The N64 Emulator Software
The Nintendo 64 development software image is not the only software required for development. Your Indy workstation must also contain the following products for IRIX 5.3:
- dev
- c_dev
- compiler_dev
- gl_dev
- CaseVision
- WorkShop
Three products are bundled with the Nintendo 64 development software:
- GameShop
- ultra
- dmedia_eoe (version 5.5)
Note: Casevision and Workshop need to be installed before Gameshop. Workshop needs to be version 2.4 or earlier.
This manual assumes that the compiler (cc), assembler (as), and linker (ld) required to develop the application, and the debugger, (gvd), required to debug the created application, have already been installed.
Installing the N64 Emulator Software
Please follow the procedure shown below to install the N64 Emulation Software.
- Expand the contents of the DAT tape.
- Insert the DAT tape and input "tar xv" in the appropriate directory from the console screen. A directory containing the version name will be created under that directory.
- Start Software Manager.
- Install the software necessary for installation.
- Auto-install the IRIS-provided software and ProDev/WorkShop. Then, select custom install. Finally, install the Graphics Library Image Tools that are located in the Execution Environment 2 sub-directory on the IRIX5.3 CD.
- Install the emulator software.
- In Software Manager, specify a version name for the directory name and select custom install. Install all of the following applications including GameShop, ultra, and dmedia_eoe (version 5.5).
If the installation is unsuccessful during Step 4 and a dialog box notifies that a conflict occurred, the required software may not be installed on your system. You can identify the missing software by checking the error message, which will indicate required software that is not installed. Please install the missing software, then execute Step 4 again.
The installation of N64 OS
Install the included files library, microcodes and sample program required to use the N64 OS in the N64 application. After inserting the DAT tape, move to the appropriate directory on the console and enter
% tar xv
(contents of DAT are expanded to the directory). Next, click "Software Manager" from the menu, "System," with the left mouse button and activate "Software Manager." After activation, designate the directory the contents of DAT were expanded to and click, "Customize Installation", with the left mouse button.
The installable contents are displayed, so after selecting all (check the Install field), push "Start." When the installation ends without error, the Status field changes from "New" to "Same Version."
The directory configuration after the installation becomes as follows (this manual assumes these directories):
If the disk capacity becomes insufficient during the installation, create disk space by adding hard disks or deleting unnecessary applications.
Samples and Release Notes
After installing the software needed for N64 development, you will find a collection of sample demonstration applications in /usr/src/PR/demos. The README_DEMOS file describes each of the applications' key features. You will also find the release notes in /usr/src/PR/doc/relnotes*.txt. The release notes summarize the differences from the last release and include a discussion of the various bugs, workarounds and caveats of the system.
Other Sources
In the /usr/src/PR/assets directory, you will find the source files for building the general MIDI bank. An initial complete general MIDI bank was created for testing purposes. For a game, we assume that you will put the bank down to include only those instrument and sounds that you need.
In the /usr/src/PR/libsrc/libultra directory, you will find portions of the Nintendo 64 system library source code that you can refer to
Executables
The gload program downloads the ROM image onto the Nintendo 64 development board and starts execution. Soon after, you will need to use dbgif and gvd to debug your program.
- /usr/sbin/gload
- /usr/sbin/dbgif
- /usr/sbin/gvd
There are conversion tools that help in converting data into Nintendo 64 format. For example, flt2c converts a MultiGen database into a C data structure that can be compiled into binary form. Most of these tools reside in /usr/sbin but some are supplied in source form in /usr/src/PR/libsrc/conv. Keep in mind that these are templates for your own custom database conversion tools. We cannot possibly address the needs of all developers.
Loading Sample Programs into the Emulator Board
# gload -s quickprev.n64 # niff2gfx -b niffprev.nif model.bin # gload -s -o0x200000 model.bin
Using the Sample Programs
The sample programs can be run after installation of the emulator board and software. Directories for the sample programs such as simple or onetri are located under /usr/src/PR/demos. To run the sample programs, run "make" with each directory and enter "gload". Some of the functions and features of the sample programs are explained below. For a complete description of the features of each sample programs, please review its accompanying README.
Analyzing and understanding the source code for the sample programs will help you acquire a better understanding of N64 software development.
Trouble Shooting and Questions
Q:When I insert the N64 emulator board connected to the Indy, it isn't recognized.
A:Consider the following causes and countermeasures.
1. Library is not installed. Install the library according to the N64 Programming Manual or Chapter 5 of the N64 Introductory Manual, Step 2.
2. The board overheated making recognition impossible. Indy boards are often susceptible to heat, so be sure to close the lid on the Indy when it is in use. Closing the lid will lower the temperature of the chips inside the board to approximately 20 degrees. In addition, recognition sometimes just misses, in which case, do not reboot, but turn the power OFF/ON a couple of times. If the board recognition configuration is not started on a reboot, it could be that the board has been damaged. If none of these measures works, you may try replacing the board. If this still doesn't work, we will replace the emulator board free of charge. In this case, describe the symptoms as clearly as possible and send the board to our Support Center. If you are able somehow to use the board, but would like to get it repaired anyway, consult with us and we will lend you a board. Once the board arrives, we will replace the defective product.
Q: Can applications be developed using the SRAM on the Indy+NUS Emulator Board?
A: No they can't. It is also impossible to develop 64DD or 128Mbit or larger applications with the emulator board configuration. Of course, it is possible to burn the resulting ROM image into a Flash Cartridge and then check its operation.
Q: After upgrading from IRIX 5.3 to IRIX 6.2, the 64 emulator board is no longer recognized.
A: Re-install N64OS. This must be re-installed for the device drivers.
Q: Is an IRIX 6.5-compatible version of NINTENDO64 OS scheduled for release?
A: While operations that accompany compiling, such as graphics previewing, etc., cannot be completely guaranteed, a certain number of the operations have been checked. There are also provisional drivers for the IRIX 6.5 emulator board.
Q: When I perform makerom using N64 Software, the following message appears and the rom file is not created.
//usr/sbin/r4300_check WARNING: fmul in delay slot at address "address number"
A: This can be resolved by installing patch 1118 included in OS2.01_N64_PAK (SGI version). However, this is true only for users using the MIPS compiler for IRIX 5.3 and early IRIX 6.2. If you will be purchasing the compiler in the future, this doesn't need to be installed since the patch is included in the IRIX 6.2 and IRIX 6.3 MIPS compilers.
Q: How exactly do I go about acquiring a R4300 manual?
A: Contact the Sales Department, Engineering Section. Now, a pdf file can be downloaded from the NEC home page at: http://www.necel.com/home.nsf/Products/Microprocessors
Q: When I upgraded my tools, I received a media version of the documentation. I have returned the old media documentation, but how should I go about returning the hard copy materials?
A: Please have your company dispose of them by incineration or shredding.