Opened 11 years ago

Last modified 3 years ago

#9301 assigned bug

Corum III don't work in Haiku.

Reported by: Premislaus Owned by: nobody
Priority: normal Milestone: R1
Component: Kits/Media Kit Version: R1/Development
Keywords: Corum III Cc:
Blocked By: Blocking:
Platform: x86

Description

Corum III is a commercial game for BeOS. I have a demo version. This game was distributed by Gobe Software.

Videos do not work. You can hear the sound, but instead of the image are artifacts. When the videos are gone, in the game window is a black image. Nothing more. When you close an application crash occurs.

I tried to play in the Alpha 2, 3, and now 4.1.

https://docs.google.com/open?id=0BxfU61SfLpMjRnZSVVR3TWp5R3M - archive file with two demo versions and patch.

Attachments (8)

syslog_with_threads_and_bt (181.2 KB ) - added by Premislaus 11 years ago.
Corum3_crash_after_quit (3.6 KB ) - added by Premislaus 11 years ago.
Corum III Title Video works.png (66.7 KB ) - added by AGMS 9 years ago.
Corum III title video does work in Haiku.
Corum III crash in AVCodecDecoder when video finishes normally.png (83.3 KB ) - added by AGMS 9 years ago.
Corum III crashes in AVCodecDecoder when video finishes normally.
Corum III crash in BDirectWindow memory allocation when video manually skipped.png (80.1 KB ) - added by AGMS 9 years ago.
Corum III crashes with memory allocation corruption when video skipped.
Corum3-NormalTitleVideoFinishedCrash.report (18.9 KB ) - added by AGMS 9 years ago.
Crash report when title video is allowed to finish.
Corum3-SkippedTitleVideoCrash.report (19.9 KB ) - added by AGMS 9 years ago.
Crash report when Corum III title video is skipped. Oddly, this time it crashes in the AVCodecDecoder rather than the BDirectWindow daemon.
Corum3-3243-debug-20-08-2021-20-08-30.report (32.3 KB ) - added by cocobean 3 years ago.
Corum III - accessing memory address 0x2bbab000 hits a guarded page on Haiku R1B3 x86

Download all attachments as: .zip

Change History (15)

by Premislaus, 11 years ago

Attachment: syslog_with_threads_and_bt added

by Premislaus, 11 years ago

Attachment: Corum3_crash_after_quit added

comment:1 by Premislaus, 11 years ago

Anevilyak this game is for BeOS R5 ;).

http://web.archive.org/web/20011209221443/http://www.gobe.com/~kurt/c3/

Machine Specs:

1 Intel PentiumIII 550 128MB RAM Voodoo3 3000 AGP graphics Creative SB PCI512 sound

and of course

BeOS Release 5 Professional rev5.0.3

Version 0, edited 11 years ago by Premislaus (next)

by AGMS, 9 years ago

Corum III title video does work in Haiku.

by AGMS, 9 years ago

Corum III crashes in AVCodecDecoder when video finishes normally.

by AGMS, 9 years ago

Corum III crashes with memory allocation corruption when video skipped.

comment:2 by AGMS, 9 years ago

I tried running and installing Corum III (the full commercial version from Gobe) in Haiku hrev48961 (March 30 2015). It just goes into an infinite loop when run off the CD (one CPU at 100%). The installer does work nicely, and I installed the full version to the Home directory. When run off the hard drive, it does start up and displays the title video (including sound). However, it crashes after the video finishes, in AVCodecDecoder. If you skip the video by pressing ESC, the window fills with binary garbage (black with white vertical stripes) and it then crashes in BDirectWindow's daemon, doing a memory allocation. Both crashes are repeatable.

comment:3 by pulkomandy, 9 years ago

Please save a debug report from Debugger instead of including a screenshot, so we get all the useful information to debug the problem.

by AGMS, 9 years ago

Crash report when title video is allowed to finish.

by AGMS, 9 years ago

Crash report when Corum III title video is skipped. Oddly, this time it crashes in the AVCodecDecoder rather than the BDirectWindow daemon.

comment:4 by diver, 8 years ago

Component: - GeneralKits/Media Kit
Owner: changed from nobody to Barrett

comment:5 by korli, 5 years ago

Owner: changed from Barrett to nobody
Status: newassigned

comment:6 by pulkomandy, 4 years ago

I confirm that the crash with the video is still here.

I investigated the first one (with the videos) a bit. There are two threads crashing at the same time, actually ("game" and "artist"). I looked at the "game" thread, which, at this stage, is decoding the videos.

The first video is the NGE logo and is in 320x240 resolution. The second video should be the Hicom logo and this one is a 640x480 one. We are decoding it to RGBA32, meaning the result should be of size 1228800 (640x480x4) per frame. But, the allocated buffer is smaller than that. I would guess 640x480x1 = 307200 bytes (the crash happens after copying 355688 bytes, at a page boundary close to that). Probably the overwriting of stuff in the page after the buffer makes other things crash.

However, I tried tracing this inside BMediaTrack, and as far as I can see, BMediaTrack::DecodedFormat is never called. Which means the codec is free to pick whichever format it is happy with. It just seems the Indeo codec in BeOS did not default to the same thing as our ffmpeg codec, and the game does not take that into account and hardcodes the size of the buffer?

I tried removing the "movies" directory from the data (you can also do this by using the "minimal install" in the installer or using the "no movies" pkg to save on download size :) ). In that case I get image logos instead of the videos, and then I get a frozen black window.

comment:7 by cocobean, 3 years ago

Tested on Haiku R1B3 (hrev55181+55 x86_gcc2) with Corum III v1.1.0. Same issue with crash after playing AVI intro movie file. Disabling movie folder will show another intro video and then lead to the black window - of no return...

Seems to hit a guarded page area.

Last edited 3 years ago by cocobean (previous) (diff)

by cocobean, 3 years ago

Corum III - accessing memory address 0x2bbab000 hits a guarded page on Haiku R1B3 x86

Note: See TracTickets for help on using tickets.