aboutsummaryrefslogtreecommitdiff
path: root/engines/agi
AgeCommit message (Collapse)Author
2016-02-19AGI: Fix comment about end.of.loop/motionMartin Kiewitz
2016-02-19AGI: Add detection+workaround for endofloop+motion at the same timeMartin Kiewitz
Detects when end.of.loop + motions are used on the same screen object at the same time, which would have resulted in flag corruption in the original interpreter. We detect this situation now, show a warning and disable the cycler in case cycler was activated first. This solves a new issue in kq1, when grabbing the eagle in room 22, that was previously hidden just like in the original AGI. Fixes bug #7046
2016-02-19AGI: Save screen object loop_flagMartin Kiewitz
loop_flag was previously vt.parm1, which was shared for multiple uses. Was split up during graphics rewrite in commit 8a595e7771aa89d06876e13d7ab6751e26da8982 Is indirectly part of bug #7046. Saving, restarting ScummVM and restoring right after grabbing the eagle resulted in the glitch not happening (which was of course an inaccuracy anyway). This was caused by AGI currently not saving/restoring the loop_flag. Needs to get further figured out what's exactly happening internally and if this issue was just hidden by the shared vt.parm1 in previous versions. If triggered, it would have just set another pseudo-random flag on end-of-loop.
2016-02-18AGI: Add missed commaEugene Sandulenko
2016-02-18AGI: Apple IIgs time delay override MH1 completedMartin Kiewitz
+ Disable hide.mouse for MH1 Apple IIgs
2016-02-18AGI: Apple IIgs time delay override KQ4 completedMartin Kiewitz
2016-02-17AGI: Make SQ2 Apple IIgs get a AGI 2.917 equivalent and not 2.936Martin Kiewitz
Solves the priority issues at the end, because the set.pri.base call is now rejected by us. The IIgs interpreter seems to feature 177 kernel calls, but the last few are not what we expect them to be. It seems set.pri.base was discard.sound for this interpreter. It seems it was cleaned up for kq4. That one actually uses dynamic priority bands and it's working properly. Fixes bug #7034
2016-02-16AGI: Added comment about artificial delay sq2 sceneMartin Kiewitz
2016-02-16AGI: Set.pri.base comments added (Apple IIgs KQ3+SQ2)Martin Kiewitz
For KQ3 the calls are currently blocked b/c interpreter version For SQ2 they aren't, which causes a few priority issues at the end
2016-02-16AGI: Added console command to disable automatic savesMartin Kiewitz
Helps creating various saved games for Mixed Up Mother Goose
2016-02-16AGI: Change how VM timer vars are handledMartin Kiewitz
Instead of directly converting play time to VM timer vars, we only adjust VM timer vars according to play time seconds delta. This is needed for at least Mixed Up Mother Goose. The game sets the VM "second" variable to 0 and then uses it for syncing the text to the songs. We even adjust second calculation, so that the timing should always be the same and not depend on basically luck (seconds may wrap right after setting it, because internal cycles counter is not changed).
2016-02-14AGI: Changes to vm var seconds heuristic (delay loop detection)Martin Kiewitz
- small fix (forgot to reset the hit counter) - rename methods - added more information about PQ1 in comment
2016-02-14AGI: Add heuristic to detect delay loops within scriptsMartin Kiewitz
And in that case poll events, delay for a few milliseconds and update screen. This somewhat worked before the graphics rewrite because of a timer hack. This one tries to detect actual inner loops. Happens in at least Police Quest 1 when playing poker.
2016-02-14AGI: Added a few comments about KQ1Martin Kiewitz
set.simple gets called when killing the witch + planting beans Right after bowing to the king, ego faces away from him. This issue was already present in 1.7.0. Could probably get solved later via script patcher.
2016-02-14AGI: Fix another comment about dynamic priority tableMartin Kiewitz
Available also in 2.425, then removed until 2.936, yada yada. priorityToY-Glitch is definitely present in 2.425 as well.
2016-02-14AGI: set.pri.base was actually available in AGI2.425Martin Kiewitz
Was available only in 2.425 and in 2.936+. Fixing comment accordingly. Also allowing the command for 2.425.
2016-02-13AGI: Fix new createDefaultPriorityTable() codeMartin Kiewitz
2016-02-13AGI: Fix priority band handlingMartin Kiewitz
- Fix saving/loading priority bands table. Now saving the actual raw data - Now also saving the flag, that defines if the priority table got modified by scripts - For older saved games it will try to figure out the state of that flag - Blocking set.pri.base for AGI below 2.936 - set.pri.base was actually introduced in 2.936 and not AGI3 - The set.pri.base bug was present in 2.936 as well - Saved games created between the graphics rewrite and this commit may have priority issues for games, that used AGI2.936+
2016-02-13AGI: Add another situation that needs artificial delayMartin Kiewitz
Comment only SQ1, right at the end of the asteroids
2016-02-13AGI: Apple IIgs time delay override SQ1 completedMartin Kiewitz
2016-02-13AGI: Adding seconds of current time to saved gamesMartin Kiewitz
Useful to properly detect the most recent saved game (that's done by the original save/restore dialogs)
2016-02-13AGI: Apple IIgs time delay override KQ4 data addedMartin Kiewitz
2016-02-13AGI: Apple IIgs time delay override SQ2 data addedMartin Kiewitz
2016-02-13AGI: Add time delay overwrite for AppleIIgsMartin Kiewitz
Should somewhat fix bug #7026 Needs testing (although AGI games need to get tested for 1.8.0 anyway)
2016-02-11AGI: Rename nonBlockingText -> artificialDelayMartin Kiewitz
Also add a table for Apple IIgs games for music issues like in PQ1 intro, where the developers thought that loading a new room would take X amount of time and they started loading before the music was done. In our AGI music may get cut off because of this. It of course also happens, when using the original interpreter, as soon as you emulate a faster processor. Which means this is also a workaround. See bug #7026
2016-02-10AGI: Remove unused methodMartin Kiewitz
2016-02-10AGI: CleanupMartin Kiewitz
2016-02-10AGI: Init video before font + text initMartin Kiewitz
2016-02-09AGI: Use special Apple IIgs SQ1 palette for SQ1Martin Kiewitz
Was already documented inside palette.h, but wasn't used yet
2016-02-09AGI: Fix warningMartin Kiewitz
2016-02-09AGI: Fix invalid coordinate warnings for spritesMartin Kiewitz
2016-02-09AGI: Only set VAR_KEY,when no controller/directionMartin Kiewitz
Fixes Mixed Up Mother Goose Apple IIgs save/restore prompt
2016-02-09AGI: Hold-Key: only send stationary for directionsMartin Kiewitz
2016-02-09AGI: Fix skip auto-save slot code for auto-saveMartin Kiewitz
2016-02-09AGI: Check xPos/yPos when building sprite listsMartin Kiewitz
And ignore sprites, that are placed outside of visual screen Fixes memory corruption during intro of fan made Get Outta SQ game. Original AGI did not do checks at all.
2016-02-09AGI: Cut menu in case menu names are too longMartin Kiewitz
Required for games that add to many names or add names, that are too long. The code needs to get adjusted anyway for different platforms, so for now just cut the menu names instead Required for at least the fan game Get Outta Space Quest
2016-02-09AGI: Change set.simple string copy codeMartin Kiewitz
2016-02-09AGI: Fix various CIDsMartin Kiewitz
CID 1350104: regression from graphics rewrite in C64 picture drawing CID 1350101: potential buffer overflow in set.simple command CID 1350112: uninitialized variable in TextMgr CID 1350113: false positive uninitialized variable in SystemUI CID 1350114: potentially uninitialized variable in IIgsSample CID 1350117: false positive uninitialized variable in InventoryMgr CID 1350103: code bug in CGA rendering TextMgr::charAttrib_Set() CID 1350109: false positive in GfxFont::loadFontAmigaPseudoTopaz() CID 1350111: original AGI uninitialized memory issue in SpritesMgr::showObject
2016-02-07AGI: Resource checking for setView/setLoop/setCelMartin Kiewitz
Also loading view resources in case they are not loaded on set.view Fixes crash in Larry 1 for Apple IIgs after getting beaten up by taxi driver (was an original game bug). Even makes it work now. Original interpreter closed down in this situation. For setLoop() and setCel() error()s were added for this case to avoid crashes. Also: screenObj->viewData renamed to screenObj->viewResource
2016-02-07AGI: Stop set.simple getting called for <2.425Martin Kiewitz
Also stop it from getting called by 2.440 AGI. Was implemented for 2.425, removed in 2.440 and re-added in 2.917. The opcode is called after answering the phone at the store (555-6969) in Apple IIgs Larry. It can't be automatic saving. See script 22, line 678 in AGI Studio. Stops automatic saving getting enabled for Larry 1 Apple IIgs. Also added warning messages to other commands as well.
2016-02-07AGI: Do not set TIME_DELAY at all on restartMartin Kiewitz
Original AGI did not do it and it would ruin the game speed of at least Larry on Apple IIgs after dying.
2016-02-07AGI: Fix regression from stringWordWrap rewriteMartin Kiewitz
Space at the end of the string was handled inaccurately Fixes kq1 text scrolling bug #7021 Rewrite was done in commit efb65324688f20cc534a25312f558f9264125762
2016-02-06AGI: Move debugger to Ctrl-Shift-DMartin Kiewitz
because of Police Quest 1 using Ctrl-D for calling dispatch. Solves FR #395
2016-02-06AGI: Switch to CLUT3 for Macintosh as defaultMartin Kiewitz
2016-02-05AGI: Adding Macintosh palettes for GR+SQ2Martin Kiewitz
But not actually using the GR palette, because it looks horrible.
2016-02-05AGI: Make it possible to also force CGA/EGA/VGAMartin Kiewitz
...rendering
2016-02-05AGI: fix build powf() -> pow()Martin Kiewitz
2016-02-05AGI: Render mode Macintosh addedMartin Kiewitz
Palette + mouse cursor + box frame color only atm Thanks to wjp for gamma correction Not sure, if our current color adjustment is correct Should be checked by using actual hardware
2016-02-05AGI: GfxMgr::drawBox now using kRenderMacintoshMartin Kiewitz
2016-02-05AGI: Rewrote stringWordWrap()Martin Kiewitz
Original code wasn't accurate