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 Smile

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!

To recap some of the roadblocks so far discussed elsewhere:

- All 3D graphics engines currently in existence for the Nspire are written in C++. The SM64 decomp is in C.

- Input management
Oxiti8 wrote:
To recap some of the roadblocks so far discussed elsewhere:

- All 3D graphics engines currently in existence for the Nspire are written in C++. The SM64 decomp is in C.

- Input management


C++ and C are pretty similar languages. So maybe it wouldn't be too hard to convert one or the other. Also wasn't X3D originally in C before switching to C++? And as for the input system i'm not sure if it would be too difficult. Just like Doom the numpad could be used for movement and then the buttons on the sides for other actions. Though I don't know how coding those inputs into a program works with an nspire so if there is anywhere I can find information on that topic that would be helpful.
There is also the problem that the N64 has a separate "GPU" (it's named the RCP but it's basically just a graphics coprocessor), so I'm not sure if software rendering is up to the job.
Calling C++ from C is easy enough when you have source code. It's not a major barrier.

The N64's main CPU had a hardware floating-point unit that can perform up to one floating-point operation per cycle; ironically for a calculator, the Nspire doesn't and implements all floating-point arithmetic in software. The N64 also has a dedicated 3D graphics unit capable of over 500 million ALU operations per second. The Nspire doesn't even have a coprocessor, much less one that could handle any kind of a 3D graphics pipeline. The Nspire just doesn't have the oomph to produce real-time 3D graphics without making significant compromises. This is exactly what Doom does: its rendering code has severe limitations on level geometry in order to allow the graphics routines to make a lot of assumptions that just aren't remotely true in Mario.

All that said, I'm not saying it's impossible to make a decent port of Super Mario 64 for the Nspire. But you would have to implement an entirely custom rendering backend and rewrite nearly the entire Super Mario 64 engine and level data to optimize it enough to run reasonably well. It's the sort of thing that would take a team of a dozen experienced developers a year to do.
DrDnar wrote:
Calling C++ from C is easy enough when you have source code. It's not a major barrier.

The N64's main CPU had a hardware floating-point unit that can perform up to one-floating point operation per cycle; ironically for a calculator, the Nspire doesn't and implements all floating-point arithmetic in software. The N64 also has a dedicated 3D graphics unit capable of over 500 million ALU operations per second. The Nspire doesn't even have a coprocessor, much less one that could handle any kind of a 3D graphics pipeline. The Nspire just doesn't have the oomph to produce real-time 3D graphics without making significant compromises. This is exactly what Doom does: its rendering code has severe limitations on level geometry in order to allow the graphics routines to make a lot of assumptions that just aren't remotely true in Mario.

All that said, I'm not saying it's impossible to make a decent port of Super Mario 64 for the Nspire. But you would have to implement an entirely custom rendering backend and rewrite nearly the entire Super Mario 64 engine and level data to optimize it enough to run reasonably well. It's the sort of thing that would take a team of a dozen experienced developers a year to do.


Oh that's unfortunate. I would think that a calculator with all those exact value inputs would have floating-point capabilities but I guess not. Maybe it should just be coded as fixed points. The computation would be a lot simpler. Sure it would be a lot more inaccurate and like a ps1 game but at least it would be better than nothing.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement