Release Pandafe 0.2.2


Hmm, I wonder if one of your pnds has a broken/unexpected pxml file that causes Pandafe to choke during pnd scanning. Can you also try moving/disabling all other pnds and see if you can start it then?

The problem with adding debug messages to try and isolate this crash is that the "gee_array_list_real_get: assertion failed: (index < _size)" is coming from a library dependency and doesn't provide any context. It could be any list usage, which would be add debug messages for everywhere. I do have a specific suspicion.  Line 34 in Pnd.vala will crash in this way if the object gets instantiated with an empty app list. That should never happen though, and if it is that might point to at least one app missing some minimally expected data, such as an id.

Please try the test without any pnds present, and I'll look into adding a sanity check message in the specific case mentioned above and also try to change my scanning logic to survive invalid apps.
 
I feared, that PySolFC might be responsible since it has deliberately illegal application tags (exec is missing), but it seems to work fine here. Perhaps 'exploded PND' directories cause problems?
 
I only had two problems:


- the C64 configuration didn't fit my version of the PND; first the ID seems to have changed and editing the program's id in Pandafe confused it enough that after a restart the platform wasn't any longer associated with the Program (was easier to fix than to diagnose:) ; second the provided run script for x64 has to set HOME (and preferably the SDL env variables too) or VICE will start with the (slow) default configuration


- no ScummVM games are listed, even though the PND gets found and the get-game script created which also runs fine and seems to produce sensible output when run manually (haven't checked whether Pandafe actually runs it); perhaps the output format has changed?
 
I feared, that PySolFC might be responsible since it has deliberately illegal application tags (exec is missing), but it seems to work fine here. Perhaps 'exploded PND' directories cause problems?
"'Exploded PND directories," assuming you mean just folders with a PXML.xml in them, work fine as far as the scanning goes (just checked) but my internal app mounting logic does not work properly in this case. New issue added to github for the mount issue.

- the C64 configuration didn't fit my version of the PND; first the ID seems to have changed and editing the program's id in Pandafe confused it enough that after a restart the platform wasn't any longer associated with the Program (was easier to fix than to diagnose:) ; second the provided run script for x64 has to set HOME (and preferably the SDL env variables too) or VICE will start with the (slow) default configuration
Program definitions are meant to apply only to specific app ids specifically for this reason. The custom command script targets just the specific app it was written for. Where there are multiple similar apps available, as with Vice, each pnd/app would need its own unique Program definition. It is *possible* though to have one Program definition support multiple app ids. To do that one would specify the app id in the Program using a regex/prefix/suffix, so that it matches all intended app ids, then write a custom command that works with all versions. In the case of Vice, I am just not familiar enough with the emulator or with C64 stuff in general to write such a multi-app Program definition, so I just added supported for one of them. The custom command was just a slightly modified version of the stock command from that PND, so it makes sense it didn't work well for your (slightly?) different app.

If you (or someone else) is interesting in contributing Program definitions for apps from other Vice pnds, or a combined definition that works with multiple apps, that would be warmly received. :)

The bit about the Program not being associated with the Platform after restart is because they are associated by Program definition's id (which is the app id). Since that changed it was no longer seen as associated. A little confusing yes, though I figured that folks fiddling with existing Program definitions at that level would be able to re-associate them Platforms as desired (as you were ;) ).

