#PowerManga

71 messages ยท Page 1 of 1 (latest)

echo willow
#

Game Information
Title: PowerManga
Url : https://github.com/brunonymous/Powermanga

It is my first game compiled on aarch64 and running on RGB30, so maybe some libs are missing for your CFW let me know.
It runs smoothly on my side !
Have fun ๐Ÿ™‚

Controls

Button Action
DPAD or Left Joystick Move
B Fire
A Power Up
Start Pause
Select or X Show the menu

CFW Tests

[X] AmberELEC
[X] ArkOS
[X] JELOS
[X] Mainline / Rocknix

Resolution Tests

Test all major resolutions:
[ ] 480x320
[X] 640x480 (Better with switched off Integer Scaler on the option)
[X] 720x720 (RGB30)
[X] Higher resolutions (e.g., 1280x720)

GitHub

Powermanga is a shoot 'em up with 60 different enemies, 40 meteors, numerous weapons, many end of level baddies, spaceship power-ups and lots of other surprises. - GitHub - brunonymous/Pow...

supple junco
#

<@&1216123318122577972>

heady river
#

I got only once device with me, but it works mostly fine on Ace / Rocknix (1080p). Though controls work properly only on dpad, both joysticks are mapped wrong.

sand elm
#

RGB30 + ArkOS working

echo willow
supple junco
#

Working on X55, Jelos, 720p. Controls might need some love. Right joystick isnt mapped right (or shouldnt be mapped at all?)

echo willow
supple junco
#

Left joystick is very sensitive, but not really you fault. You can adjust this in gptk i believe.

#

It does work ''fine'' for me ๐Ÿ™‚

hardy mesa
#

definitely seems to work fine on RG353V ArkOS

heady river
#

axis are reversed on mine, left/right goes up down etc

hardy mesa
#

oof

heady river
#

only on stick, dpad is fine

supple junco
#

Youre using native controls @echo willow

#

Switch over to gptk, and it should be fine ๐Ÿ™‚

echo willow
weak yacht
#

Remember the topic of why we disable gamepad input alltogether sometimes? This the reason

Understanding Gamepad Button Mapping Issues in Linux Games
When encountering gamepad button mapping issues in Linux games, such as swapped A and B buttons or other unexpected behavior, the root cause typically relates to the Simple DirectMedia Layer (SDL) method used by the game for handling gamepad inputs. SDL offers two approaches for gamepad input handling: SDL_JoystickOpen and SDL_GameControllerOpen.

SDL_JoystickOpen vs. SDL_GameControllerOpen
SDL_JoystickOpen: This method provides low-level access to joystick inputs, requiring developers to manually map each button and axis. While this allows for a high degree of customization, it can lead to inconsistencies, especially if the developer's mappings don't align with the player's expectations or the physical layout of the gamepad. This discrepancy is a common source of issues like swapped or incorrectly functioning buttons.

SDL_GameControllerOpen: On the other hand, utilizes a standardized controller mapping database (gamecontrollerdb.txt) to automatically align gamepad inputs to a consistent layout across different games and controllers. This method is designed to ensure that, regardless of the gamepad model used, button mappings (such as A, B, X, Y) correspond to the same actions across all games that support this standard.

Identifying the Issue
The problem often arises in games that rely on the SDL_JoystickOpen method without accurately mapping the controller's layout. This can lead to a mismatch between the game's expected input and the actual signals sent by the controller, resulting in the aforementioned button mapping issues.

Why This Is an Issue
The use of SDL_JoystickOpen without proper mapping can disrupt the gaming experience, making it difficult for players to use their gamepads effectively. It forces players to adapt to a non-intuitive control scheme or seek out workarounds, such as remapping buttons at the system level or within the game's settings if possible.

