Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1360578 Posts in 63354 Topics- by 55201 Members - Latest Member: xiaoandtell

May 26, 2019, 10:23:07 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityTownhallForum IssuesArchived subforums (read only)CreativeLimitations of Retro Game Systems
Pages: [1]
Print
Author Topic: Limitations of Retro Game Systems  (Read 857 times)
Pizzamakesgames
Level 2
**



View Profile WWW
« on: December 28, 2015, 04:21:13 AM »

When trying to emulate the looks and feel of retro game systems there isn't much room for interpretation regarding the system's specific limitations. Sometimes it's easy to get the specifics wrong, though. This shall be a place to discuss them.

Taking the ZX Spectrum, it's clear that it has a limited color palette of which it can only ever display two colors per 8x8 pixel attribute. What about scrolling, though?

There's a video showcasing parallax scrolling:



You'd probably not remember this feature fondly from the olden days, though.

Lots of games scrolled per tile, some managed to have smooth per-pixel scrolling, though what'd feel the most authentic? In this particular case, the limitation of attribute clash would be a good pointer.

Because every 8x8 pixel tile can only ever have two colors, you can't scroll anything on a per-pixel basis unless everything you're scrolling has the same two colors:



Otherwise you'd be looking at a hell of attribute-clash. So you could have both per-pixel or per-tile scrolling, with the less limited option introducing another limit, keeping look and feel authentic in both cases.



In this example, the limitations are broken in a lot of ways. The background and tower should scroll at intervals of 8 pixels, to avoid ending up with attributes that are holding more than 2 colors for some of the frames. What about the background scrolling in one and the tower in the other direction at different speeds, though? Honestly, I don't know exactly.

Systems can always be pushed to new heights, but if you're not actually developing for them, which in most cases might be the more realizable way to go about things, not overstepping the threshold becomes the challenge. I'm just dealing with ZX Spectrum stuff at the moment, but feel free to talk about any system you'd like.
« Last Edit: December 28, 2015, 04:35:02 AM by Pizzamakesgames » Logged

Polly
Level 6
*



View Profile
« Reply #1 on: December 28, 2015, 04:54:41 AM »

What about scrolling, though?

Scroll down to "Scrolling the Buffer" on this page Wink
Logged
Pizzamakesgames
Level 2
**



View Profile WWW
« Reply #2 on: January 05, 2016, 04:32:45 AM »

The post you linked was what got me making this thread, as I'm afraid I don't get the super tech like talk :C
Logged

Polly
Level 6
*



View Profile
« Reply #3 on: January 05, 2016, 04:51:33 AM »

The post you linked was what got me making this thread, as I'm afraid I don't get the super tech like talk :C

Since the ZX doesn't have any hardware-scrolling support, scrolling is done in software entirely. So the post i linked basically explains some of the ( possible ) techniques involved in doing that ( 1 and 4 pixel scrolling specifically ).
Logged
GrumpyGiant
Level 0
**



View Profile WWW
« Reply #4 on: January 05, 2016, 05:39:31 AM »





Smooth pixel scrolling with no color issues on a ZX Spectrum   Ninja
Logged

Pizzamakesgames
Level 2
**



View Profile WWW
« Reply #5 on: January 05, 2016, 09:01:59 AM »

The post you linked was what got me making this thread, as I'm afraid I don't get the super tech like talk :C

Since the ZX doesn't have any hardware-scrolling support, scrolling is done in software entirely. So the post i linked basically explains some of the ( possible ) techniques involved in doing that ( 1 and 4 pixel scrolling specifically ).

Thanks that does help me get it a little. Though, does that kind of scrolling always mean the entire screen, or would it be possible to scroll say the middle third of the screen in one direction and the left and right thirds in the other at 8, 4 or 1 px at a time, assuming everything is only using the same two colors for the sake of not complicating things?

Smooth pixel scrolling with no color issues on a ZX Spectrum   Ninja

I would argue that the vertical scrolling does come with some issues still haha
« Last Edit: January 06, 2016, 12:14:24 PM by Pizzamakesgames » Logged

Polly
Level 6
*



View Profile
« Reply #6 on: January 05, 2016, 04:32:37 PM »

Though, does that kind of scrolling always mean the entire screen, or would it be possible to scroll say the middle third of the screen in one direction and the left and right thirds in the other at 8, 4 or 1 px at a time, assuming everything is only using the same two colors for the sake of not complicating things?

Since it's done in software, anything is possible .. the only difficulty is finding a solution that runs at a acceptable speed. Also, vertical scrolling is easier than horizontal and is the exact same for any amount of pixels you want ( 1 pixel, 3, 7, 24 .. doesn't matter ). For horizontal scrolling that isn't a multitude of 8 you have to "abuse" the RL/RR ( 1-bit ) and / or RLD/RRD ( 4-bit ) instructions of the Z80.
Logged
Sik
Level 10
*****


View Profile WWW
« Reply #7 on: January 05, 2016, 10:08:42 PM »

Wait, are you seriously telling me I spent all this time not knowing the Z80 could do a 4-bit bit rotation?

*looks up*

...oh. It only works through memory and in an awkward way (it's a 12-bit value with 4 bits in the accumulator and 8 bits in memory). Yeah, no wonder I never bothered to check this out =/ Makes me wonder what the instruction was actually meant for.
Logged
GrumpyGiant
Level 0
**



View Profile WWW
« Reply #8 on: January 05, 2016, 11:27:21 PM »

Wait, are you seriously telling me I spent all this time not knowing the Z80 could do a 4-bit bit rotation?

*looks up*

...oh. It only works through memory and in an awkward way (it's a 12-bit value with 4 bits in the accumulator and 8 bits in memory). Yeah, no wonder I never bothered to check this out =/ Makes me wonder what the instruction was actually meant for.

It's meant for multi-precision arithmetic on BCD numbers.
Logged

Pizzamakesgames
Level 2
**



View Profile WWW
« Reply #9 on: January 06, 2016, 02:56:45 AM »

Though, does that kind of scrolling always mean the entire screen, or would it be possible to scroll say the middle third of the screen in one direction and the left and right thirds in the other at 8, 4 or 1 px at a time, assuming everything is only using the same two colors for the sake of not complicating things?

Since it's done in software, anything is possible .. the only difficulty is finding a solution that runs at a acceptable speed. Also, vertical scrolling is easier than horizontal and is the exact same for any amount of pixels you want ( 1 pixel, 3, 7, 24 .. doesn't matter ). For horizontal scrolling that isn't a multitude of 8 you have to "abuse" the RL/RR ( 1-bit ) and / or RLD/RRD ( 4-bit ) instructions of the Z80.

Damn, alright. I guess for now my best bet would be to play some Spectrum games and just don't do anything they're not doing  Shrug
Logged

Polly
Level 6
*



View Profile
« Reply #10 on: January 06, 2016, 03:30:49 AM »

Makes me wonder what the instruction was actually meant for.

At the very least it's faster than 4 individual rotate / shift instructions Wink
Logged
Pizzamakesgames
Level 2
**



View Profile WWW
« Reply #11 on: January 07, 2016, 04:10:57 AM »

Been wondering what an appropriate framerate of 2-color animations that stick in their 8x8 or 16x16 space would look like.
What I got now just seems too fluid compared to the rough 8 pixel movement of most of the sprites.



...or does it?
« Last Edit: January 07, 2016, 04:23:42 AM by Pizzamakesgames » Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic