Opened 7 months ago

Closed 11 days ago

#15079 closed defect (fixed)

MM: XEEN: Can't start World of Xeen from commandline

Reported by: ArekReve Owned by: dreammaster
Priority: high Component: Engine: MM: Xeen
Version: Keywords:
Cc: Game: Might and Magic: World of Xeen

Description

Starting MM1 from command line works ok

./scummvm mm1
./scummvm mm1_enh

Startring xeen games form command line generates error.
From GUI xeen starts and works OK

MacOS % ./scummvm worldofxeen
User picked target 'worldofxeen' (engine ID 'mm', game ID 'worldofxeen')...

Looking for a plugin supporting this target... Might & Magic

Running Might and Magic: World of Xeen (DOS/English)
dark.cc: df194483ecea6abc0511637d712ced7c, 11217676 bytes.
xeen.cc: 0cffbab533d9afe140e69ec93096f43e, 13435646 bytes.
2024-04-18 15:53:55.343 scummvm[25710:1108227] WARNING: Secure coding is not enabled for restorable state! Enable secure coding by implementing NSApplicationDelegate.applicationSupportsSecureRestorableState: and returning YES.
Assertion failed: (name.hasPrefixIgnoreCase(_innerfolder)), function getName, file engine_data.cpp, line 53.
zsh: abort ./scummvm worldofxeen

Change History (6)

comment:1 by tag2015, 7 months ago

Summary: World of xeenMM: XEEN: Can't start World of Xeen from commandline

comment:2 by bjoern-tantau, 7 months ago

I have the same with worldofxeen-cd on Linux.

lutris-wrapper: Might and Magic: World of Xeen (CD/DOS/English)
Started initial process 8085 from /usr/bin/scummvm --extrapath=/usr/share/scummvm --themepath=/usr/share/scummvm --aspect-ratio --fullscreen --scaler=normal --scale-factor=3 --renderer=opengl --path=/home/bjoern/Games/xeen worldofxeen-cd
Start monitoring process.
Using game controller: Steam Deck
User picked target 'worldofxeen-cd' (engine ID 'mm', game ID 'worldofxeen')...
   Looking for a plugin supporting this target... Might & Magic
Running Might and Magic: World of Xeen (CD/DOS/English)
dark.cc: 7f755ce39ea614fa6adb016f8bfc6e43, 11288403 bytes.
xeen.cc: 964078c53f649937ce9a1a3596ce3d9f, 13438429 bytes.
WARNING: SearchSet::add: archive '/usr/share/scummvm' already present!
Using game controller: Steam Deck
scummvm: engines/mm/shared/utils/engine_data.cpp:53: virtual Common::String MM::DataArchiveMember::getName() const: Assertion `name.hasPrefixIgnoreCase(_innerfolder)' failed.
Initial process has exited (return code: 134)
Monitored process exited.
All processes have quit
Exit with return code 134

When using the GUI:

lutris-wrapper: Might and Magic: World of Xeen
Started initial process 9625 from ./scummvm
Start monitoring process.
WARNING: FSDirectory::cacheDirectory: name clash when building cache, ignoring file 'mail'!
Using game controller: Steam Deck
Using game controller: Steam Deck
User picked target 'worldofxeen-cd' (engine ID 'mm', game ID 'worldofxeen')...
   Looking for a plugin supporting this target... Might & Magic
Running Might and Magic: World of Xeen (CD/DOS/English)
dark.cc: 7f755ce39ea614fa6adb016f8bfc6e43, 11288403 bytes.
xeen.cc: 964078c53f649937ce9a1a3596ce3d9f, 13438429 bytes.
Initial process has exited (return code: 0)
Monitored process exited.
All processes have quit
Exit with return code 0

comment:3 by bjoern-tantau, 7 months ago

With the current version from git (b8c5efd6224211282bf4ac1ebb566240456ed59b) I get:

scummvm --aspect-ratio --fullscreen --scaler=normal --scale-factor=3 --renderer=opengl --path=/home/bjoern/Games/xeen worldofxeen-cd
Using joystick: Steam Deck
User picked target 'worldofxeen-cd' (engine ID 'mm', game ID 'worldofxeen')...
   Looking for a plugin supporting this target... Might & Magic
Running Might and Magic: World of Xeen (CD/DOS/English)
dark.cc: 7f755ce39ea614fa6adb016f8bfc6e43, 11288403 bytes.
xeen.cc: 964078c53f649937ce9a1a3596ce3d9f, 13438429 bytes.
scummvm: engines/mm/shared/utils/engine_data.cpp:53: virtual Common::Path MM::DataArchiveMember::getPathInArchive() const: Assertion `name.isRelativeTo(_innerfolder)' failed.
Abgebrochen (Speicherabzug geschrieben)

comment:4 by somaen, 2 weeks ago

Priority: normalhigh

Would be good to resolve this for the 2.9.0 release, mostly out of sheer curiosity as to what breaks this.

comment:5 by dreammaster, 11 days ago

In aa33d5f7:

COMMON: Fix World of Xeen crashing when run from command line

Fixes bug #15079
When run from the command line, the engine starts up and hooks
in the mm.dat data archive. Then when the debugger console is
created, it only then iterates through all the archives for
theme files. The problem was that there was an assert in the
archive class to prevent engines using data from the wrong
subfolder in cases like the MM engine which has multiple games.
So the themes code triggered that by iterating over all the files.

When the game was run from the GUI this wasn't triggered, because
theme files had already been loaded for the launcher prior to the
game starting.

comment:6 by dreammaster, 11 days ago

Owner: set to dreammaster
Resolution: fixed
Status: newclosed

Fixed. Turns out that scanning for theme files for the console window after the game had started caused an assert to trigger thinking the engine was accessing the subfolder files for another game (mm1 when starting up world of xeen). Starting in the launcher, the theme files had already loaded.

Note: See TracTickets for help on using tickets.