#theXtech game engine

1351 messages Β· Page 2 of 2 (latest)

old finch
#

map it ingame and et voila

outer bison
#

Great. It looks like gptokeyb has been used since ddrsoul's very first build, so hopefully it should be unnecessary at this point. Thanks for the advice!

mental moat
#

gptokeyb was necessary to properly control mouse cursor in rocknix cfw to avoid bug when cursor always returns to middle position as soon as you release analog stick

#

I can try again without gptokeyb in latest rocknix , maybe the bug is fixed already

mental moat
#

btw we can not remove gptokeyb completely, as I understand

#

we use it to kill any port with select+start

#

if you remove only "-c thextech.gptk" part - will this help to avoid select bug ?

#
$GPTOKEYB "thextech"  &

this way

old finch
#

Should yeah πŸ™‚

outer bison
mental moat
#

I'll check rocknix tomorrow, it is 1 AM, will have result in a morning during cup of coffee

outer bison
mental moat
#

I remember we discussed the issue before and @old finch gave me example of solution but I do not understand it πŸ˜„

#

so the issue is both with sway and weston11 on rocknix

#

maybe we can just ignore it as cursor is needed only when you use editor and muos select bug has more priority here

mental moat
old finch
#

@broken valve have you seen this problem? A mouse interfering with the games controller? No gptokeyb used and game is running full screen

outer bison
mental moat
outer bison
old finch
#

Yeah sway πŸ™‚

mental moat
#

my cfw uses weston11

outer bison
#

I can experiment with this for sure. Cebion, have you ever heard anyone else complain about SDL_WarpMouse on these minimal Wayland DEs?

mental moat
#

I think something similar happened in minetest ?

#

or not

outer bison
#

To be fair, WarpMouse is a bit of a "dirty" call. I wouldn't be surprised if a DE just ignored it. But for a DE to ignore it and generate a mouse move event seems a bit cruel.

mental moat
#

well, if you have ideas - we should try them πŸ™‚

outer bison
#

Alright! You willing to make an engine-side change?

#

Do you have a text editor that allows for searching all files in a folder for a string?

mental moat
#

I have nano

#

oh sorry

#

misunderstood you

outer bison
#

Alright, that won't be quite enough. I was thinking of something like sublime πŸ™‚

#

Ill quickly search our codebase for the offending string and tell you what to change

mental moat
#

alright, thanks, but no rush, I can't do it right now anyway

outer bison
#

Alright πŸ™‚ Whenever you're able to, go to src/core/sdl/window_sdl.cpp and stub WindowSDL::placeCursor (eg, by adding a return statement at the very top of the function).

#

It's definitely possible something else is the culprit but I think it'll be good for us to try this first

outer bison
old finch
outer bison
#

Alright, we'll find out when ddrsoul is at their workstation and able to try this out.

mental moat
#

btw latest rocknix has ntfs bug that slows down reading of worlds SO MUCH! you archive support will cure this issue too

outer bison
#

I'm excited for archive support to make it into the main branch soon (right after the final v1.3.7 release). It should make a big difference for load speeds and SD card space usage

broken valve
mental moat
#

just to be sure, this was the right thing to do :

void WindowSDL::placeCursor(int window_x, int window_y)
{
return;

    if(!this->hasWindowInputFocus())
        return;

    int old_window_x, old_window_y;
    SDL_GetMouseState(&old_window_x, &old_window_y);
    int o_sx, o_sy, n_sx, n_sy;

    XRender::mapToScreen(old_window_x, old_window_y, &o_sx, &o_sy);
    XRender::mapToScreen(window_x, window_y, &n_sx, &n_sy);

    if(n_sx - o_sx < -2 || n_sx - o_sx > 2 || n_sy - o_sy < -2 || n_sy - o_sy > 2)
    {
        int window_w, window_h;
        this->getWindowSize(&window_w, &window_h);
        if(window_x >= 0 && window_x < window_w && window_y >= 0 && window_y < window_h)
            SDL_WarpMouseInWindow(m_window, window_x, window_y);
    }
}

@outer bison ?

#

if so - this doesn't help D:

outer bison
outer bison
#

