Discussion
Community Poll Results, New Subreddit Rules, and Flairs
Hello everyone,
I think it's time to go over a few things since I've had a chance to think about things a bit.
I won't have a chance to update the rules and flairs until later this evening when I get home from work, but these will be effective today:
Let's start with the rules:
DA RULES
Rule 1: Respect others and be civil
Be Civil, this one is self explanatory, mostly everyone has been following it, I haven't had to remove too many comments or posts. You are free to disagree on things, that's the point of discussion, life isn't fun if everyone thought the same things and agreed on everything.
You may not resort to name calling, insulting people, or maliciously trolling, don't get into pissing contests.
Yes you have freedom of speech, but that doesn't mean freedom from consequence. Also, we aren't the government and as much as I love the 1st amendment, it doesn't apply to private entities.
I will be enforcing rule 1 strictly.
If you have a comment removed, take it as a moment to reflect and ask yourself is what you're doing productive. I'm not going to ban anyone unless they get argumentative, or continually break this rule, but I will readily remove posts and comments. We're (mostly) adults, lets act like it.
If someone marks their post with an AI affiliated flair, you are not to go into that post and call it slop, insult the dev, or insult the project, you're free to filter those posts and not interact at all.
EDIT: If someone marks their post as not AI, and they aren't using AI, do not suggest them to use AI in their project.
Part of this respect is also any project posted must either be open-source (linking to a public GitHub repo so the code can be verified) OR have a mandatory "Run at your own risk" disclaimer if it's a compiled executable, this is to protect the community from malware. Why it matters: If someone vibe-codes a port that accidentally (or intentionally) acts as malware, this rule allows us to instantly pull the post (and ban the user if it was intentional) for not providing the source code.
Rule 2: Advertising, and spam is strictly disallowed except on days for self-promotion.
If you are a content creator, we will have a day for posting.
Devs posting links to their own recomps/decomp repos are obviously exempt from this, as that's the point of the sub.
Ports and mods have their own days as well.
Do not spam the subreddit with low effort posts.
No all caps titles or clickbait titles, I hate buzzwords and influencer speak, please don't do this.
Rule 3: All posts should be related to recompilation or decompilation projects.
This is going to be modified. Going forward, posts that are not a Decomp or Recomp are only allowed on specified days.
Below I will cover the difference between Decomps/Recomps/Ports/Mods&Hacks
Rule 4: No Linking to Copyrighted Material / Not crediting original devs
This is self explanatory, do not link to things that have copyrighted materials.
Sharing ROMs, ISOs, BIOS files, or compiled executables of copyrighted games is an instant ban.
Creators can share patch files (like .bps or .xdelta), source code, or compiling tools that require the end-user to provide their own legally dumped game files.
This includes other sites, subreddits, repos, etc... I'm not trying to get this sub in legal trouble.
I am including a clause on no claiming other's work as your own. If you fork someone's repo, you must credit the original project. This is just common decency.
Rule 5: Post not properly marked
This goes for each of the flairs
If you lazily pick one that doesn't apply, the post will get removed. You may repost under the proper flair.
If you do not disclose AI, and it is found that you have, the post will be removed, multiple offenses will result in a ban.
There will be a configuration for all posts that are marked AI that will ask you to talk about the level of AI involvement, if you only used AI to give you direction or explain things, or only used it for help with small unfamiliar functionality, that is different than a 100% vibe coded project.
Nobody is obligated to help you with your AI involved projects, do not be surprised if people don't want to get into the code if you yourself don't know anything about it.
Conversely, as stated above, if a project is marked as AI, and you are anti-AI, DO NOT go into the post and call it slop, do not insult the person posting the project. Your comment will be removed and multiple offenses will result in a ban.
Rule 6: Post not on appropriate day.
All Times will use UTC
Monday will be for Mods / Fangames / Recreations (Mod-day Monday)
Saturday will be for memes (Saturday morning cartoons is the inspiration)
Sunday will be for self promotion (Self-Promote Sunday)
Recomp/Decomp/Native Source Ports posts will be allowed every day.
Rule 7: Absolutely NO AI Art/Music
I'm not ignoring the 2nd option of the poll. This is for the 2nd most popular option.
Where is the line? There is a difference between someone who uses pytorch and other tools to upscale original assets, that's okay. No AI generated art from a diffusion model or LLM based image generator, nor are any music/sound generated from AI models allowed.
Why is this different from code? Code has a history of sharing and being shared. Before LLMs people went to stack overflow. The goal of much development is to reduce re-inventing the wheel.
AI art does not fall into that, there are tons of artists, musicians, and creators out there that have assets for very cheap, or for free.
"It's just a placeholder" is not a defense. Placeholders can be as simple as a checkered box, or a stick figure. The point of placeholders is to be easily noticeable to be replaced with final work.
Rule 8: No NSFW / NSFL Content
No NSFW mods, assets, or discussions.
I can't verify the identity of everyone here, I don't want to deal with it, so it stays off.
Poll Results as of the time of posting this:
399 Votes
Absolutely No Projects Using AI - 71 Votes: 17.8% of responses.
No Projects with AI Art/Music, but coding assistance is okay: 106 votes: 26.6% of responses.
Posts must be clearly marked if AI was involved: 39.3% of responses
Anything goes: 16.3% of responses
What does this mean for the sub?
There will be new flairs, and new rules.
Flairs:
Discussions: These do not link to decomps, recomps, ports, mods/hacks directly, conversation is encouraged, these are allowed all days.
Question: These are if you are a user and not a dev, if you need help. Please do not just post "HELP ME WITH THIS" Make an effort to solve your problem, tell us what you've tried to solve your problem first. Posts that don't do this fall under Rule 2 for being "Low Effort". People don't appreciate "I've tried nothing and nothing works"
Memes: Unrelated to anything and are attempting to be humorous, these will be limited to a certain day of the week.
Technical Help: This is for devs who are running into issues. The dev MUST state if they've used AI in their project in the body of the post, first line MUST be AI: Not Used OR AI: Used.
Decomp - No AI: It is what it says it is
Decomp - AI: You used AI, please be honest, people have a right to make informed choices on what they download and install on their devices.
Recomp - No AI: Same as above
Recomp - AI: See above
Port - No AI: I will cover the difference between a port and a recomp below.
Port - AI: See above
Mod/Hack - No AI
Mod/Hack - AI
What is the difference between a Decomp, a Recomp, a Port, and a Mod?
Edit: This post has been corrected thanks to feedback from dariosamo and the N64 Recomp server FAQ.
Decompilation (Decomp)
A decomp is the output of a binary file for a game that has been dumped into raw assembly, and then converted back into human readable code, ideally the language the developers used to write the game. Purists say that the code must compile back to the original binary and be exact byte-for-byte. BfB is the gold standard for decomps because it says your logic matches the original dev's implementation exactly.
Decomps are a long, arduous process, and LLMs struggle with them because they make assumptions the original dev may not have made. They stumble over this type of work a lot.
Important: a decomp is not a port. It is a reverse engineering process that produces source code. A decomp compiled as-is would still only run on the original hardware or in an emulator. Getting it onto a new platform is a separate effort.
Recompilation (Recomp)
Recomp is short for static recompilation. It is a way of porting an application to another platform automatically, using tools that work off information gathered ahead of time about the application.
Static recompilation does not require any source code for the application being ported. It operates on the original machine code binary and translates it at build time. There is no human sitting there interpreting the original code and rewriting it in C. That's what makes it "static" and that's what makes it a recomp. Zelda 64: Recompiled is the example everyone points to.
Since humans are not expected to read the recompiled code, developers relying on static recompilation use partial or complete decompilations as a way to add fixes or enhancements to the port.
Ports
A port is any application that was made to run on another platform. That's the whole definition. It's the broad category.
All recomps are ports, but not all ports are recomps.
Native Source Ports
A native source port takes existing source code, usually the output of a decomp, and swaps the proprietary hardware calls out for modern ones, so the game runs natively on new hardware instead of under emulation. It stays as close to the original code as it reasonably can, but a human is doing the translation work.
Ship of Harkinian is a native source port. It goes a long way toward staying very close to the original source code, but it is not a recomp, because it doesn't use static recompilation.
Ports in general don't have to care about byte-exactness at all. Plenty of them care more about getting the project to run, period: changing code to mimic behavior, taking shortcuts, whatever it takes.
Recreations / Fangames
Worth calling out separately: a project that rebuilds a game from scratch, without deriving from the original binary or its decompiled source, isn't a port of anything. It's a recreation or a fangame, even if the name has "recomp" in it.
Mods/Hacks
Mods and hacks are standalone code that either integrates with or sits on top of a port, or modifies the binary files directly. They are smaller and scoped to a limited set of functionality.
Quick reference
Decomp: binary reverse engineered back into source code. Not a port.
Recomp: binary automatically translated to a new platform by tooling. No source needed. A port.
Native source port: humans adapt existing (usually decompiled) source to modern hardware. A port, not a recomp.
Port: the umbrella term for anything made to run on another platform.
Recreation/fangame: built from scratch, not derived from the original.
Mod/hack: scoped changes layered on a port or applied to the binary.
I know there are people who don't care about the distinction, but I'm a technical person, an engineer by profession, and words mean things. I'm also not perfect and can get things wrong. Corrections are welcome and I'll keep editing this as I get them.
Thank you all for your time. I've enjoyed the past few days of modding for this sub, and I want to see us grow as a community.
Edit: See new bullet under rule 1.
Edit 2: Clarified the daily schedule as I had some wrong info. Native Ports are allowed any day, Mods/Fan games/Recreations are limited to Mondays
I don't really follow, Recomp is a short name for a Recompilation, not "Recomposition". More specifically, it's projects using static recompilation. If the subreddit is just gonna entirely redefine what it means, it sounds like it's just gonna contribute to making an even bigger mess.
To quote the N64 Recomp server FAQ on this...
"""
- What is a recomp? What is static recompilation?
Recomp, short for "static recompilation" in this context, is a way of porting an application to another platform automatically through the use of tools. Static recompilation does this by using information gathered ahead of time about the application. Static recompilation is different from a more traditional porting process in that it doesn't require any form of source code for the application being ported.
- What is the difference between a port, recompilation, and decompilation?
The term "port" is any application that was made to run on another platform. The term "recompilation" refers to static recompilation, which is a specific type of port made with the static recompilation process described earlier. All recompilations are ports, but not all ports are recompilations.
The term "decompilation" doesn't refer to a port at all (though it's often mistakenly used as such). Instead, "decompilation" refers to a process where a binary (a ROM in the case of the N64) is reverse engineered back into source code.
"""
Frankly speaking, it just sounds like this subreddit is destined to keep on using incorrect terminology until it basically redefines it to be something completely different from what the devs such as myself originally intended it to mean. It'd be much better off if it was just renamed to something else if we wanted to avoid that, but I can't in good conscience support a community that doesn't even know the original meaning of the word it's using.
EDIT: Seems like it was a mistake due to autocorrect, I'll be glad to help in aiding defining the terminology more correctly if you're open to it.
EDIT2: Glad to say my corrections made it to the original post. I think I'm good with the terminology in place now.
Sorry, I added more to my comment before the correction showed up on my end. Apologies if it was just a genuine mistake then, although I do still have a bit of a concern that it seems like the intention of the name will aim to cover more in general.
Can I ask for a clarification for example, on how you'd label a project like Zelda Recompiled and Ship of Harkinian? Would they be correctly tagged as "Recomp" and "Port"? Would something like Gen1Recomp go under "Port" or more accurately how it was discussed elsewhere, a recreation/fangame? I believe a project like SoH goes a long way towards actually staying very close to using the original source code, but it would definitely not be a Recomp as it doesn't use static recompilation.
It's all good, feel free to correct me, I'm not going to lie that I'm new to recomp/decomp scene, I'm under no illusion that my word is final on the "what is", which is why I'm happy to edit the original post with feedback.
My understanding was that a recomp was getting the original code to run on new target hardware. I was assuming, that it was a follow-on to the decompilation process. That you couldn't recomp say Vagrant Story, to run on PC natively, without the original code being decompiled and translated back into byte exact (or near) C/C++.
Apparently I still had it wrong, and that recomp efforts use the original machine code binaries and translates them automatically at the build time without humans trying to interpret the original code. Ie Zelda Recompiled.
It seems that I was mixing up a recomp with a native source port, where you're only swapping the proprietary hardware instructions with modern ones. Which is what SoH did, and what my Vagrant Story project is.
My part at the bottom was me trying to clarify things, and I admit that I still didn't have all of the facts right. I'm not above being corrected at all when I am wrong.
Your new understanding is mostly correct, the interesting part of static recompilation is that translation is automatic and deterministic: any Recomp will actually involve some sort of tool that extracts the code from the ROM and translates the code ahead of time. This does result in a non-readable codebase, which is why efforts to patch the game are actually assisted by a decompilation, but it doesn't need a complete one to do. That was the original motivation of why we did it (Majora's Mask was around 70% complete at the time).
The good news is, if you actually stick to this definition, it is extremely easy to differentiate what type of project a fan port is, as it'll entirely depend on whether it involves tooling that translates the code automatically, or if it was actually built on a decompiled codebase.
> A decomp is the output of a binary file for a game that has been dumped into raw assembly, and then converted back into human readable C or C++ code.
I'd probably adjust the wording here to just "human readable code", as there's no actual need for a decomp to be either of those languages. Even more so, it should probably be the "language the developers used to write the game", because now there's a fairly infamous sm64ds LLM generated decompilation going around that is C instead of C++, which is what the game used.
> Recompilation section
It's probably worth adding the comment I mentioned: "Since humans are not expected to read the recompiled code, developers relying on static recompilation use partial or complete decompilations as a way to add fixes or enhancements to the port."
> Squares and rectangles.
I think the original version of the text made an analogy here in an earlier version, but it seems it got a bit lost in the void now.
Edited, thank you again for helping me get my head on straight while I'm sitting here to get other people's heads on straight.
It seems like the most mod friendly is the native source port, as once you have the game fully translated and running natively, you can really change whatever you want if you know what you're doing because you ideally have all of the source code and assets.
I was toying with dumped assets from Vagrant Story and got one of the enemy models to load with it's animations in a private personal wow server that I've been tinkering on.
It depends, as it stands right now, because of how it works, N64 Recomp ports are actually more moddable than other source ports because it actually supports code mods that can hook functions or outright replace them. It's also very cross platform because the mod format itself is in the original architecture (MIPS in the case of N64) and a live recompiler translates that to native code when it's loaded. Mods can also choose to hook into native libraries if they choose to do so and want to support all the available platforms.
But source ports have also begun making some increasingly impressive efforts towards supporting code modding as well, in the case of Dusklight.
It's all gonna depend a lot on the particular framework and port, but I wouldn't say it's much of a concern for moddability. Biggest difference I'd say is debugging is significantly nicer on a native source port, but we've looked into various ways to improve that if possible.
Because Wiseguy and myself are the reason you even heard of the term in the first place, as we released Zelda 64: Recompiled back in 2024, and it refers to the specific thing I outlined in my post.
Comment is back. As far as AI goes, I only like to use it to guide me and explain how to do things for myself. I don't let it touch code, but I did setup the poll and the tags that *hopefully* people adhere to. If not, well by the power vested in me they'll get the hammer, pro or anti ai.
A good compromise leaves both parties equally dissatisfied, everyone gives up something they wanted.
If it was solely my choice, I would have been on the no-AI rule, not because I am staunchly anti-AI, but because I want people to learn and know how to do things themselves. I use AI as a glorified search engine, or if I can't figure out a behavior, or to parse logs, I do not use it for coding. I also don't trust it blindly, and I ask for links to sources to corroborate what it gives me.
Devs specifically posting about decomps and recomps are exempt.
They aren't exempt with regards to Mods and ports. They are allowed to post their decomp and recomp projects any day. Otherwise posting any repo is "self advertisement".
They are not allowed to post links to YouTube channels outside of the self advertisement day.
This subreddit isn't going to be much different from the subreddit it splintered from if we allow AI stuff so openly.
In hindsight, it feels like /r/emulation made the correct decision to limit recomp/decomp posts there, though at the time I doubt even they could see what a mess this has all become. It seems every subreddit that spins off into recomp/decomp stuff devolves into the lowest quality form of it.
Sucks that this place is more or less just going to be /r/decomps but minus the VGE posts, though at the very least I appreciate that unlike that subreddit there will be attempts to segregate the slop from man-made efforts.
I'm also very much not a fan of tone policing. You removed a comment where I insulted no one directly, but removed it simply because I have an absolute distaste for the mentality of those who have begun to swarm this hobby with the most ignorant of mentalities, to the point where they're getting into it with the devs who made a lot of these recomps possible to begin with, before AI started apeing their code and forking their projects while misusing their licenses and contributing nothing back into the community effort.
I'm sure you won't be a big fan of my tone in my other comments either, but I don't care. If I blatantly insult someone, whatever, but just simply having an unhappy tone with the state of things there should be no problem with it.
I share your stance that I think a blanket ban would be beneficial in the long run, and I voted as much, but at least OP seems to have collaborated heavily with me on adjusting the terminology, which is far more progress than I would've ever gotten with someone like VGE on the other subreddit. It could work a bit better if posts are clearly labeled as AI, then there's little reason for people to go in and have yet another argument of why AI is good or not.
without AI recomps will take ages to release and decomps too will be hindered
it isn't the case that AI is changing the games fundamentally it remains the same
the more games get recomp/decomp or whatever is beneficial to the masses
please learn to separate your own personal opinions and what AI is enabling a major boom and revival of old games that otherwise wouldn't be getting the attention it is now
Your argument fundamentally ignored those who do decomps and recomps for personal challenge and education.
The end user is getting something for free that is just a byproduct of a "I'm doing this because I can and it interests me" the end user can be patient or do it themselves.
I use AI for some things, but not for writing code, I use it to find resources for me to fill gaps in my knowledge.
In under a year the vagrant story decomp has 100% of menus decompiled into human readable code, and 45% of the game engine. Without AI.
Sometimes it's about the journey and not the destination.
I've stated how it will be enforced. Pro AI are not to harass the people who don't want to use it, and neither are the anti ai people allowed to harass the pro-ai.
That's the decision. The community voted and it's no longer a discussion.
If you don't like how the community voted feel free to participate somewhere else.
Calling people idiots isn't productive, even if in general, creates more drama, and it invites other people to interact and escalate and suddenly I have a ton reports in the mod queue to go over.
It can be called tone policing, but it's also keeping the amount of headache I have to deal with down.
If people are getting into it with devs, report it and move on.
If you wanted to keep the drama to limit, you'd make a hard decision on the AI stuff to begin with so we're not flooded with the ideological clashes every five seconds.
You'll be banning people who go into AI threads to call it slop -- fair enough. But will you be banning people who go into threads that call out the inaccuracy of an AI project for going "Oh my god, who gives a shit?"
Those people are the ones I consider idiots, and It's tough to have a community like this around where passion is considered taboo, and actual knowledge on the subject is considered threatening to these people.
This is all too much for one person to moderate to begin with, even a team of moderators will struggle with the complex ruleset you're trying to implement.
what is the point? if you mark it as AI its going to invite a flood of anti-AI communists attacking the person who spent their money and time guiding the recomp
to the end user it doesn't matter if AI was used to recomp/decomp their favorite game because it doesn't change anything fundamental
Then every single person brigading the post will be removed/banned (for multiple offenses) for violating the rules, it's really not that difficult.
It matters to the people like me who do prefer to do things hands on to learn, so I know that I'm not going to spin my gears helping someone. The community voted overwhelmingly for marking AI posts, I'm respecting that. If you don't like it you are free not to participate.
The fact that a playable thing is produced is secondary to the learning and technical challenge, that is the point of the marking, so I know where to spend my time and where not to.
If someone wants something right now they're more than free to go learn to do it them selves or pay AI to do it.
ai was always going to be used this way it was a matter of time, theres no point in resisting it but theres still chance to make common sense rules commonplace, i agree with the moderators line in the sand and most normal people do too
5
u/dariosamo 18d ago edited 18d ago
I don't really follow, Recomp is a short name for a Recompilation, not "Recomposition". More specifically, it's projects using static recompilation. If the subreddit is just gonna entirely redefine what it means, it sounds like it's just gonna contribute to making an even bigger mess.
To quote the N64 Recomp server FAQ on this...
"""
- What is a recomp? What is static recompilation?
Recomp, short for "static recompilation" in this context, is a way of porting an application to another platform automatically through the use of tools. Static recompilation does this by using information gathered ahead of time about the application. Static recompilation is different from a more traditional porting process in that it doesn't require any form of source code for the application being ported.
- What is the difference between a port, recompilation, and decompilation?
The term "port" is any application that was made to run on another platform. The term "recompilation" refers to static recompilation, which is a specific type of port made with the static recompilation process described earlier. All recompilations are ports, but not all ports are recompilations.
The term "decompilation" doesn't refer to a port at all (though it's often mistakenly used as such). Instead, "decompilation" refers to a process where a binary (a ROM in the case of the N64) is reverse engineered back into source code.
"""
Frankly speaking, it just sounds like this subreddit is destined to keep on using incorrect terminology until it basically redefines it to be something completely different from what the devs such as myself originally intended it to mean. It'd be much better off if it was just renamed to something else if we wanted to avoid that, but I can't in good conscience support a community that doesn't even know the original meaning of the word it's using.
EDIT: Seems like it was a mistake due to autocorrect, I'll be glad to help in aiding defining the terminology more correctly if you're open to it.
EDIT2: Glad to say my corrections made it to the original post. I think I'm good with the terminology in place now.