Opened 14 years ago

Closed 13 years ago

#2013 closed defect (fixed)

MI SEGA: Dialogue problem with Sega CD version

Reported by: SF/methodgit Owned by: cyxx
Priority: low Component: Engine: SCUMM
Keywords: Cc:
Game: Monkey Island 1

Description

This has been a presence for quite a while on ScummVM
now, so it's best I make it more public by submitting a
bug report on it (my first!). For the sake of the
report coming today I've been testing using the latest
CVS version to date:
ScummVM 0.8.0CVS (Apr 30 2005 21:53:33)
Features compiled in: Vorbis FLAC MP3 zLib MPEG2

Secret of Monkey Island - Sega CD - English

It's specific to the Sega CD version. During a sword
insult scene, when you mousewheel-scroll or use the
number keys to select a line of dialogue, and when you
cause the list to scroll along (say towards the
bottom), after a notch down or so, it'll automatically
select whatever line it happens to be on rather than
continuing to scroll down the list as usual. This
means that you can't tackle the sword insult scenes
properly, as you are unable to access the insults lower
down the list. More worrying, it seems when you have a
list of insults, wheeling up or pressing 6 - wherever
your highlighter is on the list - will select the line
rather than scroll up as it should do. This seems
pretty important enough for you guys to check it out.

Thanks very much! :-)

Ticket imported from: #1193185. Ticket imported from: bugs/2013.

Attachments (2)

miscddumps.zip (24.6 KB ) - added by fingolfin 13 years ago.
glo_kidd's dumps
miscddumpsoops.zip (34.9 KB ) - added by fingolfin 13 years ago.

Download all attachments as: .zip

Change History (24)

comment:1 by fingolfin, 14 years ago

Keywords: script removed
Owner: set to SF/khalek
Summary: Dialogue problem with Sega CD versionMI SEGA: Dialogue problem with Sega CD version

comment:2 by fingolfin, 14 years ago

khalek added the mouse wheel support for MI SEGA -- so maybe he has
an idea about this issue? See <http://cvs.sourceforge.net/viewcvs.py/
scummvm/scummvm/scumm/scumm.cpp?r1=1.35&r2=1.36>

comment:3 by SF/khalek, 14 years ago

I can't remember this, but I think I got someone to send me
the scripts at the time. I don't have the Sega CD version.
If someone wants to donate a copy I wouldn't say no however :)

comment:4 by SF/methodgit, 14 years ago

Ooooooooor you could try your luck with this eBay listing,
khalek ;) :

http://cgi.ebay.co.uk/ws/eBayISAPI.dll?ViewItem&category=62053&item=8192003447&rd=1

comment:5 by fingolfin, 14 years ago

Priority: normallow

comment:6 by SF/khalek, 14 years ago

Owner: SF/khalek removed

comment:7 by fingolfin, 14 years ago

Khalek, do you still have those scripts by chance? Maybe we can figure out
something by looking at them again...

comment:8 by SF/khalek, 14 years ago

I think jake was the person who sent them to me. Can't seem
to find them. Presumably the original poster can creater
script dumps for us anyway.

comment:9 by fingolfin, 14 years ago

methodgit, I hope you are still around... if so, could you
do that (create script dumps for us) ? Just create a "dumps"
directory in the dir that ScummVM lives in, and specify the
"-u" option when launching it, That should do the job. It'll
generate lots of ".dmp" files in "dumps". No need to play
much, just start SEGA MI and maybe skip until it gets
interactive. Then ZIP/TAR the whole dumps dir and either
attach it here, or, should that fail that, email it to
khalek and me.

Thanks!

comment:10 by SF/glo_kidd, 13 years ago

hey guys i created some dumps for you let me know if you
need more. My audio is Mp3 compressed

comment:11 by SF/glo_kidd, 13 years ago

okay i cant figure out how to attach files so ill email you
the file if i can fingolfin

comment:12 by fingolfin, 13 years ago

Attaching glo_kidd's file (I haven't looked at it yet myself).

by fingolfin, 13 years ago

Attachment: miscddumps.zip added

glo_kidd's dumps

comment:13 by fingolfin, 13 years ago

Owner: set to fingolfin

comment:14 by fingolfin, 13 years ago

OK, I think I see the problem. I commited a fix
which makes the scroll wheel work fine in my
regular (non-SEGA) version of MI. Incidentally,
you can also use 'q' and 'a' to scroll up/down.
Looking at the script dumps you provided, it
should in theory also work for the SEGA version...

Please give it a try (if you are using daily
builds, you may have to wait up to 24 hours for
this change to become available).

comment:15 by SF/glo_kidd, 13 years ago

