Posted By
Luca on 2017-09-29 16:06:54
| Different $FF07 on the same scanline
Of course, it should be not possible to have different $FF07 states on the same sacnline in order to perform two different textscrollers in the same row by pure splitting, am I right?
|
|
Posted By
Gaia on 2017-09-29 16:52:50
| Re: Different $FF07 on the same scanline
it's definitely possible but it's ugly
|
|
Posted By
bubis on 2017-09-29 17:08:14
| Re: Different $FF07 on the same scanline
Well, you can't "split" on badlines. You can skip badlines, but then you need to change charset for the next character row to show different graphics there, so that's doable. BUT, you can't hide the firs and last character of the scroller like you do using 38 wide screen. Maybe you can fade out colors, but I agree, it will be ugly.
Still, I think it is possible, but a much more complex exercise and no hardware trick is involved. I think you need something similar to what MC did in Autumn Colors' vertical scroller. He used a clever charset for the task.
http://plus4world.powweb.com/software/Autumn_Colors
|
|
Posted By
Luca on 2017-09-30 01:55:10
| Re: Different $FF07 on the same scanline
I tried to obtain that by pure hardware, no visual trick involved, just like a real rastersplit by synchronizing the right horizontal scan values: $FF07 generally affects the whole scanline even at a certain $FF1E, in the midst time, but it affects the whole scanline. Oh well, it was be worth to spend an attempt
|
|
Posted By
Gaia on 2017-09-30 07:34:04
| Re: Different $FF07 on the same scanline
wait a minute: scanline or badline?
|
|
Posted By
Luca on 2017-09-30 10:36:57
| Re: Different $FF07 on the same scanline
Simply scanline for now. Let's aim a target: opposite textscrolling in the same row by hardware, no tricks
|
|
Posted By
Csabo on 2017-10-02 16:22:22
| Re: Different $FF07 on the same scanline
Okay, I'm late to the party, and the above stuff sounds confusing. Let's try to clear this up once and for all: is it *possible* to change $FF07 in the middle of a scanline? I thought it's *not* possible, $FF07 would affect the entire line, whatever is set in the beginning is applied for the entire line. But Gaia said it's possible... Is it?
(Otherwise, we know that this is very simple to do with soft scrolling. In fact I'm pretty sure it's been done in some old-school demos, similar to Beach Megademo, though I can't think of an actual example.)
|
|
Posted By
Gaia on 2017-10-03 18:05:35
| Re: Different $FF07 on the same scanline
Well, yeah, it's possible but it's not gonna look good, besides the fact that you can not do it on bad lines. There is one intro that comes to mind for now where you can observe this phenomenon: HCS Packer 7.0
|
|
Posted By
Csabo on 2017-10-04 07:53:48
| Re: Different $FF07 on the same scanline
Right, can't do it on badlines, but still... Huh. I guess my own Direct Mode does the same thing: the colors and the waving is not horizontally synced.
Edit: I put together an example, it really does work: FF07 Split Tech Demo.
|
|
Posted By
Luca on 2017-10-04 09:59:48
| Re: Different $FF07 on the same scanline
Wooow, Csabo, it really does! :o I've given it a try almost the same way, but it didn't worked to me, probably I badly implemented it. Let's carefully read that source then... Whereas I tried to seek one single value of $FF1E, I guess to see intop your IRQ a sort of "trap" to seek the horizontal scanning into a certain range of values, which appears to be quite a large one: $10! This is one lesson I must keep in mind, manageing the $FF1E, thank you!
EDIT: has been the $10 range chosen for a reason or it's trial'n'error by experience?
|
|
Posted By
Mad on 2017-10-04 12:55:12
| Re: Different $FF07 on the same scanline
Woooooowww Csabo! Can't believe what I am seeing.. That is exactly (if I am not mistaken) the way the guys on Amiga code their zoomers. But they do have 20 rastersplits of this on one line.. Nice effect!!
Sidenote: on C64 and Plus/4 the same zoomers are coded with pre shifted chars (almost the same effect, though). And the $ff07 one has these visible gaps. Perhaps this effect can be used for something else.. Another sidenode: here it is very visible, what the amiga guys are doing. But this demo is on a ST and also using blitting instead of modifying the scroll ($ff07) register, opposed to the Amiga guys who use the scroll register for this effect.. https://youtu.be/b0JiM7Ynqt0?t=39s
|
|
Posted By
Csabo on 2017-10-04 15:26:12
| Re: Different $FF07 on the same scanline
Luca: Well... So what I did was pretty simple: step 1) stabilize horizontal position (which I took as-is from the Club Info 133 intro, that one also has source posted). Step 2) simple raster split, just 3 STA's to $FF15, padded with NOPs, nothing fancy really. I adjusted it to have 3 splits on screen. Once I was happy with that, I replaced the $FF15 writes with $FF07 writes... and it worked. Cleaned it up a little, but that's about it.
|
|
Posted By
Gaia on 2017-10-04 15:56:43
| Re: Different $FF07 on the same scanline
Kudos, Csabo, this is really cool indeed, perhaps even a firstie? Anyway, you do not have to write FF1E _per se_ for this to work. It is still not super beautiful I wish we had sprites to overlap the left side of the right hand part but hey you can't have it all, right?
|
|
Posted By
Ati on 2017-10-04 16:57:00
| Re: Different $FF07 on the same scanline
Csabo, your tech demo works on real plus4 too?
|
|
Posted By
Csabo on 2017-10-04 22:03:37
| Re: Different $FF07 on the same scanline
Hehe, good question, Ati Can anyone check?
(Also, I'm not writing to $FF1E, there's no need. I'm only reading it for cycle-exact horizontal sync.)
|
|
Posted By
Luca on 2017-10-05 02:31:34
| Re: Different $FF07 on the same scanline
As I've written before, I did almost the same to achieve this result, but what I can see here is a $10 large trap to seek the right horizontal scanning. This pushes a reason for my failure: $FF1E changes very fast and it's possible that your code could "miss" the exact target if you're seeking for one single value of $FF1E at any frame. We've just seen this before, in the vertical splitting thread, where TLC suggested a similar stabilizing code, nonetheless I haven't learnt this lesson yet
Asking it again: is there a reason for the $10 large range where to be sure to trap the horizontal scanning? And more: if you double scroll a 2 chars high text, should you use a slightly different macro with 23 cycles less in order to compensate two badlines? E.g.:
split_colors split_colors split_colors split_colors split_colors split_colors split_colors_shorter split_colors_shorter split_colors split_colors split_colors split_colors split_colors split_colors
EDIT: the "multiple $ff07 per scanline" problem rises up due to the build up of a cheap titlescreen I'm adding to a little project which has been stopped for too much time, so it must be completed as soon as possible, before it gets rotten by reaching the expiry date :) In the very end, it seems I don't really need to death that kind of effect, nonetheless we have out best chitchatting about these juicy tricks, and I love this so much Csabo that's the project that indirectly involves you too, and you don't like so much Now I only have to learn how to TEDzakker at decend skill to fill 2Kb and finish it.
|
|
Posted By
Spektro on 2017-10-08 09:11:34
| Re: Different $FF07 on the same scanline
I can confirm that Csabo's tech demo works on a real plus4.
|
|
Posted By
Csabo on 2017-10-08 13:00:25
| Re: Different $FF07 on the same scanline
Awesome news Spektro, thanks for verifying it.
|
|
Posted By
Degauss on 2017-10-08 16:22:38
| Re: Different $FF07 on the same scanline
@Csabo: Awesomeness!
Never tried $FF07-Splits. I just once managed to have a split charactermode/bitmap-mode screen for zenith of puberty. the main difference between emulator and real-iron was some black-pixel-garbage that was around 6-characters in width.
|
|