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
  • 2
N64 homebrewing!
Topic Started: Feb 26 2016, 03:50 PM (2,188 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
 
Replies:
Ideka
Member Avatar

Wow, thanks a lot SoD! This is pretty much exactly what I've been searching for, can't wait to look into it and see what I find. I'm also planning to get myself an N64 flashcart, but not sure if I should go for the 64Drive or the ED64. Anybody know which one is the best for developing?
Offline Profile Quote Post Goto Top
 
soulofdeity

I use an Everdrive64 (v2) myself. Works rather well, but you have to press the reset button before you shut off the console or you'll lose your save data.
Offline Profile Quote Post Goto Top
 
Ideka
Member Avatar

Since I'm running a 64-bit version of Windows, I dug up my old 2006 Windows XP PC to use the development kit with. Managed to compile several sample programs, haven't tested all of them yet though. Thanks again for the help SoD! Now I "only" need to learn C better and how N64 programming works in general, and I'll hopefully be able to write some programs for the console. Also, that sounds like an interesting project. Be sure to keep us updated!
Offline Profile Quote Post Goto Top
 
soulofdeity

np. my project will take quite a while though. I'm developing a new programming language for it with the goal of bringing the maleability of a high level scripting language with dynamic objects like lua and javascript to a low level language like C. Part of the things on my to-do list include establishing a unique messaging system; eg. Having objects that can 'broadcast' (async unbuffered signalling), 'queue' (async buffered signalling; think JavaScript callbacks), call (sync buffered wait until 'hang-up') and 'interrupt' (demand that an object stop everything it's doing right now). These different ways of passing messages would all for a natural implementation of concurrency; and would be perfect for modelling hardware, networks, or dynamic scene.
Offline Profile Quote Post Goto Top
 
1 user reading this topic (1 Guest and 0 Anonymous)
« Previous Topic · General Game Modding · Next Topic »
Add Reply
  • Pages:
  • 1
  • 2