Opened 2 years ago

Last modified 2 years ago

#13559 new defect

CHEWY: German demo crashes looking for a non-existing det0.taf file

Reported by: dwatteau Owned by:
Priority: normal Component: Engine: Chewy
Version: Keywords:
Cc: Game: Chewy: ESC from F5

Description

Today's Git HEAD (d0b5a35785a01bca5d9ba0bd3bb284cb6ea72ff4) on macOS 12.4 x86-64.

The chewy-dos-demo-de.zip demo, as hosted by ScummVM, immediately aborts looking for a non-existing det0.taf file. Some other bug reports may look similar, but they don't mention the demo or they say that the intro works. Here, it's the (German) demo and it crashes before any intro.

Here's an LLDB backtrace with some additional debug.

(lldb) run chewy-demo-de
User picked target 'chewy-demo-de' (engine ID 'chewy', game ID 'chewy')...
   Looking for a plugin supporting this target... Chewy: Esc from F5
Running Chewy: Esc from F5 (DOS/German)
txt/atds.tap: c3be5641e90dd01274309b778cf8146d, 230686 bytes.
DEBUG: Resource::Resource(): about to _steam.open() speech.tvp
DEBUG: Resource::Resource(): about to _steam.open() details.tap
DEBUG: Resource::Resource(): about to _steam.open() atds.tap
DEBUG: Resource::Resource(): about to _steam.open() back/episode1.gep
DEBUG: Resource::Resource(): about to _steam.open() txt/diah.adh
DEBUG: Resource::Resource(): about to _steam.open() atds.tap
DEBUG: Resource::Resource(): about to _steam.open() misc/cursor.taf
DEBUG: initSprite(): filename=misc/cursor.taf
DEBUG: Resource::Resource(): about to _steam.open() misc/ch_walk.taf
DEBUG: initSprite(): filename=misc/ch_walk.taf
DEBUG: Resource::Resource(): about to _steam.open() misc/ch_walk.taf
DEBUG: initSprite(): filename=misc/ch_walk.taf
DEBUG: Resource::Resource(): about to _steam.open() misc/menu.taf
DEBUG: initSprite(): filename=misc/menu.taf
DEBUG: loadRoom(): loading room no. 0
DEBUG: load_rdi_taf(): filename=det0.taf
DEBUG: init_taf_tbl(): fname_=det0.taf
DEBUG: Resource::Resource(): about to _steam.open() det0.taf
Assertion failed: (_handle), function read, file file.cpp, line 141.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = hit program assert
    frame #0: 0x00007ff816b3800e libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x00007ff816b6e1ff libsystem_pthread.dylib`pthread_kill + 263
    frame #2: 0x00007ff816ab9d24 libsystem_c.dylib`abort + 123
    frame #3: 0x00007ff816ab90cb libsystem_c.dylib`__assert_rtn + 314
  * frame #4: 0x00000001002acf31 scummvm`Common::File::read(this=0x000000010125c738, ptr=0x00007ff7bfefe95c, len=4) at file.cpp:141:2
    frame #5: 0x000000010002e36f scummvm`Common::ReadStream::readUint32BE(this=0x000000010125c738) at stream.h:469:3
    frame #6: 0x00000001000553c3 scummvm`Chewy::Resource::Resource(this=0x000000010125c730, filename=String @ 0x00007ff7bfefea60) at resource.cpp:45:32
    frame #7: 0x000000010005518c scummvm`Chewy::SpriteResource::SpriteResource(this=0x000000010125c730, filename=<unavailable>) at resource.h:168:44
    frame #8: 0x0000000100054735 scummvm`Chewy::SpriteResource::SpriteResource(this=0x000000010125c730, filename=<unavailable>) at resource.h:168:63
    frame #9: 0x0000000100030a22 scummvm`Chewy::Detail::init_taf_tbl(this=0x00000001020c2e00, fname_="det0.taf") at detail.cpp:259:28
    frame #10: 0x00000001000308a1 scummvm`Chewy::Detail::load_rdi_taf(this=0x00000001020c2e00, filename="det0.taf", load_flag=0) at detail.cpp:215:16
    frame #11: 0x0000000100053b10 scummvm`Chewy::Room::loadRoom(this=0x0000600002c26900, Rb=0x00000001020b9a20, room_nr=0, player=0x00000001020b5650) at room.cpp:174:12
    frame #12: 0x0000000100038565 scummvm`Chewy::init_load() at inits.cpp:217:12
    frame #13: 0x0000000100037ea9 scummvm`Chewy::standard_init() at inits.cpp:84:2
    frame #14: 0x000000010003a332 scummvm`Chewy::game_main() at main.cpp:54:2
    frame #15: 0x000000010002df70 scummvm`Chewy::ChewyEngine::run(this=0x0000600003b100e0) at chewy.cpp:86:2
    frame #16: 0x0000000100010cf6 scummvm`scummvm_main + 9046
    frame #17: 0x000000010000c18d scummvm`main(argc=2, argv=0x00007ff7bfeff9a0) at macosx-main.cpp:44:12
    frame #18: 0x000000010058151e dyld`start + 462

Change History (3)

comment:1 by dwatteau, 2 years ago

From Discord, it appears that the demo is just unsupported at the moment.

comment:2 by dreammaster, 2 years ago

Confirmed. There'd need to be non-trivial changes to the engine to get the demo working.

comment:3 by antoniou79, 2 years ago

Some findings from running the game demo with DosBox:

  • First room is DET51.TAF (Film Set)
  • "Room" DET43 is a close-up talking to Howard, Det48 is the "room" inside the tent on the Film Set location, Det55 is up the ladder into the Giant Monkey Head(?)(from the left of Film Set, opened up after you solve the VHS/TV puzzle), Det52 is the map, Det54 is a location with a pool of piranhas, and Det53 is the Temple location (opened up after you solve the piranhas puzzle and get the diary from the hut).
  • There is a short intro cutscene which seems to be playing the file: cut/cut.tap
  • The demo ends when Chewy hits the button from within the Giant Monkey head.
  • You can either have voices in the demo or subtitles. No voices means that subtitles will be enabled. You cannot have both.
Last edited 2 years ago by antoniou79 (previous) (diff)
Note: See TracTickets for help on using tickets.