zelda64recomp: init at 1.2.2#313013
Conversation
|
Result of 13 packages built:
|
|
Result of 1 package failed to build:
12 packages built:
|
|
Great work! Do we have concern for supporting only one hash for the ROM? There are a couple of different No-Intro ROMs (BigEndian, ByteSwapped), additional regions of the ROM may eventually be supported, some people may have some ancient non-No-intro ROMs, etc. Should we just say to acquire the latest No-Intro ROM (BigEndian) for Majora's Mask? Also, is the ROM required for build, or is it simply for convenience? Build error for me as well: |
|
Whoops, I had everything cached before changing the commits to versions, it should build now. The required rom is the only one mm-decomp currently supports. It's needed to generate the outputs required for zelda64recomp. |
|
Managed to successfully build on the first try. Attempting to run (with |
|
Can you describe your setup? or post a coredump? I'm trying to reproduce I'm on KDE wayland, 5700 XT, sddm wayland-only
|
|
I'm explicitly setting |
|
Yes, I'm seeing it now when enabling amdvlk, it wasn't crashing on the radeon drivers. |
|
I updated directx-shader-compiler and now it doesn't crash with amdvlk. |
|
Sorry didn't mean to ping as I was building that locally, I'll squash and remove |
uninsane
left a comment
There was a problem hiding this comment.
thanks for linking the guide in requireFile. it still forces a lot of burden onto the user, but it's better than being left to flail in the dark. i'll remove my PR block.
package output structure could be improved though.
ls -F ./result/bin
assets/ gamecontrollerdb.txt@ Zelda64Recompiled*
best to link only the executables into bin/ and keep the assets somewhere in share/ or even opt/.
There was a problem hiding this comment.
can you lift baseRom into the call args section? e.g.
{
lib,
SDL2,
...
requireFile,
mm64baserom ? null,
}:
let
baseRom = if mm64baserom != null then mm64baserom else requireFile {
...
};
...this gives users the ability to provide their own baserom in whatever manner they prefer. for example, it would let me swap it out with fetchzip by just injecting my own mm64baserom expression into the package set like this.
|
keenanweaver
left a comment
There was a problem hiding this comment.
nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 313013
x86_64-linux
✅ 3 packages built:
- n64recomp
- z64decompress
- zelda64recomp
keenanweaver
left a comment
There was a problem hiding this comment.
nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 313013
x86_64-linux
✅ 3 packages built:
- n64recomp
- z64decompress
- zelda64recomp
|
@qubitnano Oops just realized diff --git a/pkgs/by-name/n6/n64recomp/package.nix b/pkgs/by-name/n6/n64recomp/package.nix
index c75586983..d172f0e3b 100644
--- a/pkgs/by-name/n6/n64recomp/package.nix
+++ b/pkgs/by-name/n6/n64recomp/package.nix
@@ -3,6 +3,9 @@
stdenv,
fetchFromGitHub,
cmake,
+ zip,
+ unzip,
+ makeWrapper,
installShellFiles,
}:
@@ -22,6 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
cmake
+ makeWrapper
installShellFiles
];
@@ -31,6 +35,10 @@ stdenv.mkDerivation (finalAttrs: {
installBin {N64Recomp,RSPRecomp,RecompModTool}
install -Dm644 -t $out/share/licenses/n64recomp ../LICENSE
+ wrapProgram $out/bin/RecompModTool \
+ --prefix PATH : ${zip}/bin \
+ --prefix PATH : ${unzip}/bin
+
runHook postInstall
'';
|
|
LGTM! |
|
After these latest pushes, the game still compiles, however it immediately crashes when run. (I'd remove the mods if I could find where it sticks them, but from what I've read the mods aren't actually loaded until after the main menu, so they shouldn't be the cause of the issue - And they worked before.) Edit: Verified on my Laptop: |
|
The last push I removed the flag to force X11 since it used to exit months ago. RT64 added wayland support a while back. Looks like there's still some issues with wayland. Loaded okay for me with KDE and wayland without mods. Perhaps something to do with mods? Anyway, it defaults to X11 again, with an added option to build with wayland if wanted. |
|
FWIW, I have the latest package update from prior to this revert in my config and it's working fine for me. No mods installed, so I'm assuming it's a mod. |
The laptop I tried it on second doesn't have any mods installed. |
Well there goes that theory. Why is it an issue now? 🤔 It does actually manage to open a Window now, though it closes just as quickly. |
|
Up to now I've been running it via I instead tried (in an attempt to rule out things leaking in from being impure) And the error message changed slightly: And on my Desktop: Now it's possible this is something weird due to my NixOS config, but honestly I have no idea what. |
|
The only other thing is that I rebase on master, so there may be a divergence between your system's libraries and the shell's. If this still happens when you backup and clear |
|
https://gist.github.com/Krutonium/35d1588efe9751287ad378d39e4bbab6 (Not gunna lie, had to look up to how to do that) |
Try to run without mangohud? |
|
Huh, yeah running it without Mangohud worked. I have it installed globally (and it wasn't an issue before? weird.) so for anyone else Edit: I'm going to guess it's a library mismatch between upstream and the branch this is on making MangoHud specifically upset. 👍 |
|
Is wayland working well for everyone else? Should we disable the x11 override by default? |
I'm not having any issues with Wayland. KDE Plasma 6.4.0. |
|
Working fine for me on Wayland as well with MangoHud disabled. |
|
Has anyone posted this in the Discourse thread for "PR's that are ready to be merged" or whatever it's called? Edit https://discourse.nixos.org/t/prs-ready-for-review/3032/ |
|
Not exactly sure where to put this but it seems on current > NIXPKGS_ALLOW_UNFREE=1 nix run 'github:qubitnano/nixpkgs?ref=pr/recomp#zelda64recomp' --impure
Failed to preload executable!
SDL Video Driver: x11
Failed to create window: Invalid window
Exiting with exit status '1'. Function exit_error, at file /build/source/src/main/main.cpp:59I did a bisect and found that something in #425387 is responsible for the issue. I think something baked into the system environment or whatever is at fault and not updated derivations that I'm not sure what commit in the merge exactly is causing the problem or if this should be a separate issue so hopefully someone can help me out with this one. The only application I've been able to reproduce this problem with so far is recomp. |
|
Yeah I'm seeing the same thing. The branch runs now rebased with latest master. |
|
@qubitnano Looks like this doesn't build anymore, I suspect updating the derivations to the latest commit would fix it though since they moved the dependency in question directly into the project instead of using a submodule. EDIT: It looks like the issue is caused by the I believe this would be fixed by SergeyMakeev/SlotMap#6 if that issue is addressed. ❯ NIXPKGS_ALLOW_UNFREE=1 nix run 'github:qubitnano/nixpkgs?ref=pr/recomp#zelda64recomp' --impure
error: builder for '/nix/store/dpn0i0as6v3lvqgk6zfq3nlqssymmq5m-source.drv' failed with exit code 128;
last 25 log lines:
> Submodule path 'lib/rt64/src/contrib/volk': checked out '466085407d5d2f50583fd663c1d65f93a7709d3e'
> remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
> remote: Enumerating objects: 81, done.
> remote: Counting objects: 100% (81/81), done.
> remote: Compressing objects: 100% (42/42), done.
> remote: Total 43 (delta 33), reused 4 (delta 0), pack-reused 0 (from 0)
> Unpacking objects: 100% (43/43), 18.72 KiB | 1.04 MiB/s, done.
> From https://github.com/Cyan4973/xxHash
> * branch 1864a50c9b5cf8500d8e9e61ed92aa0dd3772750 -> FETCH_HEAD
> Submodule path 'lib/rt64/src/contrib/xxHash': checked out '1864a50c9b5cf8500d8e9e61ed92aa0dd3772750'
> remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
> remote: Enumerating objects: 471, done.
> remote: Counting objects: 100% (471/471), done.
> remote: Compressing objects: 100% (228/228), done.
> remote: Total 246 (delta 206), reused 26 (delta 7), pack-reused 0 (from 0)
> Receiving objects: 100% (246/246), 107.90 KiB | 2.40 MiB/s, done.
> Resolving deltas: 100% (206/206), completed with 194 local objects.
> From https://github.com/facebook/zstd
> * branch 0ff651dd876823b99fa5c5f53292be28381aee9b -> FETCH_HEAD
> Submodule path 'lib/rt64/src/contrib/zstd': checked out '0ff651dd876823b99fa5c5f53292be28381aee9b'
> remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
> fatal: remote error: upload-pack: not our ref b8ac8ebd89aa1cd18f20ce6e4ad1cac716f1933f
> fatal: Fetched in submodule path 'lib/slot_map', but it did not contain b8ac8ebd89aa1cd18f20ce6e4ad1cac716f1933f. Direct fetching of that commit failed.
> fatal: remote error: upload-pack: not our ref b8ac8ebd89aa1cd18f20ce6e4ad1cac716f1933f
> fatal: Fetched in submodule path 'lib/slot_map', but it did not contain b8ac8ebd89aa1cd18f20ce6e4ad1cac716f1933f. Direct fetching of that commit failed.
For full logs, run:
nix log /nix/store/dpn0i0as6v3lvqgk6zfq3nlqssymmq5m-source.drv
error: 1 dependencies of derivation '/nix/store/ppd4zhs3h24q3xlvm7l5zzr3kr83jhzx-zelda64recomp-1.2.0.drv' failed to build |
|
Thanks, I've updated to the latest dev commit for now. |
|
is there a way to ship a "dummy" baserom for this package? e.g., a ROM that has all the assets in the expected locations, but instead of the original assets they're freely distributable stock assets. if we could package it this way, then the package would be buildable, and maintainable/reviewable with all the normal tooling ( |
|
Ideally we wouldn't even need it to compile. 2ship2harkinian can be built alone and searches/extracts the rom at runtime. But it seems the current recomp build process needs the rom to build the project. Probably best to check with upstream. |

Description of changes
Closes #310947
https://github.com/Zelda64Recomp/Zelda64Recomp
Zelda 64: Recompiled is a project that uses N64: Recompiled to statically recompile Majora's Mask (and soon Ocarina of Time) into a native port with many new features and enhancements. This project uses RT64 as the rendering engine to provide some of these enhancements.
Things done
nix.conf? (See Nix manual)sandbox = relaxedsandbox = truenix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/)Add a 👍 reaction to pull requests you find important.