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 > Can hires and multicolor chars coexist on the same rasterline?
2024-12-07 16:28
Sam

Registered: Aug 2010
Posts: 21
Can hires and multicolor chars coexist on the same rasterline?

If I change the multicolor and hires mode ($d016) in character mode, I can have characters that are hires on the upper half and multicolor on the bottom half, but what about a $d016 split raster, can left side of the screen be hires chars and right side would be multicolor chars?
2024-12-07 16:32
tlr

Registered: Sep 2003
Posts: 1790
Yes, but there are some artifacts at the split point that might need dealing with.
Note that in char mode you can already have both hires and multicolor freely intermixed with the restriction that char colors can only be 0-7.
2024-12-10 09:25
WVL

Registered: Mar 2002
Posts: 903
Also, note that you cannot do this on a badline, you simply cannot have a split in the middle of a line.
2024-12-10 09:45
Oswald

Registered: Apr 2002
Posts: 5095
additional question but probably works:

make fli halfway down the char row change d800 from hires to multicolor will that work ? :)
2024-12-10 11:23
WVL

Registered: Mar 2002
Posts: 903
Yes, that is what HCL does in Edge of Disgrace, some sort of half-fli with $d800 changes. Probably it will also work to switch chars from hires<->multicolor in the middle.
2024-12-10 18:34
wil

Registered: Jan 2019
Posts: 63
Interesting question! In this stackoverflow answer, there are some insights about switching midline modes, specifically in this case between text mode to hi-res:

https://retrocomputing.stackexchange.com/questions/7549/can-a-c..

The bad lines could potentially be hidden when displaying text by rendering them as simple black lines every 8th raster line, separating the text rows.

Of course, when using both text and hi-res modes, the question arises: why not just stick to hi-res and "print" the characters by copying them there, 8 bytes a time? While pure text mode is faster to manipulate, that advantage becomes irrelevant if you’re running a routine that keeps the CPU busy for all 200 raster lines.

The case might be a bit different when dealing with hi-res and multicolor modes. However, it’s not particularly practical, especially when transitioning between modes in the middle of the screen. Ultimately, this is more of a "we do it because we can" kind of thing, aka our motto of retrocomputing. :-)
2024-12-10 21:56
HCL

Registered: Feb 2003
Posts: 728
I feel the urge to post the following examples: Ice Cream Castle (chocolate ice) and Justintime which both of course are off-topic since they both are made with d011-splits and not d016-splits. Don't know it Crest's effect really works on all 8 lines per char, at least the font seems to be just 7 pixels high..
2024-12-10 21:57
Copyfault

Registered: Dec 2001
Posts: 478
Quoting Oswald
additional question but probably works:

make fli halfway down the char row change d800 from hires to multicolor will that work ? :)

Quoting WVL
Yes, that is what HCL does in Edge of Disgrace, some sort of half-fli with $d800 changes. Probably it will also work to switch chars from hires<->multicolor in the middle.

Hmm, funny idea. But since Col-Ram ($D8xx) is re-read only when a badline is in place, it'd really mean that all 40 colour ram values had to be refreshed plus a badline needs to be triggered.

Somehow I tend to think that just switching $D016 from MC to Hi (or vice versa, from Hi to MC) plus triggering the additional badline should give more benefit: given you have that MC-flag set in every $D8xx-reg, switching to HiRes Charset would make the VIC read the char patterns from different memory locations. Might be exploitable (most probably has been already and I just don't know since I s**k at examining existing routines, or even worse, remembering it).
2024-12-10 22:09
Copyfault

Registered: Dec 2001
Posts: 478
Quoting Copyfault
...given you have that MC-flag set in every $D8xx-reg, switching to HiRes Charset would make the VIC read the char patterns from different memory locations. ...
Which is crap, as I just got aware of :/ Seems I mixed this up with ECM which is encoded per char and not via the corresponding $D8xx-spots.

Sorry, should sleep more /o\
2024-12-10 23:14
Krill

Registered: Apr 2002
Posts: 2981
Quoting tlr
Note that in char mode you can already have both hires and multicolor freely intermixed with the restriction that char colors can only be 0-7.
This. And that restriction isn't much of a restriction, as can be seen in quite a few games.

So question to the OP: But why? :)
2024-12-10 23:39
wil

Registered: Jan 2019
Posts: 63
Quote: I feel the urge to post the following examples: Ice Cream Castle (chocolate ice) and Justintime which both of course are off-topic since they both are made with d011-splits and not d016-splits. Don't know it Crest's effect really works on all 8 lines per char, at least the font seems to be just 7 pixels high..

Thank you for pointing at the Crest demos - always a pleasure to watch their work! As expected, it's truly impressive.
I took a closer look at Ice Cream Castle. The font used is 6 pixels high, with an empty line both at the top and bottom for each character. The $d011 switch occurs twice a line (to $13 and to $3B) at rasterlines mod %100, %101, %110, %111, %000, and %001, which correspond to the active lines in the character set. During badlines, no switch is performed; instead, bitmap mode is kept and an empty line is displayed for the badline and the following rasterline, creating a visually appealing gap between character lines.
The first few lines of the screen are blank because the charset had to be at the same address as the bitmap to avoid the need for switching $d018. So the show starts in the third text line ($450). Multicolor is always enabled, but textcolor is 1, so that the text is shown in hires, while the bitmap is multicolor. To cover the gap between the text area and the bitmap section, Sprite 0 is used repeatedly. The other sprites are utilized to display the scroller at the screen bottom.
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
zscs
MCM/ONSLAUGHT
Mr. SID
t0m3000/hf^boom!^ibx
anonym/padua
Dano/Padua
Steffan/BOOM!
Knight Rider/TREX 🦖
Guests online: 98
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.6)
4 Coma Light 13  (9.6)
5 The Demo Coder  (9.6)
6 Edge of Disgrace  (9.6)
7 What Is The Matrix 2  (9.6)
8 Sprite Bukkake 2  (9.6)
9 Uncensored  (9.6)
10 Comaland 100%  (9.6)
Top onefile Demos
1 Layers  (9.7)
2 Cubic Dream  (9.6)
3 Party Elk 2  (9.6)
4 Copper Booze  (9.6)
5 Rainbow Connection  (9.5)
6 Morph  (9.5)
7 Dawnfall V1.1  (9.5)
8 Libertongo  (9.5)
9 Katzen-Video.mp4  (9.5)
10 Onscreen 5k  (9.5)
Top Groups
1 Booze Design  (9.3)
2 Oxyron  (9.3)
3 Performers  (9.3)
4 Fairlight  (9.3)
5 Triad  (9.3)
Top Original Suppliers
1 Derbyshire Ram  (9.7)
2 Fungus  (9.3)
3 Black Beard  (9.2)
4 Baracuda  (9.2)
5 hedning  (9.0)

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