Release Benri and the Bandits

Discussion in 'Software Releases' started by elvissteinjr, Feb 22, 2019.

  1. elvissteinjr

    elvissteinjr Very Active Member

    Joined:
    Aug 23, 2013
    Messages:
    410
    Location:
    Germany
    I've released a little game for the Pandora.

    It's a short action adventure kind of game which was created for a contest in a German RPG Maker community. While it does borrow some graphics and the art style from those kind of games, it is running on a custom engine.

    It has a comedic touch, but doesn't do anything groundbreaking, I'll admit. Perhaps it can still entertain you for a bit.
    Overall it's also some sort of testbed for me for deploying to all the platforms.

    You can get it on the repo
    More game details can be found on this page

    Enjoy.
     
    Tags:
    kaprikawn, rSl, Farox and 6 others like this.
  2. klapse

    klapse Central Scrutinizer

    Joined:
    Aug 30, 2012
    Messages:
    1,932
    Location:
    Germany
    Congrats on your release! Will play.

    [​IMG]

    To whom does "Her Majesty" refer?
     
    Last edited: Feb 22, 2019
  3. atari_afternoon

    atari_afternoon Member

    Joined:
    Oct 11, 2012
    Messages:
    443
    Location:
    Germany
  4. ClockworkCoder

    ClockworkCoder Chaotic Neutral

    Joined:
    Jan 21, 2016
    Messages:
    954
    Location:
    Menzoberranzan
    I feel bad for being pedantic here, but there's a small typo in @klapse 's screenshot "Desspite"

    Also, pretty off-topic, 'benri' means 'convenient' in Japanese (which you probably knew). There was no reason for me to say that.

    Looks interesting :)
     
  5. atari_afternoon

    atari_afternoon Member

    Joined:
    Oct 11, 2012
    Messages:
    443
    Location:
    Germany
    Hi again, sorry to report I couldn´t get it started...looks like a library is missing.
    #./Benri: error while loading shared libraries: libpulse.so.0: cannot open shared object file: No such file or directory
    I do have the latest firmware 1.76 though, as you advise on http://www.elvissteinjr.net/?site=benri
    Will run OS Update when after work and see again :)

    =======================================================================================
    PND : /media/PANDORA/pandora/menu/Benri_1_1_OpenPandora.pnd
    PND_FSTYPE : Squashfs
    APPDATADIR : /media/PANDORA/pandora/appdata/Benri
    APPDD_FSTYPE : vfat
    PND_CPUSPEED : <unset>
    EXENAME : benri.sh
    ARGUMENTS : <unset>
    =======================================================================================
    [ START ]--- Mount the PND ----------
    Mounting : mount -t squashfs -o ro "/dev/loop4" "/mnt/utmp/Benri"
    Mounting the Union FS : mount -t aufs -o exec,noplink,dirs="/media/PANDORA/pandora/appdata/Benri=rw+nolwh":"/mnt/pnd/Benri=rr" none "/mnt/utmp/Benri"
    [SUCCESS]--- Mount the PND ----------
    [ START ]--- Starting the application ( benri.sh ) ----------
    ./Benri: error while loading shared libraries: libpulse.so.0: cannot open shared object file: No such file or directory
    [ FAILED]--- Starting the application ( benri.sh ) ----------
    [ START ]--- Restoring the frame buffer status ----------
    [SUCCESS]--- Restoring the frame buffer status ----------
    [ START ]--- uMount the PND ----------
    [ START ]--- Waiting the Union to be available ----------
    [SUCCESS]--- Waiting the Union to be available ----------
    rmdir: failed to remove `/mnt/utmp/Benri': Device or resource busy
    [ START ]--- Waiting the PND mount dir to be free ----------
    [SUCCESS]--- Waiting the PND mount dir to be free ----------
    cleanup done
    [SUCCESS]--- uMount the PND ----------
    =======================================================================================
    Return code is : 4
     
  6. kuru

    kuru Laptop und Trachtenjanker

    Joined:
    Jan 13, 2009
    Messages:
    1,754
    Location:
    the mockracy
    Multilanguage, nice! Haven't played far in, the text is very hard to read. Is there a way to go fullscreen?
     
  7. second exodous

    second exodous Advanced Member

    Joined:
    Sep 27, 2005
    Messages:
    2,968
    Location:
    Utah, USA
    Huh, doesn't open for me. I have the latest firmware but it is a no go. I get some red activity light flashing for a few seconds and then nothing.
     
  8. elvissteinjr

    elvissteinjr Very Active Member

    Joined:
    Aug 23, 2013
    Messages:
    410
    Location:
    Germany
    Looks like my attempts at cutting down the PND size backfired, I suppose. I've reuploaded the PND with libpulse included, but I wouldn't be able to tell you how it ended up in on my NAND... could've been the codec pack thinking about it, but it's not my intention to require that of course. Hope there's not more missing.
    I did use the Code::Blocks PND and its copy_libs.sh script, but it pulled a few things which seemingly weren't required, so I did not include those.

    Technically, yes. This is somewhat problematic on the Pandora though. The game's resolution was designed with the intent of fitting nicely to modern HD resolution. On other platforms, there is a graphics settings menu where you can adjust the scaling.
    The Pandora's resolution can't fit 2x of the game, so the only option is nasty in-between. Doing this is supported, but requires a render-to-texture step which is awfully slow (I'm using framebuffer blit and FBOs where supported, so not sure if this can be made faster). It's also far from visually pleasing to the pixel art. This is why the menu is removed in this version.
    I did say yes though, so to enable this anyways you can manually edit the config.ini file in "appdata/Benri", set PerfectScaling to 1 and Scale to -1. My CC Pandora maxes out at 15 fps with this though, so not really playable. Might be alright on 1 GHz models.


    Regarding website typos: Fixed. I had a native speaker look and play through the game itself, so obvious mistakes should not be in there, but I had no one else look over the website text.
     
    CommanderB, atari_afternoon and kuru like this.
  9. Magic Sam

    Magic Sam Forever Homebrew

    Joined:
    Aug 10, 2007
    Messages:
    2,206
    Location:
    Innsmouth, MA
    Hi all :)

    @elvissteinjr : thanks for porting this game to the Pandora ! Unfortunately it crashes with the following error message:
    Here's the full output:
    =============================================================================
    ==========
    PND : /media/Pandora2/pandora/menu/com.elv.benri.pnd
    PND_FSTYPE : Squashfs
    APPDATADIR : /media/Pandora2/pandora/appdata/Benri
    APPDD_FSTYPE : ext2
    PND_CPUSPEED : <unset>
    EXENAME : benri.sh
    ARGUMENTS : <unset>
    =============================================================================
    ==========
    [ START ]--- Mount the PND ----------
    Mounting : mount -t squashfs -o ro "/dev/loop0" "/mnt/utmp/Benri"
    Mounting the Union FS : mount -t aufs -o exec,dirs="/media/Pandora2/pandora/a
    ppdata/Benri=rw+nolwh":"/mnt/pnd/Benri=rr" none "/mnt/utmp/Benri"
    [SUCCESS]--- Mount the PND ----------
    [ START ]--- Starting the application ( benri.sh ) ----------
    Benri and the Bandits version 1.0.1767.9820 Release, Build 1882.
    Built on Feb 19 2019, 17:53:14
    Running with Pipe 1.0.1
    Started on Sun Feb 24 15:03:11 2019

    SDL init successful

    Loading archive "data.pra"...
    There was an error trying to access the file.
    Loading archive "gfx.pra"...
    There was an error trying to access the file.
    Loading archive "audio.pra"...
    There was an error trying to access the file.
    Attempting to load PDB "backgrounds.pdb"...
    Read File Header
    File Header is valid. Version of the file is 3
    Attempting to load PDB "sprites.pdb"...
    Read File Header
    File Header is valid. Version of the file is 3
    Attempting to load PDB "locations.pdb"...
    Read File Header
    File Header is valid. Version of the file is 1
    Attempting to load translation "input_names_en.ini"...
    Attempting to load translation "twc_strings_main_en.ini"...
    Attempting to load translation "twc_strings_dialogs_en.ini"...
    Attempting to load translation "twc_strings_comments_en.ini"...
    Attempting to load translation "input_names_pandora.ini"...
    SDL: Forcing GLES2 driver
    Couldn't create window:
    Textures freed
    [ FAILED]--- Starting the application ( benri.sh ) ----------
    [ START ]--- Restoring the frame buffer status ----------
    [SUCCESS]--- Restoring the frame buffer status ----------
    [ START ]--- Restoring nub mode ----------
    [SUCCESS]--- Restoring nub mode ----------
    [ START ]--- uMount the PND ----------
    [ START ]--- Waiting the Union to be available ----------
    [SUCCESS]--- Waiting the Union to be available ----------
    rmdir: failed to remove `/mnt/utmp/Benri': Device or resource busy
    [ START ]--- Waiting the PND mount dir to be free ----------
    [SUCCESS]--- Waiting the PND mount dir to be free ----------
    cleanup done
    [SUCCESS]--- uMount the PND ----------
    =============================================================================
    ==========
    Return code is : 5

    Cheers, Magic Sam
     
  10. elvissteinjr

    elvissteinjr Very Active Member

    Joined:
    Aug 23, 2013
    Messages:
    410
    Location:
    Germany
    Hm... what Pandora model and SGX driver version is this on? Other stuff using OpenGLES is working on your device, I assume?
    This obviously shouldn't be happening, but SDL doesn't really deliver any specific error when the 3D driver refuses to do its thing here.

    The only thing that comes to mind right away is disabling the powervr.ini tweaks I did. Beyond the typical VSync thing, it's not the best documented stuff in there, but it worked fine on what I had to test. So creating an empty file called powervr.ini in "appdata/Benri" would do for that.


    Perhaps I should've let this release go through some beta testing in the community here first. I've had the basic engine behind this run on different Pandoras (and Pyra prototypes) with a different game (wip) without any issues before. Put too much trust in this working everywhere I guess.
     
    Magic Sam likes this.
  11. Magic Sam

    Magic Sam Forever Homebrew

    Joined:
    Aug 10, 2007
    Messages:
    2,206
    Location:
    Innsmouth, MA
    @elvissteinjr : I tried your game on a Rebirth unit, SGX driver 4.10, latest SuperZaxxon. OpenGLES applications are working correctly.

    I'll give your empty powervr.ini trick a try and report here ASAP :)

    EDIT: it worked ! Thanks !

    Cheers, Magic Sam
    --- Double Post Merged, Feb 24, 2019, Original Post Date: Feb 24, 2019 ---
    Hi again,

    @elvissteinjr : the game crashes a little further down the road, after the king orders his soldiers to stay on post:

    EDIT: @elvissteinjr : I'm obviously not a developer, but this part looks bad, doesn't it ?
    Cheers, Magic Sam
     
    Last edited: Feb 24, 2019
    levi likes this.
  12. elvissteinjr

    elvissteinjr Very Active Member

    Joined:
    Aug 23, 2013
    Messages:
    410
    Location:
    Germany
    Something seems off here. The game shouldn't spam stdout that much in the release build. Not that it's sensitive info, but I thought I disabled that.
    The double free detection is also during printing the game object name... which is odd. No free or delete is happening there, at least not by me (using std::string functions there, not much else).

    But no SGX driver lockups or anything, right? I've had to deal that on my CC since the driver doesn't seem to like how I've handled my OpenGL buffers. I'll restrict those tweaks to CC models for now.
    Here's a fresh recompile of the whole thing with the code more like it should be and model specific powervr.ini. Can't test if it fixes the crash unfortunately.

    Sorry for the game exploding in your face. Stuff like this always happens when it works fine on the other 5 platforms I released for.
     
    atari_afternoon likes this.
  13. Magic Sam

    Magic Sam Forever Homebrew

    Joined:
    Aug 10, 2007
    Messages:
    2,206
    Location:
    Innsmouth, MA
    Hi @elvissteinjr :)

    I'll give your new version a try ASAP ! And don't worry about those issues, debugging is also part of the fun ;)

    Cheers, Magic Sam
     
  14. Magic Sam

    Magic Sam Forever Homebrew

    Joined:
    Aug 10, 2007
    Messages:
    2,206
    Location:
    Innsmouth, MA
    Hi @elvissteinjr :)

    I'm sorry to report your new PND crashes in the exact same way (and at the exact same time) as before:

    That "double free or corruption" error appears earlier than before though.

    I hope I'm not doing anything wrong on my end...

    Cheers, Magic Sam
     
  15. atari_afternoon

    atari_afternoon Member

    Joined:
    Oct 11, 2012
    Messages:
    443
    Location:
    Germany
    Didn´t start here either. Can provide pnd run out if needed. Sorry to not have better news at the moment. I appreciate it so much that new software for the Pandora in her 9th year out is still being published and ported and improved.
     
    Magic Sam likes this.
  16. levi

    levi Still fresh, damnit!

    Joined:
    Oct 6, 2008
    Messages:
    10,956
    Location:
    Somewhere off the coast of the EU
    You seem to be loading a save file from the throne room where the game crashes. You can't be sure that whatever's causing it to crash isn't contained within the save file, so in general to produce a reproducible error you need to go from the start of the game. Savefiles are useful for reproducing errors within the same release version only.

    Edit: Maybe not. That message about loading the level is there in the old log as well, so I guess it might be spat out when you actually play through to that point.
     
  17. Magic Sam

    Magic Sam Forever Homebrew

    Joined:
    Aug 10, 2007
    Messages:
    2,206
    Location:
    Innsmouth, MA
    @levi : I started from a clean slate, removed both the old PND and its appdata folder :)

    Cheers, Magic Sam
     
    levi likes this.
  18. elvissteinjr

    elvissteinjr Very Active Member

    Joined:
    Aug 23, 2013
    Messages:
    410
    Location:
    Germany
    Started with a clean slate as well now. Put a fresh OS onto an SD card and went from there.
    There was another missing lib at first, but otherwise I played through the entire game just fine.
    If there was a different version of that lib in the NAND while still having the same name (libpulsecommon-0.9.15), it could've probably been the cause of this.

    If not, it'll remain odd to me. I'll probably try stuff like older compilers or stuffing the PND with pretty much all libs it's linked to, even when available in the stock image, if it still doesn't work.

    *.prm files are the rooms themselves. The save game files end on good old .sav. The stuff saved in them doesn't go that much in the detail as to recreate such crashes I'd say (entity positions are only stored if critical for progressing for example).

    Thanks for putting up with this so far. I've attached another test PND, though the only change is the additional lib, no recompile or anything.
     

    Attached Files:

    Magic Sam and atari_afternoon like this.
  19. Magic Sam

    Magic Sam Forever Homebrew

    Joined:
    Aug 10, 2007
    Messages:
    2,206
    Location:
    Innsmouth, MA
    Hi all :)

    @elvissteinjr : I'm sorry but your latest version crashes just the same.

    Here's the output of ldd from @ptitSeb 's Code::Blocks:
    /mnt/utmp/Benri_Test_1884_2$ ldd Benri
    libSDL2-2.0.so.0 => /mnt/utmp/Benri_Test_1884_2/libSDL2-2.0.so.0 (0x40105000)
    libSDL2_image-2.0.so.0 => /mnt/utmp/Benri_Test_1884_2/libSDL2_image-2.0.so.0 (0x401fc000)
    libSDL2_mixer-2.0.so.0 => /mnt/utmp/Benri_Test_1884_2/libSDL2_mixer-2.0.so.0 (0x4006c000)
    libGLES_CM.so => /mnt/utmp/codeblocks/usr/lib/libGLES_CM.so (0x40312000)
    libEGL.so => /mnt/utmp/codeblocks/usr/lib/libEGL.so (0x40241000)
    libX11.so.6 => /mnt/utmp/Benri_Test_1884_2/libX11.so.6 (0x4037b000)
    libstdc++.so.6 => /mnt/utmp/Benri_Test_1884_2/libstdc++.so.6 (0x40485000)
    libm.so.6 => /lib/libm.so.6 (0x4024b000)
    libgcc_s.so.1 => /mnt/utmp/Benri_Test_1884_2/libgcc_s.so.1 (0x40029000)
    libc.so.6 => /lib/libc.so.6 (0x405ca000)
    libiconv.so.2 => /mnt/utmp/Benri_Test_1884_2/libiconv.so.2 (0x406f1000)
    libdl.so.2 => /mnt/utmp/codeblocks/usr/lib/libdl.so.2 (0x40055000)
    libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x402be000)
    libXinerama.so.1 => /mnt/utmp/codeblocks/usr/lib/libXinerama.so.1 (0x40060000)
    libXrandr.so.2 => /mnt/utmp/codeblocks/usr/lib/libXrandr.so.2 (0x402ce000)
    libXss.so.1 => /mnt/utmp/codeblocks/usr/lib/libXss.so.1 (0x402de000)
    libXxf86vm.so.1 => /mnt/utmp/Benri_Test_1884_2/libXxf86vm.so.1 (0x402e8000)
    libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0x407eb000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x4081d000)
    librt.so.1 => /mnt/utmp/codeblocks/usr/lib/librt.so.1 (0x402f5000)
    libts-1.0.so.0 => /mnt/utmp/codeblocks/usr/lib/libts-1.0.so.0 (0x40304000)
    libXext.so.6 => /usr/lib/libXext.so.6 (0x4083c000)
    libpng16.so.16 => /mnt/utmp/codeblocks/usr/lib/libpng16.so.16 (0x40852000)
    libtiff.so.5 => /mnt/utmp/codeblocks/usr/lib/libtiff.so.5 (0x40897000)
    liblzma.so.5 => /mnt/utmp/codeblocks/usr/lib/liblzma.so.5 (0x4091b000)
    libjpeg.so.8 => /mnt/utmp/codeblocks/usr/lib/libjpeg.so.8 (0x40947000)
    libz.so.1 => /mnt/utmp/codeblocks/usr/lib/libz.so.1 (0x409a5000)
    libmikmod.so.2 => /mnt/utmp/codeblocks/usr/lib/libmikmod.so.2 (0x409be000)
    libfluidsynth.so.1 => /mnt/utmp/codeblocks/usr/lib/libfluidsynth.so.1 (0x40a09000)
    libreadline.so.5 => /usr/lib/libreadline.so.5 (0x40abf000)
    libjack.so.0 => /mnt/utmp/codeblocks/usr/lib/libjack.so.0 (0x40af5000)
    libpulse-simple.so.0 => /mnt/utmp/codeblocks/usr/lib/libpulse-simple.so.0 (0x40b44000)
    libpulse.so.0 => /mnt/utmp/codeblocks/usr/lib/libpulse.so.0 (0x40b4f000)
    libportaudio.so.2 => /mnt/utmp/codeblocks/usr/lib/libportaudio.so.2 (0x40b8c000)
    libasound.so.2 => /mnt/utmp/codeblocks/usr/lib/libasound.so.2 (0x40bb8000)
    libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x40c82000)
    libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x40c8b000)
    libsndfile.so.1 => /mnt/utmp/codeblocks/usr/lib/libsndfile.so.1 (0x40da8000)
    libvorbisenc.so.2 => /mnt/utmp/codeblocks/usr/lib/libvorbisenc.so.2 (0x40e2c000)
    libvorbisidec.so.1 => /mnt/utmp/codeblocks/usr/lib/libvorbisidec.so.1 (0x40ebf000)
    libvorbis.so.0 => /mnt/utmp/codeblocks/usr/lib/libvorbis.so.0 (0x40ee9000)
    libFLAC.so.8 => /mnt/utmp/codeblocks/usr/lib/libFLAC.so.8 (0x40f29000)
    libogg.so.0 => /mnt/utmp/codeblocks/usr/lib/libogg.so.0 (0x40f7b000)
    libmpg123.so.0 => /mnt/utmp/codeblocks/usr/lib/libmpg123.so.0 (0x40f90000)
    libsrv_um.so => /usr/lib/libsrv_um.so (0x40fef000)
    libIMGegl.so => /mnt/utmp/codeblocks/usr/lib/libIMGegl.so (0x4101f000)
    libusc.so => /usr/lib/libusc.so (0x41038000)
    libxcb.so.1 => /mnt/utmp/codeblocks/usr/lib/libxcb.so.1 (0x4111e000)
    libpthread-stubs.so.0 => /mnt/utmp/codeblocks/usr/lib/libpthread-stubs.so.0 (0x41148000)
    libXau.so.6 => /mnt/utmp/codeblocks/usr/lib/libXau.so.6 (0x41151000)
    libXdmcp.so.6 => /mnt/utmp/codeblocks/usr/lib/libXdmcp.so.6 (0x4115b000)
    /lib/ld-linux.so.3 (0x400df000)
    libXrender.so.1 => /mnt/utmp/codeblocks/usr/lib/libXrender.so.1 (0x41167000)
    libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x41177000)
    libncurses.so.5 => /usr/lib/libncurses.so.5 (0x41183000)
    libopus.so.0 => /mnt/utmp/codeblocks/usr/lib/libopus.so.0 (0x411a6000)
    libpulsecommon-0.9.15.so => /mnt/utmp/codeblocks/usr/lib/libpulsecommon-0.9.15.so (0x41216000)
    libSM.so.6 => /usr/lib/libSM.so.6 (0x4125e000)
    libICE.so.6 => /usr/lib/libICE.so.6 (0x4126c000)
    libXtst.so.6 => /mnt/utmp/codeblocks/usr/lib/libXtst.so.6 (0x41289000)
    libXi.so.6 => /mnt/utmp/codeblocks/usr/lib/libXi.so.6 (0x41296000)
    libasyncns.so.0 => /mnt/utmp/codeblocks/usr/lib/libasyncns.so.0 (0x412ab000)
    libnsl.so.1 => /lib/libnsl.so.1 (0x412bf000)
    libresolv.so.2 => /mnt/utmp/codeblocks/usr/lib/libresolv.so.2 (0x412dc000)
    libcap.so.2 => /mnt/utmp/codeblocks/usr/lib/libcap.so.2 (0x412f7000)
    libgdbm.so.3 => /usr/lib/libgdbm.so.3 (0x41303000)
    libuuid.so.1 => /usr/lib/libuuid.so.1 (0x41310000)
    libwrap.so.0 => /usr/lib/libwrap.so.0 (0x4131c000)
    libspeex.so.1 => /mnt/utmp/codeblocks/usr/lib/libspeex.so.1 (0x4132b000)
    libtinfo.so.5 => /usr/lib/libtinfo.so.5 (0x4135a000)
    libattr.so.1 => /usr/lib/libattr.so.1 (0x4137f000)

    I noticed some libraries were missing from /mnt/utmp/Benri_Test_1884_2.

    Cheers, Magic Sam
     
  20. elvissteinjr

    elvissteinjr Very Active Member

    Joined:
    Aug 23, 2013
    Messages:
    410
    Location:
    Germany
    The journey continues. Not worth the game this is about, but this will make the following releases a bit smoother I hope (I have some stuff planned if everything goes well).
    Your list looks long, but actually most of these are just symlinks to the library installed on the nand (checked every lib one by one).
    I've ran copy_libs.sh again, skipped my uneducated guesses this time and just packed everything it copied. Couple of more X11 libs in there this time around and jack, not much else. I wouldn't know why a double free happens at that certain point with these libs in particular, if it's even them.

    I did that on the clean install, so if that does not work, I'll call the port master himself for help. Whew.
     

    Attached Files:

    FBnil, Magic Sam and atari_afternoon like this.

Share This Page

Loading...