Opened 19 years ago

Closed 17 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
Version: 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 18 years ago.
glo_kidd's dumps
miscddumpsoops.zip (34.9 KB ) - added by fingolfin 18 years ago.

Download all attachments as: .zip

Change History (24)

comment:1 by fingolfin, 19 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, 19 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, 19 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, 19 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, 19 years ago

Priority: normallow

comment:6 by SF/khalek, 19 years ago

Owner: SF/khalek removed

comment:7 by fingolfin, 18 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, 18 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, 18 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, 18 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, 18 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, 18 years ago

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

by fingolfin, 18 years ago

Attachment: miscddumps.zip added

glo_kidd's dumps

comment:13 by fingolfin, 18 years ago

Owner: set to fingolfin

comment:14 by fingolfin, 18 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, 18 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, 18 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, 18 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, 18 years ago

Attached new dumps from glo_kidd.

by fingolfin, 18 years ago

Attachment: miscddumpsoops.zip added

comment:19 by cyxx, 17 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, 17 years ago

Owner: changed from fingolfin to cyxx
Status: newpending

comment:21 by SF/glo_kidd, 17 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-, 17 years ago

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