#Pingus (Lemmings-like)

134 messages · Page 1 of 1 (latest)

high carbon
#

Instructions to install the Testing Zip:
Drop the .zip into your Portmaster autoinstall folder and run Portmaster.
or
run via ssh `harbourmaster install "zip url from discord"

Game Information
Title: Pingus
URL:https://pingus.seul.org/download.html

Button Action
DPAD Move Screen
A/B Mouse Left/Right Click
X Slow Mouse (hold)
Y Fast Forward
L1 Toggle Fullscreen
L2 Armageddon
Start Pause
**
CFW Tests:**
[x] AmberELEC
[x] ArkOS
[x] MuOS
[x]x ROCKNIX
-> []x Panfrost
-> [x] Adreno (Optional)
[x] Knulli (Optional)

Resolutions:
[] 480x320 (Optional)
[X] 640x480
[x] 720x720 (RGB30) (Optional)
[x] Higher resolutions (e.g., 1280

#

<@&1216123318122577972>

grim birch
#

You ping us to play pingus😅

storm aspen
#

oh god, he has upgraded the spray bottle

past sable
#

lol

#

✅ RGB30/arkos

storm aspen
#

Also perfectly fine on 480x320 (OGA / Rocknix) and also on the Ace.

high carbon
#

PR Created!

storm aspen
#

you should probably ping the whole server! 😛

rain dove
#

It's really crashy on my RG351P/ArkOS wuMMLe for some reason where it crashes randomly, but every time it gives an 'Operation not permitted' error seemingly when it tries to save. I know that the RG351P is pretty much an optional device at this point, but it'd be neat if this can be resolved.

As far as the PR:
ArkOS on my RG351P shows the Pingus directory because it sees two shell scripts:
/ports/pingus/data/po/extract-po.sh
/ports/pingus/data/po/update-po.sh
and you also have
/ports/pingus/data/po/pingus.pot:Zone.Identifier

I would have submitted the changes, but with 2,000+ files GH is chugging like molasses 😄

ocean mason
high carbon
#

No idea how to debug that crash

#

Would need to reproduce it vis gdb

rain dove
high carbon
rain dove
#

I don't know if it needs to be recompiled with a debug build to get more detailed info or if this is enough to make out what's going on. I managed to play the first level in Story mode and it crashed right when it went to give me the finished level stat screen while attempting this debug session.

high carbon
high carbon
#

ls -la /home/ark/.pingus/
ls -la /home/ark/.pingus/savegames/

rain dove
#

It doesn't have a subfolder for savegames, but I do have
drwxr-xr-x for ~/.pingus (only root seems to have write perms)

#

Then again, almost all of my folders in the home dir have the same perms set, so I'm not entirely sure. I do have an easy way to test this rq so I'll do that first.

high carbon
#

Maybe a subfolder thibg

#

I know pingusnwill create couple of folders

#

And files upon start

rain dove
#

I set 777 on the ~/,pingus folder just now to see what it would do. I now have a whole set of subfolders in it and they all have full perms, but it still crashed. I'll have to check the log again to see if it gave me the same error.

high carbon
#

maybe i need it to ship with the folders 😛

rain dove
#

It did, but this time to a specific file.
System::write_file(): /home/ark/.pingus/savegames/variables.scmkm4dE3: Operation not permitted

#

The variables.scm file exists with full permissions already. I'll run it again to see if it was a fluke.

high carbon
#

how odd

rain dove
#

It crashed again complaining about the same file, but with a different hex after the file (km4dE3 before, hKnrmT now).

high carbon
#

ls -la /home/ark/.pingus/savegames/variables.scm*

rain dove
#

I don't know what to make of this, but I'm not convinced that it may be an issue with ArkOS on the RG351P / M specifically. I've run into some oddities with this flavor of Ark where I don't have these issues with ArkOS on the RG351MP or my RG503.

rain dove
#

I don't know how to fix this tbh.

#

I'm going to try something silly rq.

high carbon
#

dmesg | tail -n 20

#

while the crash is happening

rain dove
# high carbon while the crash is happening

No problem. Only thing is, it may be difficult to catch since the crash happens at different intervals at times. Sometimes right when I click story mode, sometimes when I click to start the level, and sometimes right after finishing the first level. On the other hand, I haven't gotten to play the second level at all (yet).

#

I ran it almost frantically in the hopes that I'd catch it.

high carbon
#

mount | grep pingus

#

ls -la /home/ark/.pingus/

#

because

#

[ 976.317025] systemd[1]: home-ark-.pingus.mount: Succeeded.

rain dove
#

Aight

#

I did see that, but I didn't pay it much attention.

#
ark@rg351p:~$ mount | grep pingus
/dev/mmcblk0p3 on /home/ark/.pingus type exfat (rw,noatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=utf8,namecase=0,symlink=0,bps=512,errors=remount-ro,delayed_meta)
high carbon
#

we have a winner?

#

2nd sd card?

rain dove
#
ark@rg351p:~$ ls -la /home/ark/.pingus/
total 44
drwxrwxrwx. 10 root root 4096 Nov  6 13:58 .
drwxr-xr-x  11 ark  ark  4096 Nov  7 16:12 ..
drwxrwxrwx.  2 root root 4096 Nov  6 09:17 backup
drwxrwxrwx.  2 root root 4096 Nov  6 09:17 cache
-rwxrwxrwx.  1 root root   77 Nov  6 13:58 config
drwxrwxrwx.  2 root root 4096 Nov  7 16:12 demos
drwxrwxrwx.  2 root root 4096 Nov  6 09:17 images
drwxrwxrwx.  3 root root 4096 Nov  6 13:32 levels
drwxrwxrwx.  2 root root 4096 Nov  7 16:13 savegames
drwxrwxrwx.  2 root root 4096 Nov  6 09:17 screenshots
drwxrwxrwx.  2 root root 4096 Nov  6 09:17 themes
ark@rg351p:~$
rain dove
high carbon
#
The error occurs because Pingus is likely trying to do an atomic file write operation (create temp file, then rename), which isn't fully supported on exFAT.```
high carbon
#

