Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade Fire Arrow -> Fire Arrow Plus #1181

Merged
merged 8 commits into from
Jan 13, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 107 additions & 0 deletions ports/firearrow/Fire Arrow Plus.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
#!/bin/bash

XDG_DATA_HOME=${XDG_DATA_HOME:-$HOME/.local/share}

if [ -d "/opt/system/Tools/PortMaster/" ]; then
controlfolder="/opt/system/Tools/PortMaster"
elif [ -d "/opt/tools/PortMaster/" ]; then
controlfolder="/opt/tools/PortMaster"
elif [ -d "$XDG_DATA_HOME/PortMaster/" ]; then
controlfolder="$XDG_DATA_HOME/PortMaster"
else
controlfolder="/roms/ports/PortMaster"
fi

source $controlfolder/control.txt
export PORT_32BIT="Y"
[ -f "${controlfolder}/mod_${CFW_NAME}.txt" ] && source "${controlfolder}/mod_${CFW_NAME}.txt"
get_controls

# GAMEDIR needs to be exported or love will not 'see' the envar
export GAMEDIR="/$directory/ports/firearrow"

export DEVICE_ARCH="${DEVICE_ARCH:-armhf}"
export LD_LIBRARY_PATH="/usr/lib32:$GAMEDIR/libs:$LD_LIBRARY_PATH"
export GMLOADER_DEPTH_DISABLE=1
export GMLOADER_SAVEDIR="$GAMEDIR/gamedata/"
export GMLOADER_PLATFORM="os_linux"

cd "$GAMEDIR"

> "$GAMEDIR/log.txt" && exec > >(tee "$GAMEDIR/log.txt") 2>&1

# Steam Fire Arrow
if [ -d "$GAMEDIR/FA1" ]; then
mv "$GAMEDIR/FA1/data.win" "$GAMEDIR/firearrow/gamedata/data.win"
mv "$GAMEDIR/FA1/"*.ogg "$GAMEDIR/firearrow/gamedata/."
sleep 0.5
rm -rf "$GAMEDIR/FA1"
fi

# Steam Fire Arrow X
if [ -d "$GAMEDIR/FAX" ]; then
mv "$GAMEDIR/FAX/data.win" "$GAMEDIR/firearrowx/gamedata/data.win"
mv "$GAMEDIR/FAX/"*.ogg "$GAMEDIR/firearrowx/gamedata/."
sleep 0.5
rm -rf "$GAMEDIR/FAX"
fi

# itch.io Fire Arrow (tested with Fire_Arrow_complete_2717.zip)
itch_io_fire_arrow=$(find $GAMEDIR -maxdepth 1 -iname "fire_arrow_complete*.zip" | head -n 1)
if [[ -n "$itch_io_fire_arrow" ]]; then
$ESUDO unzip -X -o "$itch_io_fire_arrow" -d "$GAMEDIR/firearrow/gamedata/"
sleep 0.5
rm -f "$itch_io_fire_arrow"
fi

# itch.io Fire Arrow X (tested with FAX_complete_2717.zip)
itch_io_fire_arrow_x=$(find $GAMEDIR -maxdepth 1 -iname "FAX_complete*.zip" | head -n 1)
if [[ -n "$itch_io_fire_arrow_x" ]]; then
$ESUDO unzip -X -o "$itch_io_fire_arrow_x" -d "$GAMEDIR/firearrowx/gamedata/"
sleep 0.5
rm -f "$itch_io_fire_arrow_x"
fi

