This page is a mirror of Tepples' nesdev forum mirror (URL TBD).
Last updated on Oct-18-2019 Download

SCUMM

SCUMM
by on (#13563)
Has anybody looked into the feasibility of hacking other SCUMM games into Maniac Mansion for the NES? It uses version 1.5 of the SCUMM virtual machine, according to this:
http://en.wikipedia.org/wiki/SCUMM

At least one other game exists for an early version of the virtual machine, and a tool exists for ripping the SCUMM script from the Maniac Mansion NES ROM:
http://forums.scummvm.org/viewtopic.php?t=302

How feasible would it be to hack in, say, "Zak McKracken and the Alien Mindbenders", which uses version 1.0 of the SCUMM virtual machine?

by on (#13570)
Even if the scripts and events were compatible, converting all the graphics to NES format, aligning the graphics and event graphics to a tilemap, and tons of other random stuff would make it a huge monumental task.

by on (#13571)
Another major issue is that the costumes in MM NES were heavily modified to simplify them - in the original version, each costume is divided into several sections (head, arms, legs, etc.) which are animated independently, but the NES version had to shrink them down to single units. As a result, costume animations involving individual limbs wouldn't quite work properly.

There's also the issue that the MM NES engine can only support four actors in a room at one time, which might not be quite enough for Zak McKracken.

by on (#13585)
Um... so even if wholesale story replacement isn't possible, Maniac Mansion might still become a prime target of ROM hackers some time soon?

EDIT: Removed unnecessary apology. As my sig says, I'm really not a serious enough developer to be discussing something like this.
EDIT 2: Let me clarify. I haven't done any NES development at all; I simply have a casual interest in the subject (and other things I want to discuss on these forums...).

by on (#13588)
Quietust, you seem to know a lot about the SCUMM engine... I'd like to learn more about it (the details, such as the limbs and the number of actors stuff). Can you recommend anything I should read? Thanks!

EDIT: Oh, I see there are some useful links at the wikipedia page...

by on (#13631)
Quietust, I hoped you'd reply, as I saw some old posts of yours at the SCUMMVM forums, so I figured you would know allot about SCUMM. The main thing that facinates me is that Maniac Mansion for the NES actually used SCUMM as opposed to just rewriting the entire game in 6502 assembler.

The fact that the game uses a well documented game engine / virtual machine should make this game a prime candidate for ROM hackers, but currently the only Maniac Mansion specific ROM tool that exists is one that extracts the game's script.

by on (#13633)
Jagasian: and Quietust WROTE that script, for when Maniac Mansion NES support was first being added to ScummVM. Eventually ScummVM gained the ability to load right from the rom itself (also Quietust's work) and no longer needed the resources ripped out first.

Lord Nightmare

P.S. the support in scummvm for Maniac Mansion NES is not perfect; there are two issues:
1. somewhat serious: the cursor rollover code does not boundscheck the clickboxes for items and so items on screen can 'overwrite' the action buttons at the bottom of the screen. This makes certain endings of the game very difficult to get!
2. relatively minor: all cutscenes in the game which involve panning/scrolling the whole virtual screen width get 'stuck' at the end and don't ever complete, due to a funny offset issue involving the fact that scumm is normally narrower than the nes screen width and the nes scumm interpreter had some weird 'viewport x position' hacks to work around this fact. The bug is noticible on the 'maniac mansion' scroller at the very beginning, and in one or two places in game. You can unstick the game by hitting ESC.

by on (#13634)
It should be noted that, although ScummVM can play MM NES directly from the .PRG file, it is more efficient to extract the .LFL files beforehand so ScummVM doesn't have to re-decode a chunk of the ROM image every time it needs a resource.

One other issue that ScummVM doesn't yet handle is the special way MM NES handles actors that are walking and talking at the same time - right now, if an actor stops talking while walking, they start sliding across the floor, and if they stop walking while talking, they just stand and talk without moving their lips.


At one point I wanted to put the MM NES disassembly into a nice debugger database of some sort (like IDA) so I could more easily keep track of global variable names, but that fell through mainly due to the high cost of such tools (and not enough gains to justify it).

by on (#13640)
What about the japanese version of Maniac Mansion? It is so different from the US version that it wouldn't surprise me if it's workings were totally different...

Why would they make two completelly different versions of a game...?

EDIT: I read that the japanese version does not use SCUMM, and has a completly rewritten engine. But it still bugs me the fact that there are two Maniac Mansion games.

by on (#13660)
Can the disassembly of MM NES be assembled into a working NES ROM? Even with the limitations, it sure does seem like a good way to make homebrew adventure games for the NES, if the MM NES engine was relocatable.

by on (#13666)
tokumaru: the Japanese version was made about a year before the USA version, and it was written entirely by Jaleco using a custom game engine (with only 2KB of RAM, it had to use huge passwords for saving progress). When the decision was made to bring the game to the USA, they decided that it'd be more productive to simply port SCUMM to the NES and import most of the game's data (with new graphics and sound, of course).

Jagasian: I think it does, but my disassembly only includes the first and last banks - the 14 banks of data aren't included in it, and it'd take a bit of work to incorporate them in AND link in all of the references to make it properly relocatable.