SM64PC Ports and Hacks
-
First off I’m fairly ignorant when it comes to this sort of thing but I have learned a fair amount after tinkering with pi’s for a few years. Just don’t laugh too hard if some of the following seems a little outlandish. But I have recently compiled the SM64 PC Port using this guide on my Pi4 successfully and thought I would try some other things.
First on my list was to try and compile sm64plus. Using the previous guide as a base it appeared to compile without any errors and I was able to launch the game but 90% of the textures are black and purple squares and the game crashes when entering the castle. Otherwise seems fine (audio and controls all work great).
I also tried to compile sm64-moonshine. This time I got the following error:
pi@retropie:-/sm64-moonshine $ make VERSION=us TARGET RPI=1 -34 make: Entering directory '/home/pi/sm64-moonshine/tools' CC -I../include -I. -Wall - Wextra -Wno-unused-parameter -pedantic -std=c99 -02 -S -Iaudiofile -Wno-uninitialized sdk-tools/tabledesign/codebook.c sdk-tools/tabled esign/estimate.c sdk-tools/tabledesign/print.c sdk-tools/tabledesign/tabledesign. C-o tabledesign -lm -Laudiofile -laudiofile -lstdc++ -lm /usr/bin/id: audiofile/libaudiofile.a: error adding symbols: file format not reco gnized collect2: error: ld returned 1 exit status make: *** (Makefile:54: tabledesign] Error 1 make: Leaving directory '/home/pi/sm64-moonshine/tools' Makefile:271: *** Failed to build tools. Stop.
On a somewhat different note I found out that some people were creating pc ports of several SM64 romhacks. aspieweeb759 and jesusyoshi64 both have repos where they have made .bps patches that you apply to .z64 roms then change to a .exe which work perfectly on Windows. I thought maybe I could replace the source code in their forks with the code that they have listed for each of the patches and then compile a romhack out of that that would work in Retropie?
Basically I have no idea if any of this is even feasible much less doable with my knowledge base. Compiling sm64pc just went so well that I thought the other should at least have a chance of working.
TL:DR
Is it possible to get sm64plus and sm64-moonshine working in Retropie along with romhacks using the SM64 PC port? -
@WhiteT982 said in SM64PC Ports and Hacks:
I also tried to compile sm64-moonshine. This time I got the following error:
[...]The error comes from a pre-compiled
libaudiofile.a
intools/audiofile
- it's pre-compiled for a x86-64 machine, incompatible with the ARM CPU architecture on a Pi. Remove the file and re-run themake
command. -
Ok I will give that a shot later then. Hopefully it’s as simple as that and thanks for the help
-
@mitu
Deleted the file and ran it again and got/usr/bin/ld: audiofile/libaudiofile.a: error adding symbols: archive has no index ; run ranlib to add one collect2: error: ld returned 1 exit status make: *** [Makefile:54: tabledesign] Error 1 make: Leaving directory '/home/pi/sm64-moonshine/tools' Makefile:271: *** Failed to build tools. Stop.
So I take it it needs that libaudiofile.a to compile so therefore will only work on x86?
-
I think it can be compiled on ARM too - I thought the main
makefile
included rules for compiling it. Runcd tools/audiofile make
then go back to the top folder and run
make
again - it should progress further. -
Alright so when I run
make
in the tools/audiofile folder it creates a new libaudiofile.a. When I runmake VERSION=us TARGET_RPI=1 -j4
again it gives me the same error from the first post. Also triedmake EXTERNAL_DATA=1 -j
since I saw that in the repo but I also got the same error.But I looked through the
makefile
and it obviously supports pi’s because it mentions it several times. Wondering if there’s some option I need to pick? Here’s a pastebin of themakefile
. After a quick browse through it the only thing I could see is changing line 25 toTARGET_RPI 4= 1
possibly? Nothing else in there really made sense to me.Lastly only thing that I think was different from building the sm64pc was that there was a build folder that wasn’t in the sm64-moonshine repo. No idea if it’s important but it’s the only other difference I can think of.
-
Alright so when I run make in the tools/audiofile folder it creates a new libaudiofile.a. When I run make VERSION=us TARGET_RPI=1 -j4 again it gives me the same error from the first post. Also tried make EXTERNAL_DATA=1 -j since I saw that in the repo but I also got the same error.
Then I have no idea what's next. You could try report it upstream, though I don't Issues being enabled on the repo :/.
But I looked through the makefile and it obviously supports pi’s because it mentions it several times.
Yeah, I wouldn't be so sure. It's copied from the original fork, which I suppose copied it from the original SM64 project, so I wouldn't call it a sure thing.
-
Well it was worth a shot. Maybe I’ll keep playing around and stumble across something. I appreciate the help though.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.