Author Topic: King's quest IV: door out of place  (Read 9008 times)

0 Members and 1 Guest are viewing this topic.

Offline robingravel

Re: King's quest IV: door out of place
« Reply #15 on: January 24, 2021, 02:49:33 PM »
It was a serious question turned into comedy.

:( :(
« Last Edit: January 27, 2021, 08:09:05 PM by gumby »

Offline gumby

Re: King's quest IV: door out of place
« Reply #16 on: January 27, 2021, 08:13:42 PM »
This thread got accidentally (I think?) locked.  It's unlocked now.
In the Great Underground Empire (Zork port in development)
Winter Break 2012 Rope Prop Competition

Offline Kawa

Re: King's quest IV: door out of place
« Reply #17 on: January 28, 2021, 04:01:09 AM »
This is, in fact, true. Room 333 handles riding the unicorn through all (!)  the screens.

The relevant bit of code from room 333:
Code: [Select]
(instance from26 of Script
(method (changeState newState)
(switch (= state newState)
(2
(if global100
(newView
view: 600 loop: 0 cel: 0
setPri: 10
posn: 289 137 ; Matches room 28
init: stopUpd:
)
(gRoom drawPic: 28)
(gRoom overlay: 128)
else
(gRoom drawPic: 28)
(newView
view: 600 loop: 1 cel: 0
setPri: 9
posn: 284 131 ; Matches room 28
ignoreActors: init: stopUpd:
)
)
(gRoom setScript: from28)
)
)
)
)
1988 version is exactly the same at this point except for not using an overlay for the night state and having different coordinates for the door: 289 139 and 283 139, which are again the same as in room 28.

So if the unicorn riding isn't the problem, what's going on then?

Offline robingravel

Re: King's quest IV: door out of place
« Reply #18 on: January 28, 2021, 11:18:09 AM »
Maybe this video will give what happens to the door when riding the unicorn.


This thread got accidentally (I think?) locked.  It's unlocked now.

It was me since this thread turned into mockery.

Offline Kawa

Re: King's quest IV: door out of place
« Reply #19 on: January 28, 2021, 11:38:23 AM »
Okay, so.

1. The mine entrance room you go to on foot (28) is not the same room as the one in the unicorn cutscene -- that's entirely done in room 333, which pretends to be various other rooms. Hence the loading time when you ride horse -- it's preloading all these backgrounds.
2. The mine door is open or closed depending on the time of day you enter room 28, or when room 333 pretends to be 28.
3. The fake mine room (333 pretending to be 28) has the same door view (600) at the same positions as the real room 28, for both 1988 and 1989 versions.
4. There is nothing in this cutscene script that could put the door where it's shown in the video or screenshot.

(5. The mockery started during a lull in the research and wasn't directed at you.)

I'm gonna stop trusting the scripts for a bit, try to see this action for myself.

Edit: overtime nosleep, tp 27, tp 333, wait a bit and... there's nothing wrong with this picture at all. The door's open and in the right place. This is King's Quest IV, version 1.006.004, released 1989-08-07 on SCI 0.000.502.
« Last Edit: January 28, 2021, 11:46:03 AM by Kawa »

Offline OmerMor

Re: King's quest IV: door out of place
« Reply #20 on: January 28, 2021, 01:35:09 PM »
This is King's Quest IV, version 1.006.004, released 1989-08-07 on SCI 0.000.502.

Robin's version is 1.003.006, 1988-12-07.

So possibly it's something that was fixed between 1.003.006 and 1.006.004.

Edit:
Actually it's weird - according to sciwiki the only difference is the KQ4PATCH which fixed views 653 and 997. But perhaps the wiki is wrong and there are other differences.

Can someone share v1.003.006 with me please?
« Last Edit: January 28, 2021, 01:41:51 PM by OmerMor »

Offline lskovlun

Re: King's quest IV: door out of place
« Reply #21 on: January 28, 2021, 02:14:07 PM »
Actually it's weird - according to sciwiki the only difference is the KQ4PATCH which fixed views 653 and 997. But perhaps the wiki is wrong and there are other differences.
There's definitely a new interpreter; and a quick peek at FreeSCI shows this:
Code: [Select]
#define SCI_VERSION_FTU_PRIORITY_14_ZONES SCI_VERSION(0,000,502)
/* Last version known to do this: 0.000.490
 * Uses 14 zones from 42 to 190 instead of 15 zones from 42 to 200.
*/
Does this matter? idk. But the change is included in the last few releases of KQ4.

Offline Kawa

Re: King's quest IV: door out of place
« Reply #22 on: January 28, 2021, 02:28:55 PM »
A different interpreter (0.000.409 vs my 0.000.502) shouldn't affect the door like that, and KQ4FIX is literally just two apparently-missing views that don't apply to the mine entrance so I too would like to see if Robin's version has any differences in script.333 or view.600.

Offline robingravel

Re: King's quest IV: door out of place
« Reply #23 on: January 28, 2021, 04:02:44 PM »
Here the door code from room 333
Code: [Select]
(case 2
(if (global100)
(send newView:
view(600)
loop(0)
cel(0)
setPri(9)
posn(289 137)
ignoreActors()
init()
stopUpd()
)
(send global2:drawPic(128))
)(else
(send global2:drawPic(28))
(send newView:
view(600)
loop(1)
cel(0)
setPri(10)
posn(284 131)
init()
stopUpd()
)
)
(send global0:posn(30 187))
(send global2:setScript(from28))
)

« Last Edit: January 28, 2021, 04:25:15 PM by robingravel »

Offline OmerMor

Re: King's quest IV: door out of place
« Reply #24 on: January 28, 2021, 05:09:25 PM »
A different interpreter (0.000.409 vs my 0.000.502) shouldn't affect the door like that, and KQ4FIX is literally just two apparently-missing views that don't apply to the mine entrance so I too would like to see if Robin's version has any differences in script.333 or view.600.

Additionally there's nothing in KQ4FIX that would bump the version number, so I'm skeptical of the claim in sciwiki.

Offline Kawa

Re: King's quest IV: door out of place
« Reply #25 on: January 28, 2021, 05:25:24 PM »
Those are once again the correct coordinates. Could you attach the actual view, or quote the offsets of the two frames? They should be 0,0 for the closed door and -8,3 for the opened door.

Offline Collector

Re: King's quest IV: door out of place
« Reply #26 on: January 30, 2021, 11:54:24 PM »
Actually it's weird - according to sciwiki the only difference is the KQ4PATCH which fixed views 653 and 997. But perhaps the wiki is wrong and there are other differences.

Except that the Wiki does not say that that is the only difference. It only notes that it is the version that requires the patch. All subsequent versions included the fix along with whatever other changes were made. Also, later versions did employ a number of graphical changes.

Quote
PC version 1.000.106 and 1.000.111 are the only ones with the original detailed graphics. For 1.003.006 and later versions, Sierra simplified the background graphics to make the game fit on one 5.25 inch disk less, removing background detail and separate night pictures.

The KQ4FIX patch dated 1989-02-15 addresses error message "0x80/653 not found" at DOSBox cycle settings above 1500 when entering the screen with the waterfall. This patch only applies to version 1.003.006. This problem was corrected in the later version 1.006.003 and is not needed in versions 1.006.003 or 1.006.004.

PC version 1.006.004 is the latest PC version and has the main character walking faster diagonally.

KQII Remake Pic

Offline Kawa

Re: King's quest IV: door out of place
« Reply #27 on: January 31, 2021, 05:03:18 AM »
Right, in Room24::init, there's a Prop with isExtra set that uses view.653. Which would indeed mean that slower computers wouldn't try to process it and thus wouldn't attempt to load the resource.

Not that any of that has anything to do with this mysterious door, so I'll once again ask what the hotspots are for the door in version 1.003.006.

Offline OmerMor

Re: King's quest IV: door out of place
« Reply #28 on: January 31, 2021, 12:34:55 PM »
what the hotspots are for the door in version 1.003.006.

The hotspots are the same: (0,0) and (-8,3)

Here the door code from room 333
Code: [Select]
(case 2
(if (global100)
(send newView:
view(600)
loop(0)
cel(0)
setPri(9)
posn(289 137)
ignoreActors()
init()
stopUpd()
)
(send global2:drawPic(128))
)(else
(send global2:drawPic(28))
(send newView:
view(600)
loop(1)
cel(0)
setPri(10)
posn(284 131)
init()
stopUpd()
)
)
(send global0:posn(30 187))
(send global2:setScript(from28))
)


Robin, the code you pasted is only for the from20 instance.
The other ones (from26 and from27) have wrong coordiantes, carried over from the old kq4 version:

Code: [Select]
(2
(if global100
(newView
view: 600
loop: 0
cel: 0
setPri: 10
posn: 289 139
init:
stopUpd:
)
(global2 drawPic: 128)
else
(global2 drawPic: 28)
(newView
view: 600
loop: 1
cel: 0
setPri: 9
posn: 283 139
ignoreActors:
init:
stopUpd:
)
)
(global2 setScript: from28)
)

Here is a summary table for all coordinates which are being set to view 600 loop 1:

v1.000.*v1.003.006v1.006.003
Room 28(283, 139)(284, 131)(284, 131)
Room 333from20: (283, 139)
from26: (283, 139)
from27: (283, 139)
from20: (284, 131)
from26: (283, 139)
from27: (283, 139)
from20: (284, 131)
from26: (284, 131)
from27: (284, 131)

I think that finally solves your mystery Robin!
Thanks for raising it - it was very interesting :-)

I guess we should offer a patch to ScummVm.
« Last Edit: January 31, 2021, 02:05:12 PM by OmerMor »

Offline Kawa

Re: King's quest IV: door out of place
« Reply #29 on: January 31, 2021, 01:31:51 PM »
Woo!


SMF 2.0.19 | SMF © 2021, Simple Machines
Simple Audio Video Embedder

Page created in 0.038 seconds with 23 queries.