Go Back   the Magicball Network > Forums > LBA Modifications > LBA Modifications - General
Buy LBA1/Relentless from GOG.com Buy LBA1/Relentless from DotEmu Buy LBA2/Twinsen's Odyssey from DotEmu Buy LBA2/Twinsen's Odyssey from GOG.com Buy Little big Adventure from GOG.com or DotEmu Buy Little big Adventure 2 from DotEmu or GOG.com

Welcome to the Magicball Network.

You are currently viewing our site as a guest which gives you limited access to view most discussions and access our other features. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is fast, simple and absolutely free so please, join our community today!

If you have any problems with the registration process or your account login, please contact contact us.

Reply
 
Thread Tools
  #1  
Old 2016-11-07, 19:24
MrQuetch's Avatar
MrQuetch MrQuetch is offline
Quetching a Mr.
 
Join Date: Apr 2011
Location: United States
Posts: 708
Post N64 "Libdragon" Toolchain

Just a quick off-topic statement: For those who don't know, I'm preparing for a mission soon, and should be leaving in mid-January of next year. If things go through and I don't have a nervous breakdown or anxiety attack during my mission, I should be back around February of 2019. The worst case scenario is that I return home early.

Anyways, in the meantime, I've figured I better start getting some things done, i.e. make good use of my time. One of the things I've always wanted to do is to try programming for the Nintendo 64. At first, the entire idea just seemed so unreal. I've had experiences with several different languages in the past, and it's given me a good understanding of how a computer works. But let's face the reality - every single language is different. Of course, a lot of those languages use similar semantics, functions, variables, constants, etc. But, sometimes too much of one thing causes someone to lose or forget the other things necessary.

Although I don't know a lot of C, I've figured within the past couple of weeks to start learning it more in depth. For those who know about the AITD hexing that I posted, I started using C to try to write a program for editing AITD files. As I've looked into the code that Xesf has made for looking at AITD files, I've decided I just need to take a step back, and try to take things one step at a time. This way ( as well as in general ) I'll have a better understanding of how programs can be made to manipulate any computer file.

Anyways, using a toolchain written by Shaun Taylor called, "libdragon" on an Ubuntu OS, I've been able to compile C code making a rom file and run it in a MESS emulator via a N64 virtual cartridge slot. Just to show that I've gotten part of the toolchain working, I posted an image below.



So far, I've learned to draw text at different positions, different colors, as well as background color. I've also learned how to input images into the rom file, and many other things. I'll admit - it's a lot of work, and although I don't know everything related to computer programming, knowing some is better than none.

Isn't that just the coolest? If it weren't for this toolchain, it'd be much harder to start writing code for the system. I've learned a lot about not only programming, but the system as well, and am looking forward for my, "Everdrive64" cartridge coming mid-November. It could come on the 10th, but I don't know if that's the case or not. The latest date is the 30th. With this cart, I'll be able to run my code on actual hardware, and will be able to have no fear of emulation glitches.

Right now, I'm currently trying to get audio to work. For some reason, controls haven't been able to work, and after spending several hours on this situation, have just decided that it's better to try out the controls when the cart gets here. I may try other emulators to see if the controls actually start working. My PC recognizes my controller is plugged in, and the emulator seems to be using the controller, but pressing buttons in the actual rom file does nothing.

If you guys are interested in more of this stuff, you could check out marshallgs, savestate, and sanni on YouTube. Marshallgs definitely knows what he's doing, and he has some of the best N64 demos I've ever seen.
__________________
I am a Quetch. However, I am a Mr. Quetch.
Reply With Quote
  #2  
Old 2016-11-07, 23:02
Darkflame's Avatar
Darkflame Darkflame is offline
Classic
 
Join Date: Feb 2001
Location: Sol, Earth, NL
Posts: 23,836
Send a message via ICQ to Darkflame Send a message via AIM to Darkflame Send a message via MSN to Darkflame
I dont have time these days that much, but I can confirm; Running your own code on real physical hardware just feels awesome.
I dunno why, just having your stuff "escape the PC" gives a buzz.
__________________
http://fanficmaker.com <-- Tells some truly terrible tales.
-
Phones & Tricorders & Blobs & Bombs & 3D Printers & TVIntros also;stuff
Reply With Quote
  #3  
Old 2016-11-12, 01:44
MrQuetch's Avatar
MrQuetch MrQuetch is offline
Quetching a Mr.
 
