Opened 13 years ago

Closed 12 years ago

Last modified 8 months 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
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 13 years ago.
bernard flying into stairs
maniac_flying.s01 (8.3 KB) - added by SF/robertmh 13 years ago.
savegame

Download all attachments as: .zip

Change History (12)

Changed 13 years ago by SF/robertmh

Attachment: flying.png added

bernard flying into stairs

Changed 13 years ago by SF/robertmh

Attachment: maniac_flying.s01 added

savegame

comment:1 Changed 13 years ago by SF/robertmh

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

comment:2 Changed 13 years ago by SF/mthreepwood

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 Changed 13 years ago by fingolfin

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

comment:4 Changed 13 years ago by sev-

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 Changed 13 years ago by fingolfin

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 Changed 12 years ago by SF/madventurer

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 Changed 12 years ago by fingolfin

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 Changed 12 years ago by fingolfin

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

comment:9 Changed 12 years ago by fingolfin

Owner: set to fingolfin
Resolution: fixed
Status: newclosed

comment:10 Changed 8 months ago by digitall

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