vgmoose / vgedit

SDL text editor for homebrew'd video game consoles, with controller and touch screen support
GNU General Public License v3.0
71 stars 4 forks source link

Some directory names get truncated to 4 characters. #9

Closed vaguerant closed 1 year ago

vaguerant commented 4 years ago

I should have reported this earlier, but I figured it was probably known. Just in case, I'm making a note of it.

Some of my directories consistently have their names truncated within VGEdit (v2.0.1 from the Homebrew App Store, but the same issue occurred on the version I had installed prior also). Some examples of directories whose names are truncated:

Meanwhile, plenty of other directories are not truncated: controllers, snes9xgx, savegames, Game Backups, CSE2-enhanced-en and retroarch are several examples.

Looking at my list, the common factor appears to be directories with names whose length is between 5 and 7 characters. Anything longer or shorter seems to go without truncation.

vgmoose commented 4 years ago

We used to see a similar issue in hb-appstore on wiiu where only the first 4 characters were rendered from TextElements backed with certain std::strings. rw-r-r_0644 fixed it by changing where we stored the text-to-be-rendered, so this can probably be worked around by changing where the names of the folders are stored.

Names are initially read here: https://github.com/vgmoose/vgedit/blob/fded169785a6d3a978a78a2fa546e3eb0bbe3822/gui/FileBrowser.cpp#L185

Before being given to the TextElement for the card label: https://github.com/vgmoose/vgedit/blob/fded169785a6d3a978a78a2fa546e3eb0bbe3822/gui/FileCard.cpp#L24-L27

The new instances are cleaned up by Chesto memory management, but probably the entry->d_name goes out of scope, which then raises the question how this seems to reliably work on the PC/Switch builds (maybe they are quickly turned into SDL Textures and cached before that happens).

Following TextElement init, it should try to make the cached texture before it would go out of scope (here, then here), which could point to it being another issue. It seems suspicious though that the other TextElements are ok though and don't have their sources go out of scope like that though.

vgmoose commented 2 years ago

This may be fixed in the newer wuhb/rpx builds: https://github.com/vgmoose/vgedit/actions/runs/3020169694

I'm not sure what changed though, it could be internal recent-ish Chesto changes, something unrelated when working on the 3DS port, or just a coincidence from moving to newer build tools

vgmoose commented 1 year ago

I think it's fixed!