Join Date: Apr 2011
Location: United States
Posts: 708
Quote:
Originally Posted by Darkflame View Post
I dont have time these days that much, but I can confirm; Running your own code on real physical hardware just feels awesome.
I dunno why, just having your stuff "escape the PC" gives a buzz.
My apologies for the late reply, but do you program / home brew code for any systems in particular? If so, could you tell me? Just a curious thought. From what I've heard, most people hate programming for the N64 because it is literally programmed from MIPS assembler code and is written in C. That's why there are not too many N64 home brews these days. Personally, I don't think C is too much of a problem for me anymore. For me, it IS the ASM code. Although it can be learned, I just haven't got around to it. I know it uses registers and tells bytes how they should be used or where they should be placed and the like. But still...
__________________
I am a Quetch. However, I am a Mr. Quetch.
Reply With Quote
  #4  
Old 2016-11-12, 17:26
Darkflame's Avatar
Darkflame Darkflame is offline
Classic
 
Join Date: Feb 2001
Location: Sol, Earth, NL
Posts: 23,836
Send a message via ICQ to Darkflame Send a message via AIM to Darkflame Send a message via MSN to Darkflame
Many years ago I had a GBAMP which allowed GBA homebrew, then later NintendoDS homebrew.
The DS in particular had a great homebrew scene. There was a mini-OS called Moonshell that could do all sorts of things, including making it easy to transfer (via FTP) and run your own code.
I didnt make much as such. A Matrix-style screensaver, some little jumping man experiments (think a platformer without a game), few other minor things.
Was fun though.
Code was C, cant remember my toolchain though. There was a particular bit of software for it setup for some ds-specific stuff.
__________________
http://fanficmaker.com <-- Tells some truly terrible tales.
-
Phones & Tricorders & Blobs & Bombs & 3D Printers & TVIntros also;stuff
Reply With Quote
  #5  
Old 2016-11-13, 01:13
MrQuetch's Avatar
MrQuetch MrQuetch is offline
Quetching a Mr.
 
Join Date: Apr 2011
Location: United States
Posts: 708
Quote:
Originally Posted by Darkflame View Post
Many years ago I had a GBAMP which allowed GBA homebrew, then later NintendoDS homebrew.
The DS in particular had a great homebrew scene. There was a mini-OS called Moonshell that could do all sorts of things, including making it easy to transfer (via FTP) and run your own code.
I didnt make much as such. A Matrix-style screensaver, some little jumping man experiments (think a platformer without a game), few other minor things.
Was fun though.
Code was C, cant remember my toolchain though. There was a particular bit of software for it setup for some ds-specific stuff.
That's really cool. I still haven't done much with the N64 yet, because the emulators can only emulate so much of custom code. Once I get the cart, then I should be free of those limitations. From what I've learned so far, just self experimentation is enough to start learning more and getting things to work properly. Thanks for that share.
__________________
I am a Quetch. However, I am a Mr. Quetch.
Reply With Quote
  #6  
Old 2016-11-21, 18:32
MrQuetch's Avatar
MrQuetch MrQuetch is offline
Quetching a Mr.
 
Join Date: Apr 2011
Location: United States
Posts: 708
I am now currently trying to get 3D Nintendo 64 games going. I've been learning a lot of C in the past month now, and am surprised just how much I've learned. I've been exporting some LBA2 3ds models to N64 usable format ( C format ) using N64 functions and graphics display lists. Quite complex stuff, and it's far beyond my knowledge, but I'm going to see if I can get more stuff working.
__________________
I am a Quetch. However, I am a Mr. Quetch.
Reply With Quote
  #7  
Old 2016-11-22, 02:57
Polaris's Avatar
Polaris Polaris is offline
Polly parrot
 
Join Date: Jan 2007
Location: Tippett Island
Posts: 5,843
Sounds interesting for sure !
__________________
<((((((((((((([[[========================]]])))))))))))))>
Reply With Quote
  #8  
Old 2016-11-22, 22:07
MrQuetch's Avatar
MrQuetch MrQuetch is offline
Quetching a Mr.
 
Join Date: Apr 2011
Location: United States
Posts: 708
Quote:
Originally Posted by Polaris View Post
Sounds interesting for sure !
Once I can manage to get a 3D working rom in general, I'll let you guys know. The plan is to see what LBA2 would be like if it were on the system. I posted a picture of a fake cartridge on another section of the forums (can't remember right now). The rom (once I have it) may work on Project 64, but I cannot be sure. Besides, real code on real hardware is more fun. Plus, the chances of it working on the console are far greater than emulation.
__________________
I am a Quetch. However, I am a Mr. Quetch.
Reply With Quote
  #9  
