Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > How does linecrunch work ?
2003-02-17 11:49
Majikeyric

Registered: Sep 2002
Posts: 83
How does linecrunch work ?

Hi everybody !!!!

Can someone explain or point me to a web site where I could find information about linecrunch ???
I think it allows to scroll bitmaps but I don't know how ???

thanks.
 
... 23 posts hidden. Click here to view all posts....
 
2022-06-15 11:06
Krill

Registered: Apr 2002
Posts: 2995
Still not quite sure what you want to achieve, tbh. :)

Linecrunching does not lose you any char rows, but the wrapping point (screen offset $03ff->0 mid-row) and shifted screen contents below that become a bit cumbersome to handle.

One crunched char row equals upscrolling by 7 rasterlines, and you'd normally combine linecrunching with FLD (empty lines filled with $3fff idle pattern) for pixel-wise hardware Y-scrolling.
2022-06-15 12:00
Raistlin

Registered: Mar 2007
Posts: 694
Ahhh, thanks Krill! That was the last piece of the puzzle - and explains why I could only get 0-14px working instead of 0-15px (0-7px coming from the smooth scroll of D011 plus 0px or 7px depending on whether I crunched a line).

I have it working in my test function now... tomorrow I'll see whether I can get it working in a more useful way :-)
2022-06-15 12:37
Krill

Registered: Apr 2002
Posts: 2995
Glad i could help!

So the missing piece of the puzzle was that you'd set YSCROLL again after the crunched line, so you'd have 0..7 pixels of scroll-range above plus another 0..7 pixels of scroll-range below the crunched rows?
Or that you'd need to crunch 3 char rows (not just 2) in order to scroll up by 15 pixels? =)
2025-01-14 09:52
Digger

Registered: Mar 2005
Posts: 445
2025 and finally I am getting my head around to deepen my understanding of $d011 trickery.

So, is it possible to shorten all char lines to be 7 pixels high?
But WITHOUT charline duplication?

I want to force a badline every 7 rasterlines, and make VIC to read the new charline there. Possible? How?
2025-01-14 11:13
Krill

Registered: Apr 2002
Posts: 2995
Shortening a char row to 7 (or fewer) rasterlines will prevent the row pointer from advancing to the next 40 chars.

You can still feed new char data by switching screen base via $D018/$DD00 prior to triggering the next badline.

The screen memory layout will be somewhat funky, with 40 chars at N*$0400 scattered all over the memory space.

$D800 colours will remain the same, though, unless you overwrite them between the occurance of two badlines.
2025-01-14 13:16
Digger

Registered: Mar 2005
Posts: 445
Yeah, I know this mode and that's exactly what I do NOT want.
So no way to force advance the row pointer earlier?
2025-01-14 21:25
chatGPZ

Registered: Dec 2001
Posts: 11430
its called FLI :)
2025-01-14 22:06
Oswald

Registered: Apr 2002
Posts: 5102
this is an xy problem whatever you can solve with 7 pixel high char rows should be solvable with 8 line high ones
2025-01-15 00:42
Krill

Registered: Apr 2002
Posts: 2995
Quoting Oswald
this is an xy problem whatever you can solve with 7 pixel high char rows should be solvable with 8 line high ones
I thought XY problem as well, but for other reasons. =)

Digger: As in really, why is a scattered memory layout such a big problem that it invalidates the entire technique for your purposes?
2025-01-15 06:13
ChristopherJam

Registered: Aug 2004
Posts: 1411
You could possibly do something ungodly with alternating 6 line rows with 8 line rows, so RC would go 01234501234567, but do a FLI fetch on the 8th line to fetch from a second char screen.

In char mode you'd be alternating between two screens, and using the first 14ish rows of each screen. You'd have to use a couple of charsets, where the second one is rotated down a line, and also duplicates line 7 into line 0 for use on line 7 of the even char rows.

(so, you only move on to the next row address every second char row, but it's a lot closer to what you're asking for than never advancing)
Previous - 1 | 2 | 3 | 4 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Mr SQL
sebalozlepsi
TheRyk/MYD!
Smasher/F4CG
MCM/ONSLAUGHT
WVL/Xenon
rexbeng
Dave/SIDNIFY
Guests online: 114
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Codeboys & Endians  (9.7)
4 Coma Light 13  (9.6)
5 Mojo  (9.6)
6 Edge of Disgrace  (9.6)
7 Uncensored  (9.6)
8 Comaland 100%  (9.6)
9 Wonderland XIV  (9.6)
10 What Is The Matrix 2  (9.5)
Top onefile Demos
1 Nine  (9.8)
2 Layers  (9.6)
3 Party Elk 2  (9.6)
4 Cubic Dream  (9.6)
5 Copper Booze  (9.6)
6 Libertongo  (9.5)
7 Dawnfall V1.1  (9.5)
8 Rainbow Connection  (9.5)
9 Onscreen 5k  (9.5)
10 Morph  (9.5)
Top Groups
1 Oxyron  (9.3)
2 Booze Design  (9.3)
3 Performers  (9.3)
4 Censor Design  (9.2)
5 Triad  (9.2)
Top Logo Graphicians
1 t0m3000  (10)
2 Sander  (9.8)
3 Mermaid  (9.5)
4 Shine  (9.4)
5 Pal  (9.4)

Home - Disclaimer
Copyright © No Name 2001-2025
Page generated in: 0.277 sec.