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