Opened 10 years ago

Closed 10 years ago

Last modified 8 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 Changed 10 years ago by fingolfin

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

comment:2 Changed 10 years ago by fingolfin

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

comment:3 Changed 10 years ago by zeldin

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

comment:4 Changed 10 years ago by zeldin

Owner: changed from zeldin to Kirben

comment:5 Changed 10 years ago by zeldin

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 Changed 10 years ago by Kirben

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 Changed 10 years ago by zeldin

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 Changed 10 years ago by Kirben

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 Changed 10 years ago by sev-

Priority: normalhigh

comment:10 Changed 10 years ago by sev-

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

comment:11 Changed 10 years ago by zeldin

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 Changed 10 years ago by Kirben

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 Changed 10 years ago by zeldin

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 Changed 10 years ago by zeldin

Resolution: fixed

comment:15 Changed 10 years ago by Kirben

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 Changed 10 years ago by zeldin

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 Changed 10 years ago by sev-

Yes, that is #1777795

comment:18 Changed 10 years ago by zeldin

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

comment:19 Changed 10 years ago by Kirben

Status: newclosed

comment:20 Changed 8 months ago by digitall

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