![]() |
![]() |
#1 |
Registered User
Join Date: Oct 2021
Location: Berlin/Germany
Posts: 12
|
fastest way to code an one pixel sinus scroller
Hi,
what is the fastest way to code an one pixel sinus scroller on an Amiga500 OCS? Should I create a standard scroller in a backbuffer with blit char, scroll the whole text and then get 1 Pixel columns of that and blit this in the shown screenbuffer? |
![]() |
![]() |
#2 |
OCS forever!
Join Date: Mar 2019
Location: Birmingham, UK
Posts: 418
|
That's what I do
![]() |
![]() |
![]() |
#3 |
Going nowhere
Join Date: Oct 2001
Location: United Kingdom
Age: 50
Posts: 9,035
|
|
![]() |
![]() |
#4 |
Registered User
Join Date: Oct 2021
Location: Berlin/Germany
Posts: 12
|
ok, thx then I'm on the road.
|
![]() |
![]() |
#5 |
OCS forever!
Join Date: Mar 2019
Location: Birmingham, UK
Posts: 418
|
The sine scroller from Sax Offender code is here:
https://github.com/jonathanbennett73...Offender/Miami It's a vertical fill one but still does the 1 pixel column blitting. The copy to screen function is SIN_CopyScrollToSine |
![]() |
![]() |
#6 |
Registered User
Join Date: Jun 2020
Location: Brno
Posts: 90
|
Draw vertical lines with blitter, use 16 pixel pattern for every column. Pros: No need to draw characters to a buffer. As a bonus, it's easy to stretch text horizontally. Cons: 16 pixels in one draw call only.
|
![]() |
![]() |
#7 | |
Lemon. / Core Design
Join Date: Mar 2016
Location: Tier 5
Posts: 1,220
|
Quote:
The quickest way to do a tall sine scroll (for example, font is 128 pixels high), is to plot the vertical edge points with the CPU, and then blitter vertical XOR fill. You can be filling the previous buffer while the CPU is plotting the next set of spans. Another option is to use an animated font (sounds crazy, but does work.. have a look at Vision - "Can't Be" demo for a good example). This is probably the absolute fastest way possible. [ Show youtube player ] |
|
![]() |
![]() |
#8 |
Moderator
Join Date: Nov 2004
Location: Eksjö / Sweden
Posts: 5,759
|
@Dan OCS/68000 can do a 270px high sine scroller in real time without filling. But I think Int42 is looking for a quick and easy way to write one, rather than how to write the fastest one.
ORing pixel columns from a scroll buffer is a bit simpler. You could fill the scroll buffer just to test your routine and see what height font it accommodates. 30px is possible this way. |
![]() |
![]() |
#9 |
Registered User
Join Date: Apr 2015
Location: Spain
Posts: 529
|
OFFTOPIC to the coders.
I would like to know what has been the most difficult sinus-scroll to program that you have seen. Med-Red Slayer/SCX or Corto/QTX ones maybe? |
![]() |
![]() |
#10 |
Registered User
Join Date: Jun 2020
Location: Brno
Posts: 90
|
Not sinus-scroll per se, but very impressive indeed: Mr. Mega Mind in various cracktros
[ Show youtube player ].
|
![]() |
![]() |
#11 |
Lemon. / Core Design
Join Date: Mar 2016
Location: Tier 5
Posts: 1,220
|
|
![]() |
![]() |
#12 |
Registered User
Join Date: Oct 2021
Location: Berlin/Germany
Posts: 12
|
Wow awesome tipps here from you guys, thx a lot.
I'm interested in every 1 pixel Sinusscroll, easy to code or fastest. How is this DoubleSinus coded? at minute 5:23 [ Show youtube player ] Last edited by Int42; 18 October 2021 at 19:05. |
![]() |
![]() |
#13 | |
Lemon. / Core Design
Join Date: Mar 2016
Location: Tier 5
Posts: 1,220
|
Quote:
Quite probably the same as a regular sine scroll, but rendering the strips into a wider screen buffer (enough to allow for plenty of horizontal scrolling per scan line) So if you have a regular 320 pixel wide screen, and you want to apply 64 pixels of left/right sinus too, you'd render your standard sin scroll into a 384 pixel wide screen buffer |
|
![]() |
![]() |
#14 | |
Moderator
Join Date: Nov 2004
Location: Eksjö / Sweden
Posts: 5,759
|
Any coder with some experience should be able to surpass Slayer's sine scrolls with today's knowledge available; as mentioned, there's some room to bandwidth ceiling using the simple approach.
The Paradox intro uses prepared code/data lumps to plot or not plot into a fixed pattern. This was first used by Fuzzac in Tropical Sunset/TSL and is not related to sine scrolls at all. Quote:
[ Show youtube player ] |
|
![]() |
![]() |
#15 | |
OCS forever!
Join Date: Mar 2019
Location: Birmingham, UK
Posts: 418
|
Quote:
![]() |
|
![]() |
![]() |
#16 |
OCS forever!
Join Date: Mar 2019
Location: Birmingham, UK
Posts: 418
|
|
![]() |
![]() |
#17 |
Defendit numerus
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 54
Posts: 4,534
|
Gha... I've a déjà vu
![]() |
![]() |
![]() |
#18 | |
Lemon. / Core Design
Join Date: Mar 2016
Location: Tier 5
Posts: 1,220
|
Quote:
The perspective correct textured greets scroller in Colombia is based on the same technique ![]() |
|
![]() |
![]() |
#19 |
Registered User
Join Date: Jun 2020
Location: Brno
Posts: 90
|
|
![]() |
![]() |
#20 |
Registered User
Join Date: Feb 2011
Location: Italy/Rome
Posts: 2,345
|
Remember to use Interleaved bitmap, that'll give you one blit pass for one line
|
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Alien Breed II title pixel by pixel logo removal | dex | project.Sprites | 17 | 06 May 2020 15:23 |
Sine scroller | pmc | Coders. Tutorials | 95 | 02 July 2017 16:40 |
Sinus Creator/Editor | Legionary | Nostalgia & memories | 2 | 11 February 2017 17:49 |
Working / Creating Sinus tables | h0ffman | Coders. Tutorials | 6 | 15 January 2011 23:37 |
Corkscrew scroller | pmc | Coders. Tutorials | 33 | 01 September 2010 12:41 |
|
|