Opened 4 years ago

Closed 10 months ago

#12335 closed defect (fixed)

AGS: Quest for Glory II Remake: Import a Hero does not work

Reported by: OmerMor Owned by: tag2015
Priority: normal Component: Engine: AGS
Version: Keywords:
Cc: lwcorp Game: Quest for Glory 2

Description

Running the latest daily build (2021-03-03 01:44:20 downloaded on 2021-03-19) on Windows 10.

When starting the game, and pressing "Import a Hero" the game writes the following message:
"I'm sorry, there don't appear to be any Quest for Glory saved characters in this folder."

I've tried to put a qfg1 exported save file in the following folders:

  • ScummVM's save path
  • ScummVM's program path
  • The game's folder

None of these worked.

Attachments (3)

qfg1-q1-abra.sav (99 bytes ) - added by OmerMor 4 years ago.
Screenshot 2021-03-20 at 22.17.53.png (365.6 KB ) - added by criezy 4 years ago.
new_import_alert.png (106.3 KB ) - added by lwcorp 10 months ago.
The new import alert

Download all attachments as: .zip

Change History (30)

comment:1 by OmerMor, 4 years ago

Just confirmed that this is still reproduced is the 2021-03-19 daily snapshot as well.

comment:2 by dreammaster, 4 years ago

Could you attach the exported save for testing purposes? Thanks.

by OmerMor, 4 years ago

Attachment: qfg1-q1-abra.sav added

comment:3 by OmerMor, 4 years ago

Done.

comment:4 by criezy, 4 years ago

This seems to work for me.

If I put your file in the game folder it is found (see screenshot in attachment).

If I put the file in the save path, I need to add the game target as a prefix (in my case "qfg2agdi-") as in ScummVM we add a prefix for all the files in the save path to avoid conflicts between several AGS games (for example several games try to create or read a 'user.cfg' file in the save path).

comment:5 by dreammaster, 4 years ago

Owner: set to dreammaster
Resolution: fixed
Status: newclosed

comment:6 by OmerMor, 4 years ago

Resolution: fixed
Status: closednew

On my machine it doesn't work. Maybe it's a problem with the Windows build?
I have the file in my game folder, as well as in my save path.
I have it named both as qfg1-q1-abra.sav and qfg2agdi-q1-abra.sav
I still get the same "not found" reply.
I monitored ScummVM's file system access with Sysinternals' Process Monitor and saw that it does indeed scan the relevant folders and even find the save files.
However an operation of IRP_MJ_CREATE for the file returns result of NAME_INVALID.

If it matters, loading regular saved games from this game works, so not all file system access is failing.

Another data point: the original SCI qfg2 is able to find and import this saved character on my machine.

Last edited 4 years ago by OmerMor (previous) (diff)

comment:7 by dreammaster, 4 years ago

Well, I confirmed that the fix I did yesterday worked when I did Downloaded all the attachments as a zip, and then extracted the .sav file. The way it works, it should list any .sav file in your game directory, and any .sav file in the ScummVM save path that has a "qfg2agdi-*.sav" form (or whatever prefix/target your game entry has).

comment:8 by dreammaster, 4 years ago

Resolution: fixed
Status: newpending

comment:9 by OmerMor, 4 years ago

Owner: changed from dreammaster to OmerMor
Status: pendingclosed

Thanks! Verified fix in the latest daily snapshot.

comment:10 by lwcorp, 12 months ago

Resolution: fixed
Status: closednew

Well, this apparently got unfixed, both in v2.7.1 and v2.9.0git234-g6ed3c946ffc.

