Difference between revisions of "Neverhood"

From ScummVM :: Wiki
Jump to navigation Jump to search
(Added multiline macro issue)
(John_doe.)
 
(67 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{EngineDescription|
{{EngineDescription
name=Neverhood|
|name=Neverhood
        developer=[[User:johndoe|johndoe]]|
|developer=[[User:John_doe|John_doe]], [[User:Md5|md5]]
companies=[[The Neverhood, Inc.]]|
|companies=[[The Neverhood, Inc.]]
usedBy=[[The Neverhood]]|
|usedBy=[[The Neverhood]]
dateAdded=May 15, 2013|
|dateAdded=May 15, 2013
release=None|
|release=1.7.0
}}
}}


==Known issues==
==Resources==
* [[Neverhood/TODO|Neverhood TODO]]: TODO Page


* There are some function-like preprocessor macros, e.g. SetUpdateHandler(), SetMessageHandler(), and NextState(), which are not correctly used. Example:


<code>
== Differences in ScummVM ==
#define SetMessageHandler(handler)                                                                                                  \
The following is a list of differences between ScummVM and the original interpreter. '''These are not errors, and thus won't be fixed'''. They have been implemented this way to provide a more unified experience between the different game engines.
    _messageHandlerCb = static_cast <uint32 (Entity::*)(int messageNum, const MessageParam &param, Entity *sender)> (handler);      \
    debug(5, "SetMessageHandler(" #handler ")");                                                                                    \
    _messageHandlerCbName = #handler


...
* In ScummVM, saved games are saved per slot, not as a list. This means that you are allowed to have several different saved games with the same name, which wasn't possible in the original
* In ScummVM, saved games are sorted from newest to oldest. Saves are sorted alphabetically in the original interpreter.
* In ScummVM, you can't type the name of a saved game to load it. Since you are allowed to have different save slots with the same name, this (somewhat confusing) feature is not available in ScummVM


    if (getGlobalVar(V_TNT_DUMMY_BUILT))
        SetMessageHandler(&Scene1202::hmSolved);
</code>


This is bad, because while it looks like the "if" covers the entire macro, it actually only covers the first line of it. The standard trick is to put the code in the macro inside "do { ... } while (0)" (without semicolon). But it's almost midnight here, and I don't want to accidentally mess anything up. Especially when I don't know how to test it.
== Issues which also happen in the original ==
* In the basement of the Hall of Records, when clicking the lever immediately after walking onto the elevator from the bottom sometimes results in teleportation - ''module 2200, scene 6''.


* Using the video viewer to watch Willie Trombone's videos crashes. This happens because _renderQueue inside Screen::update() in screen.cpp:83 points to invalid render items:
* The cursor's palette is wrong in one of the cart scenes, after the two worlds are joined - ''module 2500, scene 4''


Error #137: UNADDRESSABLE ACCESS: reading 0x0aa7f4f0-0x0aa7f4f4 4 byte(s)
Microsoft has a [http://support.microsoft.com/kb/159740 support article] listing issues in the original game that may warrant further investigation (These are specific to version 1 of the game):
# 0 Neverhood::Scene::draw                            [scummvm\engines\neverhood\scene.cpp:83]
* The putt-putt shadow in world two above the teddy boom pod is wrong.
# 1 Neverhood::Module::draw                            [scummvm\engines\neverhood\module.cpp:45]
* The dark upper right hand corner of the funny eye speaking video sequence is distorted.
# 2 Neverhood::Module::draw                            [scummvm\engines\neverhood\module.cpp:45]
* When Klaymen grabs the rope ring from the right side, he descends facing the left, but switches sides in the Tree room. If he grabs the rope from the left he stays on the same side the whole way down.
# 3 Neverhood::NeverhoodEngine::mainLoop              [scummvm\engines\neverhood\neverhood.cpp:171]
* The sound effect for the cave door shutting behind you is missing.
# 4 Neverhood::NeverhoodEngine::run                   [scummvm\engines\neverhood\neverhood.cpp:120]
* The clue to turn the radio on is very obscure. It is pulling the last ring in the blue Venus fly trap room.
# 5 runGame                                            [scummvm\base\main.cpp:226]
* The door open animation missing on the Hall of records when you enter from the outside.
# 6 scummvm_main                                      [scummvm\base\main.cpp:452]
* The light from the window at the end of the hall of records lights the disks on the floor and Klaymen when you walk to the window.
# 7 SDL_main                                          [scummvm\backends\platform\sdl\win32\win32-main.cpp:60]
* You can hear the static from the radio room when you are in the Options Menu.
# 8 WinMain                                            [scummvm\backends\platform\sdl\win32\win32-main.cpp:44]
* The mouse puzzle has no sound effects.
Note: @0:01:01.153 in thread 5420
* The top of the dud on the second shelf of the Dyno-shack disappears as Klaymen is walking out the door to the weasel arena.
Note: next higher malloc: 0x0aa7f558-0x0aa7f594
* In the Hoborg story on the third screen of the second panel 'of' is spelled 'off'.
Note: prev lower malloc:  0x0aa7f488-0x0aa7f4c0
* In the player room of the castle pod, the key Willie pushes from the screen is aqua, not gray
Note: instruction: mov    (%ecx) -> %edx
* The sound effects for releasing the rope is missing when Klaymen releases the rope from Lab Attic in the Lab Cellar.
* The sound effects for the rope spinning down from the lab attic to the lab cellar is missing.
* There are green splotches on the black void on the outside of Willie's house in one of the lake putt-putt scenes.
* The video disk on the radio room floor changes color when the door to the lake floor is closed. It changes from green to white.
* In the castle sequence the robot Bill lifts the door, but when Klaymen hits the ground, the door is closed.
* The scene of bill opening the castle door repeats after Klaymen hits the ground.
* The animation of Klaymen jumping into the drain on the lake is very washed out, grainy and faded.
* Purple lines run though some of the scenes during the lake floor putt-putt ride.
* The color of the lake floor changes dramatically. When you look down at the lake, the floor is light brown, but when Klaymen lands at the bottom the lake, the floor is dark green.
* On the second note in the mail room 'Klaymen' is spelled 'Klaymeb'.
** [[User:eriktorbjorn|eriktorbjorn]] Confirmed that it says "Klaymeb".
* In the hall of records on 10th scroll of Ogdilla, 'heckling' is spelled 'hectoring'.
** eriktorbjorn Confirmed that it says "hectoring", though by my count it's the 11th scroll of Ogdilla.
* In pause mode, Klaymen's left arm disappears through walls when he lengthens his arms or picks his ears.
* The door opening and closing in the hall of records is missing the sound effects.
* There are no step sound effects for steps two and three toward the mail box in the mail room.
* Klaymen's hands switch which finger is colored. Depending on the scene, the black fingers will be on the wrong hand.
* During the putt-putt ride, the car changes color from green to aqua.


* Uninitialised variables in the sound code, as indicated by Valgrind. These both happen in the navigation scene outside of the starting building, and may be at least partly related to playTwoSounds():
== Known issues in ScummVM ==
 
==== Sounds / Music ====
* Ambient sounds play doubly as much as they should in the Robot Bil area - ''module 1100, scene 3''.


==26398== Conditional jump or move depends on uninitialised value(s)
==26398==    at 0x88DBBBB: Neverhood::SoundItem::update() (sound.cpp:235)
==26398==    by 0x88DC2F7: Neverhood::SoundMan::update() (sound.cpp:352)
==26398==    by 0x88D695F: Neverhood::NeverhoodEngine::mainLoop() (neverhood.cpp:175)
==26398==    by 0x88D66AF: Neverhood::NeverhoodEngine::run() (neverhood.cpp:120)
==26398==    by 0x805084A: runGame(PluginSubclass<MetaEngine> const*, OSystem&, Common::String const&) (main.cpp:226)
==26398==    by 0x8051489: scummvm_main (main.cpp:452)
==26398==    by 0x804F5DF: main (posix-main.cpp:45)
==26398== Conditional jump or move depends on uninitialised value(s)
==26398==    at 0x88DBBC7: Neverhood::SoundItem::update() (sound.cpp:236)
==26398==    by 0x88DC2F7: Neverhood::SoundMan::update() (sound.cpp:352)
==26398==    by 0x88D695F: Neverhood::NeverhoodEngine::mainLoop() (neverhood.cpp:175)
==26398==    by 0x88D66AF: Neverhood::NeverhoodEngine::run() (neverhood.cpp:120)
==26398==    by 0x805084A: runGame(PluginSubclass<MetaEngine> const*, OSystem&, Common::String const&) (main.cpp:226)
==26398==    by 0x8051489: scummvm_main (main.cpp:452)
==26398==    by 0x804F5DF: main (posix-main.cpp:45)


[[Category:Engines]]
[[Category:Engines]]

Latest revision as of 22:07, 28 April 2021

Neverhood
Engine developer John_doe, md5
Companies that used it The Neverhood, Inc.
Games that use it The Neverhood
Date added to ScummVM 2013-05-15
First release containing it 1.7.0

Resources


Differences in ScummVM

The following is a list of differences between ScummVM and the original interpreter. These are not errors, and thus won't be fixed. They have been implemented this way to provide a more unified experience between the different game engines.

  • In ScummVM, saved games are saved per slot, not as a list. This means that you are allowed to have several different saved games with the same name, which wasn't possible in the original
  • In ScummVM, saved games are sorted from newest to oldest. Saves are sorted alphabetically in the original interpreter.
  • In ScummVM, you can't type the name of a saved game to load it. Since you are allowed to have different save slots with the same name, this (somewhat confusing) feature is not available in ScummVM


Issues which also happen in the original

  • In the basement of the Hall of Records, when clicking the lever immediately after walking onto the elevator from the bottom sometimes results in teleportation - module 2200, scene 6.
  • The cursor's palette is wrong in one of the cart scenes, after the two worlds are joined - module 2500, scene 4

Microsoft has a support article listing issues in the original game that may warrant further investigation (These are specific to version 1 of the game):

  • The putt-putt shadow in world two above the teddy boom pod is wrong.
  • The dark upper right hand corner of the funny eye speaking video sequence is distorted.
  • When Klaymen grabs the rope ring from the right side, he descends facing the left, but switches sides in the Tree room. If he grabs the rope from the left he stays on the same side the whole way down.
  • The sound effect for the cave door shutting behind you is missing.
  • The clue to turn the radio on is very obscure. It is pulling the last ring in the blue Venus fly trap room.
  • The door open animation missing on the Hall of records when you enter from the outside.
  • The light from the window at the end of the hall of records lights the disks on the floor and Klaymen when you walk to the window.
  • You can hear the static from the radio room when you are in the Options Menu.
  • The mouse puzzle has no sound effects.
  • The top of the dud on the second shelf of the Dyno-shack disappears as Klaymen is walking out the door to the weasel arena.
  • In the Hoborg story on the third screen of the second panel 'of' is spelled 'off'.
  • In the player room of the castle pod, the key Willie pushes from the screen is aqua, not gray
  • The sound effects for releasing the rope is missing when Klaymen releases the rope from Lab Attic in the Lab Cellar.
  • The sound effects for the rope spinning down from the lab attic to the lab cellar is missing.
  • There are green splotches on the black void on the outside of Willie's house in one of the lake putt-putt scenes.
  • The video disk on the radio room floor changes color when the door to the lake floor is closed. It changes from green to white.
  • In the castle sequence the robot Bill lifts the door, but when Klaymen hits the ground, the door is closed.
  • The scene of bill opening the castle door repeats after Klaymen hits the ground.
  • The animation of Klaymen jumping into the drain on the lake is very washed out, grainy and faded.
  • Purple lines run though some of the scenes during the lake floor putt-putt ride.
  • The color of the lake floor changes dramatically. When you look down at the lake, the floor is light brown, but when Klaymen lands at the bottom the lake, the floor is dark green.
  • On the second note in the mail room 'Klaymen' is spelled 'Klaymeb'.
  • In the hall of records on 10th scroll of Ogdilla, 'heckling' is spelled 'hectoring'.
    • eriktorbjorn Confirmed that it says "hectoring", though by my count it's the 11th scroll of Ogdilla.
  • In pause mode, Klaymen's left arm disappears through walls when he lengthens his arms or picks his ears.
  • The door opening and closing in the hall of records is missing the sound effects.
  • There are no step sound effects for steps two and three toward the mail box in the mail room.
  • Klaymen's hands switch which finger is colored. Depending on the scene, the black fingers will be on the wrong hand.
  • During the putt-putt ride, the car changes color from green to aqua.

Known issues in ScummVM

Sounds / Music

  • Ambient sounds play doubly as much as they should in the Robot Bil area - module 1100, scene 3.