Nintendo could have raked in millions by doing it themselves, but they prefer their closed ecosystem.
Nearly all Nintendo 64 games can now be recompiled into native PC ports to add proper ray tracing, ultrawide, high FPS, and more
Submitted 5 months ago by SeaJ@lemm.ee to technology@lemmy.world
Comments
Kit@lemmy.blahaj.zone 5 months ago
Max_P@lemmy.max-p.me 5 months ago
The quality of what the community is doing vs what they shipped with NSO especially on launch is laughable.
Native OoT and MM on the switch would have been really sick. Instead they went with 90s level of emulator quality.
SeaJ@lemm.ee 5 months ago
I was actually going to pay for NSO solely to be able to play OoT on the Switch. Then I saw that it was a pile of emulated muddied crap.
DacoTaco@lemmy.world 5 months ago
Has nothing to do with their closed eco system. They basically did similar stuff with some of the stuff in the sm3d collection thingy.
Nintendo is a company that only wants make new stuff, innovations.
For example, they ( mostly miyomoto ) has been quoted to not understand that people want another f-zero, as the game’s principals and ideas have been fully flushed out and no new ideas could make it feel like something new.
They also usually dont do remakes/remasters unless its so new/different it can be considered a new game ( see metroid 2 on 3ds ).If that is a smart business position to have, i will leave for you to decide, but do get your facts a bit straight :)
Isoprenoid@programming.dev 5 months ago
Nintendo is a company that only wants make new stuff, innovations.
en.wikipedia.org/…/List_of_video_games_featuring_… en.wikipedia.org/…/List_of_The_Legend_of_Zelda_me…
xkforce@lemmy.world 5 months ago
Nintendo is a company that only wants make new stuff
They’ve been digging mario out of the dumpster for the last 40 years wtf are you dementia-ing on about?
wizardbeard@lemmy.dbzer0.com 5 months ago
They basically did similar stuff with some of the stuff in the sm3d collection thingy.
They did not.
For Super Mario 64, they emulated it. They increased the resolution the game renders at (trivial with emulation of 3D systems) and they used basic LUA patches in the emulator to override HUD textures with higher resolution ones adjusted for the Switch controller.
They did not add any further enhancements in any way. Compared to even 64 DS, it was extremely sophomoric. Compared to the Super Mario 64 decomp project, and what its native switch port is capable of (more on that later), it’s an incredibly lazy port. They didn’t even fox the slowdown with Bowser’s Sub that is as simple as adjusting a single compiler flag when you build the ROM from the N64 game source code.
For Sunshine, it’s an admittedly impressive solution of mostly emulation with some sections of the game engine ported (I think it’s the audio processing?). Once again, the game is rendered at a higher resolution, but they did not redo ot improve further any textures (besides some of the HUD again), graphical effects, or game content. Wind Waker HD this ain’t.
For Galaxy they cannibalized the existing port of it to Android on the NVidia Shield. The Switch shares most of the important internals with it (CPU, GPU). It’s a combo of emulation with certain key code ported, like Sunshine. Again, besides resolution and HUD, no improvements.
Beyond that, Nintendo has been content to sell straight up emulation through the Virtual Console service since the Wii. They’ve had multiple instances of straight ports over the years, and some of the most popular Switch games are straight ports with DLC bundled in.
There are numerous impressive remakes they have done over the years, but that is absolutely not the norm.
The Super Mario 64 decomp on the Switch supports (not available in Nintendo’s official port in 3D All Stars):
- Effectively infinite render distance for objects (coins, enemies, stars, etc)
- 60 fps (compared to the original/all stars 30fps at best)
- True analog camera control using the right stick (All Stars is just the original’s clunky button based control mapped to the stick)
- All sorts of QoL options like collecting stars not kicking you out of a level, options for streamlined/faster message boxes
- Optional bugfixes
- Optional cheats
- Variety of HD texture packs to choose from
- Variety of higher quality 3D model packs to choose from
- Support for an astounding variety of mods. Levels, entire new games, new characters, new movement and control options (Odyssey Mario in 64 with full cappy and enemy capture mechanics anyone?)
- Support for many more languages
- Nearly all of the above is toggleable mid-game from the pause menu.
I don’t think anyone was expecting something amazing out of 3D All Stars, but they absolutely fucking phoned it in.
tabular@lemmy.world 5 months ago
Innovate means needing to pay for an online service to transfer saves between consoles, saves stored on an SD card?
Do they DMCA fan made games because the game concepts have been fully fleshed out? When copyright expires for FZero in a century perhaps we can find out.
TachyonTele@lemm.ee 5 months ago
Damn you got mob downvoted for explaining exactly how Nintendo thinks. You’re absolutely right. People don’t seem to want to accept that Nintendo operates as an idea toy company. Once they’ve explored a new idea/gimmick they consider it completed and move on.
helenslunch@feddit.nl 3 months ago
Nintendo is a company that only wants make new stuff, innovations.
They don’t need to make anything. It was made decades ago. All they have to do is sell it, bare minimum on their own fucking store.
Furbag@lemmy.world 5 months ago
For example, they ( mostly miyomoto ) has been quoted to not understand that people want another f-zero, as the game’s principals and ideas have been fully flushed out and no new ideas could make it feel like something new.
This is also why we’ll never get another Star Fox.
sad furry noises 😿
Dudewitbow@lemmy.zip 5 months ago
a good chunk of the switch top sellers are WiiU games. new isnt always on the table.
01189998819991197253@infosec.pub 5 months ago
ipkpjersi@lemmy.ml 5 months ago
You’re not wrong and I’m shocked this hasn’t been shut down yet. Not to mention, the Nintendo 64 has been discontinued for years, but I have a feeling that won’t stop Nintendo.
insomniac_lemon@kbin.social 5 months ago
When that older DX game port was released, I think it took like 3 or 4 days for them to take it down. Probably even like a
patchstomp tuesday situation when the interns hand off the script detections off to the lawyers.It might take a bit longer if people stopped using sites like Youtube and Github, and tried not to include trademarked terms (or super-identifiable audiovisual content) anywhere.
homesweethomeMrL@lemmy.world 5 months ago
Video: “Even Superman64 -a direct affront to God- has a port”
lol
SkaveRat@discuss.tchncs.de 5 months ago
I wouldn’t call it an affront.
More of a proof that a god doesn’t exist
sverit@lemmy.ml 5 months ago
Obligatory AVGN link: www.youtube.com/watch?v=1dJXgJ1c4vY
Eldritch@lemmy.world 5 months ago
Superman 64 Wide-screen with ray tracing?! Now that’s gaming!
Oha@lemmy.ohaa.xyz 5 months ago
Nintendos already preparing their ninjas
empireOfLove2@lemmy.dbzer0.com 5 months ago
Here before Nintendo files a cease&desist for daring to make a way better service than their shitty phoned-in subscription emulation service
ramirezmike@programming.dev 5 months ago
a comment on that site really condescendingly claims this is how he would have handled it and that a script could be written in half a day to do the work.
my understanding is that an emulator effectively recreates the hardware’s different components in software so that from the game’s “perspective” it’s running on a real machine more or less.
This process instead decompiles the game code and recompiles for a new target machine.
I suspect one can’t just pump out a script in an afternoon to do this, but I am curious what is the complexity here?
MajorasMaskForever@lemmy.world 5 months ago
For graphics, the problem to be solved is that the N64 compiled code is expecting that if it puts value X at memory address Y it will draw a particular pixel in a particular way.
Emulators solve this problem by having a virtual CPU execute the game code (kinda difficult), and then emulator code reads the virtual memory space the game code is interacting with (easy), interprets those values (stupid crazy hard), and replicates the graphical effects using custom code/modern graphics API (kinda difficult).
This program is decompiling the N64 code (easy), searches for known function calls that interact with the N64 GPU (easy), swaps them with known valid modern graphics API calls (easy), then compiles for local machine (easy). Knowing what function signatures to look for and what to replace them with in the general case is basically downright impossible, but because a lot of N64 games used common code, if you go through the laborious process for one game, you get a bunch extra for free or way less effort.
As one of my favorite engineering phrases goes: the devil is in the details
ramirezmike@programming.dev 5 months ago
that makes sense, it’s like only really feasible now that we have enough decompiled, readable n64 games
Khanzarate@lemmy.world 5 months ago
So, you’re pretty much spot on with how emulators work. I also like using claymation to demonstrate it, like this. Your computer bends over backwards to give the game the exact environment it expects.
What makes recompilation more than a simple script is the rebuilding aspect. I brought up claymation because it’s a great analogy for this, too. An n64 ROM is a complete set of characters, sets, and a script for a claymation movie. It’s I in one studio right now, and that studio is the N64, but you need this to be in your PC studio.
First, you have to decompile your sets and characters. You take reference photos and rip out every tree in a forest set and roll each tree back into it’s own ball of clay, with its own reference photo each time. Every little clay cobble on a road, characters outfits, hair, limbs, you meticulously separate every piece of clay that Nintendo shaped, ball them up, and pack them. You now have a million little clay balls and reference photos for every one of them. You take these back to your PC studio. Thankfully, with these reference photos, your clay 3D printer (compiler) can return these balls into something very close to their original shapes, except there’s a bunch of little mistakes. One character’s leg is slightly thinner and longer than it should be, which messes up their gait when you re-film this, so you manually tweak the leg to be accurate. The cobbles don’t quite fit the same, they’re a bit smaller, but you have extra clay because of that so you just make more cobblestones. The road doesn’t look exactly like the original, but that’s fine. The trees, again, don’t quite fit right, but you’ve made similar trees in your studio before and you know those will work so you actually just use those as references instead of the originals. You get filming but this one scene just isn’t lit right, and you can’t figure out why, but you eventually figure out the N64 studio opened the blinds on their window to get natural sun in this shot, but your studio doesn’t have a good view of the sun at that angle, so you have to get a good lamp.
You face a million little hurdles decompiling and recompiling. Its almost literally reinventing the wheel. Almost all the work goes into little details that almost seem unnecessary, but there’s so many that it’s absolutely necessary. I was watching a playthrough of a recompiled majoras mask earlier today, and the Dev of this project found his way there, too, and he said it took a few days to get majoras mask to decompile and recompile, and about a year to fix all those little details that in software become lag or new bugs. So the script guy isn’t really wrong when he said he could do it fast, but he definitely wouldn’t do it right.
MyPornViewingAccount@lemmy.world 5 months ago
Someone fucking message me when we have a working Battle for Naboo ROM.
PineRune@lemmy.world 5 months ago
IIRC, the original cartridge had an extra chip in it that emulation hasn’t been able to use. I’m not sure if any progress has been made on this and a few other games that used these.
Evilcoleslaw@lemmy.world 5 months ago
Nah it didn’t have an extra chip – but large portions of the game were written in microcode for the N64’s processor specifically. It’s part of what makes it and Rogue Squadron kind of a pain to emulate – along with using their own audio drivers (MoSYS/MusyX that were later used as the basis for the GameCube sound systems).
grue@lemmy.world 5 months ago
SuperFX SNES games can be emulated, right?
danc4498@lemmy.world 5 months ago
Probably a lot of work for a single game.
VindictiveJudge@lemmy.world 5 months ago
Battle for Naboo actually had an official PC version all the way back in 2001. No idea if it works on modern PCs, though.
PineRune@lemmy.world 5 months ago
The keyboard controls are very janky. You’d have to do custom button mapping with a controller, and there’s no analog input. At least not without some mods that I’m not sure exist.
etuomaala@sopuli.xyz 5 months ago
Nintendo makes it as hard as possible to use their computers generically. Nintendo fanboys: “Thankyou, sir, may I have another?”
BruceTwarzen@kbin.social 5 months ago
May i pay 60 dollars for a 10 year old game mayhaps?
Threeme2189@lemmy.world 5 months ago
M’Nintendo
*tips red fedora with embossed white ‘M’
A_Random_Idiot@lemmy.world 5 months ago
Nintendo still doing that thing where you have to buy your eshop game on every device you own due to no transfers or anything?
yamanii@lemmy.world 5 months ago
Saw the twitter post yesterday, good thing they waited until it was basically ready to go before showing off, now even a C&D can’t stop it.
Cethin@lemmy.zip 5 months ago
I don’t think there’s grounds for a C&D here anyway. I don’t think it uses any compywritten material. It transcodes the game into C I think, and that’s all. It does not rely on anything Nintendo created.
SmilingSolaris@lemmy.world 5 months ago
Nintendo is a Japanese company.
tacosplease@lemmy.world 5 months ago
That’s logical. Nintendo’s lawyers don’t follow logic.
msgraves@lemmy.dbzer0.com 5 months ago
I wish that would stop Nintendo.
Linuturk@lemmy.world 5 months ago
I think Sesame Street owns the letter C. The devs better watch out for Elmo.
SeaJ@lemm.ee 5 months ago
I’m wondering how much this will help the handheld scene. N64 emulation is pretty notoriously shitty on many handhelds.
Sakychu@lemmy.world 5 months ago
It won’t help emulation but on pc/steamdeck you can natively compile it so that there no need for it anymore. Not sure about smartphone but I’m sure that it should be possible!
elvith@feddit.de 5 months ago
Well, usually those re-compilers or transpilers just translate the binary to some sort of intermediate language and then any backend should be able to compile it for your target system. So, in theory those handheld could be targeted. Problem with this project is that it’s not just “start transpiler, load rom, click go and your port is ready”. It’s more like "ok, here’s your game logic. Now implement the rest (or use several other projects and duct tape their libraries together to get what you want).
SeaJ@lemm.ee 5 months ago
Yes, that was kind of my point. N64 emulation on handhelds often sucks. So being able to have games recompiled to be better optimized on something like the Miyoo Mini would be great. While it is cool for the PC because it can allow for enhancements much more easily, just getting games up and running at a minimum is not an issue for any PC made in the last decade or two.
RagnarokOnline@programming.dev 5 months ago
Delta is a great app if you have iPhone and a Backbone controller 👀
mctoasterson@reddthat.com 5 months ago
Can confirm that 60fps Perfect Dark goes hard on the SteamDeck.
BobGnarley@lemm.ee 5 months ago
How did you get it to work? Any guide specifically you would use?
mctoasterson@reddthat.com 5 months ago
I just used the i686-linux steps here:
github.com/fgsfdsfgs/perfect_dark
As with most of these decomps there is no copyrighted material included in the link and you have to provide your own ROM (and a very specific version of it) in order to build and get it to work.
After that I believe I just copied the folders to the Deck, mapped it as a non-Steam game, added updated artwork with the steamgriddb plugin etc.
I might have messed with the controls a bit but I don’t recall. There is probably a more detailed Steamdeck-specific guide somewhere if you care to dig.
Eezyville@sh.itjust.works 5 months ago
This is all I need in life.
RegalPotoo@lemmy.world 5 months ago
Will be interesting to see if this is useful for non-PC platforms as well; I’ve got a Myioo Mini Plus (basically an ARM SBC in a GameBoy-esque case designed to run RetroArch) - it’s not really powerful enough to run a N64 emulator, but if I could recompile the games in my PC and run them natively then maybe that’ll work better?
Bartsbigbugbag@lemmy.ml 5 months ago
Idk about this, but the Mario 64 decompile was recompiled to run on my Anbernic 353 at 60fps, runs amazing. So I think it should be at least theoretically possible.
4am@lemm.ee 5 months ago
Emulating N64 is particular can be a lot of overhead - it’s possible this could help!
RegalPotoo@lemmy.world 5 months ago
Yeah, I was a little surprised - the MMP can do PS1 emulation no issue, but apparently N64 is too much. I would have thought it would be the other way round
Skyline969@lemmy.ca 5 months ago
When Conker’s Bad Fur Day is available with unlocked resolution and widescreen, let me know.
hakunawazo@lemmy.world 5 months ago
🎵 I am the grrreat mighty poo… 🎵
ILikeBoobies@lemmy.ca 5 months ago
Shame the sequel was just dlc for an unrelated game and only lasted a year before Microsoft pulled the plug
mememuseum@lemmy.world 5 months ago
I wonder if online multiplayer mods could be made for multiplayer games.
CallMeButtLove@lemmy.world 5 months ago
That would be awesome. My guess is yes but it would probably take a lot of work. Can you imagine N64 Smash online multiplayer that actually works?
TopRamenBinLaden@sh.itjust.works 5 months ago
You can already do this with some N64 emulators with built in netplay like, Project64KSE. There is a small community dedicated to it with a website here.
Smash Bros Melee is much more popular to play online nowadays, and there is a great update for online play called Project Slippi. It works with the dolphin GameCube emulator and makes it very quick and easy to find games against similar skill level players. It also adds rollback netcode, stats, and other QOL features.
CCF_100@sh.itjust.works 5 months ago
Easily. That works even in an emulator cough cough netplay cough cough
Support would be way better if implemented within the game itself (although I think that goes without saying, 😝)
DragonOracleIX@lemmy.ml 5 months ago
I saw a Ocarina of Time one a while back. There is also some tool that can link randomizers of different games togther.
owlboy@lemmy.world 5 months ago
Damn. Thats impressive.
Potatos_are_not_friends@lemmy.world 5 months ago
Seriously! To push through in spite of Nintendo’s reputation.
MonkderDritte@feddit.de 5 months ago
Higher FPS. Classical Ninendo games don’t use FPS as timer?
VindictiveJudge@lemmy.world 5 months ago
According to the video, game logic is still opperating at 20hz and the GPU uses frame interpolation to tripple the FPS.
MonkderDritte@feddit.de 5 months ago
Thanks! Didn’t watch the video.
Lifter@discuss.tchncs.de 5 months ago
I don’t think n64 did. They even had major frame drops in many games.
Mr_Dr_Oink@lemmy.world 5 months ago
I thought there were many aspects of the games directly tied to fram rate.
I know that, at least in the case of mario 64, Speed runners abuse game mechanics tied to frame rate to perform tricks such as backwards long jump and other door hacks. Marios eyes blinking are tied to frame rate, they used this to identify faked speed runs in some cases.
I imagine there must be other things aswell.
tabular@lemmy.world 5 months ago
Perhaps they add code to split physics and grsphical fps.
mesamunefire@lemmy.world 5 months ago
Has anyone been able to get this working? I was able to compile it for zelda but nothing else.
SatansMaggotyCumFart@lemmy.world 5 months ago
Nice try Nintendo lawyer.
FiniteBanjo@lemmy.today 5 months ago
When I saw this post yesterday I just thought “Ha, suck it dumb corporations who don’t know how to make their own IP work.”
But now that I’m seeing it again I just had the realization “HOL UP, raytracing? N64 Raytracing?”
ICastFist@programming.dev 5 months ago
Ok, any info on how that’s being done? It sure sounds like Wiseguy figured how to compile the code that was meant for the specific VR4300 (RISC) N64’s CPU for typical x86-64 architecture
bruhduh@lemmy.world 5 months ago
Apple Rosetta 2 technically recompiles code from x86 to arm too in jit and sometimes aot, also there’s box86/64 open source project, only difference between example I’ve said and OP is recompilation actually saves all results not just cache
werefreeatlast@lemmy.world 5 months ago
Nintendo is preparing to sue the proper technologies out of existence. Anyway, what did you say the researchers last names were? First names too if you got them. Nintendo would love an address and possible information on their whereabouts around lunch time. It’s all for the benefit of all players out there!
SplashJackson@lemmy.ca 5 months ago
Fuckin finally, I been waiting years to play Quest 64 in HD!
Mighty@lemmy.world 5 months ago
so. For dumb people like me (or just for me to be clear), how do I play those games? i watched the video and read the site. there’s a link to the MM gamefiles on GitHub, but the video said you still need the ROMs? or this RT64? I’m old and apparently at some point, you just lose tech savvyness… :( can I get a step-by-step?
refalo@programming.dev 5 months ago
this was always possible, not sure why people are just now freaking out about it.
I remember someone doing the same thing with NES back in 2013: andrewkelley.me/post/jamulator.html
MisterFrog@lemmy.world 5 months ago
Am I the only one who watched the video, and due to nostalgia upscaling my memory, could hardly tell any difference other than frame rate.
I should go look at the normal game 😅
buzz86us@lemmy.world 5 months ago
Damn perfect dark would be amazing with online play it was such a good game, and Microsoft pretty much killed it on Xbox
Petter1@lemm.ee 5 months ago
I need 60fps upscaled Pokémon Stadion with raytracing now 😌where?
whotookkarl@lemmy.world 5 months ago
Didn’t read the article, did Nintendo pay to develop this to be able to preserve the games history and release them for free so they can get some new fans for these retro games and IPs to maybe encourage them to buy some newer released games in the same series?
xnx@slrpnk.net 5 months ago
I wonder if this will help n64 games run on the retro handhelds. They can already play n64 pretty well but this might help increase the fps
Suavevillain@lemmy.world 5 months ago
This is really cool. I love emulation it is great to play old games with better options. I would love to see The N64 wrestling games get this type of treatment, I still play Virtual Pro Wrestling 2 often.
zcd@lemmy.ca 5 months ago
Nintendo right now: Get Boeing on the line
PeachMan@lemmy.world 5 months ago
Nintendo’s execs calling Boeing’s execs: “Hey, can you refer us to your…fixers? You know…rhymes with shmassassin…yeah you know, those guys.”
Pistcow@lemm.ee 5 months ago
Image
FiniteBanjo@lemmy.today 5 months ago
“You’re asking about our Garbage Men?”
“No, I mean… Wait, actually maybe…”
Kedly@lemm.ee 5 months ago
Smash Sassin*