#4082 closed defect (fixed)
AmigaOS4: Saving (new games) broken/not possible anymore
Reported by: | raziel- | Owned by: | wjp |
---|---|---|---|
Priority: | normal | Component: | Port: AmigaOS4 |
Version: | Keywords: | ||
Cc: | Game: |
Description
ScummVM 0.13.0svn (Jan 5 2009 09:42:59) Features compiled in: Vorbis FLAC MP3 zLib MPEG2
Saving in a new slot isn't possible anymore. I get WARNING: Can't create file 'pq1-amiga.044', game not saved! for whatever game i tried and whatever slot i tried.
(Although the 0 slot gives another warning about being only used for auto saves)
Strange thing is, though, that its still possible to save in previous saved slot, that is, if there already IS a saved game it can be overwritten. But no new save game is created et al
Strange
All AGI based games
gcc version 4.0.2 (AmigaOS build 20051012)
Ticket imported from: #2487481. Ticket imported from: bugs/4082.
Change History (16)
comment:1 by , 16 years ago
comment:3 by , 16 years ago
This tracker item is pending response by the submitter; we cannot continue processing it before that happens. As a consequence, its status has been set to "Pending". It will automatically revert to "Open" once a new comment is made to this item. If no response is made within 14 days, it will automatically be closed.
Thank you.
comment:4 by , 16 years ago
Status: | new → pending |
---|
comment:5 by , 16 years ago
@thebluegr
If you read my initial comment, you'll see that there is no write protection set on the save folder (anyway EVERY other game from ScummVM can save there without problems) as it is possible to save to an already created slot.
Only NEW slots that needs to be created to be able to save refuse to do so
Latest SVN revision from today shows the same problem, sorry
comment:6 by , 16 years ago
Status: | pending → new |
---|
comment:7 by , 16 years ago
This is very puzzling. Are you really sure other engines can create new slots properly? I can see no difference in how AGI and SCUMM create a savegame.
The one thing that looks fishy is that AmigaOSFilesystemNode::getChild() tries to obtain a lock on the child. The AmigaOS reference documentation I can find is very sparse with details about failure modes, so I don't know if Lock() fails or succeeds on a non-existing file, but if it fails, that would break creating new files in the way done by the default save manager. But then it would be broken in all engines.
comment:8 by , 16 years ago
Truly sorry for both the delay and the wrong information.
My bad :-/
Of course it's broken with all engines, SCUMM refuses to create a new save as does AGI and BASS (these i tested)
I am now in the process of going back in revisions to see which one has the culprid. 0.12.0 (r34422) works fine and the last i build (r34570) does not.
But maybe you already have an idea on how to fix it?
Thank you
comment:9 by , 16 years ago
I _think_ it would be fixed by removing the locking code[*] in AmigaOSFilesystemNode::getChild(), but without having access to AmigaOS4 I can't say for sure. It would need testing to see if it doesn't break any subtle things anywhere.
[*] The section from the line starting with "BPTR lock = IDOS->Lock(" to the line "IDOS->Unlock(lock);", inclusive.
comment:10 by , 16 years ago
Summary: | AGI: Saving (new games) broken/not possible anymore → AmigaOS4: Saving (new games) broken/not possible anymore |
---|
comment:11 by , 16 years ago
That did the trick, thank you, saving in new slots works again :-)
I do get warnings from the AGI engine though, nothing fatal i think.
WARNING: FSNode::createReadStream: FSNode does not exist! WARNING: FSNode::createReadStream: FSNode does not exist! WARNING: FSNode::createReadStream: FSNode does not exist!
comment:12 by , 16 years ago
No, those aren't fatal. (I get them too in Linux.)
Could you test this a bit more in general, just to make sure nothing subtle was broken? I feel a bit hesitant about committing this since I have no access to AmigaOS4 myself...
I was thinking of running games from a couple of engines, and listing savegames and loading/saving in a couple of engines. If that works fine, I'll commit this to trunk and the 0.13.0 branch.
comment:13 by , 16 years ago
Of course, thanks a lot for the help
AGI, HE, BASS, FotAQ and SCUMM all work fine (tested with different games where possible)
comment:15 by , 16 years ago
Component: | Engine: AGI → --Unset-- |
---|---|
Game: | AGI Fanmade |
Owner: | set to |
Resolution: | → fixed |
Status: | new → closed |
comment:16 by , 6 years ago
Component: | --Unset-- → Port: AmigaOS4 |
---|
Very strange, just tried it and it works fine for me
Are you sure that ScummVM can write to the target folder and that there is enough space available there?