Repository navigation
Conversation
…e on the base Macs Most of nxnative is written by agents started by people who don't see each other's sessions: several people on the same game at once, work done twice or undone, and changes measured on a Pro or Max that nobody checks on the base Macs most players own. docs/charter.md says what the project is for (games that play as on the console, correctness including pacing, time and controllers), the goals (Switch games on an 8 GB M1, Switch 2 games on a 16 GB M2 with a 10-core GPU; benchmarks Tears of the Kingdom and Ocarina of Time), the priorities, and a bar for pull requests that rises with reach. AGENTS.md, CONTRIBUTING.md, docs/agents/README.md and the pull request template carry the same rules: start from the latest main, look for existing work by label and title, make your own work findable with an early draft pull request, never work on your local main. 06-dev-loop.md gets the search commands (with and without gh), the branch cycle and a guide to judging a pull request's tier; the shader-chain and per-build rules move there from AGENTS.md unchanged. docs/decisions.md starts a log of choices every game gets. A "Test request on a low-spec device" issue form is labelled automatically (issue_areas.py, pr_areas.py, with tests). This is a proposal for the maintainers to accept, change or reject. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
EDIT: dpadr has since heavily edited their original PR. This comment now looks like an extreme overreaction without that context. I recommend looking at their original PR before reading my comment. It is absurd for you to think that your goals are everyone else's goals. I don't give two shits about 16gb MacBook Airs, let alone 8gb models. I contribute to NXNative through other accounts and will continue to utterly disregard this 'charter' and work on what I want to work on, which is getting new games up and running on high-spec Macs. Fuck yourself. |
…hat everyone work for them The first review read the charter as assigning the base-Mac targets to every contributor. The rules were narrower than the wording: - the summary's third point and Devices say a cost on the base Macs is a regression, not that a change is judged only there; - a paragraph says what the page does not ask: no base Mac needed, no low-spec work required, bring-ups and fast-Mac features welcome; - Goals become targets for the shared code, and "playable" is per Mac, with the base Mac a separate fact in a game's note; - a game is no longer "not a goal of its own"; - the priority list keeps its order for conflicts and drops new games, which people do regardless. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…switch table The watch job reads "skip" lines from .github/upstream-watch.tsv (number and reason) and lists those pull requests as left out instead of counting them. Three are: seedds#1311 (Ocarina's play reports already complete offline, from seedds#1299; this is a whole prepo:u service on new CMIF not taken upstream yet), seedds#1357 (NXForge compiles again with a deeper bracket limit only when Metal asks, so the shader chain stays the same) and seedds#1365 (upstream's agent charter, docs only). docs/env_switches.tsv gets DM_CV_LATE, which seedds#1379 reads: env_switches.py --check failed on this branch since that merge. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016qteK29T18U8p1c9LsVY8g
Less offensive than your original draft, but you're still demanding additional work be done by those actually contributing (people who are not you) to simulate low-spec hardware because you don't want to upgrade, which doesn't seem like a fair exchange. Your targets for shared code are - frankly - ridiculous and unrealistic. Expecting OOT to run well on a 16gb device - not a consequence of actual developers doing work as part of bring up, but as additional work to benefit devices they do not own - represents extreme entitlement. Who the fuck are you - someone without meaningful contributions to the project - to say what the project goals are? Where the fuck do you get off demanding, and I quote from you:
No. Additionally, It is unreasonable to expect that '..shared code does not get worse on the base Macs'. Shared code is introduced with support for new games. Some pre-existing shared code must be modified to achieve correctness. That can and will cause performance consequences for low end devices. What you need to do is find a way to accept that. Correctness is far more important than incorrect behavior that has a performance benefit for low end devices.
No. These are not my priorities. My priorities are correctness followed by a better experience than the actual Nintendo hardware delivers. I do not care about performance on the lowest end devices and do not want changes to benefit low end MacBook Airs messing with anything I contribute that is targeted at devices that have enough ram to offer acceptable experiences with demanding titles. 'No regressions' is being used in an incorrect way by a non-developer; what dpadr means is 'performance on my low end Mac doesn't get worse', even if the change is one that matches how Ampere works. At the end of the day, it's going to be challenging to get some of the heavier games to work on low end devices. Star Fox leans on DLSS fairly heavily and runs a neural network for the camera feature. That game is going to be more demanding that Splatoon Raiders. The solution to what ails dpadr is on Apple.com. Anyway, If someone can improve performance without introducing issues, they can feel free. Introducing a 'charter' designed to benefit owners of the cheapest Macs Apple sells at the expense of the actual people doing the work to bring up titles is offensive. Again, this is by far the most offensive PR I've read for any project in at least a month. Do better. Take your PR and shove it up your fucking ass. Fuck you. |
…sion is breakage or a cost for nothing, the base Macs are reference points, the iPhone and iPad are not fast Macs From crghofficial's review: a change that makes a game more correct is not a regression because it is slower; it states its cost. A slowdown that buys nothing is still one. The 8 GB M1 and 16 GB M2 are where low-spec work aims and testers report, not a bar every game or change must clear, and no author owes a test on one. Better than the console where a device has the headroom joins the aim. The page now opens by saying it is for agent sessions, which know only what they read. The iPhone and iPad get their own paragraph: iOS ends an app past its memory limit, and the host, translator and tools run there as on the Mac, so a shared change's memory or CPU cost reaches them whatever Mac it was made on. Co-authored-by: crghofficial <344215673+crghofficial@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
This is less offensive than it was earlier. I still think the proposal is bad/dumb, but it's now not a meaningful blocker for work. I can more or less ignore it now. I won't be making test requests for low end devices - I really did mean it when I stated - multiple times! - that I do not care how demanding titles run on low end devices - but I am happy to explain why a correctness change was made. I am not interested in altering my workflow to benefit devices that I do not own and do not care about. |
What and why
This is a proposal. Everything here is for the maintainers to accept, change or reject.
Most of nxnative is now written by agents, started by many people who don't see each other's sessions, and an agent knows only what it reads. That makes work cheap to start and easy to multiply, and the open pull requests show the result: Ocarina of Time, Star Fox, Donkey Kong Bananza and Mario Kart World each have several people on them at once; work gets done twice or undone (HDR output in two pull requests, #1176 and #1249; Game Mode turned on and off for every Mac app on the same day); and measurements often don't say which device they were made on.
None of that is anyone's fault: nothing tells an agent what the project is for, what already exists, or what a change must not break. This pull request writes that down where agents read it, and builds on the tools the repository already has (
regress.py, the area and game labels, the triage report) instead of adding new machinery.A charter (
docs/charter.md), for agent sessions, which opens with five lines for anyone who reads nothing else: start from the latestmainand look for existing work first; make your own work findable; correctness first, and no regressions; name the device; the bar rises with reach. In full:mainand look for existing work before starting or filing an issue, and make your own work findable; the bar a pull request must clear rises with its reach and risk (narrow, shared, wide, read mostly from its labels); a default every game gets needs evidence beyond one device, a switch and an entry in a decisions log.Where agents and contributors meet it:
AGENTS.md: read the charter first; fetch the latestmainand check for existing work (by label and by title) and make yours findable; never work on your localmain; ask before long builds or deleting; measure on the device a claim is about. The shader-chain procedure and per-build rules moved to06-dev-loop.mdto make room (unchanged).docs/agents/06-dev-loop.md: how to find existing work (withghand on the web), the branch cycle, and a guide to judging a pull request's tier.CONTRIBUTING.md,docs/agents/README.md, the pull request template: the same rules where people read them.issue_areas.py,pr_areas.py, with tests).docs/decisions.md: a log of choices every game gets, starting with the Game Mode opt-out as it stands.Revised after review: crghofficial's review reshaped the priorities, the definition of a regression and the device targets: correctness wins over speed, a slowdown that buys correctness is a stated cost rather than a regression, and the base Macs are reference points rather than targets. He is credited as co-author on that commit.
Checked
dm/tools/tests/test_docs.py(links, anchors, AGENTS.md under its 1,500 words),test_issue_areas.py,test_pr_areas.py.regress.pyrun.Docs
🤖 Generated with Claude Code, reviewed and edited by @dpadr