ScummVM logo Forum Index - ScummVM website - Contact us - Buy Supported Games: GOG.com Rules - Search - Register - Login curved edge
Folder Forum Index > General Discussion > Amiga style scrolling for Lucas adventures Goto page 1, 2, 3  Next
Amiga style scrolling for Lucas adventures
  Author    Thread Reply to topic
ancalimonungol



Joined: 23 Feb 2009
Posts: 21
Amiga style scrolling for Lucas adventures 

I'd love to see Amiga style scrolling for Lucas games.

What I mean by this is that when the screen is scrolling, it doesn't jump 10 pixel by 10. It always scroll 1 pixel by 1 at a time

It would definitely make a huge difference.

What do you think? Would you like to have this?
and will it ever be done?

 Reply with quote  
Post Sun Dec 06, 2009 3:43 pm 
 View user's profile Send private message
bobdevis



Joined: 16 Jan 2009
Posts: 563
 

There is a thread, or portion of a thread, somewhere here that explains the problem. I can't find it at the moment, so here is my explanation from memory that may not be 100% correct.

Basically because of how the original Scumumm engine works and because monitors these days run a differed refresh rare then they used to, this stutter-scrolling problem is never going to go away completely.

Modern games almost always use frame-rate based drawing engine. Everything is redrawn x times per second regardless of whether it needs redrawing. You can tune the redraw rate to suit any monitor settings and always have a smooth looking result.

Scumm-like games have a event based drawing engine. Elements on screen are only redrawn when they change with a fixed time interval.
If that time interval is not in perfect sync with your monitor refresh rate you will see stutter-scrolling.
This is not really fixable unless you do a BIG revision of the old game engines.

 Reply with quote  
Post Mon Dec 07, 2009 12:05 am 
 View user's profile Send private message
fingolfin
Retired


Joined: 21 Sep 2005
Posts: 1466
 

bobdavis, actually, that is not the issue here at all Smile

ancalimonungol, smooth horizontal scrolling is in principle possible in all SCUMM games; we implemented it for V7/V8 games (Dig, FT, COMI), and the relevant code would be trivial to adapt for older SCUMM games. I think there even is (was) a patch for this on our patch tracker.
The main reason this is not implemented (from my perspective) is that nobody so far got around testing how this affects older SCUMM games -- like, it might throw off scripting at some points, like accidentally revealing parts of the pictures you are not supposed to see yet. Hopefully this won't happen, but this uncertainty means that we can't just unconditionally enable it.

But since we just finished a major release, we could consider enabling this experimentally, and see where it leads us Smile.

 Reply with quote  
Post Mon Dec 07, 2009 12:58 am 
 View user's profile Send private message
Longcat



Joined: 23 Sep 2006
Posts: 948
 

I vote yes!(if I have a vote that is:)

 Reply with quote  
Post Mon Dec 07, 2009 8:01 am 
 View user's profile Send private message
marzipan



Joined: 25 Nov 2005
Posts: 301
 

If I recall correctly, FM-Towns SCUMM titles also have similarly smooth scrolling. Or at least that's how I see it behave through Unz.

 Reply with quote  
Post Mon Dec 07, 2009 12:34 pm 
 View user's profile Send private message
Kaminari



Joined: 24 Oct 2005
Posts: 274
Location: Paris, France
 

Feature Request #2680954 ;b

 Reply with quote  
Post Mon Dec 07, 2009 6:36 pm 
 View user's profile Send private message Visit poster's website
hippy dave



Joined: 05 May 2008
Posts: 126
 

quote:
Originally posted by Jonatan
I vote yes!(if I have a vote that is:)

ditto Very Happy
 Reply with quote  
Post Tue Dec 08, 2009 1:04 am 
 View user's profile Send private message
fingolfin
Retired


Joined: 21 Sep 2005
Posts: 1466
 

Sorry, votes won't help with this.

 Reply with quote  
Post Tue Dec 08, 2009 8:20 am 
 View user's profile Send private message
marticus



Joined: 26 Nov 2005
Posts: 74
 

quote:
Originally posted by fingolfin
Sorry, votes won't help with this.


I vote that they will Very Happy
 Reply with quote  
Post Thu Dec 10, 2009 5:51 am 
 View user's profile Send private message
LordHoto
ScummVM Developer


