2022-05-12: Ghost posting is now globally disabled. 2022: Due to resource constraints, /g/ and /tg/ will no longer be archived or available. Other archivers continue to archive these boards.Become a Patron!
Received this from a friend of a friend. Apparently they managed to decompile the whole of Super Mario 64.Enjoy: https://anonfile.com/D5rcz5u4n6/sm64_zip(there are no executables here, so no viruses. If you see a .exe anywhere, you downloaded the wrong thing)
>>5644072That's fucking AMAZING anon. Thank you, your friend of a friend and possibly Pannenkoek. Looking forward to a PS1 port with automated geometry subdivision.
>>5644072Very interesting, with the decompilation of SM64, does that mean possibly more advanced ROM hacks?
I’m stupid could someone pls explain the implications? Is it like having the source code or sumfin
>>5644096Yes, it is like having the source code or sumfin. A somewhat messy source code that probably doesn't look much like the original, but that is never the less far more readable and editable than a disassembly, and is capable of recreating the same game when compiled, or expand it within the limits of N64's hardware.
>>5644096That's exactly what it is — reconstructed source code. Like, not the original code (nobody has that), but reconstructed code that builds the same exact ROM as the original.>>5644092Absolutely.
what the fuck
Ah.. fuck. Which doofus leaked it I will smegging fucking KILL THEM. ..okay so it was definitely someone in the n64 decomp discord.To answer your questions, yes: This is a full source code which can be recompiled with modern toolchains (gcc: ive done this already) and even target other platforms (PC) with quite a bit of work. There already exists some proof of concept wireframe stuff.Just keep in mind that we weren't done yet. It's really only like maybe 65% finished, code and documentation wise. This codebase is an absolute treasure for preservation sake. Turns out if you compile your ROM unoptimized its really easy to get the uncompiled code from the assembly. Guess Nintendo should have double checked their CFLAGS before shipping US and JP.
>>5644117Not sure why you got that as there's literally no executables in the source package. Just text files/assembler files. It has to be compiled.
>>5644117That's a file in your Chrome cache (look at the file path in the warning). Probably some shady site or another that you visited recently. Clear your cache just in case.
And yes, pannen was indeed involved it the decomp. You see a snippet of the decomp code in one of his videos while he's explaining smth.
>>5644120it popped up as soon as i unzipped the archive
>>5644118>It's really only like maybe 65% finished, code and documentation wise.So you can't even compile it right now? What a letdown... Just for sheer curiosity, how does the M255 life glitch look like in this source batch?
>>5644128It's not in the extracted path, though. Again, look at the path. If it was in the extracted files, it would be in your stuff (not within Chrome's data), and you'd see sm64 in the path.
>>5644132Don't misread me. 65% just means the renamed stuff from raw variable names like func_80F00F00. and D_80F00F00. You can compile it in its current state and it will produce a working Super Mario 64 ROM.
Cool it added a bunch of gay toolbars to firefox
>>5644117Don't use a shitty antivirus, retard.
>>5644118Also, can you will you be able to compile a 1.00 Japanese ROM with non-Japanese text?
wens modconv going to be ready red?
man whoever wrote shadow.c must have been a str8 up genius
im gonna pee in my sock and poop since this got leaked. fuck shit ass. Anyways, yeah, more advanced rom hacks n shit. its how sm64 randomizer was made
>in our lifetime we will have a definitive, 100% moddable PC port of Mario 64
>>5644136I see, sorry.>>5644145That's super sweet.
that guy who added f3dex2 must be a real chad
>>5644134this sounds like something that a person who is trying to give me a virus would say
This is like the perfect plan to topple the SM64 scene and ensure lulz, holy shitGet decomp access, wait until it's "finished" as in can compiledownload zipLet it run wildreport it to Nintendo's legalDMCAs galore, the scene all but collapses, killing decomp projects once and for allWhoever leaked this, you're a fucking evil mastermind but an intelligent one
How retarded would you have to be to download a zip file from a stranger on here?
>>5644179nice fake shot anon
>>5644185.zip files are safe; it's their contents that can give you troubles. But if none of the contents are executable...
>>5644118>Ah.. fuck. Which doofus leaked it I will smegging fucking KILL THEM. bakuDD detected
>>5644181>Whoever leaked this, you're a fucking evil mastermind but an intelligent oneMore like some kid who got into the loop and doesn't understand the implications of releasing it early.
>>5644181>DMCAs galoreTo which entity?
>>5644212They may be provided with leads
>>5644189There's no good reason to have a zip file for this. Put it on github or stfu
>>5644125I thought he added a note in the video description saying he had received the code from someone else?
>>5644274go ahead and do it; nobody's gonna stop you
Someone send it to Kaze
>>5644296he worked on it
>>5644296he worked on it, so did pannen
how do you guys know who worked on it?is there a list of people somewhere?
Hi, Decomp dev here. This build is incomplete and shit. You won't be able to make levels as the display list converter isn't there. Plus audio isn't decompiled. Good luck on that one lol. Also this will be pain and suffering to compile because you don't have IDO. If you want to really hack sm64 from its' C code, you would best wait for the public release. Which will probably be on 4Chan too. I have a strong suspicion who leaked this. Don't mob them though, we don't know yet. But he is an annoying cuck who made Mario Eating Spaghetti Simulator in Python, so who knows.
can we add anime tits to mario 64 now?
haha it got leaked. You guys hire wayyyy too many people so it would eventually get leaked
>>5644564Tell Red to finish modconv, then we're talking.
>>5644508le epic troleidk what ido is supposed to be but there's an ido5.3_compiler folder in the zip, inside the tools folderno way you're a real dev
>>5644645shut up devwizard
>>5644118>okay so it was definitely someone in the n64 decomp discord.>discordABANDON SHIP MAN THE HARPOONS
hahaha this is so funny :)lakitool is so great! :D
There's another thread about a Spongebob game that can be compiled into a PC version, could the same potentially be done here?
>>5644072Another friend of your friend mouthed off about it on discord enough to leave some hints who that might be. Thanks a lot to you (the release guy) and the original creator of the disassembly, but please take care in the future who you talk with.
>>5644965nvm, read the other posts. So the dev was not onboard? shitty move desuwhy release anything nintendo related before it's ready ffs, that kills projects
>>5644325Makes sense, no wonder his rom hacks look way too advanced.
>>5644965fuck yourself faggot
Can someone who worked on this elaborate on how you go from a disassembly to a decompilation? Would it be feasible if I wanted to decompile my own games? Where do you get stuff like variable names and project structure from? Is this from trial and error, knowledge of the devkit, or is it somehow already in the rom?
>>5645517Can't say I worked on this one, but I've worked on other projects for some consoles.You don't get variable names and project structure from anywhere. You make those up. When you first decompile a function, the function is typically given either a serial number (function442) or a name based on its address (function8182938); variables are likewise given short, numbered names and/or names based on their allocations into registers and stack. Something similar happens with the actual file structure, with files being created to represent contiguous decompiled parts of the ROM and given dummy names.As the decompilation progresses, you can read the code you have reconstructed in an attempt to understand it. Making trivial changes and building a hack ROM on the spot is sometimes a way of testing if your guesses are right. Once you have confirmed that some block of code does what you think it does, you can rename it. This is of course a very manual process, and that's why all decompilation projects have some unrenamed components — refer to someone's comment about this project having variable names like D_80F00F00 (a few comments above).As for the actual process of decompiling the game, the first step is to determine the language used to write the game in the first place, and find the exact compiler used — all compilers produce different code, so you'll never be able to match the original code with a different compiler. From a quick perusal of the release, this project uses IDO 5.3 as its C compiler (the file in the distributed package is tools/ido5.3_compiler/usr/bin/cc), which is a proprietary compiler from ancient times; I wonder how they got a copy of it. Some quick googling tells me it was once upon a time freely available, but I couldn't find any working downloads.Once the original compiler is found, the process is almost entirely trial and error, although familiarity with the code produced by the compiler makes it a lot easier.(continues)
>>5645517continues >>5645590It basically consists of finding a function in the assembly code (typically quite easy since compiler-generated functions tend to have well-defined boundaries, particularly if the compiler is old), reading the code, and writing equivalent code in the original language and feeding it through the compiler. That will generally produce code that doesn't generate the same assembly output, but if the rewrite was good, the output will often be reasonably close — this essentlally counts as a first guess. Having achieved this first guess that gives some reasonably close output, the source code is refined by making small changes until the exact original output is matched. That's how a single function is decompiled.Decompiling the whole ROM basically requires decompiling all of the functions, one after another. It also requires decompiling the data. This is typically easier to do once the code is understood, but the basic principle is the same — rewrite the data in a way that generates the same binary output. Since data doesn't undergo a transformative process like code does (compilation turns source code into assembly that looks completely different), this tends to be easier, but the trick is to rewrite the data in a way that is meaningful towards understanding the code and the data itself. Again, this is where knowledge of the decompiled code and experience kick in.Sometimes, the data can be transformed back into a more user-friendly format. For instance, old ROMs tend to use ad-hoc formats for their image data, but images are a lot more easily edited if converted back to a known format such as PNG. Something similar happens with sound and other subsystems. The process of converting this data back to a known format reversibly (i.e., in a way that the correct binary output can be generated) is about as hard as decompilation itself, and generally relies on similar principles.(continues)
>>5644138Is there anything even good anymore? I just kind of trust windows defender to do the trick and that my bank account is too broke-ass for anyone to scam.
>>5645517continues >>5645590 and >>5645606All of this put together is what results in a successful decompilation project. A full project will contain reconstructed source code, reconstructed data, and the necessary tooling and scripting to convert all of this back into the original binary without requiring a copy of that binary.Of course, even when decompilation is "finished" by some definition, documenting it (i.e., going back and renaming everything with dummy names, adding comments, adding explanatory documents, etc.) is always a good step towards improving the quality of the project.
>>5644072So now you can port this to the snes right?
This is extremely exciting! I hope the early leak doesn't hamper the public release.Could this code be used as a starting point of an Ocarina of Time decompilation? I know they have the same engine, but I'm guessing OOT is heavily modified and made with a less basic version of the compiler.
>>5645590SGI made IDO 5.3 freeware. It's on their FTP. The FTP is dead, though, but 5.3 is freeware, so it can be free redistributed.
>>5644138Hey dickweasel. SHUT THE F UP!
>>5645636OOT uses IDO 7.1 with -O2 -g3 at minimum. The fact 7.1>= is used complicates matters. Furthemore, the code actually is optimized, meaning it'll be a bit trickier to guess the original C for lots of functions. It's still possible, but it's like drilling through a sheet of steel. SM64 was drilling through a piece of paper. We have Nintendo to thank solely because they left the ROM unoptimized.
>>5644508>But he is an annoying c*ckOnly annoying guy here is you kiddo.
>>5645682You don't know half the story about this guy. Actually, he's somewhere around 15 years old. I have no clue who thought it was a good idea to let him in. I could post some of the absolute sperg smg4 clone shit he uploaded on his YouTube channel but he took it down and I'm not arsed to find the video file again
>discordfag dramaWhat is it about discord that brings out this kind of thing?
>>5645857modern day forum power battles, same shit just fasterFor all its flaws I will always be thankful for 4chan's anonymity
all discord fags need to leave and stop shitposting. Everyone can tell you fags are just replying to eachother. Keep it to your shit server
>>5644108>original code (nobody has that)its sitting in a vault somewhere
>>5645864you're right, 4chan has some very trash aspects but i can still call you a bitch fag without you having much recourse and for that im thankful :)
>>5644137You are the dumbest person alive
figured out how to compile it BTW. here's some instructions that even all of you fucking faggots can follow:1] have windows 10 or linux. ill just assume you have windows 10 since if you dont have windows who the fuck are you2] https://docs.microsoft.com/en-us/windows/wsl/install-win10 install WSL here use power shell and shit3] grab ubuntu 18.04 LTS or smth from the windows store (restart first you idiot)4] run bash and make a user/pass5] sudo apt-get update6] sudo apt-get install make git binutils-mips-linux-gnu python3 build-essential pkg-config zlib1g-dev libglib2.0-dev libpixman-1-dev libcapstone36] grab the qemu-irix binary from releases tab of camthesaxman/qemu-irix on github and put it somewhere.7] echo "export QEMU_IRIX=/mnt/c/mypathtoqemuirix/qemu-irix" >> ~/.bashrc8] restart bash again you spegger9] cd to the folder you put this source and run "make"10] the built ROM is in build/ you fucking idiot11] get sued by Nintendo
Because I'm a worthless hack (and not a programmer) I'm going to ask that you (and not me, who should actually do it) do something cool with this and make the true super mario 65 that we were all waiting for. No seriously though I hope this ends up in some appropriate romhack. I wish for the same thing to happen to OoT.
>>5644092Yep. The Sonic and Pokemon romhacking scenes put out some fairly impressive stuff because they have nice, documented, and split (so it's not just the unreadable automatic output with data mixed in with code and the lot) disassemblies. You can insert and remove things at will without having to care that much about the existing placement of items in the ROM. You can properly change existing routines instead of money-patching them. You've got a bunch more possibilities open to you as a ROM hacker.>>5644181there are disassemblies available for checkout from fucking github that haven't been C&D'd
>>5645929I'd rather a place on Freenet or ZeroNet where hiroshimoot can't sell your information to CIA niggers for posting lolis. :)
>>5646380So clone the source and upload it.
>>5644675It may sound a little suspicious, but I'm a software engineer (Enterprise, your web dev C#/.NET shit) who has dabbled in the low level stuff, and I've always been interested in learning about how this type of reverse engineering is done - is it possible to join this group (I assume not since there's obviously a privacy issue)? Otherwise is there any good material you could recommend reading, etc?
>>5645617This is super interesting - thank you for the through breakdown. It also sounds tedious as hell and like a labor of love
so are we gonna get a ps1 port of mario 64
>>5644118>and even target other platforms (PC) with quite a bit of workTHIS IS HUGEPC PORT WITH MOD SUPPORT FUCKING WHEN
Now if only we could get a somewhat documented Ocarina of Time source.This is pretty neat though. I might tinker with it later.
>>5646750Ocarina of Time PC port. With mod support. Holy shit I can only cum so hard.
>>5646686>with quite a bit of workdo it yourself or be prepared to wait a long time
>>5644489Nice try, counsel for Nintendo
>>5644489Kill yourself faggot
>>5645613Common Sense 2019
>>5645854discord is like a zoomer magnet. you should've really opted in for IRC server since it's not enough flashy and you can't post and upvote epic memes.
>Want to port it to PC but can't code for shit
>>5646380libertarian faggot, stop posting lolis ,`:o)
>>5646967Have Self-Induced Penile Regurgitation ('· ω · `)
I downloaded this and there is some weird gas coming from inside my computer. Did I do something wrong?
>>5644950From what it seems yeah, it would take some work I assume but it could be doable.
>>5647213Download Google Ultron
>>5645974>11] get sued by NintendoMy favorite part.
So, I was able to compile this and stuck it on my flashcart. Lo and behold Mario 64 booted up.It's real y'all.
>>5645854You bitching about your friend I don't give a flying FUDGE about is irritating. Get over it.
>>5646574bumping for an answer on this. At least just learning about reverse engineering. Similar background.
>>5646574>>5648051I know some of the people involved in this and they are like super secretive at times (imagine full panic mode when the leak happened), but drop your Discord usernames and we'll see if they want to reach out to you.
>>5647581DONT DO IT IT MAKES MUSTARD GAS
>>5648051It means literally nothing. You can decompile every windows program trivially. Actually making proper sense of the garbage that comes up is another thing entirely. All these games have been in some sense decompiled since forever. They're always coming up with massive claims and hype trying to act like they're on to something when the best they can do is a romhack (which is cool but clearly very different to an actual source).
>>5644118>>5644136Wait so it's actually fully functional, just not fully readable/understandable yet?
>>5649483Yeah, to summarize.I've been playing with the source for a little while now, pretty much everything you'd want to immediately use/have access to for rom hacks is documented/named/understandable/etc.But there's still quite a bit missing. In general though, this would be far, far easier and better to make hacks out of than just the rom and tools.
>>5644072>media files decompiled to meaningless code while libraries to play media aren'tApparently they didn't manage to decompile the whole of Super Mario 64
>>5647297never gets old, kek
Well, that helped.
so does this help with emulation or is it just for porting to windows?
When we get a model importer/editor, I might make a actual full on hack using this.This is really cool and I've been able to do so much shit with it that would normally take me weeks of effort.
Someone really needs to set this up on a github or something so me and others can actually contribute to it.I'm probably going to be using this as a base for a hack, and even make some tools for it. I'll no doubt be renaming functions and stuff on my own, it'd be great if that could actually help others.
>>5645894Actually it could be lost forever, i know lots of companies dont give a shit about their games' code once they are released. Especially back in 96. They might have even just deleted it after the game was released.
>mario 64 is now free softwareAmazing news
>>5652558Excuse me, I believe you.meant GNU/mario. Mario is a character, not a piece of software.
Do you guys have the link to the N64 decomp discord, I am genuinely interested.
>>5644118Interesting! Thanks a lot But since this is under the guise of "preservation" and if you guys were never actually intending to release it, then fuck you.
>>5652367I think the repository is at https://github.com/n64decomp/sm64 but it is set to private
>>5646750>>5646751I don't give a shit about any of this.Give me GoldenEye, you cowards.
>>5652558Except that's not how free software works.
>>5653574but anon, i didn't even pay for it
>>5644126This. Otherwise it would be cool.
>>5644092Yay! More useless hacks that play like shit, made by talentless morons.
>>5654083If anything this being out SHOULD encourage more grounded hacking within the confines of the engine, rather than the Project64-based 'scene' popularized by meme loving zoomers it has right now. It'd be great to have some shit that's not only good but plays on a flashcart too.
The possibilities here are endless. A PC port. A PSX port. Analog camera controls. True 60fps. A Remaster with the original physics and controls. Real Time Ray Tracing.
anonfile link is dead, anyone who nabbed the decomp can you re-up??
>>5644118>n64 decomp discordis this some secret club? im trying to decompile the masterquest debug rom of OOT. you guys doing that?
how do you get invited to this secret discord club
>>5652952I can guarantee you they weren't going to. These are the same people that hoard ROMs
>>5654740The link is fine, what's your email
>>5654821>im trying to decompile the masterquest debug rom of OOT.How far along are you with that?Obviously easy to assume not very far, but I'm curious.
>>5644181how does this kill the scene? nintendo can't assassinate everyone who has the decomp'd version and mario 64 mods by themselves arent cause to DMCA
>>5645613It depends. AVG is definitely shit. But you can't trust most Antiviruses completely. They sometimes give off false-positives towards the most harmless things and sometimes don't detect things completely. I once downloaded a mod that was a false-positive but I trashed it because I thought it was a virus, then downloaded another mod that WAS a virus and got fucked over this way. I dropped AVG after that. You'd be far better off using Avast or Malwarebytes whilst also using common sense in terms of false-positives. Always be careful of WHERE you download it from. Half-Life mods are the most riskiest because most of them are done through exe installers.
>>5644508>its'What compelled you to use an apostrophe there?
so for people that got it can someone extract the texture that makes the metal reflection
>>5655314damn i though it'd be easier to see what it is
>>5655319it had a 2kb texture memory after all
>>5655319Gave it a go. It's really too small to make anything substantive out but it looks like someone standing there in the middle?
>>5655319It looks like someone taking a picture of the viewer/another camera.
>>56553204KB2KB is the PS1
>>5655342Looks like a dog
>>5655314>when you use the texture preview thumbnail as your actual texture
>>5655839that was the best one i could find plus it fits the size limit, care to share the full version?
>>5655930Think he was just making a joke about how small it is in the game itself.
>>5655947Also the texture is polar mapped instead of being a square. You lose the corners.This is also how modeling programs display textures on their ui
>>5655839how huge is this?
Show us your boobs!
>>5644189Just because a file isn't an executable doesn't mean it's safe. Exploits exist in all sorts of software that handles different types of data. I'm not saying I'm worried about that with this file just that there's no reason it couldn't be a poisoned file.
>>5644146>>5644146You're right, shadow.c is pretty great. That person should rewrite the whole thing.
Will it be possible to make a MacOS version for this or will it run well on Wine?
It's already on github here: https://github.com/SM64-TAS-ABC/sm64_sourceJust set to private
Now that the source code is out. Somebody should try to port this to DOS (With 3DFX Glide and Gravis Ultrasound support)
Can someone explain to me why they didn't want the code to be public until it was 100% complete? The DMCA explanation doesn't convince me, there has to be more to it, right?
Hey guys, I tried to compile this in WSL, but I get the following error when I try to MAKE:```[email protected]:/mnt/c/sm64/sm64# makeqemu-irix -silent -L tools/ido5.3_compiler tools/ido5.3_compiler/usr/bin/cc -c -Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm -Xfullwarn -g -signed -I include -I build/us/include -I src -D_LANGUAGE_C -DVERSION_US=1 -mips2 -32 -DF3D_OLD -o build/us/src/engine/surface_collision.o src/engine/surface_collision.ccc: Error: can't find or exec: /usr/lib/cfe : No such file or directoryMakefile:399: recipe for target 'build/us/src/engine/surface_collision.o' failedmake: *** [build/us/src/engine/surface_collision.o] Error 1```Does anyone have nay clue how or where to get 'cfe'? Thanks in advance!
>>5656974,7Because right now there's stiff functions named like fucking garbage
>>5656974,10Sorry, I meant to quote >>5656974,8
tools/ido5.3_compiler/usr/bin/cc: ELF 32-bit MSB executable, MIPS, MIPS-I version 1 (SYSV), dynamically linked, interpreter /usr/lib/libc.so.1, stripped
>>5654083Top Kek. Look at that untalented fucker who can't even code. Trust me, SM64 hackers can code better software than your lazy ass ever will.
Here's a torrent in case anybody want ithttps://anonfiles.com/l9Mco7I9o6/sm64.zip_torrent
>>5644139>But since this is under the guise of "preservation" and if you guys were never actually intending to release it, then fuck you. Very late to the party, but literally this. Fucking glad it got leaked, or otherwise we would have some elitists now making amazing SM64 Hacks while all others would still suffer to figure out how to edit animations by hand. >>5656974,8Very late answer. To make it short: They actually never intended to make it public, so it seems. Revo, the maintainer of sm64-decomp, posted on this thread as you can see and said the following: "This codebase is an absolute treasure for preservation sake." That heavily implies that he never intended to make the source public at all. What a douchebag. I'm glad that some courageous knight in the discord leaked it to the world. That way we prevented an uprise of some elitist class of SM64 Hackers. A credo in the ROM Hacking community that always should be followed: If you find something, SHARE it. Especially a huge project like this rightfully deserved to be public.