fgsfdsfgs / sm64-port

PS2, PS3, OG Xbox and DOS ports of sm64-port.
https://discord.gg/7bcNTPK
256 stars 38 forks source link

PS2 Verison: Not saving #80

Open kittertron opened 1 year ago

kittertron commented 1 year ago

I had a friend of mine compile the latest version for me, and it does not save. I had an older version which does and I want to know what needs to be done to be saved.

joveaaron commented 1 year ago

Same here!

fjtrujy commented 1 year ago

Could you try to compile the game using just the latest toolchain status? I remember that memory card support was broken some months ago...

fgsfdsfgs commented 1 year ago

This might have been fixed in PR #81, currently unable to test.

metchebe commented 1 year ago

Hi. I managed to succesfully build the latest version (as of today, 51efa90) and saving/loading to memory card seems to work OK on PS2 hardware, at least up to the two stars I tested.

I did not use the standard method, so for reference here is a brief summary of what I did:

  1. Pull and run the ps2dev/ps2dev:latest docker image. Note: this is based on Alpine Linux.
  2. Install with apk add the following packages within the container: make python3 gcc libc-dev g++
  3. Build sm64 within the container with make as usual.
  4. (Optional) Strip and pack the resulting .elf with the appropriate tools within the container.

As I said everything seems OK. There is some garbage displayed when loading but it eventually shows the title screen.

Regards.

metchebe commented 1 year ago

Hi. As a followup to my previous post, I played through the whole game built with the current source and toolkit and it runs and saves correctly. Issues were probably before pull requests #79 and #81, which likely fixed the issues people were having.

I would suggest closing this issue and related: #77, #72, #60 (and maybe others).

For reference, here is an alternative Dockerfile that can be used for compiling with a Docker container:

FROM ps2dev/ps2dev:latest

RUN apk update && apk add g++ gcc libc-dev make python3
RUN mkdir /sm64
WORKDIR /sm64

CMD echo 'usage: docker run --rm -ti -v $PWD:/sm64 sm64_ps2 make --jobs $(nproc)'