🤣

rain dove
#

ArkOS on the RG351P and RG351M have always had the EASYROMS partition defaulted to exFAT.

#

I wonder what our options are with this.

high carbon
#

sec let me check the code

rain dove
#

If it's absolutely necessary I could change how the image formats the 'games' partition, but everyone running Ark on these two would need to reformat their existing EASYROMS partition. Then again, this may explain the small stupid problems I've run into those few times.

high carbon
rain dove
high carbon
#

hmmz

rain dove
#

If this helps...

ark@rg351p:~$ lsblk -f
NAME      FSTYPE LABEL   UUID                                 FSAVAIL FSUSE% MOUNTPOINT
mmcblk0
├─mmcblk0p1
│         vfat   BOOT    8B25-5227                              81.1M    26% /boot
├─mmcblk0p2
│         ext4   root    e139ce78-9841-40fe-8823-96a304a09859    3.6G    55% /
└─mmcblk0p3
          exfat  EASYROMS
                         0CE7-3DCF                               2.3G    56% /roms
high carbon
#
~ # mount | grep pingus
/dev/mmcblk0p3 on /storage/.pingus type exfat (rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=utf8,namecase=0,symlink=0,bps=512,errors=remount-ro,delayed_meta)
~ # ^C
~ # ls -la ~/.pingus/
total 1157
drwxr-xr-x   10 root     root        131072 Nov  6 14:17 .
drwxr-xr-x   49 root     root          5120 Nov  7 21:01 ..
drwxr-xr-x    2 root     root        131072 Nov  6 14:17 backup
drwxr-xr-x    2 root     root        131072 Nov  6 14:17 cache
drwxr-xr-x    2 root     root        131072 Nov  6 14:17 demos
drwxr-xr-x    2 root     root        131072 Nov  6 14:17 images
drwxr-xr-x    3 root     root        131072 Nov  6 14:17 levels
drwxr-xr-x    2 root     root        131072 Nov  7 21:23 savegames
drwxr-xr-x    2 root     root        131072 Nov  6 14:17 screenshots
drwxr-xr-x    2 root     root        131072 Nov  6 14:17 themes
~ # ls -la ~/.pingus/savegames/
total 512
drwxr-xr-x    2 root     root        131072 Nov  7 21:23 .
drwxr-xr-x   10 root     root        131072 Nov  6 14:17 ..
-rwxr-xr-x    1 root     root           252 Nov  7 21:23 savegames.scm
-rwxr-xr-x    1 root     root            48 Nov  7 21:23 variables.scm
~ # ```
rain dove
#

