Welcome Guest [Log In] [Register]


Welcome to Zelda64.net. Announcements can be found below!
As of 3.1.2017, this site seems pretty dead. Or on the brink of dying. So I've decided to try to help it out. Z64 is having its theme reworked to be more modern and professional. I'll try my best to get back into the Zelda modding scene. Hopefully we can get this place back up without the cobwebs (and without looking like a web page from the 1990s). Enjoy the current Zelda64 Dark theme over the next few days while I finish sorting out the rest of it and the Light theme. Thanks for sticking with us. Sylux102 out.
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
Ocarina of Time simulator
Topic Started: Oct 19 2017, 11:41 AM (742 Views)
Member Avatar

I came to this decision after making some recent progress on a Nintendo 64 emulator, but it got further with Super Mario 64 than Ocarina of Time.

So I'm going to rewrite all of OoT (except actor files) in C! You'll need to click-and-drag the debug ROM into the .exe when it's released.

It needs the ROM for copying game assets and other data into RAM, but the game engine itself will be human-readable!

Please reply with your thoughts and questions about this project.
Offline Profile Quote Post Goto Top
Member Avatar
Map Maker
Best of luck! I would recommend writing it as close as possible to the N64 so it can be just as hardware compatible.
Offline Profile Quote Post Goto Top
Member Avatar
Estoy seguro que esto serĂ¡ traducido... =P
Also, will be good if you make it open source, so we can learn a lot of this!
Offline Profile Quote Post Goto Top
Member Avatar
Empath mapmaker
I like this idea. I feel like a lot of people have at least thought of doing this.
How would you do things like cutscenes though?
Offline Profile Quote Post Goto Top
Member Avatar

z64offline: I'm literally taking the original code from the ROM and rewriting it, so cutscenes will be handled automatically. Rendering will be done by emulating the graphics microcode.

One of the functions rewritten: (I'll add more comments and define some constants later.)

void funct_5a0()
funct_2130(); //IS VIEWER 64
funct_2130(); //IS VIEWER 64
funct_2130(); //IS VIEWER 64
funct_2130(); //IS VIEWER 64
funct_2130(); //IS VIEWER 64
funct_2130(); //IS VIEWER 64

Original MIPS:

000005a0 addiu sp, sp, ffd8
000005a4 sw a0, 0028 (sp)
000005a8 sw ra, 001c (sp)
000005ac lui a0, 8001
000005b0 jal 00002130
000005b4 addiu a0, a0, afd0
000005b8 jal 0000183c
000005bc sll r0, r0, 0
000005c0 lui a0, 8001
000005c4 jal 00002130
000005c8 addiu a0, a0, afe0
000005cc jal 000069e0
000005d0 sll r0, r0, 0
000005d4 lui t0, 00a9
000005d8 lui t6, 00bd
000005dc addiu a1, t0, 4000
000005e0 addiu t6, t6, ef30
000005e4 lui a0, 8002
000005e8 lui a3, 8001
000005ec addiu t7, r0, 00ee
000005f0 sw v0, 0020 (sp)
000005f4 sw v1, 0024 (sp)
000005f8 sw t7, 0010 (sp)
000005fc addiu a3, a3, affc
00000600 addiu a0, a0, ce60
00000604 jal 00001aa0
00000608 subu a2, t6, a1
0000060c jal 000069e0
00000610 sll r0, r0, 0
00000614 lw t8, 0020 (sp)
00000618 lw t9, 0024 (sp)
0000061c lui a0, 8001
00000620 subu t2, t8, v0
00000624 sltu at, t9, v1
00000628 subu t2, t2, at
0000062c subu t3, t9, v1
00000630 sw t3, 0024 (sp)
00000634 sw t2, 0020 (sp)
00000638 jal 00002130
0000063c addiu a0, a0, b008
00000640 lui a0, 8001
00000644 jal 00002130
00000648 addiu a0, a0, b028
0000064c lui a0, 8015
00000650 lui t1, 8017
00000654 addiu a0, a0, 7d90
00000658 addiu t1, t1, 59c0
0000065c jal 00004450
00000660 subu a1, t1, a0
00000664 lui a0, 8001
00000668 jal 00002130
0000066c addiu a0, a0, b038
00000670 jal 000c6e20
00000674 lw a0, 0028 (sp)
00000678 lui a0, 8001
0000067c jal 00002130
00000680 addiu a0, a0, b058
00000684 lw ra, 001c (sp)
00000688 addiu sp, sp, 0028
0000068c jr ra
00000690 sll r0, r0, 0
Offline Profile Quote Post Goto Top
1 user reading this topic (1 Guest and 0 Anonymous)
« Previous Topic · Works in Progress · Next Topic »
Add Reply