Main Page: Difference between revisions

libdragon has 3D support now
m (Adding a “memory allocation” page)
(libdragon has 3D support now)
 
(20 intermediate revisions by 2 users not shown)
Line 1:
{{DISPLAYTITLE:<span style="position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);">{{FULLPAGENAME}}</span>}}__NOTOC__
{| cellpadding="2px" cellspacing="4px" style="width: 100%; margin: 1em 0; table-layout: fixed; font-size: 100%;"
__NOTOC__
|- style="background: #CEE0F2;"
{{Colored box
! Welcome to the N64brew Wiki!
|background-title-color= #FAFAAA
|- style="background: #F5FAFF;"
|title= Welcome to the {{SITENAME}}!
| {{Center|This wiki is a collaboration among the homebrew community, proving accurate documentation of the Nintendo 64, its peripherals, and related software.<br>
|content=
'''Everyone is [[Help:Editing|welcome to contribute]]!'''<br>
{{Center|This wiki is a collaboration among the homebrew community, proving accurate documentation of the Nintendo 64, its peripherals, and related software.<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]].}}
'''Everyone is [[Help:Editing|welcome to contribute]]!'''}}
}|}
 
{| cellpadding="2px" cellspacing="4px" style="width: 100%; margin: 1em 0; table-layout: fixed; font-size: 93%;"
{{ContentGrid
|- style="background: #CEE0F2;"
|content=
! style="width: 53%; font-size: 102.15%;" | '''Hardware'''
<!--
! style="font-size: 102.15%;" | '''Software'''
nowiki markers are added so the first bullet in the list are rendered correctly!
|- style="vertical-align: top;"
please don't remove those markers, thank you
|
-->
{| cellpadding="2px" cellspacing="2px" style="width: 100%; table-layout: fixed;"
 
|- style="background: #E0ECF7;"
{{Colored box
! style="font-size: 102.15%;" | Physical Components
|background-title-color= #BBFFBB
! style="font-size: 102.15%;" | I/O Interfaces
|title= [[Motherboard|Hardware]]
|- style="background: #F5FAFF; vertical-align: top;"
|content=
|
<nowiki></nowiki>
====* [[MIPS R4300VR4300|MainVR4300 CPU MIPS R4300]]====
** [[COP1|FPU - CP1]]
A MIPS R4300 64-bit Processor with a Floating Point Co-Processor
** [[SysAD Interface]]
 
====* [[:Category:Reality CoProcessorCoprocessor|Reality CoProcessorCoprocessor - RCP]]====
The RCP contains the** [[Reality Signal Processor|RSP - Reality Signal Processor]] which is a MIPS R4000-type 32-bit Processor with an SIMD Co-Processor and the [[Reality Display Processor|RDP - Reality Display ProcessorRSP]] a dedicated hardware drawing processor.
** [[Reality Display Processor|Reality Display Processor - RDP]]
 
* [[RDRAM]]
====[[Peripheral Interface|PIF - Peripheral Interface]]====
*: Rambus DRAM shared by the console
Acts as both a BIOS and authentication validator for the console also manages the reset button and interacts with the 4 controller ports using the [[Joybus Protocol]]
* [[PIF-NUS]]
 
*: A 4-bit microcomputer used to communicate with the controllers and EEPROM
====[[Audio Interface]] and [[Video Interface]]====
* [[Audio DAC]]
Responsible for converting digital signals from the RCP to digital audio and video to be sent to the TV.
* [[Video DAC]]
 
|
 
* [[Memory map]]
{{Colored box
* [[MIPS Interface|MI - MIPS Interface]]
|background-title-color= #CCCCCC
* [[Video Interface|VI - Video Interface]]
|title= [[:Category:Accessories|Accessories]]
* [[Audio Interface|AI - Audio Interface]]
|content=
* [[Peripheral Interface|PI - Peripheral Interface]]
<nowiki></nowiki>
* [[RDRAM Interface|RI - RDRAM Interface]]
* [[Controller]]
* [[Serial Interface|SI - Serial Interface]]
* [[64DD]]
** [[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]]
===[[:Category:Paks|Paks]]===
* [[Fishing Rod]]
* [[Game Pak|Game Pak (Cartridge)]]
|
* [[Jumper Pak]]
* [[ExpansionGame Pak]] (Cartridge)
* [[Controller Pak]] (Memory Pak)
* [[Rumble Pak]]
* [[Transfer Pak]]
* [[Expansion Pak]]
===[[:Category:Flash_Carts|Flash Carts]]===
* [[Jumper Pak]]
<nowiki></nowiki>
|
}}
* [[64DD]] (64 Disk Drive)
* [[Non-Booting Troubleshooting]]
* [[Doctor V64]]
}}
* [[Homebrew Projects#Hardware|Flashcarts]]
{{Colored box
|}
|background-title-color= #FFCCCC
|title= [[:Category:Software Development Kits|Software]]
|content=
<nowiki></nowiki>
 
|
==== [[pseultra]] ====
{| cellpadding="2px" cellspacing="2px" style="width: 100%; table-layout: fixed;"
A homebrew N64 SDK. Still a work-in-progress but very feature-rich already.
|- style="background: #E0ECF7;"
 
! style="font-size: 102.15%;" | Programming Tools / SDK's
* BSD 3 Clause License
! style="font-size: 102.15%;" | Game Development
* 2D and 3D Graphics
|- style="background: #F5FAFF; vertical-align: top;"
* No Audio
|
* Controllers
* [[Libdragon|libdragon]]
 
*: Homebrew SDK, Public Domain, 2D & 3D, Audio and Controller support, OpenGL 1.1 (unstable)
====[[libdragon]]====
* [[Pseultra|pseultra]]
A homebrew N64 SDK for developing N64 games.
*: Homebrew SDK, BSD 3 Clause License, 2D & 3D, Controller support but no audio
 
* [[Libultra|libultra]]
* Public Domain
*: Nintendo's Official SDK, Partial source available
* 2D Graphics only
* [[iQue SDK]]
* Audio
*: Development library for the iQue Player
* Controllers
 
====[[libultra]]====
Nintendo's official SDK library.
* Partial Source-Available
* [[SGI Audio Tools]]
* [[N64 IRIX|SGI Workstations using IRIX]]
 
* [[Partner N64]]
====Programming Topics====
|
* [[:Category:Game Jams|Game Jams]]
*: List of homebrew game development events
* [[Development Troubleshooting]]
* [[Memory Allocation]]
* [[MIPS III instructions|Instruction Cheatsheet]]
 
*: Includes CPU and FPU instructions and opcodes
====[[Development Troubleshooting]]====
* [[Building GCC]]
Tips for troubleshooting errors during homebrew game development.
*: Guide to build a GCC cross-compiler for N64 development
 
* [[MIPS Assembly]]
 
*: Notes about MIPS assembly programming
 
|}
{{Colored box
|}
|background-title-color= #FFD700
|title= [[:Category:Compilers|Compilers]]
|content=
<nowiki></nowiki>
==== [[N64 IRIX]] SDK ====
Only for use on SGI workstations running IRIX 5.3 or higher with an R4K or higher processor
 
==== [[Partner-N64 SDK]] ====
These tools are mostly 16-bit and will require a Windows OS of Win95, Win98, Win2K, WinXP
 
==== Nintendo [[iQue Linux 32-bit]] Compiler and Tools ====
If you are running a version of Linux that can support these programs this is probably the best solution
 
==== n64chain [[N64 Windows/Linux 64-bit]] Compiler and Tools ====
This is the most modern compiler and tools, but some parts of the ROM build process are not well supported
 
==== [[Building GCC]] ====
You can build your own GCC cross-compiler for Nintendo 64 development.
}}
 
{{Colored box
|background-title-color= #ADD8E6
|title= [[:Category:Games| Games]]
|content=
<nowiki></nowiki>
====[[:Category:Game Jams|Game Jams]]====
List of coding jams aimed toward developing games for the console.
 
==== [[:Category:Emulation Development Special Cases|Emulation Development Special Cases]] ====
 
When developing an emulator, it's helpful to know what game to start with and which ones require additional effort to emulate accurately.
 
 
==== [[:Category:Game Technique Examples|Game Technique Examples]] ====
Sometimes for inspiration or during game development it helps to see examples of the techniques that you want to use. Or to just see what's possible on the N64.
 
}}
 
}}
 
}}