So it seems they aren't different (other than the fact that I changed the permissions by hand, but had I not they would have been the same as yours at least)

ark@rg351p:~$ mount | grep pingus
/dev/mmcblk0p3 on /home/ark/.pingus type exfat (rw,noatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=utf8,namecase=0,symlink=0,bps=512,errors=remount-ro,delayed_meta)
ark@rg351p:~$ ls -la ~/.pingus/savegames/
total 16
drwxrwxrwx.  2 root root 4096 Nov  7 16:13 .
drwxrwxrwx. 10 root root 4096 Nov  6 13:58 ..
-rwxrwxrwx.  1 root root  614 Nov  7 16:13 savegames.scm
-rwxrwxrwx.  1 root root   87 Nov  7 16:13 variables.scm
ark@rg351p:~$
#

It shows as exfat naturally since bind_directories is linking to the port folder which does reside on the exFAT partition.

#

Since this works fine on AmberElec, I'm wondering if there's something else causing the problem and what we're seeing is a red herring.

high carbon
#

probably

#

disable the bind_mount

#

reboot

#

try again

rain dove
#

You read my mind.

high carbon
#

can you also give me

mount | grep mmcblk0p2

rain dove
#

After commenting out the bind_directories in the shell script and rebooting, I did have to delete the .pingus folder from my home folder, but that was a non-issue for me. I launched the game and let it create a native /home/ark/.pingus folder itself and I am now three levels in without any crashes.

#
ark@rg351p:~$ mount | grep mmcblk0p2
/dev/mmcblk0p2 on / type ext4 (rw,relatime)
ark@rg351p:~$
high carbon
#

there is a difference in the mount options

#
Key differences:
1. noatime vs relatime
2. fmask=0000,dmask=0000 vs fmask=0022,dmask=0022
3. allow_utime=0022 present in non-working system```
#

especially allow_utime=0022

#
allow_utime=0022 on exFAT specifically controls who can change timestamps on files and directories. But more importantly, it affects how the filesystem handles certain operations related to file updates.```
#
When combined with fmask=0000,dmask=0000 (which gives full permissions to everyone), there's a conflict:

fmask=0000 says "allow all file operations"
But allow_utime=0022 restricts certain file operations only to owner/group```
rain dove
#

Okay. So I need to alter my fstab then?

high carbon
#

let me boot up my arkos on rgb30

#

can you do

#

id ark

#

because

#
ark@rgb30:~$ mount | grep pingus
/dev/mmcblk1p5 on /home/ark/.pingus type exfat (rw,noatime,uid=1002,gid=1002,fmask=0000,dmask=0000,allow_utime=0022,iocharset=utf8,errors=remount-ro)
ark@rgb30:~$ ```
#

both have utime=0022

rain dove
#
ark@rg351p:~$ id ark
uid=1002(ark) gid=1002(ark) groups=1002(ark),4(adm),27(sudo),29(audio),44(video),107(input)
ark@rg351p:~$
high carbon
#

so my moutn on ark does