@mental moat, we just made our 1.3.7-beta release! Would you be able to update the PortMaster release also?

mental moat
fierce echo
mental moat
#

1.3.7 beta binary compiled today

#

I`ll read new portmaster guidlines and pack full release soon (tomorrow?)

#

sick of business trips ohgod

outer bison
#

Great! Hope you get some well deserved rest.

cloud kestrel
#

πŸ”₯πŸ”₯πŸ”₯πŸ”₯

mental moat
#

yep, stuck a bit with procrastinating and planning my Sjenzhen - Hunan - Shanghai trip

cedar bay
#

sounds like a great trip to buy some cheap handhelds kek

mental moat
#

exactly, mostly being busy deciding how much handhelds will pack into my bag

mental moat
#

just blind buy, I know that it alluminium and has android 12

mental moat
#

I made all needed changes and ready to PR

#

but let's test first πŸ™‚

#

works on rg35xxh with knulli

#

actually I don't see why it should not work anywhere

outer bison
#

Awesome! I'll test on my own device shortly.

mental moat
outer bison
#

Also, you should be aware that we have frozen the stable-1.3.7.x and it will be receiving bugfixes only now. This is a great thing for testing and stability but it means that you'll need to check out a different branch (or tag) for future releases

#

In general, if you're making builds of releases, you should always check them out by tag

mental moat
mental moat
#

now it seems correct

#

I`ll PR it today if nobody has complains

outer bison
#

Tested and working great, thanks!

mental moat
#

update is alive, btw πŸ™‚

silver olive
#

Is this working for RG35xx-plus? For me it is just showing the start screen a few seconds and then autocloses.

#

Log file: /userdata/roms/ports/TheXtech.sh: Zeile 29: pm_platform_helper: Kommando nicht gefunden.
LogLevel 4, log file /userdata/roms/ports/thextech/logs/TheXTech_log_2025_01_16_12_45_30.txt
munmap_chunk(): invalid pointer

mental moat
#

it should work blobwaitwhat

#

what cfw you have?

#

pm_platform_helper: Kommando nicht gefunden.
maybe you have old portmaster?

old finch
#

amberelec doesn't for example

mental moat
#

oh I see

old finch
#

@silver olive please post your portmaster version

mental moat
#
The error munmap_chunk(): invalid pointer typically occurs in C or C++ programming when there's an issue with dynamic memory management. This error indicates that an attempt was made to free a memory block that is either not dynamically allocated, has already been freed, or is otherwise invalid.
#

we need to summon @outer bison

outer bison
silver olive
outer bison
# silver olive

Thank you! I asked the #bato-knulli-dev channel for more information about the SDL2 version used there. We can try to get a more detailed log if you like. That would involve adding some text to your thextech.ini file.

#

I can't wait for GitHub to finally keep their promise to add arm64 CI runners; at that point, it would be easy for us to test lots of versions of TheXTech, but for now it's relatively time-intensive to make a new build.

mental moat
#

i remember latest knulli release has some problems with sdl2 lib in some ports

#

as example #🩺|port-help message

#

we can try to add libs manually but i can't find knulli bugfix thread right now

outer bison
#

That'd be consistent with what I'm seeing here, which is that some SDL2 call went wrong. But it could also possibly be TheXTech's fault.

mental moat
#

this github can contain some fixed libs, I'll research more later today

mental moat
#

hello @silver olive can you try this solution? add the file into ./thextech/libs folder

#

after line#25 that looks like

export SDL_GAMECONTROLLERCONFIG="$sdl_controllerconfig"

add another line:

export LD_LIBRARY_PATH="$GAMEDIR/libs:$LD_LIBRARY_PATH"

and tell us what is happening when you run it

silver olive
#

still only the loading screen and then back to game selection

mental moat
#

too bad, this sdl2 lib is from previous knulli release, i wonder why it is working for me and not working for you

outer bison
#

If you can find us an SDL2 lib with debug symbols, we'll be much more able to figure this out. Or if you're up for it you could make a TheXTech build with debug symbols and that would also make this easy.

mental moat
outer bison
outer bison
#