Joined: 30 Oct 2005
Posts: 1030
Location: Germany
 

quote:
Originally posted by marticus
quote:
Originally posted by fingolfin
Sorry, votes won't help with this.


I vote that they will :D


I vote that the people voting for this feature should implement it and post a patch on our patch tracker.
 Reply with quote  
Post Thu Dec 10, 2009 1:28 pm 
 View user's profile Send private message
Longcat



Joined: 23 Sep 2006
Posts: 948
 

As I understood it, it already is implemented but not enabled.

So to clarify, I'm not voting that some other person(dev) should do a lot of hard work for me, but that the feature is enabled so we can help out testing it.

But if I got things wrong, then please consider my vote unvoted.

 Reply with quote  
Post Thu Dec 10, 2009 8:06 pm 
 View user's profile Send private message
LordHoto
ScummVM Developer


Joined: 30 Oct 2005
Posts: 1030
Location: Germany
 

Fingolfin talked about a patch on the patch tracker, but I can't find any (open) one at least. Apart I think that there is no disabled support for it, but rather the newer SCUMM engine code has support for it, while the older lacks it. So hopefully one can adapt it for the older SCUMM versions too.

 Reply with quote  
Post Thu Dec 10, 2009 8:45 pm 
 View user's profile Send private message
fingolfin
Retired


Joined: 21 Sep 2005
Posts: 1466
 

There is no patch tracker item, just a feature request.

I just had a look at the code to refresh my memory of how I implemented smooth scrolling in V7+ engines. Here's a brief rundown on what the issue is and what needs to be done: In old SCUMM versions, the engine would only scroll in steps of 8 pixels (mostly for efficiency reasons; old PC hardware wasn't well suited to "smooth" scrolling). This means that the camera position (stored in the ScummEngine::camera._pos variable) is only changed in increments of 8.
Now, with V7+ games, arbitrary increments are possible. With some effort, this part is relatively easy to extend to older engines.

But the harder part is the camera *control* logic. Which is indeed quite different in newer SCUMM versions. A naive approach to implement "smooth scrolling" in older SCUMM games could be done by simply changing the increments from 8 pixels to 1 pixel. BUT that won't be enough, because now you'd end up with terribly slow scrolling... because each scrolling step would happen with the same speed as before, just now there'd be 8 times as many... so the camera would move 8 times slower (one pixel at a time). So, one would have to also "speed up" the camera adjustment.

Moreover, to make camera movement look more natural and less abrupt, SCUMM V7+ used varying camera speeds, and camera acceleration: Instead of moving from start to end and stopping abruptly, it'll slow down at the end just before reaching the final destination. Granted, this is sugar on the cake, but if one gets all the rest done, one might want to do something like this, too, I guess.


Anyway, I hacked up a crude and dirty proof of concept patch, which suffers from the mentioned speed problem, but might give anybody who is interested in researching this a starting point. Note again that it is *crude and dirty*. E.g. USE_SMOOTH_SCROLLING is a quick&dirty hack (probably better to add a new member var ScummEngine::_useSmoothScrolling instead).

 Reply with quote  
Post Thu Dec 10, 2009 10:21 pm 
 View user's profile Send private message
ancalimonungol



Joined: 23 Feb 2009
Posts: 21
 

So how did the Amiga version work? Couldn't someone check the Amiga version to see how it worked? (I'm probably talking about things I have no idea about)

 Reply with quote  
Post Fri Dec 11, 2009 9:35 am 
 View user's profile Send private message
LogicDeLuxe



Joined: 10 Nov 2005
Posts: 366
 

Eventhough, the Amiga hardware was more versatile, this kind of hardware accelerated soft-scrolling can be done with VGA graphics too (scrolling top part, fixed bottom part). Oddly enough, they didn't. Most VGA side-scrolling games were pretty smooth.

I also wondered why they didn't on the C64 while most other games did. But it was probably for performance reasons. The C64 has no double buffer support for the color RAM, which made such stuff a bit tricky, and would have had an impact on the performance indeed.

 Reply with quote  
Post Fri Dec 11, 2009 8:13 pm 
 View user's profile Send private message
  Display posts from previous:      
Reply to topic

Forum Jump:
 
Goto page 1, 2, 3  Next


Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Powered by phpBB © 2001, 2006 phpBB Group
Forum design by ScummVM team, icons by raina
curved edge   curved edge