dMZX Forums: MZX is completely unusable when run from a unicode path -> MegaZeux Bugs -> Tracker

Jump to content

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.80Operating System Windows 10 64-bit

Page 1 of 1
  • Cannot start a new Issue
  • You cannot reply to this issue

Report ID #718: MZX is completely unusable when run from a unicode path

#1 User is online  
Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,882
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 01 September 2018 - 06:29 AM

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.
"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

Avatar artwork by Misteor


Page 1 of 1  
  • Cannot start a new Issue
  • You cannot reply to this issue

Replies (1 - 4)

#2 User is online  
Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,882
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

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.
"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

Avatar artwork by Misteor

#3 User is online  
Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,882
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

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.
"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

Avatar artwork by Misteor

#4 User is online  
Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,882
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

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

Avatar artwork by Misteor

#5 User is online  
Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,882
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 15 August 2021 - 03:34 AM

Updating status to: Fixed
Issue fixed in: 2.93

Fixed for screenshots in GIT e8bb8dd6.
"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

Avatar artwork by Misteor


Page 1 of 1
  • Cannot start a new Issue
  • You cannot reply to this issue

1 User(s) are reading this issue
1 Guests and 0 Anonymous Users


Powered by IP.Tracker 1.3.2 © 2021  IPS, Inc.