Opened 10 years ago

Closed 10 years ago

Last modified 13 months ago

#4372 closed defect (fixed)

DC: AGOS graphics issue

Reported by: SF/threepoint Owned by: Kirben
Priority: high Component: Port: Dreamcast
Keywords: Cc:
Game:

Description

I recently picked up a box of AGOS based games at a yard sale, including the "Elvira's Horror Pack", and the first two "Simon the Sorcerer" games (non-talkie).

This bug occurs in the latest "0.13.1" version of the Dreamcast branch of ScummVM. For this test I used a standard NTSC television monitor (non-highdef).

After burning the require game files to disc, and playing them, I noticed that the screen's graphics proportions were warped. All of above said games graphics are displayed in the top half of the area they would normally be displayed in.

The thing is that the gameplay elements, like items, enemies, and cursors, are all located where they should be, about half the screen "below" where the items/enemies/cursors were located in the distorted graphics.

Again to specify, this occurs with the following "DOS floppy" games: Simon the Socerer I, Simon the Socerer II, Elvira 1, Elvira 2, Waxworks...

I'd go out on a limb and assumes that this bug effects all AGOS engine games.

Ticket imported from: #2809285. Ticket imported from: bugs/4372.

Change History (20)

comment:1 by fingolfin, 10 years ago

Does this also happen when you play those games on your PC?

comment:2 by fingolfin, 10 years ago

Owner: set to zeldin
Summary: Dreamcast AGOS graphics issueDC: AGOS graphics issue

comment:3 by zeldin, 10 years ago

I can reproduce this with the Simon1 DOS demo. It does not happen on Linux.

comment:4 by zeldin, 10 years ago

Owner: changed from zeldin to Kirben

comment:5 by zeldin, 10 years ago

OK, found the problem. The AGOS engine uses lockScreen(), but ignores the pitch
field in the returned surface, blindly assuming that pitch == width (which is not the
case when running 320x200 games on the DC; I always allocate a 640x480 framebuffer).

Reassigning to kirben.

comment:6 by Kirben, 10 years ago

Surely the backend is still at fault in this case?

How can the game engine be expect to cope with any resolution? even if I used surface pitch, I would need to stretch all graphics in this case.

comment:7 by zeldin, 10 years ago

Huh? The resolution is 320x200, just like the engine asked for. The _allocation_ is 640x480, meaning that only the top left part is used. The engine only has to take the pitch into account, scaling is handled by the backend.

comment:8 by Kirben, 10 years ago

OK, I misunderstood the first comment about the larger resolution of the frame buffer.

The AGOS game engine has been updated, to always use the correct pitch, when drawing to the frame buffer.

Please try recent ScummVM SVN, and check whether any problem(s) still occur.

comment:9 by sev-, 10 years ago

Priority: normalhigh

comment:10 by sev-, 10 years ago

This bug is nice to get fixed before the release. Raising priority for keeping the track.

comment:11 by zeldin, 10 years ago

I've tested Kirben's fix with the Simon1 demo, and now the menu appears OK on the
screen, however, immediately after the menu appearing, the game crashes.

That might be an unrelated bug though. When I try the Simon1 demo on Linux/SDL
with head, it doesn't work at all (you hear a bit of the music, then scummvm crashes or
hangs. No video is displayed. Sometimes the window flashes in odd colours).

comment:12 by Kirben, 10 years ago

There was a regression, specific to the floppy demo of Simon the Sorcerer 1, which is fixed now.

The DOS CD demos would be better for testing, if you can only use the game demos though.

comment:13 by zeldin, 10 years ago

Hm, there is no DOS CD demo of simon1 in the list of demo downloads. I tried the Acorn CD demo, but it does not seem to be supported:

User picked target 'simon1' (gameid 'simon1')...
Looking for a plugin supporting this gameid... AGOS
Starting 'Simon the Sorcerer 1'
The game in '../simonacorn' seems to be unknown.
Please, report the following data to the ScummVM team along with name
of the game you tried to add and its version/language/etc.:
"data", "b4a7526ced425ba8ad0d548d0ec69900", 1237886

WARNING: AGOS failed to instantiate engine: Unable to locate game data (target 'simon1', path '../simonacorn')!

Anyhoo, now with the regression fixed, the floppy demo runs fine on the DC, so I'm setting the resolution to "fixed".

comment:14 by zeldin, 10 years ago

Resolution: fixed

comment:15 by Kirben, 10 years ago

You need to place all data files from the Acorn CD demo of Simon the Sorcerer 1 into a single directory, for game detection to work right.

I added the DOS CD demo of Simon the Sorcerer 1 to demos page, but the Acorn CD demo and DOS CD demo are identical anyway.

comment:16 by zeldin, 10 years ago

Ok, after rearranging the files, the Acorn CD demo seems to run. It would be nice if this requirement could be removed though; it doesn't really make sense that someone who has the actual demo CD would need to burn _another_ CD, just because the engine can't cope with the official arrangement of files.
But that's a different issue completely of course (mayhaps it already exists in the tracker under its own number?).

comment:17 by sev-, 10 years ago

Yes, that is #1777795

comment:18 by zeldin, 10 years ago

Right. Looks like the 2 year anniversary for that one is coming up soon... ;-)

comment:19 by Kirben, 10 years ago

Status: newclosed

comment:20 by digitall, 13 months ago

Component: Port: Dreamcast
Note: See TracTickets for help on using tickets.