#
uid=1002,gid=1002,fmask=0000,dmask=0000,allow_utime=0022```
#

yours only fmask=0000,dmask=0000,allow_utime=0022

#

Both systems have the same UID/GID for ark user (1002), but:
Working system mount has explicit ownership

rain dove
#

Interesting. Good catch. How would you suggest I address this? I'm pretty sure it's just a matter of how the exFAT partition gets mounted in fstab if I didn't know better...

rain dove
#
ark@rg351p:/roms/ports$ cat /etc/fstab
UUID=e139ce78-9841-40fe-8823-96a304a09859  /  ext4  defaults  0 1

/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p3 /roms exfat defaults,auto,umask=000,noatime 0 0
/roms/tools /opt/system/Tools none bindark@rg351p:/roms/ports$
#

I wished there was a return at the end of that file 😛

ark@rg351p:/roms/ports$ cat /etc/fstab
UUID=e139ce78-9841-40fe-8823-96a304a09859  /  ext4  defaults  0 1

/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p3 /roms exfat defaults,auto,umask=000,noatime 0 0
/roms/tools /opt/system/Tools none bind
ark@rg351p:/roms/ports$
high carbon
#
/dev/mmcblk0p3 /roms exfat defaults,auto,umask=000,noatime,uid=1002,gid=1002 0 0```
#

for testing:

sudo cp /etc/fstab /etc/fstab.backup
edit /etc/fstab/
sudo mount -o remount /dev/mmcblk0p3
mount | grep mmcblk0p3
#

and then we try again

rain dove
#

Cool. Let me undo the native .pingus folder, uncomment the bind_dirs in the shell script, run it to watch it crash and burn again, then I'll run these through.

#

Okay, crashing and burning has commenced. Time to test the real fix.

high carbon
#

❤️

#

game in development since 1999

rain dove
#

Running the remount command didn't seem to do anything, but I rebooted and so far it hasn't crashed after the fstab edit and restart. I'd like to confirm the changes are actually in place, though.

high carbon
#

Yep, that would be ideal

rain dove
#

If you're asking about the troubleshooting we're doing now, it's likely not a Pingus issue, but it's definitely putting the issue I've had in the past on display here.

#

Which is something that needed to be fixed a long time ago to be fair.

rain dove
high carbon
#

You could work in IT 😛 That's how we do work with process of elimination. Very thorough

high carbon
rain dove
#
ark@rg351p:~$ mount | grep mmcblk0p3
/dev/mmcblk0p3 on /roms type exfat (rw,noatime,uid=1002,gid=1002,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=utf8,namecase=0,symlink=0,bps=512,errors=remount-ro,delayed_meta)
/dev/mmcblk0p3 on /opt/system/Tools type exfat (rw,noatime,uid=1002,gid=1002,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=utf8,namecase=0,symlink=0,bps=512,errors=remount-ro,delayed_meta)
/dev/mmcblk0p3 on /home/ark/.pingus type exfat (rw,noatime,uid=1002,gid=1002,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=utf8,namecase=0,symlink=0,bps=512,errors=remount-ro,delayed_meta)
ark@rg351p:~$
high carbon
#

looks good

#

I hope this really was the problem

rain dove
#

It seems there was an issue if I'm reading that correctly unless that's just logging my earlier attempt where it reads:

errors=remount-ro
#

Unless that's set to report an error if that mount method is attempted?

high carbon
rain dove
#

Gotcha. That makes sense. To mount it as read-only if there's corruption in the partition table.

high carbon
#

yeah

#

to be able to rescue data

rain dove
#

I always assumed that was the default for Linux to do that ootb

high carbon
#

i think it is

#

not sure

#

no linux expert

rain dove
#

Alright. Now to make proper adjustments to the OS and make this part of the wuMMLe update.

#

I may have to make it known to be a critical update at that.

high carbon
#

wonder what else is affected

rain dove
# high carbon wonder what else is affected

That's the big question indeed. I no longer remember what all was giving me trouble in the past that this may have been the culprit this whole time. There were only a handful of ports that had issues, but trying to remember which ones they all were is another story.

#

@high carbon You've been a great help! Thanks again as always!