Welcome Guest [Log In] [Register]

Announcements

Welcome to Zelda64.net. Announcements can be found below!

6.26.2018  Make sure you keep your passwords safe. If you use the same password on here as on other sites, it is highly recommended that you change it. If you can't change your password, and want it changed, let me or other active staff know, and we can force a reset or change it for you. ~PwnzLPs
Welcome to Zelda64. We hope you enjoy your visit.


You're currently viewing our forum as a guest. This means you are limited to certain areas of the board and there are some features you can't use. If you join our community, you'll be able to access member-only sections, and use many member-only features such as customizing your profile, sending personal messages, and voting in polls. Registration is simple, fast, and completely free. A valid email address is required. Your email address will NOT be sold as it is only needed to prevent spammers (and admittedly, some still get around this, but this makes it a bit more difficult, plus, if the moderators need to contact you, we have an email on file to do so). Thanks for considering us!


Join our community!


If you're already a member please log in to your account to access all of our features:

Username:   Password:
Add Reply
  • Pages:
  • 1
N64 homebrewing!
Topic Started: Feb 26 2016, 03:50 PM (2,189 Views)
Ideka
Member Avatar

Posted Image

So, this is what I've spent my day on. I've wanted to look into N64 homebrewing for quite some time, and I figured I could start with a simple "Hello World" application (as you can see though, I only bothered to make it draw the "Hello"). This program is extremely unoptimized, useless and unimpressive, but I just wanted to see what I could accomplish with the little knowledge I had. I coded it in MIPS assembly, and manually "drew" the frame buffer in a hex editor (I could have coded an algorithm to draw it, which would save lots of space, but unfortunately I was too lazy). The way it works is simply that it initializes the Video Interface registers, including a pointer to the frame buffer (what's drawn on the screen). I'll include the source and info on the ROM in the download, which could serve as references for those interested in attempting their own, simple "homebrews". Thanks for reading, and if you got any questions, feel free to ask! Next I'm planning to look into controller input or something, so stay tuned for that I guess.

If you have/have had any projects related to custom games/applications running on the N64, please share them with us here!
Attached to this post:
Attachments: TESTING64.rar (3.9 KB)
Edited by Ideka, Feb 29 2016, 08:45 AM.
Offline Profile Quote Post Goto Top
 
mib_f8sm9c
Member Avatar

Haha, is that saying that the fps is over 380? Blazingly fast : P

That's really interesting. I'm curious to see what you'll do next.
Offline Profile Quote Post Goto Top
 
Ideka
Member Avatar

Thanks. There's incredibly little info out there about developing on the N64, I can't for the life of me understand how some people have figured out how to draw 3D models in their own engines. If I'd code a game with the knowledge I currently have, it'd at best come out as an Atari 2600 game... Actually, porting a classic Atari game to the N64 could be an interesting project, right? Maybe E.T.? :P
Edited by Ideka, Feb 27 2016, 07:04 AM.
Offline Profile Quote Post Goto Top
 
Flash

I try programming with lidragon but i can“t install libraries
Offline Profile Quote Post Goto Top
 
Ideka
Member Avatar

Currently, I'm far from a capable programmer with high-level languages. I've programmed some shitty command prompt applications in C, but that's about it. I can't really understand what "headers" and "libraries" actually are, and I hate how little control you have over the actual binary output when coding in most high-level languages. Therefore I coded this application in pure MIPS assembly, which gives me total control over the output when assembled, as opposed to compilers. If I really want to get somewhere with this though, I guess that I'll have to get around to learning C and understanding it better.

Also, thanks to great hardware documentation by LaC, I've kinda figured out how to read the controller input. Now I just need to figure out how to make it output values when a button is pressed, and I'll be able to write some simple application testing it out.
Offline Profile Quote Post Goto Top
 
soulofdeity

If you use a 32 bit version of Windows (or run one in virtualbox) you can use the official n64 SDK. There are plenty of examples and a ton of documentation
Offline Profile Quote Post Goto Top
 
AriaHiro
Member Avatar
A mentally drained friend
using official sdks without a license is illegal, though nintendo probably doesn't care at this point. It may fall into the realm of abandonware but I never said I was a lawyer. there is an unofficial linux sdk with pre made virtual machines available but only actual hardware mess and cen64 are compatible with it. In the end its your decision on how you want to approach it.
Edited by AriaHiro, Feb 29 2016, 07:47 PM.
Offline Profile Quote Post Goto Top
 
soulofdeity

If you want to do anything interesting, you're gonna need to at least start with the official SDK. A major reason that there are so few homebrew games is that so few people know how to get the official SDK up and running. (You can build a cross-gcc no problem. The issue lies in creating a valid makerom and dealing with the lack of virtual memory, which was done officially by using a tool with spec files describing "waves" of overlays.

Also, iirc, most n64 homebrew is wrriten in assembly using libdragon (due to the lack of virtual memory, creating and linking flat binaries, especially dealing with relocations, is a goddamn nightmare using GCC without specialized tools.)
Edited by soulofdeity, Feb 29 2016, 11:41 PM.
Offline Profile Quote Post Goto Top
 
Ideka
Member Avatar

Hmm... Thanks for the info, I'll definitely check it out. I've heard that the official SDK is a pain in the ass to work it, and all the downloads I've seen so far seem to be incomplete in various ways. I'll just keep looking I guess. Also, I've heard that libdragon has some major disadvantages, like only being able to produce 2D sprite games or something? Not sure if that's true, I'll have to look into that as well.
Edited by Ideka, Mar 1 2016, 05:26 AM.
Offline Profile Quote Post Goto Top
 
soulofdeity

I have a complete version of the SDK on my mediafire. You just have to navigate to the directory in the command prompt and run "setupGCC.bat"

The documentation is in the "man" directory in the form of HTML. One or two demos don't build properly, and two or three use things like direct framebuffer access which only works on real hardware.

One of the goals of the engine I'm working on is to get it running on the N64 while making it scalable to more powerful platforms like GC (waiting for my SD homebrew loader in the mail).

Here's the download link for the SDK:
http://www.mediafire.com/?rpavmaxwczwz7e2
Edited by soulofdeity, Mar 1 2016, 08:22 AM.
Offline Profile Quote Post Goto Top
 
1 user reading this topic (1 Guest and 0 Anonymous)
DealsFor.me - The best sales, coupons, and discounts for you
Go to Next Page
« Previous Topic · General Game Modding · Next Topic »
Add Reply
  • Pages:
  • 1