MIPS 4300 for Nintendo 64 - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

MIPS 4300 for Nintendo 64

HamedoHamedo Posts: 11Member
[b][red]This message was edited by Hamedo at 2003-7-25 19:43:50[/red][/b][hr]
Could anyone help me with MIPS programming? I have a genereal idea of how the processor works and all of the opcodes for it. I also have a disassembler and debugger and a homebrewed Nintendo 64 game. But I find it hard to connect all of these things, does anyone have any suggestions? I have no clue as to where to start. Right now I'm reading about the MIPS processor and understanding it's basic functionality, then I'm going to look at the disassembled home brewed demo and try to learn how all of the opcodes function, although I have a very rough draft of how the opcodes work, it doesn't help much. I'm not sure if I will be able to pick up everything without some outside assistance other than these documents. Again, does anyone have any suggestions?


Comments

  • big_endianbig_endian Posts: 20Member
    Sure... I did programming on many different game systems in Assembly,
    C/C++/D, and some other custom languages.

    Get this book if you don't have it already, User's / Programmer's manual
    for the MIPS R4000 / R4400 CPU. The MIPS R4300i combo embedded
    processor is based on the R4400 CPU microinstruction core for your
    information. Just trying to make it easier for you.

    The different between the 4400 and the 4300 is the 4300 has built-in
    ports that are meant to control peripherals internally without extra
    external logic to control it.

    What you need to do is study up on the assembly language of the R4400,
    learn C/C++ that has the MIPS 4400 definition for the assembly code
    use that as a skeleton for doing your coding. You need to know how
    the Nintendo 64 / Ultra 64 works first and how the CPUs work in general.
    When you hit reset on the machine when the Nintendo is turned on,
    it is not a hard reset, meaning it is not done via hardware, it is
    a soft reset, and done via a software routine, that is much safer
    for the system to do it that way. You need to know the memory
    mapping for the Nintendo in all modes. With the Jumper Pak installed,
    when you have a 4 to 16 Megabit RAM module installed and how it
    affects the timing / memory map and other considerations to the system.
    Learn how the SPU (sound processing unit works, etc). Basically,
    it can be a real mess if you try to tackle everything at once.
    Start by learning the 4400 insides, if you need help or resources,
    I can send you in the right direction. Don't feel overwhelmed and
    alone, even the pros hated programming this thing. Just ask the
    guys in Capcom when they created Resident Evil 2, oh boy that was
    a nightmare come true, programming the game that is.

    The next thing, learn what a code and data scheduler is, what it
    does, and how it operates, this will be a pinnacle in working with
    all game machines. You have to write one every damn time you create
    a new game, it's different for each game.

    : [b][red]This message was edited by Hamedo at 2003-7-25 19:43:50[/red][/b][hr]
    : Could anyone help me with MIPS programming? I have a genereal idea of how the processor works and all of the opcodes for it. I also have a disassembler and debugger and a homebrewed Nintendo 64 game. But I find it hard to connect all of these things, does anyone have any suggestions? I have no clue as to where to start. Right now I'm reading about the MIPS processor and understanding it's basic functionality, then I'm going to look at the disassembled home brewed demo and try to learn how all of the opcodes function, although I have a very rough draft of how the opcodes work, it doesn't help much. I'm not sure if I will be able to pick up everything without some outside assistance other than these documents. Again, does anyone have any suggestions?
    :
    :
    :



  • HamedoHamedo Posts: 11Member
    Thanks, that should get me atleast some where, except that I can't seem to find the User's manual for the MIPS 4300 / 4400. I managed to find quite a few dead links though. Do you know of anywhere that I might be able to get it? And if you wouldn't mind helping out a little when I get stuck, then could you e-mail me or IM me some alterative way to get in touch with you other than Programmers Heaven's message board? I'm working on learning C++ right now, or trying to :-/. And just so you'll know, I'm working on editing one game in particular, so I might be able to get away with some of the stuff that you must know to create a new game, heh.


    P.S. Sorry about responding so late, I saw the post on here Sunday but I've been too busy lately.

    Thanks,
    Lythimus Glasteel

    e-mail - [email protected]
    AIM - DarkRadiant

    : Sure... I did programming on many different game systems in Assembly,
    : C/C++/D, and some other custom languages.
    :
    : Get this book if you don't have it already, User's / Programmer's manual
    : for the MIPS R4000 / R4400 CPU. The MIPS R4300i combo embedded
    : processor is based on the R4400 CPU microinstruction core for your
    : information. Just trying to make it easier for you.
    :
    : The different between the 4400 and the 4300 is the 4300 has built-in
    : ports that are meant to control peripherals internally without extra
    : external logic to control it.
    :
    : What you need to do is study up on the assembly language of the R4400,
    : learn C/C++ that has the MIPS 4400 definition for the assembly code
    : use that as a skeleton for doing your coding. You need to know how
    : the Nintendo 64 / Ultra 64 works first and how the CPUs work in general.
    : When you hit reset on the machine when the Nintendo is turned on,
    : it is not a hard reset, meaning it is not done via hardware, it is
    : a soft reset, and done via a software routine, that is much safer
    : for the system to do it that way. You need to know the memory
    : mapping for the Nintendo in all modes. With the Jumper Pak installed,
    : when you have a 4 to 16 Megabit RAM module installed and how it
    : affects the timing / memory map and other considerations to the system.
    : Learn how the SPU (sound processing unit works, etc). Basically,
    : it can be a real mess if you try to tackle everything at once.
    : Start by learning the 4400 insides, if you need help or resources,
    : I can send you in the right direction. Don't feel overwhelmed and
    : alone, even the pros hated programming this thing. Just ask the
    : guys in Capcom when they created Resident Evil 2, oh boy that was
    : a nightmare come true, programming the game that is.
    :
    : The next thing, learn what a code and data scheduler is, what it
    : does, and how it operates, this will be a pinnacle in working with
    : all game machines. You have to write one every damn time you create
    : a new game, it's different for each game.
    :
    : : [b][red]This message was edited by Hamedo at 2003-7-25 19:43:50[/red][/b][hr]
    : : Could anyone help me with MIPS programming? I have a genereal idea of how the processor works and all of the opcodes for it. I also have a disassembler and debugger and a homebrewed Nintendo 64 game. But I find it hard to connect all of these things, does anyone have any suggestions? I have no clue as to where to start. Right now I'm reading about the MIPS processor and understanding it's basic functionality, then I'm going to look at the disassembled home brewed demo and try to learn how all of the opcodes function, although I have a very rough draft of how the opcodes work, it doesn't help much. I'm not sure if I will be able to pick up everything without some outside assistance other than these documents. Again, does anyone have any suggestions?
    : :
    : :
    : :
    :
    :
    :
    :

  • big_endianbig_endian Posts: 20Member
    Sure, I will give you some more help. You won't find any direct
    documentation on the 4300i CPU unless you sign a Non-Disclosure
    Agreement (NDA) with MIPS Technologies, Inc. (a subsidiary of SGI, Inc).
    Since the 4300i and the 4400 are of the MIPS R4000 series, you will be
    able to get this book:

    MIPS R4000 Microprocess User Manual
    Including the R4400
    By: Joseph Heinrich (Sometimes seen as Joe Heinrich)

    The ISBN is this, "ISBN 0-13=105925-4"
    Prentice-Hall, Inc.
    A Simon & Schuster Company
    is the publishing company.

    I am looking up the information on the fly from my databases and
    book library (thank god I have this all computerized to find things
    in a second). I am working on getting some information for you
    on the 4300i / 4400 instructions for you.

    The 4300i is also known as the VR4300, here is a new source of
    information. I don't expect you to understand it right away it's a
    little tough for newbies. This has all the CPU info of the 4300.
    Grab all the files for download, save them, and print them if you
    wish. This will help quite a bit. If you have never programmed
    let me know let alone know what endian means. These chips can
    do big or little endian mode and can cause problems when you are
    starting your ROMs.

    http://www.necelam.com/microprocessors/uPD30200-100.cfm

    Some time ago, I created a drive interface for the N64 / Ultra 64,
    one was a boot CD and the other was a CD-RW for games that required
    mass amounts of data to be store and to load huge games on the fly.
    The N64 is really short on memory so you maybe programming in assembly
    alot. LOL

    The reason for the drive interface is that I got sick and tired of
    plugging in the cartridge, so I plug the main cartridge in that was
    the drive interface card, besides the card could convert the files
    that I saved or loaded then convert between the N64 native setting
    and my dev. system. I would write the files on an IBM PC, with
    MIPS RISCompiler for the 4300/4400 core, save it to the CD and
    bring it to the system and load it in, then hit reset and it would
    start the game.

    I used the 8 and 16 Megabit RAM modules. Technically it said it
    could only handle 8 Megabit RAM modules. I added an extra chip
    in the cartridge to be mapped above the other one and act as a spare.
    They couldn't be accessed at the same time, it was either one aka
    Exclusive OR logic.

    Where in C++ are you? Are you still learning the streams
    as in with the cin and cout keywords? Learn to overload
    those keywords and operators safely? Work with virtual devices and
    objects as of yet?

    : Thanks, that should get me atleast some where, except that I can't seem to find the User's manual for the MIPS 4300 / 4400. I managed to find quite a few dead links though. Do you know of anywhere that I might be able to get it? And if you wouldn't mind helping out a little when I get stuck, then could you e-mail me or IM me some alterative way to get in touch with you other than Programmers Heaven's message board? I'm working on learning C++ right now, or trying to :-/. And just so you'll know, I'm working on editing one game in particular, so I might be able to get away with some of the stuff that you must know to create a new game, heh.
    :
    :
    : P.S. Sorry about responding so late, I saw the post on here Sunday but I've been too busy lately.
    :
    : Thanks,
    : Lythimus Glasteel
    :
    : e-mail - [email protected]
    : AIM - DarkRadiant
    :
    : : Sure... I did programming on many different game systems in Assembly,
    : : C/C++/D, and some other custom languages.
    : :
    : : Get this book if you don't have it already, User's / Programmer's manual
    : : for the MIPS R4000 / R4400 CPU. The MIPS R4300i combo embedded
    : : processor is based on the R4400 CPU microinstruction core for your
    : : information. Just trying to make it easier for you.
    : :
    : : The different between the 4400 and the 4300 is the 4300 has built-in
    : : ports that are meant to control peripherals internally without extra
    : : external logic to control it.
    : :
    : : What you need to do is study up on the assembly language of the R4400,
    : : learn C/C++ that has the MIPS 4400 definition for the assembly code
    : : use that as a skeleton for doing your coding. You need to know how
    : : the Nintendo 64 / Ultra 64 works first and how the CPUs work in general.
    : : When you hit reset on the machine when the Nintendo is turned on,
    : : it is not a hard reset, meaning it is not done via hardware, it is
    : : a soft reset, and done via a software routine, that is much safer
    : : for the system to do it that way. You need to know the memory
    : : mapping for the Nintendo in all modes. With the Jumper Pak installed,
    : : when you have a 4 to 16 Megabit RAM module installed and how it
    : : affects the timing / memory map and other considerations to the system.
    : : Learn how the SPU (sound processing unit works, etc). Basically,
    : : it can be a real mess if you try to tackle everything at once.
    : : Start by learning the 4400 insides, if you need help or resources,
    : : I can send you in the right direction. Don't feel overwhelmed and
    : : alone, even the pros hated programming this thing. Just ask the
    : : guys in Capcom when they created Resident Evil 2, oh boy that was
    : : a nightmare come true, programming the game that is.
    : :
    : : The next thing, learn what a code and data scheduler is, what it
    : : does, and how it operates, this will be a pinnacle in working with
    : : all game machines. You have to write one every damn time you create
    : : a new game, it's different for each game.
    : :
    : : : [b][red]This message was edited by Hamedo at 2003-7-25 19:43:50[/red][/b][hr]
    : : : Could anyone help me with MIPS programming? I have a genereal idea of how the processor works and all of the opcodes for it. I also have a disassembler and debugger and a homebrewed Nintendo 64 game. But I find it hard to connect all of these things, does anyone have any suggestions? I have no clue as to where to start. Right now I'm reading about the MIPS processor and understanding it's basic functionality, then I'm going to look at the disassembled home brewed demo and try to learn how all of the opcodes function, although I have a very rough draft of how the opcodes work, it doesn't help much. I'm not sure if I will be able to pick up everything without some outside assistance other than these documents. Again, does anyone have any suggestions?
    : : :
    : : :
    : : :
    : :
    : :
    : :
    : :
    :
    :

  • big_endianbig_endian Posts: 20Member
    I should clarify about the NDA and MIPS about direct 4300 information,
    that pertains to that of the Nintendo 64 system in which it is embedded.
    I will see if it is ok to release the information I have and know about
    the system, I think the statue of limitations have run out. So I
    should be able to talk about it, I will check to make sure.

    : Sure, I will give you some more help. You won't find any direct
    : documentation on the 4300i CPU unless you sign a Non-Disclosure
    : Agreement (NDA) with MIPS Technologies, Inc. (a subsidiary of SGI, Inc).
    : Since the 4300i and the 4400 are of the MIPS R4000 series, you will be
    : able to get this book:
    :
    : MIPS R4000 Microprocess User Manual
    : Including the R4400
    : By: Joseph Heinrich (Sometimes seen as Joe Heinrich)
    :
    : The ISBN is this, "ISBN 0-13=105925-4"
    : Prentice-Hall, Inc.
    : A Simon & Schuster Company
    : is the publishing company.
    :
    : I am looking up the information on the fly from my databases and
    : book library (thank god I have this all computerized to find things
    : in a second). I am working on getting some information for you
    : on the 4300i / 4400 instructions for you.
    :
    : The 4300i is also known as the VR4300, here is a new source of
    : information. I don't expect you to understand it right away it's a
    : little tough for newbies. This has all the CPU info of the 4300.
    : Grab all the files for download, save them, and print them if you
    : wish. This will help quite a bit. If you have never programmed
    : let me know let alone know what endian means. These chips can
    : do big or little endian mode and can cause problems when you are
    : starting your ROMs.
    :
    : http://www.necelam.com/microprocessors/uPD30200-100.cfm
    :
    : Some time ago, I created a drive interface for the N64 / Ultra 64,
    : one was a boot CD and the other was a CD-RW for games that required
    : mass amounts of data to be store and to load huge games on the fly.
    : The N64 is really short on memory so you maybe programming in assembly
    : alot. LOL
    :
    : The reason for the drive interface is that I got sick and tired of
    : plugging in the cartridge, so I plug the main cartridge in that was
    : the drive interface card, besides the card could convert the files
    : that I saved or loaded then convert between the N64 native setting
    : and my dev. system. I would write the files on an IBM PC, with
    : MIPS RISCompiler for the 4300/4400 core, save it to the CD and
    : bring it to the system and load it in, then hit reset and it would
    : start the game.
    :
    : I used the 8 and 16 Megabit RAM modules. Technically it said it
    : could only handle 8 Megabit RAM modules. I added an extra chip
    : in the cartridge to be mapped above the other one and act as a spare.
    : They couldn't be accessed at the same time, it was either one aka
    : Exclusive OR logic.
    :
    : Where in C++ are you? Are you still learning the streams
    : as in with the cin and cout keywords? Learn to overload
    : those keywords and operators safely? Work with virtual devices and
    : objects as of yet?
    :
    : : Thanks, that should get me atleast some where, except that I can't seem to find the User's manual for the MIPS 4300 / 4400. I managed to find quite a few dead links though. Do you know of anywhere that I might be able to get it? And if you wouldn't mind helping out a little when I get stuck, then could you e-mail me or IM me some alterative way to get in touch with you other than Programmers Heaven's message board? I'm working on learning C++ right now, or trying to :-/. And just so you'll know, I'm working on editing one game in particular, so I might be able to get away with some of the stuff that you must know to create a new game, heh.
    : :
    : :
    : : P.S. Sorry about responding so late, I saw the post on here Sunday but I've been too busy lately.
    : :
    : : Thanks,
    : : Lythimus Glasteel
    : :
    : : e-mail - [email protected]
    : : AIM - DarkRadiant
    : :
    : : : Sure... I did programming on many different game systems in Assembly,
    : : : C/C++/D, and some other custom languages.
    : : :
    : : : Get this book if you don't have it already, User's / Programmer's manual
    : : : for the MIPS R4000 / R4400 CPU. The MIPS R4300i combo embedded
    : : : processor is based on the R4400 CPU microinstruction core for your
    : : : information. Just trying to make it easier for you.
    : : :
    : : : The different between the 4400 and the 4300 is the 4300 has built-in
    : : : ports that are meant to control peripherals internally without extra
    : : : external logic to control it.
    : : :
    : : : What you need to do is study up on the assembly language of the R4400,
    : : : learn C/C++ that has the MIPS 4400 definition for the assembly code
    : : : use that as a skeleton for doing your coding. You need to know how
    : : : the Nintendo 64 / Ultra 64 works first and how the CPUs work in general.
    : : : When you hit reset on the machine when the Nintendo is turned on,
    : : : it is not a hard reset, meaning it is not done via hardware, it is
    : : : a soft reset, and done via a software routine, that is much safer
    : : : for the system to do it that way. You need to know the memory
    : : : mapping for the Nintendo in all modes. With the Jumper Pak installed,
    : : : when you have a 4 to 16 Megabit RAM module installed and how it
    : : : affects the timing / memory map and other considerations to the system.
    : : : Learn how the SPU (sound processing unit works, etc). Basically,
    : : : it can be a real mess if you try to tackle everything at once.
    : : : Start by learning the 4400 insides, if you need help or resources,
    : : : I can send you in the right direction. Don't feel overwhelmed and
    : : : alone, even the pros hated programming this thing. Just ask the
    : : : guys in Capcom when they created Resident Evil 2, oh boy that was
    : : : a nightmare come true, programming the game that is.
    : : :
    : : : The next thing, learn what a code and data scheduler is, what it
    : : : does, and how it operates, this will be a pinnacle in working with
    : : : all game machines. You have to write one every damn time you create
    : : : a new game, it's different for each game.
    : : :
    : : : : [b][red]This message was edited by Hamedo at 2003-7-25 19:43:50[/red][/b][hr]
    : : : : Could anyone help me with MIPS programming? I have a genereal idea of how the processor works and all of the opcodes for it. I also have a disassembler and debugger and a homebrewed Nintendo 64 game. But I find it hard to connect all of these things, does anyone have any suggestions? I have no clue as to where to start. Right now I'm reading about the MIPS processor and understanding it's basic functionality, then I'm going to look at the disassembled home brewed demo and try to learn how all of the opcodes function, although I have a very rough draft of how the opcodes work, it doesn't help much. I'm not sure if I will be able to pick up everything without some outside assistance other than these documents. Again, does anyone have any suggestions?
    : : : :
    : : : :
    : : : :
    : : :
    : : :
    : : :
    : : :
    : :
    : :
    :
    :



  • HamedoHamedo Posts: 11Member
    : Sure, I will give you some more help. You won't find any direct
    : documentation on the 4300i CPU unless you sign a Non-Disclosure
    : Agreement (NDA) with MIPS Technologies, Inc. (a subsidiary of SGI, Inc).
    : Since the 4300i and the 4400 are of the MIPS R4000 series, you will be
    : able to get this book:
    :
    : MIPS R4000 Microprocess User Manual
    : Including the R4400
    : By: Joseph Heinrich (Sometimes seen as Joe Heinrich)
    :
    : The ISBN is this, "ISBN 0-13=105925-4"
    : Prentice-Hall, Inc.
    : A Simon & Schuster Company
    : is the publishing company.
    :
    : I am looking up the information on the fly from my databases and
    : book library (thank god I have this all computerized to find things
    : in a second). I am working on getting some information for you
    : on the 4300i / 4400 instructions for you.
    :
    : The 4300i is also known as the VR4300, here is a new source of
    : information. I don't expect you to understand it right away it's a
    : little tough for newbies. This has all the CPU info of the 4300.
    : Grab all the files for download, save them, and print them if you
    : wish. This will help quite a bit. If you have never programmed
    : let me know let alone know what endian means. These chips can
    : do big or little endian mode and can cause problems when you are
    : starting your ROMs.

    I downloaded the files with no problem, although I have yet to really look them over, I plan to do so soon. I always seem to be busy... but that will probably change. Regardless, I have programmed before and don't find the concept very difficult, and I do enjoy it. So it shouldn't be that much of a problem. As for the endian thing, to my understanding, it's a type of format of the binary. And I do know that N64 can use either and I think that it can even switch between reading big and little endian in the rom depending on what is being written or read or whatever. Like 6 in decimal might be 0110 in little endian but it may be 1010 in big endian.

    : http://www.necelam.com/microprocessors/uPD30200-100.cfm
    :
    : Some time ago, I created a drive interface for the N64 / Ultra 64,
    : one was a boot CD and the other was a CD-RW for games that required
    : mass amounts of data to be store and to load huge games on the fly.
    : The N64 is really short on memory so you maybe programming in assembly
    : alot. LOL

    I understand that the Nintendo 64 is short on memory and I was considering upgrading the rom that I was going to edit to use the 8MB RAM expansion pack to help the processing a bit. Then again I'm not sure how much coding that would require, heh. I also considering allowing 64DD support, but to my knowledge the disk drive wasn't very popular and isn't emulated.
    As for the boot cd thing, I didn't even know there WAS a boot cd for N64, and the CD-RW thing sounds pretty useful. Maybe you could set me up one of those ; ), lol, j/k.

    : The reason for the drive interface is that I got sick and tired of
    : plugging in the cartridge, so I plug the main cartridge in that was
    : the drive interface card, besides the card could convert the files
    : that I saved or loaded then convert between the N64 native setting
    : and my dev. system. I would write the files on an IBM PC, with
    : MIPS RISCompiler for the 4300/4400 core, save it to the CD and
    : bring it to the system and load it in, then hit reset and it would
    : start the game.
    :
    : I used the 8 and 16 Megabit RAM modules. Technically it said it
    : could only handle 8 Megabit RAM modules. I added an extra chip
    : in the cartridge to be mapped above the other one and act as a spare.
    : They couldn't be accessed at the same time, it was either one aka
    : Exclusive OR logic.

    I like to tweak things, but I've never been much of a hardware person : ).

    : Where in C++ are you? Are you still learning the streams
    : as in with the cin and cout keywords? Learn to overload
    : those keywords and operators safely? Work with virtual devices and
    : objects as of yet?

    Hmmm... C++. Well, I know all of the easy stuff like cin and cout. I know about logical operators and a little about bitwise operators. I understand functions quite well and have overloading functions down. Overloading operators slips by me a little. I've tried to develop a saving system for a program that I was making and me and fstreams went at it, lol. I know some of the system functions and stuff and also how to edit some of the text and display options. Loops and all of that stuff is easy. Pointers are kind of confusing. References are a little to considering that the three of four different uses of the ambersand gets me a little out of it some times. Like the address of or the reference too or whatever. Classes are prety simple. I've probably forgotten to mention a few things, but oh well. I basically just don't quite understand how I get from where I am to learning more functions and that type of thing in order to expand my programming capabilities. A lot of the tutorials don't make sense, especially whenever they start using underscores and defines and stuff that I've never heard of. And on a side note DirectX and SNK stuff blows my mind.

    Thanks again,
    Lythimus Glasteel
  • HamedoHamedo Posts: 11Member
    Just want to see if you're still around ^^.

    : I should clarify about the NDA and MIPS about direct 4300 information,
    : that pertains to that of the Nintendo 64 system in which it is embedded.
    : I will see if it is ok to release the information I have and know about
    : the system, I think the statue of limitations have run out. So I
    : should be able to talk about it, I will check to make sure.
    :
    : : Sure, I will give you some more help. You won't find any direct
    : : documentation on the 4300i CPU unless you sign a Non-Disclosure
    : : Agreement (NDA) with MIPS Technologies, Inc. (a subsidiary of SGI, Inc).
    : : Since the 4300i and the 4400 are of the MIPS R4000 series, you will be
    : : able to get this book:
    : :
    : : MIPS R4000 Microprocess User Manual
    : : Including the R4400
    : : By: Joseph Heinrich (Sometimes seen as Joe Heinrich)
    : :
    : : The ISBN is this, "ISBN 0-13=105925-4"
    : : Prentice-Hall, Inc.
    : : A Simon & Schuster Company
    : : is the publishing company.
    : :
    : : I am looking up the information on the fly from my databases and
    : : book library (thank god I have this all computerized to find things
    : : in a second). I am working on getting some information for you
    : : on the 4300i / 4400 instructions for you.
    : :
    : : The 4300i is also known as the VR4300, here is a new source of
    : : information. I don't expect you to understand it right away it's a
    : : little tough for newbies. This has all the CPU info of the 4300.
    : : Grab all the files for download, save them, and print them if you
    : : wish. This will help quite a bit. If you have never programmed
    : : let me know let alone know what endian means. These chips can
    : : do big or little endian mode and can cause problems when you are
    : : starting your ROMs.
    : :
    : : http://www.necelam.com/microprocessors/uPD30200-100.cfm
    : :
    : : Some time ago, I created a drive interface for the N64 / Ultra 64,
    : : one was a boot CD and the other was a CD-RW for games that required
    : : mass amounts of data to be store and to load huge games on the fly.
    : : The N64 is really short on memory so you maybe programming in assembly
    : : alot. LOL
    : :
    : : The reason for the drive interface is that I got sick and tired of
    : : plugging in the cartridge, so I plug the main cartridge in that was
    : : the drive interface card, besides the card could convert the files
    : : that I saved or loaded then convert between the N64 native setting
    : : and my dev. system. I would write the files on an IBM PC, with
    : : MIPS RISCompiler for the 4300/4400 core, save it to the CD and
    : : bring it to the system and load it in, then hit reset and it would
    : : start the game.
    : :
    : : I used the 8 and 16 Megabit RAM modules. Technically it said it
    : : could only handle 8 Megabit RAM modules. I added an extra chip
    : : in the cartridge to be mapped above the other one and act as a spare.
    : : They couldn't be accessed at the same time, it was either one aka
    : : Exclusive OR logic.
    : :
    : : Where in C++ are you? Are you still learning the streams
    : : as in with the cin and cout keywords? Learn to overload
    : : those keywords and operators safely? Work with virtual devices and
    : : objects as of yet?
    : :
    : : : Thanks, that should get me atleast some where, except that I can't seem to find the User's manual for the MIPS 4300 / 4400. I managed to find quite a few dead links though. Do you know of anywhere that I might be able to get it? And if you wouldn't mind helping out a little when I get stuck, then could you e-mail me or IM me some alterative way to get in touch with you other than Programmers Heaven's message board? I'm working on learning C++ right now, or trying to :-/. And just so you'll know, I'm working on editing one game in particular, so I might be able to get away with some of the stuff that you must know to create a new game, heh.
    : : :
    : : :
    : : : P.S. Sorry about responding so late, I saw the post on here Sunday but I've been too busy lately.
    : : :
    : : : Thanks,
    : : : Lythimus Glasteel
    : : :
    : : : e-mail - [email protected]
    : : : AIM - DarkRadiant
    : : :
    : : : : Sure... I did programming on many different game systems in Assembly,
    : : : : C/C++/D, and some other custom languages.
    : : : :
    : : : : Get this book if you don't have it already, User's / Programmer's manual
    : : : : for the MIPS R4000 / R4400 CPU. The MIPS R4300i combo embedded
    : : : : processor is based on the R4400 CPU microinstruction core for your
    : : : : information. Just trying to make it easier for you.
    : : : :
    : : : : The different between the 4400 and the 4300 is the 4300 has built-in
    : : : : ports that are meant to control peripherals internally without extra
    : : : : external logic to control it.
    : : : :
    : : : : What you need to do is study up on the assembly language of the R4400,
    : : : : learn C/C++ that has the MIPS 4400 definition for the assembly code
    : : : : use that as a skeleton for doing your coding. You need to know how
    : : : : the Nintendo 64 / Ultra 64 works first and how the CPUs work in general.
    : : : : When you hit reset on the machine when the Nintendo is turned on,
    : : : : it is not a hard reset, meaning it is not done via hardware, it is
    : : : : a soft reset, and done via a software routine, that is much safer
    : : : : for the system to do it that way. You need to know the memory
    : : : : mapping for the Nintendo in all modes. With the Jumper Pak installed,
    : : : : when you have a 4 to 16 Megabit RAM module installed and how it
    : : : : affects the timing / memory map and other considerations to the system.
    : : : : Learn how the SPU (sound processing unit works, etc). Basically,
    : : : : it can be a real mess if you try to tackle everything at once.
    : : : : Start by learning the 4400 insides, if you need help or resources,
    : : : : I can send you in the right direction. Don't feel overwhelmed and
    : : : : alone, even the pros hated programming this thing. Just ask the
    : : : : guys in Capcom when they created Resident Evil 2, oh boy that was
    : : : : a nightmare come true, programming the game that is.
    : : : :
    : : : : The next thing, learn what a code and data scheduler is, what it
    : : : : does, and how it operates, this will be a pinnacle in working with
    : : : : all game machines. You have to write one every damn time you create
    : : : : a new game, it's different for each game.
    : : : :
    : : : : : [b][red]This message was edited by Hamedo at 2003-7-25 19:43:50[/red][/b][hr]
    : : : : : Could anyone help me with MIPS programming? I have a genereal idea of how the processor works and all of the opcodes for it. I also have a disassembler and debugger and a homebrewed Nintendo 64 game. But I find it hard to connect all of these things, does anyone have any suggestions? I have no clue as to where to start. Right now I'm reading about the MIPS processor and understanding it's basic functionality, then I'm going to look at the disassembled home brewed demo and try to learn how all of the opcodes function, although I have a very rough draft of how the opcodes work, it doesn't help much. I'm not sure if I will be able to pick up everything without some outside assistance other than these documents. Again, does anyone have any suggestions?
    : : : : :
    : : : : :
    : : : : :
    : : : :
    : : : :
    : : : :
    : : : :
    : : :
    : : :
    : :
    : :
    :
    :
    :
    :

Sign In or Register to comment.