Huge news: GitHub finally has arm64 runners! This means that we can use the GitHub CI to get PortMaster-compatible dev builds for testing on a regular basis. They'll show up here: https://builds.wohlsoft.ru/portmaster/ This is the binary only, I'll leave you in charge of the scripts and packaging.

mental moat
#

this is build with debug info

mental moat
outer bison
#

Fantastic. Our user doesn't need to put this file on their device, but I'll download it so I can understand their next stack trace.

#

I'll make a stripped version for @silver olive which includes all of the logic but not the debug symbols

#

Please replace your thextech binary with this copy, and then I'll be able to diagnose your stack trace perfectly. Thanks for bearing with us!

dusty aurora
#

I don't know if this input will be helpful.. I have it installed on MuOs and had a few chapters installed too. I did it a while ago because I thought this game is neat.
Ok. So I had it working, and all is good. Rgsp MuOs βœ… so..
I thought I'd give it a try with TSP crossmix. What I did was install from Portmaster onto my device. Then took all of everything from my other systems and threw it into the crossmix SD card.
I'm glad to report that worked beautifully and no issues.

mental moat
#

good, thanks! and it also works on my knulli previous stable release, so it means something is broken with knulli firefly (and this is not hot news already as I see many ports are broken)

dusty aurora
#

Yeah, I tried firefly. That's the release that I have on a card somewhere. I didn't like it. So I didn't keep working on it. Cheers

mental moat
#

yep, I configured my knulli good enough for daily use, the only thing I miss is 32bit support (no streets of rage remake and am2r). I doubt I will update in near future, afraid to ruin my daily handheld, I already have ogu with rocknix to bork it now and then

dusty aurora
#

Sorr is goated

outer bison
dusty aurora
#

I love anything that has a community project behind. Because this is actually like more than a port. It's a ton of episodes. With content made by passionate people.

outer bison
#

Totally. It's such a massive community that there are over 50 episodes people have described as among "the greatest" and hundreds more hidden gems.

outer bison
#

Oops! That is not the file I wanted to send. One moment.

#

Here, can you please install this file at settings/thextech.ini in your TheXTech folder, and then try running again?

outer bison
#

(There was an invalid free in TheXTech's locale code from August to November, unfortunately including the v1.3.7-beta release, but I hadn't heard any direct reports of it actually causing issues until now.)

dusty aurora
#

I'm looking to add more episodes. But I can't remember exactly what the process is. Can I place 7z and or zip file into the /worlds directory. Or do I need to unzip first?

outer bison
#

You do need to unzip, and worlds are sorted by asset pack (SMBX is the most popular one). Make sure that the game can find TheXTech/worlds/smbx/<world folder>/<world file>.wld

#

In a future release, there will be a feature where you can pack episodes using a special compressed format designed for speed and memory usage (based on ISO with transparent LZ4 compression). At that point, you'd be able to store your .xte files at TheXTech/worlds/smbx/<world>.xte.

mental moat
#

we have some really old cfws that we still support, such as arkos (I think it is ubuntu 20.04 under the hood, so we use this env for best compatibility)

silver olive
silver olive
#

the "worlds" folder is not working, Episodes are only shown if I copy them to the asset-world folder.

mental moat
#

what episodes you tried ?

silver olive
#

oh sorry... there was a folder to much in the package after unpacking. My fault.

#

it is running very well on RG35xx Plus series πŸ™‚

#

For the future, if you have a lot of episodes it would be nice if you can use an additonally folder structure in the episode selection menu πŸ˜‰

mental moat
#

yep, and I am looking forward to built-in episode downloader

#

that will be πŸ”₯

outer bison
outer bison
outer bison
outer bison
mental moat
outer bison
#

Do we have anyone on RGB30? A user is having trouble getting the controller detected on RGB30 on Rocknix.

mental moat
#

maybe it is the same problem as we had on x55 rocknix?

#

solution was to use gptokeyb in Xbox mode

#

can't find now on mobile

outer bison
mental moat
#

finally

outer bison
#

I forwarded your workaround to the user. But now a question: maybe this is always broken on Rocknix (not just x55) and we should be forcing the use of xbox gptokey on that OS in our script?