What happens now is that it actually presents only its own export files, i.e. specifically those with prefix qfg2agdi- (see #14754).

Of course they can't be used (trying to click them produces "I'm terribly sorry. That doesn't seem to be a proper Quest for Glory I save file." - which is true). A temporary fix is to rename qfg1vga-X.sav or qfg1-X.sav to qfg2agdi-X.sav, and then it becomes importable.

Can someone please re-fix it to only accept qfg1vga-X.sav and qfg1-X.sav files?

P.S.
Can you allow this game's import screen to change folders like in the SCI games?

Last edited 12 months ago by lwcorp (previous) (diff)

comment:11 by lwcorp, 12 months ago

Cc: lwcorp added

in reply to:  10 comment:12 by tag2015, 12 months ago

Replying to lwcorp:

Well, this apparently got unfixed, both in v2.7.1 and v2.9.0git234-g6ed3c946ffc.
Can someone please re-fix it to only accept qfg1vga-X.sav and qfg1-X.sav files?

I don't think that it ever worked like this. It's clearly explained by dreammaster in his post:

"it should list:

  • Any .sav file in your game directory, and
  • Any .sav file in the ScummVM save path that has a "qfg2agdi-*.sav" form (or whatever prefix/target your game entry has)

"

P.S.
Can you allow this game's import screen to change folders like in the SCI games?

What do you mean? The SCI games don't allow changing folders in the import window, when ran through ScummVM

comment:13 by lwcorp, 12 months ago

Then obviously they got it wrong. It makes no sense to show qfg2agdi-*.sav since it can't import its own exports. It should only show qfg1*-X.sav files as that's what it can import.

You're right about changing folders. It's just that in QFG3/4 ScummVM grays it out as opposed to just not show this option at all.

Last edited 12 months ago by lwcorp (previous) (diff)

in reply to:  13 comment:14 by tag2015, 12 months ago

Replying to lwcorp:

Then obviously they got it wrong. It makes no sense to show qfg2agdi-*.sav since it can't import its own exports. It should only show qfg1*-X.sav files as that's what it can import.

It was implemented like this for a reason, as mentioned in a previous post.
When an AGS game accesses the savedir all the files are expected to be prefixed with the gameid (qfg2agdi, unless the user changed it). This is to avoid interfering with other games, so you understand that the only way to list the qfg1 saves is to add some hack specifically for this game, which we'd rather avoid considering that the save can be correctly imported placing the save in the gamedir (or changing the prefix as explained).

It's true that it clashes with files exported by this game but I don't think that's much of a problem... the game tells you when the file is not a QfG1 character, and frankly I don't think there are that many users affected by this potential problem (considering that you need to complete both games, unless you cheat that is)

I think that the best idea is to add a informational messagebox when opening the import option, like in the SCI engine.

comment:15 by lwcorp, 12 months ago

I don't understand this, do you expect people to break QFG3 and QFG4 in order to support QFG2?
Because if they rename qfg1-something.save it to qfg2agdi-something.sav then both QFG3 and QFG4 will complain trying to import from the wrong game (QFG2 instead of QFG1).

Moreover, you don't seem to care QFG4 interferes with QFG1-3's files and QFG3 interferes with QFG1-2's files, but QFG2 should be the exception?

in reply to:  15 comment:16 by tag2015, 12 months ago

Replying to lwcorp:

I don't understand this, do you expect people to break QFG3 and QFG4 in order to support QFG2?
Because if they rename qfg1-something.save it to qfg2agdi-something.sav then both QFG3 and QFG4 will complain trying to import from the wrong game (QFG2 instead of QFG1).

You just need to copy the exported .sav as qfg2agdi-character.sav to allow importing. Also, if you don't want to mess with the saves in the save folder, what is the problem with copying the save directly to the QfG2-remake folder?

Moreover, you don't seem to care QFG4 interferes with QFG1-3's files and QFG3 interferes with QFG1-2's files, but QFG2 should be the exception?

I can't comment on the SCI engine, since I never worked on it (besides the small addition last week to fix the issue you reported). But QfG2 remake is the exception because it's a different engine, and that's how saves in AGS are handled.

comment:17 by mrprmiller, 12 months ago

I'm reading through this thread, and I think there's some confusion. Playing through ScummVM and leaving the expected prefix for imports into QFG2 as "qfg2adgi" doesn't fit the established formula. For the sake of the end-user of Quest for Glory games, it should be consistent.

QFG1 doesn't have imports, but exports as QFG1-*
QFG2EGA ONLY accepts QFG1-* as import, but exports as QFG2-*
QFG3 ONLY accepts QFG2-* as import, but exports as QFG3-*
QFG4 ONLY accepts QFG3-* as import, but exports as QFG4-*

What is being suggested, unless I'm missing something, is a change to the way every other game in the series works. QFG2AGDI accepts QFG2AGDI-* as import, and then exports as QFG2AGDI-*.

One of these things is not like the others, and is going to cause confusion to end-users going through the game. The import/export system isn't just a small part of the system - it is a major part of the QFG experience.

Since QFG2EGA ONLY accepts QFG1 imports, it makes sense to set QFG2AGDI to also accept QFG1 since it ONLY accepts those imports. It would also make sense to allow QFG3 to accept QFG2AGDI and QFG2 as acceptable imports, or do what QFG1EGA/VGA does and just export to QFG2-*.

The parallel is QFG1EGA and QFG1VGA - they both export correctly as QFG1 to make sure the players don't have to do any renaming to make it work.

Version 1, edited 12 months ago by mrprmiller (previous) (next) (diff)

comment:18 by i30817, 11 months ago

In android you can't even see the default save dir, much less copy things off it into other folders (unless you're using cloud saves I suppose - maybe).