- no ScummVM games are listed, even though the PND gets found and the get-game script created which also runs fine and seems to produce sensible output when run manually (haven't checked whether Pandafe actually runs it); perhaps the output format has changed?
Hmm. No, the output format hasn't changed, and it works ok still for me. As far as I know this should work with any version of the ScummVMpnd. Especially since the manually run get-game script returned sensible output I expect you probably just need to rescan the ScummVM platform (from the context menu). Let me know if that doesn't work.

Thanks for the reports, have fun!
 
No, it still crashes. It starts up, says it is looking for platform definitions and then exits.

I'll try again later after rebooting and also in a virgin firmware to see if that makes any difference.

Perhaps you could output some debug info to stdout (so it ends up in the /tmp/pndout) to make it easier to find out where the problem is?
Hmm, I wonder if one of your pnds has a broken/unexpected pxml file that causes Pandafe to choke during pnd scanning. Can you also try moving/disabling all other pnds and see if you can start it then?

The problem with adding debug messages to try and isolate this crash is that the "gee_array_list_real_get: assertion failed: (index < _size)" is coming from a library dependency and doesn't provide any context. It could be any list usage, which would be add debug messages for everywhere. I do have a specific suspicion. Line 34 in Pnd.vala will crash in this way if the object gets instantiated with an empty app list. That should never happen though, and if it is that might point to at least one app missing some minimally expected data, such as an id.

Please try the test without any pnds present, and I'll look into adding a sanity check message in the specific case mentioned above and also try to change my scanning logic to survive invalid apps.
I found a reasonably probable/real-world scenario that triggers this crash. If you have two (or more) pnds which:
  • have the same filename
  • have different package ids
  • both contain an app with the same id
then Pandafe crashes with that error during pnd scanning. I don't know for sure that this is indeed the source of your problem, but I'll fix that logic bug in my scanned pnd processing.

Update: fix uploaded to repo (0.2.2.4-cba9). _wb_, can you give that a try?
 
Last edited by a moderator:
I feared, that PySolFC might be responsible since it has deliberately illegal application tags (exec is missing), but it seems to work fine here. Perhaps 'exploded PND' directories cause problems?
"'Exploded PND directories," assuming you mean just folders with a PXML.xml in them, work fine as far as the scanning goes (just checked) but my internal app mounting logic does not work properly in this case. New issue added to github for the mount issue.
Yes, I did mean these (because Minimenu doesn't like them, too).
- the C64 configuration didn't fit my version of the PND; first the ID seems to have changed and editing the program's id in Pandafe confused it enough that after a restart the platform wasn't any longer associated with the Program (was easier to fix than to diagnose:) ; second the provided run script for x64 has to set HOME (and preferably the SDL env variables too) or VICE will start with the (slow) default configuration
Program definitions are meant to apply only to specific app ids specifically for this reason. The custom command script targets just the specific app it was written for. Where there are multiple similar apps available, as with Vice, each pnd/app would need its own unique Program definition. It is *possible* though to have one Program definition support multiple app ids. To do that one would specify the app id in the Program using a regex/prefix/suffix, so that it matches all intended app ids, then write a custom command that works with all versions. In the case of Vice, I am just not familiar enough with the emulator or with C64 stuff in general to write such a multi-app Program definition, so I just added supported for one of them. The custom command was just a slightly modified version of the stock command from that PND, so it makes sense it didn't work well for your (slightly?) different app.
If you (or someone else) is interesting in contributing Program definitions for apps from other Vice pnds, or a combined definition that works with multiple apps, that would be warmly received. :)
I did word that poorly:) I meant the version of pickles vice PND that is current on the repo. It has an additional dot in the app id and a slightly bigger run_x64.sh (activating notaz's sdl).
My only real addition (that AFAICT is also necessary for the version included with Pandafe) is setting HOME to the current directory, because otherwise vice won't find it's configuration (since it is looking in $HOME/.vice).

I'm actually pretty sure, that the updated version of the program definition would work with both versions of the pnd (after changing the id to a regexp with the dot optional). Here it is: vice.x64.pickle.gz

- no ScummVM games are listed, even though the PND gets found and the get-game script created which also runs fine and seems to produce sensible output when run manually (haven't checked whether Pandafe actually runs it); perhaps the output format has changed?
Hmm. No, the output format hasn't changed, and it works ok still for me. As far as I know this should work with any version of the ScummVMpnd. Especially since the manually run get-game script returned sensible output I expect you probably just need to rescan the ScummVM platform (from the context menu). Let me know if that doesn't work.
Thanks for the reports, have fun!
I've found the problem. For whatever reasons the entry for BASS in my scummvm.config (and only this, unfortunately it was the first one) didn't have a 'language=' part leaving it unreplaced by the sed script. I've changed the get-games script to not require the language attribute and now it works.
 

Attachments

  • vice.x64.pickle.gz
    389 bytes · Views: 226
Last edited by a moderator:
Had the same crashes as wb. Now they are gone. Thank you, nuhrin! Very nice program.
 
I'm finding I'm using this more and more for easy access to most of my commonly used emulators, is it tough to add additional ones? I'd love to be able to run Atari 800 games from within Pandofe too, but only the 2600 is currently supported...
 
I did word that poorly:) I meant the version of pickles vice PND that is current on the repo. It has an additional dot in the app id and a slightly bigger run_x64.sh (activating notaz's sdl). My only real addition (that AFAICT is also necessary for the version included with Pandafe) is setting HOME to the current directory, because otherwise vice won't find it's configuration (since it is looking in $HOME/.vice). I'm actually pretty sure, that the updated version of the program definition would work with both versions of the pnd (after changing the id to a regexp with the dot optional).
Ah, I had thought that I'd included something for the current repo version, which has an app title of "Vice-x64", but didn't realize I had the older pnd filed away somewhere which has an app title of "Vice x64". I'll include the Program definition for this newer/current version (and make it the default) in my next release.

I've found the problem. For whatever reasons the entry for BASS in my scummvm.config (and only this, unfortunately it was the first one) didn't have a 'language=' part leaving it unreplaced by the sed script. I've changed the get-games script to not require the language attribute and now it works.
Thank you for sorting out the problem. I'll include a more general regex in the next release also.

Appreciate the help!
 
I'm finding I'm using this more and more for easy access to most of my commonly used emulators, is it tough to add additional ones? I'd love to be able to run Atari 800 games from within Pandofe too, but only the 2600 is currently supported...
Its not too tough to add new Platforms/Programs if you have some working knowledge of shell scripts. Take a look at this step by step example if you'd like to give it a shot yourself. I've never played an Atari 800 game, so I'm not sure which pnds to try or whether they can be supported, but I've added an github issue as I reminder to look into it if you don't beat me to it. If you do get something working, please attach your Platform and Program files here or on the github and I'll include them.
 
Last edited by a moderator:
Hi Nuhrin

Great front end, it works really well for me on an original CC pandora.

I am having a slight issue with trying to add Scumm games.

The games I have installed in Scumm are within my Dosbox appdata folder as this was the program I was using play some of them.

When I run the scan I get an error 'Error Running Get Games script for ScummVM'

This consists of:

Command:

pandafe_get-games.sh

Exit Status: 512

Standard Output:

Standard Error:

pandafe_get-games.sh: line 1: [scummvm]: not found

pandafe_get-games.sh: line 8: [sky]: not found

pandafe_get-games.sh: line 10: syntax error: "(" unexpected.

I apologise if there is an easy fix, I have had a look for something and not come across anything.

I am not hugely up with the hacking around thing, just lack of time to learn these things.

I appreciate any help.

Cheers

Rob
 
When I run the scan I get an error 'Error Running Get Games script for ScummVM' This consists of: Command: pandafe_get-games.sh Exit Status: 512 Standard Output: Standard Error: pandafe_get-games.sh: line 1: [scummvm]: not found pandafe_get-games.sh: line 8: [sky]: not found pandafe_get-games.sh: line 10: syntax error: "(" unexpected.
A similar issue was reported by _jr_ above. My "Get Games" script which parses scummvm.config for game title/id information makes some wrong assumptions about some of its possible contents. I will try to reproduce your issue and if I can them my next release should address your issue as well as his. If you can post or send your scummvm.config that would help.

Update: after re-reading the error output it acts as though the pandafe_get_games.sh is somehow trying to *execute* the contents of the scummvm.config. I get the same sort of errors if I try to execute: "sh scummvm.config". I can't imagine why this would be. Try these steps and see if they fix it:

  1. remove appdata/scummvm/pandafe_get-games.sh
  2. remove appdata/pandafe/Platform/scummvm
  3. start pandafe
  4. rescan the ScummVM platform
 
Last edited by a moderator:
Hi Nuhrin

Thanks for the reply.

I have tried deleting those two files, then pandafe didn't see scumm at all and I couldn't get it to register, I tried rescanning, but no luck.

I tried deleting them one at a time, the run script in the scumm folder didn't change anything. Deleting the scumm file from the platforms folder removed scumm from the others list with no way that I could find to reinstate it.

I will post my scumm co fig file in a little while.

Your support is greatly appreciated.

Cheers

Rob.
 
Hi Nuhrin

so after a little experimentation I have managed to delete the correct part of the run script and it has now found the installed games.

I deleted the part on the last line from the ( language.* |    or something like that.

Thanks for your help with this.

Cheers

Rob
 
so after a little experimentation I have managed to delete the correct part of the run script and it has now found the installed games. I deleted the part on the last line from the ( language.* | or something like that.
Awesome, thanks for the details. The same fix should address both _jb_'s situation and yours. I'll include that in the next release, when I can get to that.

So....is there a way to make PanDafe launch more than just the standard out of the box from Repo? If so...I'd like to know how.
You can create new Platform and Program definitions to run roms/etc, and take a look at the ScummVM Platform&Program definitions to dream up new uses for the "Program-Based Platform" concept. But I know you've got other specific ideas about customization options, as you spelled them out a couple times elsewhere. Those couple github issues I added in response to those other posts would get you closer to what you seem to envision, and I'll try to keep those on my radar in the future. For now you should perhaps just play with whats there to get a better feel for whats possible and help you better express what additions/changes you'd like to see.

So, I'm on vacation for the month, traveling about the American West. I dunno whether that means I'll have more or less time to hack on the codebase, but if you get responses from me for awhile, that's why. :)
 
Back
Top