mental moat
#

this is what i didn't figure out, i have rocknix on odroid and it is not broken

#

and if it is not broken - we get double input

outer bison
#

Weird! It'd be nice to debug with this user more but they seem to be on GitHub only so it's a bit hard to dig deeply into the issue.

#

(username mikhailter)

#

I think that a common thread here is Rocknix. I wonder whether something is off in the Rocknix configs for PortMaster or SDL2.

#

So we probably should update TheXTech.sh to detect Rocknix x55 and RGB30 and apply this workaround to them, before the 1.3.7 final release on PortMaster.

mental moat
#

hmm, i have another device with rocknix

#

i always forget about it

#

let me try this evening

#

I'll try to pr 1.3.7 tomorrow then we can figure out if we need workaround for x55 and rgb30

old finch
mental moat
#

i know, but i have nothing to repeat the issue

#

maybe rg503 will be broken

#

same chip as rgb30

old finch
#

you're listing rk3566 devices πŸ˜›

mental moat
#

yes, this is why i hope to reproduce bug, I got rg503 from stolen (rocknix)

#

so i can try it

outer bison
# mental moat i know, but i have nothing to repeat the issue

Right, I wish we had direct access to one of these devices, there are a few other possible causes of this issue. (One possible cause: maybe a virtual button is stuck in the held position on these devices, that would cause the controller to fail to detect a "new button press".)

mental moat
#

i doubt i can do much, but at least i am available here and i can follow your directions

outer bison
#

If we can reproduce it on a "friendly" device (either our own or someone we can chat with) then I can make a modded build that reports all buttons that are detected.

#

That could help us diagnose the issue better.

mental moat
#

sounds good, i will try on rg503 in 2-3 hours and report back

outer bison
#

Thank you!

mental moat
#

sorry, test is delayed, rocknix happened and I need to reflash

#

but meanwhile github is not letting me download cfw

mental moat
#

OKAY, I have the same problem

#

and

$GPTOKEYB "thextech" xbox360 &
``` fixes it
outer bison
#

Fantastic!! So we can totally work together to debug this a little

mental moat
#

πŸ‘

outer bison
#

I'm going to try to add some special logging to tell us what buttons are held when a controller is attached. I'll try to do this in the next hour and then you'll be able to download a new main branch CI build to check it out

mental moat
#

no rush, my wife requires continuation of yakuza 3 walkthrough, so I`ll be busy next hour πŸ˜„

#

00:01.006 [Info]: TouchScreen: ignoring haptics device [retrogame_joypad]

#

is this ok?

outer bison
#

That is totally fine and even desirable (the retrogame_joypad is not the vibration associated with an in-device touchscreen)

#

Can you please switch your game into debug logging mode? (set settings -> advanced -> log level to "debug")

mental moat
#

yep, 1 moment

#

@outer bison

outer bison
#

Now, I just added some logic to our CI build, this will help us tell whether the OS is holding one of the axes of the controller. I remember we found a case like this on muOS and fixed that earlier.

mental moat
#

good

#

how long it takes to build?

outer bison
#

Should be under ten minutes πŸ™‚ Love the native arm64 CI

mental moat
#

yep, definetely better than hours in chroot

mental moat
#

now it work

#

just out of the box

#

