Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

celestegame: init at 1.4.0.0{,+everest.5184} #371078

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

UlyssesZh
Copy link
Member

Celeste, a 2D platformer game about climing a mountain.

One needs to obtain the source by purchasing and downloading from itch.io, which is a zip file that contains the installation dir structure at top level. Alternatively, you can use overrideSrc to override it, in case the source you got is different from that from itch.io in terms of hash but can just work fine anyway (e.g. ripped from CD, removing DRM from the Steam version, pirated copy, etc).

Install with Everest (the mod loader) by overriding everest, which is expected to be a derivation. You can use celestegame.passthru.everest or celestegame.passthru.everest-bin. The bin package is there because I failed to package from source at first. It will be deleted if there is no good reason to keep it. Currently the source of the bin package is from the Azure pipeline build of my PR to the upstream, which is only kept for 10 days.

Installing mods requires putting them (zip files) in the Mods dir in the game installation dir, which is read-only. To work around this, one needs to override the writableDir argument to provide a writable path. All things in the game installation dir that needs writability are symlinked to the path provided by writableDir.

One can manage mods using Olympus by adding the game installation path as a game installation in Olympus. If Olympus is installed by using the one packaged in #309327, it can launch manage mods just fine with this installation. However, because the install path is in nix store and subject to frequent change, one has to often update the path in Olympus. For convenience, one can override the gameDir argument to make it automatically symlinked to the new installation when the new one launches.

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

@github-actions github-actions bot added 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin 10.rebuild-linux: 1-10 labels Jan 5, 2025
@UlyssesZh
Copy link
Member Author

Will change executable name to Celeste after #371770 is merged.

The ARM support doesn't seem promising because the builder needs to fetch fmod libraries somehow, which requires an account. Though this whole process of registration and downloading can possibly be automated, this is probably against the TOS. Also, considering that I don't have an ARM device to test in the first place, I probably won't bother.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin 10.rebuild-linux: 1-10 10.rebuild-linux: 1
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant