Opened 18 years ago

Closed 17 years ago

Last modified 5 years ago

#2778 closed defect (fixed)

MANIAC: Characters walk through air when using stairs

Reported by: SF/robertmh Owned by: fingolfin
Priority: normal Component: Engine: SCUMM
Version: Keywords:
Cc: Game: Maniac Mansion

Description

Using ScummVM 0.10.0svn (Aug 10 2006 18:46:14) with Enhanced English version of Maniac Mansion, on Debian GNU/Linux amd64.

Characters occasionaly walk through air when going upstairs/downstairs, at least in the following levels: - between level 2 and 3 - between level 3 and 4

See attached image, and savegame with a character "on the fly". Note: to reproduce, you have to try a few times. I think it depends on the exact position you're moving from and the position you're moving to.

Ticket imported from: #1538260. Ticket imported from: bugs/2778.

Attachments (2)

flying.png (15.5 KB ) - added by SF/robertmh 18 years ago.
bernard flying into stairs
maniac_flying.s01 (8.3 KB ) - added by SF/robertmh 18 years ago.
savegame

Download all attachments as: .zip

Change History (12)

by SF/robertmh, 18 years ago

Attachment: flying.png added

bernard flying into stairs

by SF/robertmh, 18 years ago

Attachment: maniac_flying.s01 added

savegame

comment:1 by SF/robertmh, 18 years ago

Summary: characters walk through air when going through stairsMM: characters walk through air when going through stairs

comment:2 by SF/mthreepwood, 18 years ago

Yes, I have seen this as well. They walk from wherever they are to the top of the stairs.

Since it is very rare (I've only seen it once) I didn't bother to file a report.

comment:3 by fingolfin, 18 years ago

Summary: MM: characters walk through air when going through stairsMANIAC: Characters walk through air when using stairs

comment:4 by sev-, 18 years ago

Our walkboxes code is not correct for NES and v1 (and I supopse for v0) MM. It was known for a while, just nobody reported it.

comment:5 by fingolfin, 18 years ago

Yes, the whole walking code for V0-V2 games is a mess -- essentially, it's a big hack. I decided to do it this way back then because it was the easiest way to get results. I never planned to keep it that way, but you know how things go.

Anyway, the hack is that we scale the 8x2 block coordinates used in those games versions (well at least in V1/V2, no idea about NES or C64, but I assume they do the same) to pixel coordinates...

The difference is quite important, because while two blocks may be adjacent, the pixels that they contain mostly are *not* directly adjacent. This confuses the walk box code, and causes various other nasty problems.

For a faithful emulation of the original (and in order to fix half a dozen or more open bug reports), we'd have to get rid of that hack and properly use block coordinates. A lot of code would be affected by this, too. A non-trivial project, but potentially rewarding.

comment:6 by SF/madventurer, 17 years ago

I did think something like this was a lot more rare and did put a forum post for discussion, thinking that can be the regression of and old bug. Now I see the bug is more recent than expected, it's quite curious.

Can we, the users, expect this being fixed before 0.10.0 release or it's quite complex to solve due to the need of rewriting certain source code? It not affects gameplay in an important manner and I understand how devs are occupied with real life and other important ScummVM development, it could be nice some nice words from devs about this.

ScummVM for me is the most open-source project ever, it progressed amazingly fast in just a few years. A few glitches in early SCUMM games will not make me cry ;)

comment:7 by fingolfin, 17 years ago

The fundamental problem is still there, as has been described here and elsewhere previously: The walkcode for V1/V2 games is still plain wrong.

While I recently removed the 8x2 vs. pixel accuracy problem in the walk code, there still are problems. Essentially, we'll have to fully rewrite the walk code for V1/V2 games in order to fix this bug. Considering that this is quite some work, and that it's also not that easy to reliably reproduce some of these issues, I wouldn't hold my breath on this one if I was you. It's not likely to be fixed in the next release (our primary concern for that is improving the documentation, anyway).

comment:8 by fingolfin, 17 years ago

Fixed in Subversion, next daily build should have the fix.

comment:9 by fingolfin, 17 years ago

Owner: set to fingolfin
Resolution: fixed
Status: newclosed

comment:10 by digitall, 5 years ago

Component: Engine: SCUMM
Game: Maniac Mansion
Note: See TracTickets for help on using tickets.