i`ll send log

outer bison
#

It works just out of the box!?

mental moat
#

yes, I did nothing, just run new bin

#

maybe something was fixed in 1.3.7-stable?

#

no, I think you tried it with rgb30 guy

outer bison
#

There were two things in the commit I just sent -- 1 debugging thing, and 1 minor tweak of the behavior

#

I'll revert the tweak and we can check that it fails

outer bison
#

And the tweak was this (using the GameController api to check whether buttons were pressed, instead of the Joystick api)

#

It's possible that the Joystick is misconfigured on Rocknix but that the GameController fixes that misconfiguration

#

This iteration time on commits is amazing

mental moat
#

ok, now controls are borked

#

so this fix is a real fix

#

πŸ™‚

outer bison
#

That's great! I'm sending one last commit -- this will (a) revert the revert, so we can keep the fix πŸ™‚ and (b) add a little debug printing to investigate the difference between the Joystick and GameController APIs a tiny bit more.

outer bison
# mental moat

Notice, in this log, it has some debug info saying that Button 10 is held when your joypad is first initialized. That's actually really bad because if a button is held forever, then the game will never think that the game controller is "ready to add" (it waits for the player to release all buttons).

#

I'm interested to find out whether Button 10 exists in the GameController API, or if it just doesn't exist

#

(It could be something really weird like a volume slider, in principle)

mental moat
#

hmm, how can I help you to find out ?

outer bison
#

Just run the last build I share, this one should be "done" πŸ™‚

mental moat
#

good!

outer bison
#

I'm just adding a tiny bit of extra debug info

#

So, change (1) is to report whether any SDL_Joystick buttons are held on application start, change (2) is to report whether any SDL_GameController buttons are held on application start, and change (3) is to use the GameController API instead of the Joystick API to decide whether a device is "ready to add".

mental moat
outer bison
#

Again I almost can't believe that it's taking only ten minutes to do a round trip from code tweak, to you running it, to me getting the result.

mental moat
#

truly amazing, I need to learn this magic

#

because I plan to recompile vcmi and this is eternity

#

Button held: But 10 1

outer bison
#

And, no buttons held for the game controller! That's why the tweak works. This is great news.

mental moat
#

oh I see now

outer bison
mental moat
#

so about thextech

mental moat
#

we need to update release in portmaster

outer bison
mental moat
#

all I need is to try it on my other 2 handhelds

#

and you to try on muos

outer bison
#

That might take a day, Wohlstand (the other developer) seems to be doing something interesting with F-Droid that might require him to keep the git repository unchanged temporarily?

mental moat
#

ok, just @me when you are ready

outer bison
mental moat
#

and thanks to you, finally solution found, I was worried about X55 bug

#

now I can order rgb30 for myself

outer bison
#

It'll be nice for us to track

mental moat
#

sure

outer bison
cloud kestrel
#

ow, do we just get stable thextech build for all distros? 🀩

outer bison
#

Not musl-based distros like postmarketOS yet, but yeah, thanks to GitHub adding aarch64 runners, we've now got a PortMaster CI!

#

And we just made a stable release upstream, though thanks to one user's report, we now have a hotfix that should fix the X55 bug!

mental moat
outer bison
#

Fantastic. We've got the official PortMaster hotfix released, so you're free to PR at any time

mental moat
#

@outer bison 1.3.7 stable is merged into main repo !

outer bison
#

Fantastic news! Thanks a ton for your help and testing for this.

mental moat
#

you are the best

silver olive
mental moat
#

thanks !

dusty aurora
#

What is the difference from 1.3.7 from the earlier one that I must have?

mental moat
#

bugfixes, we always had 1.3.7 but now it is stable - means a lot of bugfixes

dusty aurora
#

Oh yeah- I tried "The invasion 3" and it had issues.
So, possibly the new build will do better?

mental moat
#

I don't know, but updating is as easy as re-download port from portmaster

#

so you can check πŸ™‚

outer bison
outer bison
#

I've taken a look at the changelog and you'll mainly see the game being more stable. The menus work better now and the HUD should look better (with fewer items overlapping at 640x480). The biggest bugfix is probably that the player start positions are now correct for content that changed the player hitbox size (eg, Adventures of Demo)

dusty aurora
outer bison
#

There's a different, more famous episode called The Invasion 3 that was released for X2 more recently.

dusty aurora
#

Its no big deal. I deleted the folder and now it doesn't show up. There are other episodes I can distract myself with.
It said something about unable to load textures or maybe the script was corrupted. The episode just didn't work when it loaded too.
It's fine tho. Everything else I've tried working

outer bison
#

Cool, thanks for letting me know, and I'm glad other things are working well for you!

cloud kestrel
#

I want to sell rg353v, which device is the best to play thextech?

#

I want small design, no analog, and better screen

outer bison
#

I'm very happy with the screen of my RG35XX SP which I think is identical to your screen? Not certain what improvements you're looking for. I guess it's a bit desaturated but that's nice in an old-school way.

mental moat
#

agree, the only improvement I expect is bigger screen

outer bison
#

How about TrimUI Brick? That one's got a 1024x768 screen and TheXTech will happily use that as 1024x720

#

Not certain whether the CPU would be a downgrade vs h700 but it may be an upgrade vs rk3566

#

Okay the TrimUI has a screen smaller than the RG35XX series, I don't think it'd be fun to run that at 720p honestly

#

TrimUI Brick 3.2 inch, RG35XX 3.5 inch

mental moat
#

what about square shaped handhelds?

#

rgcubexx or rgb30

#

i think they have 4" 1:1 screen

outer bison
#

I'm not too familiar with those, you're referring to the 720x720 ones?

mental moat
#

yes, i think so

outer bison
#

4" could be reasonable for that, yeah!

mental moat
#

and it is fresh experience

dusty aurora
#

@cloud kestrel your making life choices based around this ONE port?!?
I respect it! πŸ˜„

dusty aurora
dusty aurora
outer bison
#

I'm using rg35xx SP as my devkit for TheXTech and it's been perfect so far

#

Yeah I guess "if you want to make decisions based on TheXTech support", it's one of the devteam's current test platforms, so that'll help you πŸ™‚

#

@mental moat, what are your daily drivers for TheXTech?

cloud kestrel
cloud kestrel
#

So both flip design or no flip no analog are my only consideration

mental moat
#

thanks to dynamic resolution thextech works perfect on both

#

(I hate black bars)

#

I tried to find another handheld that have best of two and bought rg405m, but quality was so shitty that I sold it in a week

dusty aurora
#

Ps. I actually really love the Powkiddy X55. Huge screen. 2g of ram. It's a great machine and it's not expensive. HDMI out and Bluetooth. So I put a pop socket on and basically it's a console.

cloud kestrel
#

Guys, seems like trimUI brick is the best option for me, thanks for sharing!

hasty finch
#

Hi everyone, I tried finding an existing solution, but no luck. I've been trying to get TheXTech to work with my RG35XXH running muOS, but it keeps saying "Please extract a game/asset pack", even though I did. I used the thextech-smbx13-assets-full.7z and extracted the contents to thextech/assets/smbx. Please help πŸ™

Thank you so much

outer bison
#

It looks like your installed version is v1.3.7 which is a bit out of date

hasty finch
#

Sure, here's the gameinfo.ini from thextech-smbx13-assets-full.7z. Appreciate the quick response! πŸ˜€

hasty finch
outer bison
outer bison
#

(Btw, my system is very similar to yours -- I use a 35xx sp also running muOS)

iron obsidian
#

I could never get this working either. Awesome to see what we need to do

iron obsidian
outer bison
# iron obsidian Looks like this port needs a tuning up!

The mainline developers (that is, myself and Wohlstand) haven't historically been in control of the Portmaster release (even though we now have official Portmaster-compatible CI builds and releases). I can take a look at how the port is currently specified and whether we could send a PR to update it!

hasty finch
#

Thank you so much for the link! I'll give that a shot, hopefully it works this time 🀞

hasty finch
outer bison
#

Sounds good, please keep me updated!

hasty finch
#

It finally worked, thank you thank you so much for your help! I did feel like I downloaded the outdated files, but I thought the portmaster build wasn't being updated anymore either. πŸ˜…

outer bison
#

Fantastic! I'm really glad it works for you, please let me know if you notice any issues later.

iron obsidian
iron obsidian
#

It's just those 2 levels it comes with?

#

Are there ways to add more stuff?

outer bison
# iron obsidian Can I ask you, what's been updated/ is different from v1.3.7 compared to the new...

So between 1.3.7 and 1.3.7.2/1.3.7.3-dev is all bugfixes. The 1.3.8-dev additionally has some serious optimizations (but they won't make much of a difference on a powerful device like these -- they mostly affect the DSi port). The big thing that's changed from the perspective of the Portmaster port is that you can now load the assets from a single packed archive in a special format (ISO+LZ4, with an XTA or XTE extension) instead of an extracted folder. That can speed up loading a bit and reduce texture load stutter