Simplified Solution
To mitigate these issues, games should ideally use the SDL_GameControllerOpen method with an up-to-date gamecontrollerdb.txt file, ensuring consistent and accurate button mappings. If encountering issues in a specific game, players can attempt to specify a custom gamecontrollerdb.txt file via the SDL_GAMECONTROLLERCONFIG_FILE environment variable, aiming to correct the mappings for their gamepad. This solution offers a way to align the game's input handling with the player's controller, enhancing the gameplay experience.```

@echo willow good read ๐Ÿ™‚
heady river
#

tldr: use windows

supple junco
#

This was a good read indeed ๐Ÿ™‚

echo willow
#

Because it works fine I think no need to check on joystick

#

I will work on it ^^

supple junco
#

Running great btw, nice work on your first compiled game๐Ÿ˜„

echo willow
supple junco
#

I did my first one last week, im definitely hungry for more now hehe

#

Its pretty fun

echo willow
#

yeah ^^

#

It works great also on the chroot ๐Ÿ™‚

weak yacht
#

Tested on 351V Amberelec (640x480) yep this game has the exact issue i explained above and thus the analogue controls are reversed for me

#

So either disable the sdll_init call for joystick initzialization comeptply and remap the keyboard via gptokeyb

#

@echo willow i'm not sure which script you copied from but please don#t use that one ๐Ÿ˜„

#

it has old logging method, old env variables that break multiple cfws ๐Ÿ˜›

echo willow
#

I took it from powder

#

I will try a new one

weak yacht
#

yeah

echo willow
#

I add start = Pause, Select = for showing the menu

weak yacht
#

that is like over a year old or so

echo willow
#

Right joystick doesn't do anything now

#

Could you please test the gptk file ?

supple junco
#

Right joystick is disabled๐Ÿ‘

weak yacht
# echo willow I will try a new one

here you go

#!/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
source $controlfolder/device_info.txt

[ -f "${controlfolder}/mod_${CFW_NAME}.txt" ] && source "${controlfolder}/mod_${CFW_NAME}.txt"

get_controls

GAMEDIR=/$directory/ports/powermanga
CONFDIR="$GAMEDIR/conf/"

mkdir -p "$GAMEDIR/conf"

cd $GAMEDIR

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

# if XDG Path does not work
#$ESUDO rm -rf ~/.portfolder
#ln -sfv $GAMEDIR/conf/.portfolder ~/

export XDG_DATA_HOME="$CONFDIR"
export DEVICE_ARCH="${DEVICE_ARCH:-aarch64}"
export LD_LIBRARY_PATH="$GAMEDIR/libs.${DEVICE_ARCH}:$LD_LIBRARY_PATH"
export SDL_GAMECONTROLLERCONFIG="$sdl_controllerconfig"
#export TEXTINPUTINTERACTIVE="Y"

$GPTOKEYB "powermanga.${DEVICE_ARCH}" -c "./powermanga.gptk" &
./powermanga.${DEVICE_ARCH}

$ESUDO kill -9 $(pidof gptokeyb)
$ESUDO systemctl restart oga_events &
printf "\033c" > /dev/tty1
printf "\033c" > /dev/tty0```

remember to name the libs folder libs.aarch64
and the binary .aarch64 as well
#

Also inside the libs you have conflicting files

supple junco
#

libsdl2 and libsdl1.2TurtleThink

weak yacht
#

This is sdl 1.2 game

#

Never ship any libsdl2 file

#

this has to come from the os since the cfws do various patches on their sdl2 lib

#

like display / mouse rotation

#

and for sdl 1.2 of course sdl 1.2 compat files ๐Ÿ™‚

echo willow
#

Thank you for all informations !

weak yacht
#

Of course don't forget to add the original license files from the proejct

#

about this

No sudo present.
(EE) can't open file  /storage/.config/tlk-game/powermanga.conf (No such file or directory) [tools.c:888, load_absolute_file]
(EE) lisp_read_file(/storage/.config/tlk-game/powermanga.conf) failed! [config_file.c:244, configfile_load]
echo willow
#

yeah I will add it on the next zip file

weak yacht
#

best to either try to use XDG data path if it doens't use it try manual link

#

so this

#$ESUDO rm -rf ~/.portfolder
#ln -sfv $GAMEDIR/conf/.portfolder ~/```
#

and make sure to create the folder beforehand under conf

echo willow
echo willow
#

Conf is on port game directory using symlink

#

for the configuration of the deadzones I'm not sure what values are the best.
I don't use joystick most of the time i prefer dpad.

#

For the moment I put that, any hints to calibrate better ?

  • New deadzone code, this will overwrite the above deadzone code behaviour
  • Choices of: axial, radial, scaled_radial, sloped_axial, sloped_scaled_axial, hybrid
    deadzone_mode = scaled_radial
    deadzone = 2000
    deadzone_scale = 8
    deadzone_delay = 16 ## An alias for mouse delay
heady river
#

while the controls are now better, I could also now to try it on OGA (480x320 device) and it doesnt seem to run there

#

Works on 353VS / Arkos and Ace / Rocknix

echo willow
#

It seems not create the video mode ...
in the configuration file we can change the resolution maybe 480x320 is not supported by default.
Here a new package with powermanga.conf created on port/powermanga/conf directory.

#

;; the following options can be set to #t or #f:
(fullscreen #f)
(nosound #f)
(nosync #f)

;; window size (320 or 640):

** (resolution 640)**

;; scale_x (1, 2, 3 or 4):
(scale_x   1)

;; joy_config x_axis y_axis fire_button option_button start_button):
(joy_config 0 1 0 1 2)

;; verbose mode 0 (disabled), 1 (enable) or 2 (more messages)
(verbose   2)

;; difficulty 0 (easy), 1 (normal) or 2 (hard)
(difficulty   1)

;; langage en or fr
(lang      "en")
heady river
#

I will check later when I am home

echo willow
heady river
#

oh sorry, I forgot. Yep, controls is good now ๐Ÿ™‚

echo willow
heady river
#

when I set resolution to 320 and scale 1 , it runs fine. btw that config file is probably not symlinked properly, its not showing in port/powermanga/conf folder