Zelda64Recomp / Zelda64Recomp

Static recompilation of Majora's Mask (and soon Ocarina of Time) for PC (Windows/Linux)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ABI 'n64' is incompatible with target ABI 'o32'

p3k22 opened this issue · comments

commented

I have tried oh so very hard to compile this repo following the building.md
I downloaded all the environments and compilers. I've checked multiple times that they are installed correctly.
I have my .z64 rom with the correct MD5.
The N64 decomp instructions were a little off when disclosing where to place the base rom for decompilation and the naming of the file.
Regardless, it still worked and i got the .elf & .z64 (2 versions of .z64, one compressed and the other uncompressed).

The final CMake instructions to build the complete repo are where it's going wrong.

cmake -S . -B build-cmake -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -G Ninja -DCMAKE_BUILD_TYPE=Debug
This line does its job. However the next line
cmake --build build-cmake --target Zelda64Recompiled -j 6 --config Debug
this goes so far before it throws:

ld.lld: error: ../mm.us.rev1.rom_uncompressed.elf: ABI 'n64' is incompatible with target ABI 'o32'

I have tried this with clean repos on both Win10 & Ubunut with the exact same results. It simply will not work for me.
The whole reason I'm trying to do this is I want the HDTexture branch of this repo so i can enable the "Textures" tab in the F1 menu. That option is not in the default build, yet i've seen people gaining access to the HD textures.

FULL ERROR MESSAGE
[6/17316] C:\Windows\system32\cmd.exe /C "cd /D C:\Users\A...b\Zelda64Recomp-hd_textures\Zelda64Recomp\patches && make" FAILED: CMakeFiles/PatchesBin C:/Users/Administrator/Desktop/ZMMGithub/Zelda64Recomp-hd_textures/Zelda64Recomp/patches/patches.bin C:/Users/Administrator/Desktop/ZMMGithub/Zelda64Recomp-hd_textures/Zelda64Recomp/build-cmake/CMakeFiles/PatchesBin C:\Windows\system32\cmd.exe /C "cd /D C:\Users\Administrator\Desktop\ZMMGithub\Zelda64Recomp-hd_textures\Zelda64Recomp\patches && make" ld.lld actor_transform_tagging.o autosaving.o billboard_tagging.o camera_patches.o camera_transform_tagging.o cheats.o culling.o cutscene_patches.o debug_patches.o effect_patches.o effect_transform_tagging.o fixes.o input.o input_latency.o item_transform_tagging.o ocarina_effect_patches.o options.o particle_transform_tagging.o play_patches.o print.o quicksave_patches.o required_patches.o room_patches.o save_patches.o sky_transform_tagging.o song_transform_tagging.o sound_patches.o specific_actor_transform_tagging.o terrain_transform_tagging.o ui_patches.o ui_transform_tagging.o -nostdlib -T patches.ld -T syms.ld --just-symbols=../mm.us.rev1.rom_uncompressed.elf --allow-multiple-definition -Map patches.map -o patches.elf ld.lld: error: ../mm.us.rev1.rom_uncompressed.elf: ABI 'n64' is incompatible with target ABI 'o32' ld.lld: error: undefined symbol: D_801C6A58

This looks like an issue with either the compiler you're using or the way the decompilation was built. With that said, you don't actually have to build anything to test out the HD textures, you can just download the CI artifact: https://github.com/Zelda64Recomp/Zelda64Recomp/pull/262/checks

commented

@Mr-Wiseguy Thank you for the response! I had no idea github had this feature.
I figured the build issues I'm having would be somewhere around those areas. I'm confident the compilers are set up right. If I had to narrow it down, I would say it is probably something to do with the rom decompilation process. The process I had to follow differed from what zeldaret wrote. I had to put the rom in the baserom dir rather than root and it didn't produce the .elf or .z64 with "uncompressed" in the file name. Whether any of that makes any difference, I dunno.

It would be nice if I could get it working, but the primary goal was for those sweet sweet HD Textures. I'm gonna go tinker with this now :) Thank you for saving my time.

If you do have any other helpful suggestions that I could use to help me build the repo I'd appreciate it. If not, then you can close this issue as completed.
Recomp FTW!

I would confirm that you built the correct commit of the decompilation project, since that would be the main reason why the instructions were different than expected and that the decompressed rom and elf didn't have the expected names. The build guide details exactly what commit to use, and the instructions for building this project will line up when using the correct commit of the decompilation.

commented

Great! I'll give that a retry and see how far I can get. Cheers!