#Shovel Knight: Standalone Edition(s)

105 messages · Page 1 of 1 (latest)

limpid umbra
#

Ready for navigators?

drowsy isle
#

Oh, that’s cool, wasn’t expecting to see this

#

Looking forward to how this progresses

placid ridge
# limpid umbra Ready for navigators?

Let me quickly test on ROCKNIX and then I'll give it the thumbs up. Can you also pin the first post to the thread in case I need to update the attachment?

limpid umbra
placid ridge
limpid umbra
#

I meant missing fields

placid ridge
placid ridge
#

Updated!

limpid umbra
#

<@&1216123318122577972>

placid ridge
placid ridge
#

Not ready yet.

hollow badger
#

BUT YOU ALREADY MADE ME BUY THE WHOLE SHEBANG!

placid ridge
#

Hey folks, my apologies but this file was missing from the initial .zip file. I have included it here and will update the archive up top.

#

Here's the README.md I forgot to include in the archive.

Notes

Special thank you goes to JohnnyonFlame for creating the original port, which made this one possible. Also big thank you to the PortMaster team and community. Finally, big thanks to the developers of the Shovel Knight series, Yacht Club Games.

Controls

Controls can be mapped in-game. Use the D-PAD with the A and B buttons to configure in-game.

Compile

# building 32-bit ARM code on aarch64 requires this armhf gcc cross-compiler toolchain
sudo apt install gcc-arm-linux-gnueabihf  
git clone https://github.com/ptitSeb/box86
cd box86
mkdir build; cd build; cmake .. -DARM64=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo; make -j3
sudo make install
sudo systemctl restart systemd-binfmt
placid ridge
drowsy isle
#

Welp, a pin should do the trick

drowsy isle
placid ridge
drowsy isle
#

Np, idk how to access pinned messages in these rooms but eh

placid ridge
#

Although dialog is no longer feasable so I'm looking for other options at this point.

limpid umbra
livid owl
#

I feel a "jan will make a launcher for you" comingdoggokek

placid ridge
placid ridge
# limpid umbra What are you using dialog for?

Script detects installed gamedata (there are different 4 standalone games) and presents a dialog asking which of the detected games you'd like to play. The user can also cancel out at this stage as well. Finally, dialog pops a message if no game files are detected.

placid ridge
#

I believe @teal oar once told me we could use the PortMaster GUI to make a launcher of sorts. Is there any example of this I could look at?

livid owl
#

To the moon has a simple launcher i made. In planning on making something better and adding it to the portmaster utils

placid ridge
placid ridge
livid owl
#

Still working on the launcher utility if youre not in a hurry

placid ridge
#

No worries. I'm learning this love front end because I basically have to.

livid owl
#

Alright haha

placid ridge
#

So, in yours, how does it detect which games are loaded (I.E. only allow to select for the gamedata you have)??

placid ridge
# livid owl Alright haha

I think I'm going to ask @bitter harbor if we can combine this into one mega-port once done. Essentially, Treasure Trove would be another subdirectory within gamedata.

livid owl
placid ridge
livid owl
#

Pretty sure i write the variable to a txt file

#

Which you then read with the port script and use to launch a folder

placid ridge
#

I will take a peek. Esentially, you're feeding that in to the mini lanucher.

placid ridge
livid owl
#

Oh the presets are at the top of main.lua

#

Ill let you know if the launcher is ready for use/testing. Its going to be as easy as a config file and a couple lines in your port script

placid ridge
placid ridge
#

@livid owl What is a WOG file? I think this is the relevant code I should be looking at:


if [ -f ""$WOG_FILE"" ]; then
    unzip -o "$WOG_FILE" > "$CUR_TTY"
    if [ -d "data/noarch/game" ]; then
        $ESUDO mv -f data/noarch/game/* "$GAMEDIR/gamedata/" || { echo "Failed to move game directory." > "$CUR_TTY"; sleep 5; exit 1; }
    else
        echo "Game directory not found after extraction." > "$CUR_TTY"
        sleep 5
        exit 1
    fi
    rm -f "$WOG_FILE"
    echo "Setup complete. Have fun playing!" > "$CUR_TTY"
fi```
#

I just bought To The Moon so I could better test your script and logic to incorporate into this port.

limpid umbra
teal oar
livid owl
#

Thats jeods doing i think :p

agile pond
limpid umbra
#

😄

livid owl
#

Okay you get a pass this timedoggokek

agile pond
placid ridge
placid ridge
livid owl
#

Im gonna handle the deps, dont worry about that 🙂

#

For to the moon, its the love2d/lua libs

#

plus maybe theora?

placid ridge
#

Aaah. Maybe I'll hold off until you're ready with the utility so I don't have to rework as much.

Here's what is in the To the Moon port:

livid owl
#

I have it working in its basis

#

But i want to polish it a lot more

placid ridge
#

No worries. Whenever you can get to it.

livid owl
#

I can send over a wip version when im sure i dont want to change it function wise

#

Btw, how many games will be in the launcher?

placid ridge
livid owl
#

Ah thats nice

placid ridge
#

My idea is to just combine this with JohnnyonFlame's original port so that people can run whichever edition(s) they happen to own gamefiles for.

livid owl
#

if you want to already prepare. Its going to work something like this:

Portscript:

  • Export the dir with the config and images
  • Source love2d runtime
  • Run minilauncher
  • Use exported variable to run the selected game

Portfolder:

  • add folder for images and config
  • add config with mode, gamenames and export variables
  • add images for all the games
#

hey

#

itll be quite easy😄

placid ridge
placid ridge
livid owl
#

That was basically just moonlight stripped to the bare minimum

#

All hardcoded where this new one should be good as a util

#

And in this case if you only want to show the games that the user added, you can use sed to change the config file to whatever

#

So if you detect files in a certain folder, use sed to add the game to the config

placid ridge
livid owl
#

I did? dont remember haha

placid ridge
#

I think so. I'll double check. The Ported by Cebion part was my favourite. It adds a little more personalization to the ports.

livid owl
#

Damn i should add that again haha

#

Enough to do 🙂

placid ridge
livid owl
#

Yeah exactly haha

placid ridge
crystal tartan
#

On Rocknix running on RGB10 Max 3, the dialog menu doesn't actually appear onscreen (it's just blank), but it seems to still work technically - when I use Start+Select to get back to Rocknix, then check out the logfile afterwards, it indicates that the frontend at the very least detected that I cancelled out of choosing a game. So far there's just Shovel of Hope on the SD card, installed correctly. It shouldn't have problems when there's just one game existing, right?

placid ridge
#

Hey @livid owl, how's that launcher coming along. 😄

placid ridge
#

I've almost got my version working. I'm running into a small issue with binding the conf dirs:

if(!(ptr)): Create dir: Couldn't create directory '/Yacht Club Games': 'Permission denied'
 Run Thread Save Thread
Bad Save Read: Invalidating input save data!
Bad Save Read: Clearing save data!```
livid owl
crystal tartan
#

Any fix for the current menu not showing up on-screen for me but still operating in the background?

placid ridge
livid owl
#

Im turning it into a tool, so its in the PM folder. Just need to do a whole bunch of small stuff, then clean it up 🙂

placid ridge
livid owl
#

Looks good 🙂

placid ridge
placid ridge
#

Just made more generic

#

@livid owl, Is there a way from your launcher to read the inial list of selection from a file rather than hard coded in the config.lua file? Essentially, I only want to present the games to which the user has provided the data for.

livid owl
#

Not built in but thats possible

#

Either use sed within your port script, or use io.popen or lfs with love2d