Note: This project is not currently available for download due to a request by Nintendo.
Heads up I don’t post on this blog anymore. Can catch me at my new website roystan.net or Twitter.
Below is a video of the mod being featured on cobanermani456‘s channel.
Demonstration project for the Super Character Controller, a recreation of Super Mario 64’s first level, Bob-Omb Battlefield.
Other than the Super Character Controller (and it’s respective libraries), I use a heavily modified cInput v1.4 from roidz to handle custom input, and pixelplacement’s iTween for path tweening (for the rolling balls). All the art and animations were done by myself, with the exception of the Mario, Goomba and Power Star meshes, which are ripped (without animations) from Super Mario Galaxy. A large portion of the sounds are from existing Mario games, while the ones I found and edited myself are from freesound.org. If I’ve used anyone’s work and missed a citation, please tell me in the comment section (or message me through the Unity forum). The UI elements were painted by me, based on the original Mario 64 user interface.
I’m absolutely loving it!
It’s exactly what I hope nintendo does one day with the mario galaxy engine
Maybe we should redo all of Super Mario 64 as a community project using this as a base, but a few things popped out at me
– The coin collect sound is from SMW instead of SM64
– coin block hitting sound isn’t from SM64
– coin appear sound seems to be from sunshine?
– can’t talk to red bob omb
– diving at a bobomb doesn’t set it off?
– seesaw bridge doesn’t creak as you walk over it
– no steps after the seesaw bridge
– boulders make the wrong sound when bouncing and breaking
– If you push against a wall, you end up sticking to it and moving up (also has issues with fences)
– particles spawned indefinitely near the top warp point on the hill haven’t tried to reproduce
– no red coins, can’t remember any blue coins in SM64
– no trees?! They’d be easy to make in unity! But I guess you’d have to make mario be able to climb them, but then you can put in the flagpole for star 2!
– no bobomb canon doors
– no signposts
– warp effect needs custom shader to inject random noise holes instead of just adjusting alpha
– Skybox is entirely missing, using the crummy 16×16 SM64 skybox would look better
– can’t pick up/throw bobombs
– can push one of the bobombs on the hill off a ledge
– Sounds for opening the gate is wrong
– CHAIN CHOMP! C’mon man! There’s a model for it in Galaxy
– Gimme a Boss fight + star! He can be extracted from SM64DS
– Option for original music would be good as well
– Option for non SMGalaxy style lighting would be good too
– An option to switch assets between SM64/SM64DS and SMG would be really cool
Still though, I love what you’ve done and it’s inspired me to make something in unity, even if I drown in cease/desists XD
Most of the changes fall under the category of me trying to save time. You kind of brought it up with the trees–adding them in would be easy, but that would lead to requiring more animations/player states. It’s the same thought with the Chain Chomp. Modelling or ripping a model would be fairly easy, but properly animating the chain, giving him interesting AI and having something interesting happen when you destroy his peg all kind of ends up being alot to do.
That said, feel free to continue working on it and swapping the sounds out for whatever you want, glad to see the enthusiasm 🙂
Totally agree!
Erik should setup an gihub so we can start working on this 😀
You guys are welcome to, but I’m pretty tied up at the moment to do this.
Amazing that you were able to pull this off. I didn’t even knew it was possible to make a game like that for the Unity browser plugin. Well done indeed.
The limitations on the browser plugin versus the standalone build are pretty slim, although I haven’t looked into if there’s any performance differences. It’s a great tool especially if you’re prototyping to share your work!
Lol download asap before it gets deleted.
Just tried the demo with a gamepad and the the controls are spot on. Great job!
Really awesome 🙂
logitech wireless gmaepad f710 (aka: wireless rumble pad 2) works fine in this
Cheers!
THAT’S AMAZING ! thank you very much for your hard work ! you should start a crowdfunding campaign to create all the levels , that way you would get the money you deserve for your work , and we would get the rest of the game online … i would be happy to contribute with a couple bucks !
He can’t take money for this since he uses copyrighted materials…
i believe you can call it fair use
Hey man, I was just recently brainstorming ideas about working on a project and I was trying to figure out a way to use unity but have a third-person control scheme. I came across your blog thanks to Kotaku and I was wondering if I could ask you a few questions and talk with you in a less public format. Like if you have a work email or something. I want to keep the details of my project under wraps for a while but I need to ask you a few things to help me get started.
Wii Classic Controller with PC adapter works!
I tried the linux version in Fedora 21 – 64 bit OS. I’m getting core dump error when starting the game.
Console output :
>>
$ ./SuperMario64HD.x86
Set current directory to /opt/SuperMario
Found path: /opt/SuperMario/SuperMario64HD.x86
Mono path[0] = ‘/opt/SuperMario/SuperMario64HD_Data/Managed’
Mono path[1] = ‘/opt/SuperMario/SuperMario64HD_Data/Mono’
Mono config path = ‘/opt/SuperMario/SuperMario64HD_Data/Mono/etc’
displaymanager : xrandr version warning. 1.4
client has 3 screens
displaymanager screen (0)(LVDS1): 1366 x 768
Using libudev for joystick management
Importing game controller configs
Aborted (core dumped)
<<
The same error here 😦
./SuperMario64HD.x86
Set current directory to /home/toor/Downloads/M64
Found path: /home/toor/Downloads/M64/SuperMario64HD.x86
Mono path[0] = ‘/home/toor/Downloads/M64/SuperMario64HD_Data/Managed’
Mono path[1] = ‘/home/toor/Downloads/M64/SuperMario64HD_Data/Mono’
Mono config path = ‘/home/toor/Downloads/M64/SuperMario64HD_Data/Mono/etc’
displaymanager : xrandr version warning. 1.4
displaymanager : trying .X11-unix
client :0 has 1 screens
displaymanager screen (0): 3286 x 1080
Using libudev for joystick management
Importing game controller configs
Aborted (core dumped)
I got it to work by installing VirtualGL.i686. Which I downloaded from ftp://ftp.univie.ac.at/systems/linux/fedora/releases/21/Everything/x86_64/os/Packages/v/VirtualGL-2.3.3-5.fc21.i686.rpm
and running it as “optirun ./SuperMario64HD.x86”. The reason is it is a 32-bit binary.
I am on a W540 with nvidia optimus. The game doesn’t seem to like the Intel driver, but does working with the nvidia driver if it is setup properly.
Your’e AWESOME!
Incredible nice to play.
Keep it up!
Hello, My name’s Lewis. First off, I have to say I’m LOVING the remake, just awesome how you’ve done it. There is one glitch I’ve found though, Which has allowed me to jump up walls. I don’t know if you want to know any more, But if so let me know and I’m happy to go into detail.
Hey Lewis, it’s been pointed out a few times, but thanks for the message!
This is awesome!! I never imagined i would be able to play this game in HD!! Plz do more levels. This trial level is unbelievably THE BEST. Defiantly brushed off my childhood memories (90s kids remember). I tried the controls with the PS4 controller and its great!
Same for me.
I’m on Archlinux 3.19.2 x86_64
Awesome ! SM64 is one of my first very own game, and I played it a lot.
Your remake feels very “real”, the gameplay is very close to the original !
Nice job, you should make your own game 🙂
Linux master race
hi there, if it’s ok, I would like to help with the animation of… anything, really. I’m studying animation now, and I would like to get experience in working with someone.
I’m not continuing working on the project, but you’re free to open and modify the animations if you want!
im having a bug with the dualshock where the camera only rotates to one side and continuously rotates
any help please
Did you try modifying the deadzone in the controls menu? Also try manually setting the camera movement controls (if you’re using the Gamepad preset)
Thanks for this, but can’t find FreeBSD download link?? 😉
Some of the animations look like they need a tiny bit more work(on mario). But overall it is awesome!!! Good job and Good luck.
Also i have encountered a glitch, so you know the animation when you push against a wall right. So if you do that on some parts of the mountain you start to float up it.
It’s a known error, I’ll try to get around to fixing it sometime. Thanks for the report!
Yea for sure. I’m not an animator by trade, but my animations got much better as I went on, so some of the ones I did at the start don’t quite look as good.
Got the golden Mario 😀 Collect enough coins and you’ll see
it works with GC Controller w/ adapter
Thanks!
Man, you are simply GREAT!!! I’m a video games programmer (AS3.0 – C# -Unity-) from Argentina. This looks great!!! Congratulations Colleague!!!
Hey buddy! game is awesome and I love what you did by turning Mario gold and making him invincible after getting 100 coins. I have a question though. How come I can’t break the block with a metal casing around it, even after getting gold Mario? Is this a bug or intentional (maybe an easter egg)?
It can be broken, defs not a bug!
Do you give us a hint how it can be broken? I tried with golden Mario, with a bomb, with a “butt bump”, no success so far.
But great work, brings back so many old memories! Thank you for that experience 🙂
I really hope Linux isn’t the OS you consider “lame”. Either way, I’ll be grabbing the Linux version because it rules and the version for the OS I consider to be lame, Windows, because let’s face it, their proprietary DirectX is the only thing most of my games work with. Article to consider… http://www.extremetech.com/extreme/155392-international-space-station-switches-from-windows-to-linux-for-improved-reliability
As shown below in my posts, it’s a joke about how both OSX and Linux tend to fit that description, and both have a much lower desktop userbase than Windows (mostly due to business users). Unity’s crossbuilding feature is superb and I appreciate that it lets everyone play.
🙂
awesome, i love mario much.. please have a new look at the linux-port.. i must install in a Debian 8.0 – 64-bit environment the 32-bit pakets.. sudo apt-get install libxrandr2:i386 & libxcursor1:i386
and then i got this 😦
displaymanager : xrandr version warning. 1.4
client has 2 screens
displaymanager screen (0)(HDMI1): 1920 x 1080
Using libudev for joystick management
Importing game controller configs
Abgebrochen
please, fix it.. many thanks.
Lovely remake. Beautiful graphics. A few problems. As soon as I get to the rolling balls of death and get out of the mud pit, that space where more balls fall down, I can walk up that wall with no problem. I can even stand there and wait like it’s a platform. Overall great!!
It’s an issue with how the controller detects ground. Thanks for the report!
Also. (sorry) but I played with the Dualshock 3. Works perfectly fine.
This is quite amazing! The controls (I’m using an Xbox 360 controller) are so fantastic and almost feel native. I enjoyed the added stuff, especially what happens when you get 100 coins. Sure, there are things that are missing, but I’m incredibly impressed at what’s being shown to me.
Can you play multiplayer on lan or anything like that?
Incredible, awesome, amazing…. I can’t find the words to describe this, and your willingness to share your Unity project. Thank you so much!
AWESOME, thank you very much for posting the project, for which we are beginning in unity comes very well take as an example the project to test things, could you tell me how out as models of super mario galaxy?
Is there any chance you will release an android apk ?
Probably not, given that I didn’t implement touch controls. However, over at Touch Arcade they built it to the iPhone, so if they released their touch controls source anyone could build an APK. http://toucharcade.com/2015/03/27/check-out-super-mario-64-hd-running-on-my-iphone-6/
There is a lot of players that use bluetooth controller (OUYA / Android TV / nvidia SHIELD, etc) and i’m personnaly using my Dual Shock 3 on my smartphone (xperia Z3 Compact with built in DS3 wireless compatibility).
But thanks for the answer.
Also there is a bug you could fix, we can climb by facing this wall and still push the direction forward: http://image.noelshack.com/fichiers/2015/13/1427666153-shot-20150329t235326.png
nice ! but you should add a dead zone for the left stick. my 360 gamepad is callibrated but mario always go down a little….
Did you modify the deadzone in the controls menu? There’s an option for it.
another way, your game works fine in 5040*1050 ! nice ! :p
Oh dear I bet that does a number on the field of view. Cool to hear anyways!
It’s great, Good Job ! Thanks you from France
Got the golden Mario, Super awesome future 😉
Wouw, i was AFK for a long time (so i could get 1000 coins).
Then i had 999 and was like OOOO so close, and it just stopped at 999 -,-
Ha yeah, the little numbers that represent the coins are just sprites, and there’s only three sprites there, so that’s as high as it goes.
Stil it’s cool because you couldn’t get more then 999 coins in Mario 64
Man…. you should work for Nintendo! =D
Just awesome!!!
heyy, this was pretty cool, and i had no frame rate issues too, do you think there would be more levels in the future?
I hope peaches castle comes soon and multi-player would be great!😄
And new playbill characters
Try new things that aren’t in the other Mario 64 games
One of the best projects that I have seen on Unity. This work is just amazing. Thank you for sharing. It will be useful for those who like Unity… and Nintendo. Also I have a question – which Unity version you used? 4.6 or 5.0. Thank you for answer ++
Hey gecko, I used Unity 4.6 to actually develop the project, but I upgraded it to 5.0 before releasing.
Appreciating the hard work you put into your website and detailed
information you offer. It’s great to come across a
blog every once in a while that isn’t the same unwanted rehashed information. Excellent read!
I’ve saved your site and I’m adding your RSS feeds to my Google account.
Error in the link where it says “Play Now”
I’ve been noticing that happen, but it seems to be a sporadic issue that’s likely tied to the amount of traffic coming through. Thanks for the report!
Xbox 360 controller does’nt work on my Mac with Yosemite. The controller is recognize by the system, I see it in Preferences System, it work with Rayman Legend but nothing with SM 64 HD. 😦 Keybord works.
(I’m french, sorry for my english)
Im getting a core dump on Ubuntu 14.04 64 bits:
./SuperMario64HD.x86
Set current directory to /home/toor/Downloads/M64
Found path: /home/toor/Downloads/M64/SuperMario64HD.x86
Mono path[0] = ‘/home/toor/Downloads/M64/SuperMario64HD_Data/Managed’
Mono path[1] = ‘/home/toor/Downloads/M64/SuperMario64HD_Data/Mono’
Mono config path = ‘/home/toor/Downloads/M64/SuperMario64HD_Data/Mono/etc’
displaymanager : xrandr version warning. 1.4
displaymanager : trying .X11-unix
client :0 has 1 screens
displaymanager screen (0): 3286 x 1080
Using libudev for joystick management
Importing game controller configs
Aborted (core dumped)
I really want to play this 😦
Great work indeed
Excellent job! I’m glad to see that you decided to share your hard work with us. Hopefully we, internet dwellers, can take this project further. Although I must say I fear an interception from Nintendo is only a question of time.