Login
Search for:


Previous | Next

From: Crown (all posts)
Date: 1998-05-29
Subject: Re: NTSC on PAL...
Hi everybody,

>What it should be, I don't really know - but it seems like you jump
>over a checkpoint of the TED and that's why it keeps on generating
>horizontal blanks twice for each scanline.
He jumps over the End line of the Vertical Equlize Phase.
Did you got my posting about the inner state change positions of the TED? There are a lot of good infos about the inner states in that.

>It's interesting to know, however, it is a similar thing like the VIC-II-
>like bordereffects. I haven't known this, I bet nobody knew it (except
>TCFS). ...I guess it's place is a complete TED doc ( I mean, something
>like Christian Bauer's VIC-II article).
Yep, some kind of a docs like that would be cool, and I guess we could gather a lot of of info together through this list for it.

>Well, realising it is some more hard than it hears at first. Since
>the synchs go mad when you set the NTSC TED mode, your program has to
>equalize the line length by writing to $ff1e in certain positions.
>This is just the smaller problem. The harder thing is, the TED was
>originally organized to fetch only 40 bytes per line. That means, even if
>you made some extra pixels, the TED doesn't want to fetch screen memory
>for the new area. The bitmask fetch can be overridden (I tried it), but
>the color memory and character pointer fetches (I mean, 'bad lines') are
>much harder to convince. I never managed to do it. ...Hmmm, since it
>has something to do with the way as sideborders can be removed, first I'd
>ask if Crown has some better results with his 40+2 chars wide screen.
We can forget about bad lines, there is simply no cycle between the start and the end conditions, so you can't delay it's end.
In the 40+2 char effect, the first and the last char is always the char 0 and its color is always black. I could do 40+3, but I couldn't change it's bitmap, because there was not enough cycles. (I haven't tried to put the charset to zeropage, that could solve it.)
Also the normal 40 char stayed at the same position, from this I think the following can be deducted: there is a cycle, possibly it's the cycle where the CPU slowes down to slow mode at the beginning of the line.
At this point, an inner mechanism starts in the TED, with which you cannot interfere. It will start to display the 40 characters some cycles after this point, and after the last char this stops.
For the NTSC mode I think the following could be done: we have to restart this mechanism in mid-line, this will result in the redisplay of some of the chars at the beginning in the line. (For example if your line was 012345678 it would display something like this 01234012345678 ...)
We also have to change mid-line the value of $ff13 to give different bitmap for these redisplayed chars, and set it back at the end of the line.
I haven't tried this yet, as the idea was born right now, and I won't be here for the weekend, but you can also try this.

>Hmmm, also, I won't be a happy emulator-writer if I read such postings
>about these tricks :-). I guess emulating a TED will need a lot of different
>methods than actually, a VIC-II emulation utilizes. It's because, you are
>free to play with the lowest level things in the TED, affecting even the
>synchrons and all such things.
I guess we do not await these tricks to be emulated, but this talks could shed light of the inner workings of the TED, and thus more common mechanisms of the TED could be understood, and emulated. (Example, all kind of normal $ff1d tricks, bad-line delay, FLI etc... Current emulators are weak at these things)

Tibor Biczo / Crown of GOTU

Copyright © Plus/4 World Team, 2001-2024