if [ -f "$GAMEDIR/firearrow/gamedata/data.win" ]; then
mv "$GAMEDIR/firearrow/gamedata/data.win" "$GAMEDIR/firearrow/gamedata/game.droid"
sleep 0.5
mkdir -p $GAMEDIR/firearrow/assets
mv $GAMEDIR/firearrow/gamedata/*.ogg $GAMEDIR/firearrow/assets/
mv $GAMEDIR/firearrow/gamedata/game.droid $GAMEDIR/firearrow/assets/
sleep 0.5
cd "$GAMEDIR/firearrow"
zip -r -0 ./firearrow.port assets lib
rm -rf "$GAMEDIR/firearrow/assets"
rm -rf "$GAMEDIR/firearrow/gamedata"
rm -rf "$GAMEDIR/firearrow/lib"
cd "$GAMEDIR"
fi

if [ -f "$GAMEDIR/firearrowx/gamedata/data.win" ]; then
mv "$GAMEDIR/firearrowx/gamedata/data.win" "$GAMEDIR/firearrowx/gamedata/game.droid"
sleep 0.5
mkdir -p $GAMEDIR/firearrowx/assets
mv $GAMEDIR/firearrowx/gamedata/*.ogg $GAMEDIR/firearrowx/assets/
mv $GAMEDIR/firearrowx/gamedata/game.droid $GAMEDIR/firearrowx/assets/
sleep 0.5
cd "$GAMEDIR/firearrowx"
zip -r -0 ./firearrowx.port assets lib
rm -rf "$GAMEDIR/firearrowx/assets"
rm -rf "$GAMEDIR/firearrowx/gamedata"
rm -rf "$GAMEDIR/firearrowx/lib"
cd "$GAMEDIR"
fi

$GPTOKEYB "gameselector.armhf" -c "$GAMEDIR/gameselector.gptk" &
pm_message "Loading, please wait... " > /dev/tty0

$ESUDO chmod +x "$GAMEDIR/gameselector.armhf"
$ESUDO chmod +x "$GAMEDIR/firearrow.run"
$ESUDO chmod +x "$GAMEDIR/firearrowx.run"
$ESUDO chmod +x "$GAMEDIR/firearrow/gmloader"
$ESUDO chmod +x "$GAMEDIR/firearrowx/gmloader"

pm_platform_helper "$GAMEDIR/gameselector.armhf"
./gameselector.armhf

pm_finish
60 changes: 0 additions & 60 deletions ports/firearrow/Firearrow.sh

This file was deleted.

26 changes: 25 additions & 1 deletion ports/firearrow/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,30 @@
## Notes
<br/>

Thanks to [Team Grybanser Fox](https://store.steampowered.com/app/509780/Fire_Arrow_Plus/) for creating this game. Also thanks to Tekkenfede for the porting work for portmaster.
Big thanks to [Team Grybanser Fox](https://store.steampowered.com/app/509780/Fire_Arrow_Plus/), [Gryzor itch.io](https://gryzor.itch.io/fire-arrow-plus) for creating this game!
Thanks to Tekkenfede for the porting work for portmaster.
Thanks to all who tested this port!
Another thanks to Tekkenfede, this game's original porter, for allowing Madshmupper (me) to update it to play on more operating systems!
Thanks to all who tested this port and special thanks to Slayer366!
GameSelector by Tekkenfede and updated by Slayer366.
Thanks all!

<br/>

For the Steam version, copy the FA1 and FAX folders into the port folder (/ports/firearrow/) and play.
For the itch.io version, copy the two zip files into the port folder (/ports/firearrow/) and play.
Additionally, you can copy data.win and all .ogg files from each of these folders into the respective gamedata folders (/ports/firearrow/firearrow/gamedata/ & /ports/firearrow/firearrowx/gamedata/).

<br/>

## Controls

| Button | Action |
|--|--|
|D-pad|movement|
|Left-Analog |movement|
|A-button|shoot|
|B-button|bomb|
|X-button|dodge/fade|
|Y-button|special|
|Start-button|pause/menu|
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
For easy installation:

If Steam version:
Place FA1 and FAX folders here.

If itch.io version:
Put your Fire_Arrow_complete and FAX_complete zip files here.
52 changes: 52 additions & 0 deletions ports/firearrow/firearrow/firearrow.run
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#!/bin/bash

XDG_DATA_HOME=${XDG_DATA_HOME:-$HOME/.local/share}

if [ -d "/opt/system/Tools/PortMaster/" ]; then
controlfolder="/opt/system/Tools/PortMaster"
elif [ -d "/opt/tools/PortMaster/" ]; then
controlfolder="/opt/tools/PortMaster"
elif [ -d "$XDG_DATA_HOME/PortMaster/" ]; then
controlfolder="$XDG_DATA_HOME/PortMaster"
else
controlfolder="/roms/ports/PortMaster"
fi

source $controlfolder/control.txt
export PORT_32BIT="Y"
[[ "${CFW_NAME^^}" == 'MUOS' ]] && directory=$(realpath "$0" | sed 's|^\./||' | awk -F'/' '{print "/" $2 "/" $3}')
[ -f "${controlfolder}/mod_${CFW_NAME}.txt" ] && source "${controlfolder}/mod_${CFW_NAME}.txt"
get_controls

GAMEDIR="/$directory/ports/firearrow/firearrow"

export LD_LIBRARY_PATH="/usr/lib32:$GAMEDIR/libs:$LD_LIBRARY_PATH"
export GMLOADER_DEPTH_DISABLE=1
export GMLOADER_SAVEDIR="$GAMEDIR/gamedata/"
export GMLOADER_PLATFORM="os_linux"

cd "$GAMEDIR"

> "$GAMEDIR/log.txt" && exec > >(tee "$GAMEDIR/log.txt") 2>&1

if [ -f "$GAMEDIR/gamedata/data.win" ]; then
mv "$GAMEDIR/gamedata/data.win" "$GAMEDIR/gamedata/game.droid"
sleep 0.5
mkdir -p $GAMEDIR/assets
mv $GAMEDIR/gamedata/*.ogg $GAMEDIR/assets/
mv $GAMEDIR/gamedata/game.droid $GAMEDIR/assets/
sleep 0.5
zip -r -0 ./firearrow.port assets lib
rm -rf "$GAMEDIR/assets"
rm -rf "$GAMEDIR/gamedata"
rm -rf "$GAMEDIR/lib"
fi

$GPTOKEYB "gmloader" &
pm_message "Loading, please wait... " > /dev/tty0

$ESUDO chmod +x "$GAMEDIR/gmloader"
pm_platform_helper "$GAMEDIR/gmloader"
./gmloader firearrow.port

pm_finish
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
data.win
hv_bossa_music.ogg
hv_bossb_music.ogg
hv_gameover_music.ogg
hv_menu_music.ogg
hv_name_music.ogg
hv_stageaint_music.ogg
hv_stagea_music.ogg
hv_stagebint_music.ogg
hv_stageb_music.ogg
Binary file added ports/firearrow/firearrow/firearrow/gmloader
Binary file not shown.
7 changes: 7 additions & 0 deletions ports/firearrow/firearrow/firearrow/gmloader.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"save_dir" : "gamedata",
"apk_path" : "firearrow.port",
"show_cursor" : false,
"disable_controller" : false,
"force_platform" : "os_windows"
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed ports/firearrow/firearrow/firearrowrapper.apk
Binary file not shown.
52 changes: 52 additions & 0 deletions ports/firearrow/firearrow/firearrowx.run
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#!/bin/bash

XDG_DATA_HOME=${XDG_DATA_HOME:-$HOME/.local/share}

if [ -d "/opt/system/Tools/PortMaster/" ]; then
controlfolder="/opt/system/Tools/PortMaster"
elif [ -d "/opt/tools/PortMaster/" ]; then
controlfolder="/opt/tools/PortMaster"
elif [ -d "$XDG_DATA_HOME/PortMaster/" ]; then
controlfolder="$XDG_DATA_HOME/PortMaster"
else
controlfolder="/roms/ports/PortMaster"
fi

source $controlfolder/control.txt
export PORT_32BIT="Y"
[[ "${CFW_NAME^^}" == 'MUOS' ]] && directory=$(realpath "$0" | sed 's|^\./||' | awk -F'/' '{print "/" $2 "/" $3}')
[ -f "${controlfolder}/mod_${CFW_NAME}.txt" ] && source "${controlfolder}/mod_${CFW_NAME}.txt"
get_controls

GAMEDIR="/$directory/ports/firearrow/firearrowx"

export LD_LIBRARY_PATH="/usr/lib32:$GAMEDIR/libs:$LD_LIBRARY_PATH"
export GMLOADER_DEPTH_DISABLE=1
export GMLOADER_SAVEDIR="$GAMEDIR/gamedata/"
export GMLOADER_PLATFORM="os_linux"

cd "$GAMEDIR"

> "$GAMEDIR/log.txt" && exec > >(tee "$GAMEDIR/log.txt") 2>&1

if [ -f "$GAMEDIR/gamedata/data.win" ]; then
mv "$GAMEDIR/gamedata/data.win" "$GAMEDIR/gamedata/game.droid"
sleep 0.5
mkdir -p $GAMEDIR/assets
mv $GAMEDIR/gamedata/*.ogg $GAMEDIR/assets/
mv $GAMEDIR/gamedata/game.droid $GAMEDIR/assets/
sleep 0.5
zip -r -0 ./firearrowx.port assets lib
rm -rf "$GAMEDIR/assets"
rm -rf "$GAMEDIR/gamedata"
rm -rf "$GAMEDIR/lib"
fi

$GPTOKEYB "gmloader" &
pm_message "Loading, please wait... " > /dev/tty0

$ESUDO chmod +x "$GAMEDIR/gmloader"
pm_platform_helper "$GAMEDIR/gmloader"
./gmloader firearrowx.port

pm_finish
Binary file added ports/firearrow/firearrow/firearrowx/cover.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
data.win
HV_boss1_muz.ogg
HV_bossex_muz.ogg
HV_credits_muz.ogg
HV_gameover_muz.ogg
HV_menu_muz.ogg
HV_stage1int_muz.ogg
HV_stage1_muz.ogg
HV_stage2int_muz.ogg
HV_stage2_muz.ogg
Binary file added ports/firearrow/firearrow/firearrowx/gmloader
Binary file not shown.
7 changes: 7 additions & 0 deletions ports/firearrow/firearrow/firearrowx/gmloader.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"save_dir" : "gamedata",
"apk_path" : "santassurprise.port",
"show_cursor" : false,
"disable_controller" : false,
"force_platform" : "os_windows"
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed ports/firearrow/firearrow/gamedata/splash.png
Binary file not shown.
Binary file added ports/firearrow/firearrow/gameselector.armhf
Binary file not shown.
3 changes: 3 additions & 0 deletions ports/firearrow/firearrow/gameselector.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
2
firearrow.png|./firearrow.run
firearrowx.png|./firearrowx.run
32 changes: 32 additions & 0 deletions ports/firearrow/firearrow/gameselector.gptk
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
back = \"
start = \"

a = \"
b = \"
x = \"
y = \"

l1 = \"
l2 = \"

r2 = \"
r1 = \"

up = \"
down = \"
left = \"
right = \"

left_analog_up = \"
left_analog_down = \"
left_analog_left = \"
left_analog_right = \"

l3 = \"

right_analog_up = \"
right_analog_down = \"
right_analog_left = \"
right_analog_right = \"

r3 = \"
Binary file removed ports/firearrow/firearrow/gmloader
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed ports/firearrow/firearrow/lib/libcrypto.so.1.1
Binary file not shown.
Binary file added ports/firearrow/firearrow/libs/libcrypto.so.1.1
Binary file not shown.
Binary file added ports/firearrow/firearrow/libs/liblove-11.5.so
Binary file not shown.
Binary file not shown.
Binary file added ports/firearrow/firearrow/libs/libssl.so.1.1
Binary file not shown.
Binary file added ports/firearrow/firearrow/libs/libzip.so.4
Binary file not shown.
Binary file added ports/firearrow/firearrow/libs/libzip.so.5
Binary file not shown.
Loading