Old 2016-11-27, 03:07
MrQuetch's Avatar
MrQuetch MrQuetch is offline
Quetching a Mr.
 
Join Date: Apr 2011
Location: United States
Posts: 708
After some further research, I've come to the conclusion that this is going to take much longer than expected, unfortunately. There are still several things I need to get working, and there is only so much information on the whole N64 homebrew development. The guy whom is working on the N64Squid will be working there again soon - he has been doing a freelance job in spare time, and once he has that time again, will be providing more development information on that site. I can convert models and images, and write source files, as well as header files. I'm going to try sound effects soon. The only real thing I can do now is wait until more information and other programs are available for download. In the mean time, all I can do is learn more C, and expound on what I'm already capable of doing using Shaun's libdragon. It's not a bad start, but you can only do so much. 3D acceleration is not possible with libdragon.
__________________
I am a Quetch. However, I am a Mr. Quetch.
Reply With Quote
  #10  
Old 2016-12-03, 04:50
MrQuetch's Avatar
MrQuetch MrQuetch is offline
Quetching a Mr.
 
Join Date: Apr 2011
Location: United States
Posts: 708
I'm getting a bit better at programming in C now. I've currently been learning a lot about enumerations, structures, unions, and type definitions. Still quite confusing to be honest, but some good things are starting to clear up now. I've managed to get some 3D acceleration going now, but only simple vertex coloring with no textures or their coordinates yet. I'm using the "NuSystem" which is an OS library for the Nintendo 64 that developers use to 'begin' games before moving onto more complex code to fit their needs. I bet within a week or so I could get a model up from either LBA1 or 2 shown using the N64's GDL's ( Graphic Display Lists ).

Right now it's a pain because I have to input EVERY vertex and tell the triangles what vertices to use to generate the final model. I've looked into model converters for the C code, so it should get much easier. I've still got long ways to go, but it's finally getting exciting.

I intend looking more in depth on matrices, as this will allow me to have 'bones' for characters and have fully animated objects on screen. What's going to be difficult is getting all of the matrices to work with each other to compose a 'rig' and then have it become animated. I'll probably make a 'tool' that will allow me (while on the actual system) see every bone listed from an array, same for all of their positions, rotations, and scales, and have a variable that stores 'key frames', and then maybe save it all as one file. Still quite difficult, but I'll keep trying. I might even go old school, use notebook and paper, and write down all things for one key frame, and then just input it all into my C code - same for actual animations themselves.
__________________
I am a Quetch. However, I am a Mr. Quetch.

Last edited by MrQuetch; 2016-12-03 at 04:57.
Reply With Quote
  #11  
Old 2016-12-09, 10:24
Zink's Avatar
Zink Zink is offline
Master of Degree
 
Join Date: Sep 2001
Location: Lublin, Poland
Posts: 1,744
It's nice another person starts learning programming and likes it .
The structures, unions, etc. seem confusing at start, but get very natural and easy once you are used to them.
Good luck
__________________
Emerald Moon Base projects: Little Big Architect - v 0.10 and v 1.0 beta 9, Package Editor - v 0.11+, Text Editor 2 - v 2.3, Font Editor - v 2.03+.
Bug reporting (hosted by alexfont).

All LBA technical information goes in here -> LBA File Information Project

LBA Prequel Demo has been released! See our blog
Reply With Quote
Reply

Tags
chain, libdragon, n64, shaun, tool

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Wrestlefest 2K6 Tiebreaker: El "Shiva" Muerte v. Gustav "Vlad the Impaler" Sweden Double-J Off topic 43 2006-10-30 00:17
"Twinsen", "Twinsun", "LBA", etc. copyrights?? Exie General 24 2006-04-11 16:02
"SPOILERS!"Blizzard game endings "SPOILERS!" Cyberg-Ares Off topic 5 2003-08-17 13:06
I say "Trium Planeta", you say "Trinium Placenta", let's call the whole thing of Double-J General 17 2002-07-31 22:58


All times are GMT +2. The time now is 11:53.




News Feed
Powered by vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Copyright ©2000 - 2016, the Magicball Network