Without that 'just do it yourself' rings a bit hollow.

Last edited 11 months ago by i30817 (previous) (diff)

comment:19 by i30817, 11 months ago

Moreover I quite like the ability to place games in read only locations (like a DVD or a squash file).

comment:20 by tag2015, 11 months ago

I think you all have made your points, thanks.
I'll see if it's possible to implement it cleanly, but I'm puzzled how this issue went without discussions at all for 3 years...

Anyway, please note that is not a common usecase, basically you expect to move files between different engines without user itervention. I don't think this ever happens anywhere else in ScummVM.

in reply to:  20 comment:21 by OmerMor, 11 months ago

Replying to tag2015:

Anyway, please note that is not a common usecase, basically you expect to move files between different engines without user itervention. I don't think this ever happens anywhere else in ScummVM.

It could happen again in the future if ScummVM adds support for QfG5, which used another engine as well.

in reply to:  20 ; comment:22 by lwcorp, 11 months ago

Replying to tag2015:

I'll see if it's possible to implement it cleanly, but I'm puzzled how this issue went without discussions at all for 3 years...

Because this is a bug that appears after the endgame, and until last week's release it was impractical to play through the entire game due to #12998.

Anyway, please note that is not a common usecase, basically you expect to move files between different engines without user itervention. I don't think this ever happens anywhere else in ScummVM.

Like you wrote above, you didn't work a lot on SCI but over there every QFG game does it. QFG4 accepts only QFG3-*.sav, QFG2-*.sav and QFG1-*.sav files. QFG3 accepts only QFG2-*.sav and QFG1-*.sav files. The original QFG2 accepts only QFG1-*.sav files. And when #14754 becomes official, QFG4 and QFG3 will even accept qfg2agdi-*.sav files. If QFG5 become supported it will also accept QFG4-*.sav files. But none of them accepts their own files.
This is even though QFG4 in infamous for actually accepting its own files (which is a cheat). But in ScummVM one has to rename them to a previous game to make it work. That is, ScummVM disabled a direct legitimate cheat for the mere principle of not accepting the game's own files.

Last edited 11 months ago by lwcorp (previous) (diff)

in reply to:  22 comment:23 by tag2015, 11 months ago

Like you wrote above [...]

What I meant is that accessing saves created on another engine is not a common situation. You already explained how the other QfG games work, but those are all part of the SCI engine.
QfG2AGDI just happens to be one of the games that is supported by the AGS engine (which supports thousands of other games). We didn't implement it individually, that's why it should follow how the rest of the engine behaves.
Anyway as I said, since multiple people are asking for this "fix", I'll try to implement in a clean way.

comment:24 by tag2015, 10 months ago

Fixed in commit 015937d

Should be in tomorrow's daily builds (master only, if there are no problems I may also backport to 2.8)

comment:25 by tag2015, 10 months ago

Owner: changed from OmerMor to tag2015
Resolution: fixed
Status: newpending

comment:26 by lwcorp, 10 months ago

Thanks so much for making an AGS exception for this game!
It seems to work well in v2.9.0git1795-g98c92916825 (Feb 1 2024 04:49:03), even adding a screenshot, so do you want to have the status changed from pending?

by lwcorp, 10 months ago

Attachment: new_import_alert.png added

The new import alert

comment:27 by tag2015, 10 months ago

Status: pendingclosed

Thanks for testing! Closing the bugreport then

Note: See TracTickets for help on using tickets.