|
Post by Kurious on Mar 24, 2007 21:12:28 GMT -5
I know that it is possible to use raster tricks to switch from text mode to bitmap mode and viceversa during a video render, such that I can have both modes displayed simultaneously.
As an example, let's say that the top 80 lines (out of 200) are for text mode (which would be 8 text lines), and the rest (120 lines) would be for bitmap.
I want to know the possibilities as to where to place the beginning of such bitmap data. For the purposes of this thread, I'll refer to addresses relative to the chosen video bank, such that there's a total of $4000 addresses ($0000-$3FFF).
Unless I'm mistaken, the two simplest possibilities are $0A00 and $2A00.
1. Can I position the bitmap in offsets such as $0000 or $0140? What would I need to do to the graphics chip to display from there?
2. Can I position the bitmap in unusual offsets such as $0002 or $0003?
3. Is it possible to split text mode and bitmap mode in any line? For example, can I display only the first 5 lines in text mode and the other 195 lines in bitmap mode? (Or viceversa, 5 lines in bitmap mode, and 195 lines in text mode?) I think not, but seeing how the C64 is such a bag of tricks, I thought I'd ask.
Thanks.
|
|
|
Post by tlr on Mar 25, 2007 13:22:11 GMT -5
As an example, let's say that the top 80 lines (out of 200) are for text mode (which would be 8 text lines), and the rest (120 lines) would be for bitmap. I want to know the possibilities as to where to place the beginning of such bitmap data. For the purposes of this thread, I'll refer to addresses relative to the chosen video bank, such that there's a total of $4000 addresses ($0000-$3FFF). Unless I'm mistaken, the two simplest possibilities are $0A00 and $2A00. Correct. (8*40*8=$0a00) 1. Can I position the bitmap in offsets such as $0000 or $0140? What would I need to do to the graphics chip to display from there? Yes, sort of. You can eat up 7 of 8 lines until you get the alignment you desire. Finescrolling has to be done by $d011. This is called linecrunch. 2. Can I position the bitmap in unusual offsets such as $0002 or $0003? Yes, this is also possible. The trick is called DMA delay or VSP. The above two tricks are non-trivial. See Bonanza by MDT for an early example of both techniques. (PAL only, run in VICE if you have NTSC) See the VIC-Article for details on how the VIC-II operates. 3. Is it possible to split text mode and bitmap mode in any line? For example, can I display only the first 5 lines in text mode and the other 195 lines in bitmap mode? (Or viceversa, 5 lines in bitmap mode, and 195 lines in text mode?) I think not, but seeing how the C64 is such a bag of tricks, I thought I'd ask. This can be done with certain limitations. You might not be able to select the colors you desire for the first 3 lines for example.
|
|
|
Post by Kurious on Mar 25, 2007 14:19:40 GMT -5
Wow, thank you for answering my questions. That demo is really neat! And it's an "early" demo? Wow. I've only seen a few demos and they're cool, but I haven't seen many.
|
|
|
Post by tlr on Mar 25, 2007 15:18:39 GMT -5
Wow, thank you for answering my questions. That demo is really neat! And it's an "early" demo? Wow. I've only seen a few demos and they're cool, but I haven't seen many. The demo is not early in itself. It is just an early use of those techniques. There are demos dating back to 1985 (maybe even 84) and before that there were demo-like intros on cracked programs. You can search through csdb for a lot of other demos. Most of them are PAL.
|
|
|
Post by Kurious on Mar 26, 2007 10:27:58 GMT -5
Are there any particular tech demos you recommend?
|
|
|
Post by tlr on Mar 26, 2007 14:52:08 GMT -5
There are so many. A couple of ones from the top of my head:
|
|