Main Page: Difference between revisions

From N64brew Wiki
Jump to navigation Jump to search
Content added Content deleted
(libdragon has 3D support now)
 
(64 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{DISPLAYTITLE:<span style="position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);">{{FULLPAGENAME}}</span>}}__NOTOC__
__NOTOC__
{| cellpadding="2px" cellspacing="4px" style="width: 100%; margin: 1em 0; table-layout: fixed; font-size: 100%;"
== Welcome to {{SITENAME}} Homebrew Documentation! ==
|- style="background: #CEE0F2;"
N64 Homebrew Game development is improving and this documentation is a key part of that.
! Welcome to the N64brew Wiki!
|- style="background: #F5FAFF;"
| {{Center|This wiki is a collaboration among the homebrew community, proving accurate documentation of the Nintendo 64, its peripherals, and related software.<br>
'''Everyone is [[Help:Editing|welcome to contribute]]!'''<br>
Find us on [https://discord.gg/WqFgNWf Discord], and be sure to check out [[Homebrew Projects|homebrew, hardware, and more]] from community members.<br>Also take a look at the [[FAQ|Frequently Asked Questions]].}}
|}


{| cellpadding="2px" cellspacing="4px" style="width: 100%; margin: 1em 0; table-layout: fixed; font-size: 93%;"
== Introduction ==
|- style="background: #CEE0F2;"
All of the individual parts are described in detail below and on their linked pages, but first let's describe what we can expect.
! style="width: 53%; font-size: 102.15%;" | '''Hardware'''
! style="font-size: 102.15%;" | '''Software'''
|- style="vertical-align: top;"
|
{| cellpadding="2px" cellspacing="2px" style="width: 100%; table-layout: fixed;"
|- style="background: #E0ECF7;"
! style="font-size: 102.15%;" | Physical Components
! style="font-size: 102.15%;" | I/O Interfaces
|- style="background: #F5FAFF; vertical-align: top;"
|
* [[VR4300|VR4300 CPU]]
** [[COP1|FPU - CP1]]
** [[SysAD Interface]]
* [[Reality Coprocessor|Reality Coprocessor - RCP]]
** [[Reality Signal Processor|Reality Signal Processor - RSP]]
** [[Reality Display Processor|Reality Display Processor - RDP]]
* [[RDRAM]]
*: Rambus DRAM shared by the console
* [[PIF-NUS]]
*: A 4-bit microcomputer used to communicate with the controllers and EEPROM
* [[Audio DAC]]
* [[Video DAC]]
|
* [[Memory map]]
* [[MIPS Interface|MI - MIPS Interface]]
* [[Video Interface|VI - Video Interface]]
* [[Audio Interface|AI - Audio Interface]]
* [[Peripheral Interface|PI - Peripheral Interface]]
* [[RDRAM Interface|RI - RDRAM Interface]]
* [[Serial Interface|SI - Serial Interface]]
** [[Joybus Protocol]]
**: Communication protocol between the PIF, game cartridge, and connected controllers
|}
{| cellpadding="2px" cellspacing="2px" style="width: 100%; margin: 1em 0; margin-top: 0px; table-layout: fixed;"
|- style="background: #E0ECF7;"
! style="width: 38%; font-size: 102.15%;" | Controllers
! style="font-size: 102.15%;" | Paks
! style="font-size: 102.15%;" | Addons / Miscellaneous
|- style="background: #F5FAFF; vertical-align: top;"
|
* [[Controller|Tri-Wing Controller]]
* [[Train Controller]]
*: Used exclusively for Densha de Go
* [[Mouse]]
* [[Randnet Keyboard]]
* [[Voice Recognition Unit]]
* [[Dance Pad]]
* [[Fishing Rod]]
|
* [[Game Pak]] (Cartridge)
* [[Controller Pak]] (Memory Pak)
* [[Rumble Pak]]
* [[Transfer Pak]]
* [[Expansion Pak]]
* [[Jumper Pak]]
|
* [[64DD]] (64 Disk Drive)
* [[Doctor V64]]
* [[Homebrew Projects#Hardware|Flashcarts]]
|}


|
This is a great console if you want to do a 3D game with some constraints to challenge yourself.
{| cellpadding="2px" cellspacing="2px" style="width: 100%; table-layout: fixed;"

|- style="background: #E0ECF7;"
* The main CPU runs at 93 MHz (not GHz)
! style="font-size: 102.15%;" | Programming Tools / SDK's
* The graphic processor (RSP) runs at 62 MHz
! style="font-size: 102.15%;" | Game Development
* The system has 4-8 MB of RAM
|- style="background: #F5FAFF; vertical-align: top;"
* The maximum commercial game cartridge is 64 MB
|

* [[Libdragon|libdragon]]
== Hardware ==
*: Homebrew SDK, Public Domain, 2D & 3D, Audio and Controller support, OpenGL 1.1 (unstable)

* [[Pseultra|pseultra]]
==== Main CPU MIPS R4300 ====
*: Homebrew SDK, BSD 3 Clause License, 2D & 3D, Controller support but no audio
Is a MIPS R4300 64-bit Processor with a Floating Point Co-Processor
* [[Libultra|libultra]]

*: Nintendo's Official SDK, Partial source available
==== RSP - Reality Signal Processor ====
* [[iQue SDK]]
Is a MIPS R4000 32-bit Processor with an SIMD (Single Instruction Multiple Data) Co-Processor
*: Development library for the iQue Player

* [[SGI Audio Tools]]
==== RDP - Reality Display Processor ====
* [[N64 IRIX|SGI Workstations using IRIX]]
Is a dedicated hardware drawing process with a hard coded command set
* [[Partner N64]]

|
==== Video Interface ====
* [[:Category:Game Jams|Game Jams]]
Is the configuration of resolution and color depth and a few effects that are applied to the image before being displayed.
*: List of homebrew game development events

* [[Development Troubleshooting]]
==== Audio Interface ====
* [[Memory Allocation]]
This configures the Audio DAC (Digital Analog Converter)
* [[MIPS III instructions|Instruction Cheatsheet]]

*: Includes CPU and FPU instructions and opcodes
==== Peripheral/Cartridge Interface ====
* [[Building GCC]]
This is the memory area to read data/code from the cartridge
*: Guide to build a GCC cross-compiler for N64 development

* [[MIPS Assembly]]
==== Serial Interface ====
*: Notes about MIPS assembly programming
This is how the console interacts with the 4 controller ports and EEPROM save type.
|}

|}
==== Boot Process ====

===== PIF =====

== SDKs ==
[[pseultra]] - an open-source alternative to the official N64 SDK. Still a work-in-progress but very feature-rich already; the only important feature that is missing (at this time of writing) is audio output.

== Software ==

=== Game Development Libraries ===

=== Compilers ===

=== Build Tools ===

== For assistance with editing this Wiki - Hosted by Miraheze ==
Need help? No problem! We will help you with your wiki as needed. To make a start we have added a few links about working with MediaWiki:

* <span class="plainlinks">[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents MediaWiki guide (e.g. navigation, editing, deleting pages, blocking users)]</span>
* <span class="plainlinks">[https://meta.miraheze.org/wiki/FAQ Miraheze FAQ]</span>
*<span class="plainlinks">[https://meta.miraheze.org/wiki/Request_features Request settings changes on your wiki. (Extensions and Logo/Favicon changes should be done through Special:ManageWiki on your wiki].</span>

=== Additional Support ===

* <span class="plainlinks">[https://meta.miraheze.org/wiki/Help_center On our own Miraheze wiki]</span>
* On IRC in #miraheze on irc.freenode.net ([irc://irc.freenode.net/#miraheze direct link]; [http://webchat.freenode.net?channels=%23miraheze webchat])

Latest revision as of 19:36, 25 October 2023

Welcome to the N64brew Wiki!
This wiki is a collaboration among the homebrew community, proving accurate documentation of the Nintendo 64, its peripherals, and related software.

Everyone is welcome to contribute!

Find us on Discord, and be sure to check out homebrew, hardware, and more from community members.
Also take a look at the Frequently Asked Questions.
Hardware Software
Physical Components I/O Interfaces
Controllers Paks Addons / Miscellaneous
Programming Tools / SDK's Game Development