Ok ive done some testing with the SVN build of 05/03/06
here is what i found out
Generally the mouse wheel doesnt work in regular conversation
to go up or down in the dialog choices you must press
7(down) or 6(up, but occasionally selects whatevers highlighted)
1,2,3,4,5 all generally select whatever is selected
During swordfighting (after saying "my name is guybrush
threepwood prepare to die") the mousewheel, when turned,
autoselects whatever is highlighted. you can still use 7 to
go down the list of choices but 6 now also autoselects the
current highlighted comment. Also, you can scroll down the
dialog choices once but the second time it once again auto
selects.
If nessisary i could provide some more dumps, this time of
the swordfighting part itself, if you think it would help

comment:16 by fingolfin, 13 years ago

Some things: 1) Those dumps weren't made during
the sword fighting? Uhm... I thought debugging
that was the whole point of this tracker item =)

2) The scripts you sent me so far are pretty
similar to the regular PC MI scripts. In the MI PC
version, you can scroll during the insult fight
with "q" and "a". Looking at the script dumps you
sent me, this should work on the SEGA version, too
(as I mentioned in my previous comment). Did you
try this?

3) Can you give me some examples of conversations
other than the sword fight where one has to do
scrolling? I can't find any right now, which makes
debugging a bit hard :-).

4) The original report states what 6 "should" do.
Uhm, are you sure about that? I.e. did you
actually test this on a SEGA? Because the
described behavior fully agrees with the scripts...

comment:17 by SF/glo_kidd, 13 years ago

sorry about the wrong dumps, ive sent new ones from the
swordfighting itself. i cant belive i did that.
i tried q and a this time,which generaly didnt move the
selection,but in swordfights a would select the highlighted
response
unfortuneatley i cant think of any other times that you
might have to scroll down, except possibly when talking to
toothrot (but im not sure)
sorry again, i hope the new dumps help a little more

comment:18 by fingolfin, 13 years ago

Attached new dumps from glo_kidd.

by fingolfin, 13 years ago

Attachment: miscddumpsoops.zip added

comment:19 by cyxx, 13 years ago

script-17 setups the following verbs areas :

[00E4] (7A) VerbOps(120,[New(),SetXY(0,145),Color(72),HiColor(69),Key(49)])
[00F3] (7A) VerbOps(121,[New(),SetXY(0,154),Color(72),HiColor(69),Key(50)])
[0102] (7A) VerbOps(122,[New(),SetXY(0,163),Color(72),HiColor(69),Key(51)])
[0111] (7A) VerbOps(123,[New(),SetXY(0,172),Color(72),HiColor(69),Key(52)])
[0120] (7A) VerbOps(124,[New(),SetXY(0,181),Color(72),HiColor(69),Key(53)])
[012F] (7A) VerbOps(125,[New(),SetXY(0,190),Color(72),HiColor(69),Key(54)])
[013E] (7A) VerbOps(126,[New(),SetXY(0,190),Color(72),HiColor(69),Key(55)])
[014D] (7A) VerbOps(127,[New(),SetXY(0,190),Color(72),HiColor(69),Key(56)])
[015C] (7A) VerbOps(128,[New(),SetXY(0,190),Color(72),HiColor(69),Key(57)])

script-14 (input/verb script) expects keys 54/55 to scroll along the dialogues choices.

[0012] (A8) if (Var[451]) {
[0017] (48) if (Local[0] == 4) {
[001E] (48) if (Local[1] == 54) {
[0025] (1A) Var[79] = -1;
[002A] (48) } else if (Local[1] == 55) {
[0034] (1A) Var[79] = 1;
[0039] (48) } else if (Local[1] == 56) {
[0043] (1A) Var[80] = -1;
[0048] (48) } else if (Local[1] == 57) {
[0052] (1A) Var[80] = 1;
[0057] (18) /* goto 005A; */
[005A] (**) }

If there are less than 6 dialogue choices on screen, there's no problem (49-53). If there are more, then the user scroll through them, ScummVM sends 54/55 as arguments for the generic keyboard script ("runInputScript(4,"). This conflicts with the verb trigger input script ("runInputScript(1") (same key values 54-55, verb is selected -> no scrolling occurs).

This part of code was most probably disabled in the SegaCD interpreter as the original SegaCD system couldn't send the '1'..'9' keys anyway.

Workaround added to SVN, please test if it works for you.

comment:20 by cyxx, 13 years ago

Owner: changed from fingolfin to cyxx
Status: newpending

comment:21 by SF/glo_kidd, 13 years ago

Hi Cyx, i just finished testing out the new SVN and it works great. the new changes seem to fix the problem + adds mouse wheel support for dialog selection. Wow great stuff, this bug seems pretty much resolved with these changes. You rock man

comment:22 by sev-, 13 years ago

Resolution: fixed
Status: pendingclosed
Note: See TracTickets for help on using tickets.