MZX doesn't work well when it encounters a path with unicode characters. The required assets seem to stat fine (probably because stat() is fine with relative paths while in a unicode directory) but a variety of issues occur after mzx_res_init:
1) GLSL shaders will fail to load, leaving an unusable white screen (this produces command line warnings).
2) If not using the GLSL renderer, instead the user will see a screen consisting of only background colors because MZX silently failed to load the UI character set. This is obviously also unusable.
3) The updater fails to initialize.
4) Possibly literally anything else that relies on fopen() fails.
Ideally, MZX should be able to handle UTF paths always for any supported platform that can use them. This obviously will require quite a lot of work to fix.
Report ID | 718 | Title | MZX is completely unusable when run from a unicode path |
Product | MegaZeux Bugs | Status | Fixed (Severity 3 - Medium) |
Version | 2.91d | Fixed in | 2.93 |
Introduced In Version | <2.80 | Operating System | Windows 10 64-bit |
Page 1 of 1
Report ID #718: MZX is completely unusable when run from a unicode path
#1 Lachesis
Posted 01 September 2018 - 06:29 AM
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
Page 1 of 1
Replies (1 - 4)
#2 Lachesis
Posted 01 September 2018 - 11:51 PM
Updating status to: Confirmed
This breaks moderately less bad with some characters vs. others, but can be replicated with both ã and ć in path names.
This breaks moderately less bad with some characters vs. others, but can be replicated with both ã and ć in path names.
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#3 Lachesis
Posted 08 March 2020 - 06:05 AM
The Windows Unicode compatibility layer for these functions was implemented in GIT 1f6230f4. Currently the only live code using this is the mzx_dir functions, so behavior is still likely unpredictable. Like this issue, this needs much of the stdio file access to be abstracted to be fixed.
There's also the matter of Unicode chars displaying as garbage in MZX, but that's for a different issue/feature request.
There's also the matter of Unicode chars displaying as garbage in MZX, but that's for a different issue/feature request.
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#4 Lachesis
Posted 15 August 2021 - 02:22 AM
As of GIT 649377d4 this is fixed in most places where it's relevant. The current exceptions are stdio redirect (not really intended for Windows), the help file and image utilities (common usage doesn't involve UTF paths), and screenshot features (should only be used with relative paths in the format "screen#.(png|bmp)"). Out of these, the only one that really needs to be addressed is screenshots (for platforms without chdir/getcwd).
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#5 Lachesis
Posted 15 August 2021 - 03:34 AM
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
Page 1 of 1
0 User(s) are reading this issue
0 Guests and 0 Anonymous Users
Powered by IP.Tracker 1.3.2 © 2025 IPS, Inc.