Page 1 of 1

Super Mario 64 Ti nSpire port (Help Needed)

Unread postPosted: 09 Oct 2021, 20:57
by Pylon
I have a crazy idea to put Super Mario 64 on a Ti nSpire. Imagine being able to play Super Mario 64 in the middle of the SAT. That would be AWESOME (Seriously how are these things allowed on the SAT lmao)! It wont be easy and I'll need all the help I can get so if anyone is more experienced and wants to help me out please contact me :)

It all started with me playing around with ndless. I put Doom on my calculator and was amazed at how smooth it ran and with all the color too. So I wondered what else this calculator can do. That's when I got the idea for Super Mario 64. It seems like it could work. It has some primitive 3d graphics from the 90s and the source code was decompiled and people have been using that to make all sorts of amazing ports like putting it on PC or a 3DS. So it seemed like a pretty good choice. It would also work well because Super Mario 64 originally output video at 320 by 240 which is the exact screen resolution of a Ti nSpire. I also looked into it and the Nintendo 64 is only clocked at 94 MHz. A Ti nSpire CX/CAS normally runs at 132Mhz so, in theory, they are already more powerful than the Nintendo 64. I also used Nover to overclock my calculator to 204MHz for over two times the speed of a Nintendo 64! And it would be even better for users of Ti nSpire CX II/CAS calculators. Those run at 396MHz without even overclocking :#fou#:. Power like that would be ideal for this port but it would be nice if we could get it to work on the normal Ti Nspire CX calculators so it can be more accessible to more people. I looked into it and the Nintendo 64 only has one core and from what I can tell to does Ti Nspires.

It wasn't long before I started to work on this port. We have access to the Super Mario 64 decomp https://github.com/Reonu/HackerSM64 and the ndless SDK https://hackspire.org/index.php/C_and_assembly_development_introduction. I also went ahead and got the Firebird emulator for testing things. I managed to get the emulator but I couldn't get the SDK working for the life of me. I screwed around in Ubuntu for hours following the steps on the page to the best of my abilities and installing dependencies but I just couldn't get it to work. I never even got to doing the test hello world program :'( . Hopefully, through the help of this community I can finally get it working. Ndless apparently supports C which is awesome because Super Mario 64 was written in C! Hopefully it will go smoothly, but I don't know how to code things like button inputs to control the game into the program. I don't have the most coding experience but I would love to learn more about it through this project. Once again there is a lot I don't know so it would be amazing if some of you guys could help me out.

This could be one of the coolest games to run on this calculator. Sure we have Quake and Doom for the Ti nSpire, but adding Super Mario 64 to it would be taking things to the next level. An awesome game for all of those bored calculus students to use out there. I might not have gotten it to work as of now, but to get a feeling of what it might be like I put an image of Super Mario 64 onto the calculator and opened it. Think of it like a proof of concept. Anyway, thank you so much for reading and I hope y'all can help me make my dream come true!

Re: Super Mario 64 Ti nSpire port (Help Needed)

Unread postPosted: 10 Oct 2021, 01:58
by Pylon
Alright so I got this crazy idea. I was playing around with making my own compilation of Super Mario 64 using the source code, and I notice at one point it gave out a .elf file (linked below). I compared this to the "$ make" function in the ndless sdk and I saw it converts the file to a .elf file before converting it to a .tns file (circled in the attachment below). So this gets me wondering if I could just convert this .elf file from .elf to .tns using the ndless sdk then run it on my calculator. It probably would work I don't think, I have tried to plug it into the ndless sdk but once again I can't get it to work. If anyone wants to take this .elf and try converting it themselves go ahead. Please tell me how it goes and send the .tns file back if you can 8-)

https://drive.google.com/file/d/10pzsIL ... sp=sharing

Re: Super Mario 64 Ti nSpire port (Help Needed)

Unread postPosted: 10 Oct 2021, 03:56
by Adriweb
Well that's certainly quite the project ;)

And the elf thing wouldn't work directly, as it needs to be built for the proper architecture etc. Which is definitely not the same as your computer.

But first, you should solve the sdk issue. It really shouldn't be hard at all to get it up and running, just a matter of installing the few dependencies and launching the build_toolchain script (then waiting for a while). Which part are you stuck at?

Re: Super Mario 64 Ti nSpire port (Help Needed)

Unread postPosted: 10 Oct 2021, 04:01
by Pylon
iirc it was the build_toolchain thing. It just says there is no such file or directory.

Re: Super Mario 64 Ti nSpire port (Help Needed)

Unread postPosted: 10 Oct 2021, 05:11
by Adriweb
Well you'll have to be more specific than that if you want help :p

Let's assume you create a folder called Ndless in your home folder, then put this script in it. Then open a terminal and launch it (might need to chmod +x it first though I don't remember).
What does it say?

Re: Super Mario 64 Ti nSpire port (Help Needed)

Unread postPosted: 29 Nov 2021, 21:20
by Dubs
Wahoo, I can't wait to test Mario64 on Ti!
have you made progress on this project?

I saw that the Zelda Ocarina of Time files are also available!
https://github.com/zeldaret/oot

Re: Super Mario 64 Ti nSpire port (Help Needed)

Unread postPosted: 25 Mar 2022, 00:19
by Minitube5602Xd
Any news about the port?
I also would love to test the game ;)

(Sorry if my english is bad, im from Canary Islands and i normally speak spanish)