| |
AmiDog
Registered: Mar 2003 Posts: 97 |
160x100 pixels screenmode
Is it possible to trick the VIC into displaying every line of the bitmap twice, creating a 160x100 pixels screenmode? If this is possible, can it be combined with FLI? |
|
| |
Melkor Account closed
Registered: Apr 2006 Posts: 11 |
I'm no expert but alternating FLI and FLD every other line should do it. |
| |
Jetboy
Registered: Jul 2006 Posts: 337 |
cant you do simple fli and just double the data?
edit: I mean put the same data for 2 lines? |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
you can do it, perhaps not in the way you think about it. You simply draw up the picture in a way that each pixel is doubled vertically. if u're thinking of effects dont expect less writes/pixel than in 160x200... So strictly speaking a software screen mode for this is not possible. (now someone come and proove me wrong I'll be glad:) |
| |
Jetboy
Registered: Jul 2006 Posts: 337 |
You still need as many STA as you would normaly need, but you you would need jsut half the calculations
... calculations
sta adr
sta adr+1
Plus you can use every second fli routine based on NMI and timers (courtesy of Ninja). That way displaying fli wouldnt cost you 200 lines of rastertime, but just 60% of that. So it is improvement.
Hoever 4 field type, every 4th line Fli is stil more efects friendly.
|
| |
Melkor Account closed
Registered: Apr 2006 Posts: 11 |
I'm pretty sure you can stretch with a variation of FLD but I don't know how it's done exactly. |
| |
Melkor Account closed
Registered: Apr 2006 Posts: 11 |
Checked the VIC article and found this:
"If you create a new Bad Line before the current text line has been finished, VCBASE is not incremented (see 3.7.2.). So the VIC reads from the same addresses in the video matrix as in the previous line."
So doing doing FLI two times every other line should give you what you want, without having to plot the whole screen. |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
@Melkor: Sorry but no. What they mean is that when VCBASE isn't incremented the next char row (8 lines) is a copy of the first. If VCBASE IS increased then you get a new char row. The only possible bitmap stretching/line repeating is to repeat line 7 of each char row.
What FLI does is to force a re-fetch of the screen data and the d800 data, not the bitmap data. The bitmap data is incremented anyways and depending on where you put your d011 for FLI you may get the first bitmap row repeated all the time, or you get new ones. |
| |
WVL
Registered: Mar 2002 Posts: 902 |
you can simply do FLI every 2 lines, instead of every line, and draw the bitmap so the pixels are doubled. i wouldnt do any stretching or whatever unless you really need the memory (also, i don't think it's possible to stretch in such a way..) |
| |
Radiant
Registered: Sep 2004 Posts: 639 |
...and for a monochrome 160x100 pixels mode you can of course just multiplex hires sprites over the screen. |
| |
MRT Account closed
Registered: Sep 2005 Posts: 149 |
Quote: ...and for a monochrome 160x100 pixels mode you can of course just multiplex hires sprites over the screen.
Ehr yeah, but why would you?
Then it would be easier to make just a simple monochrome bitmap, don't you think?
|
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
@MRT: Monocrome bitmap are 320x200. Multiplexed monochrome spritelayer can be 160x100 using sprite HW double pixels... |
| |
MRT Account closed
Registered: Sep 2005 Posts: 149 |
Quote: @MRT: Monocrome bitmap are 320x200. Multiplexed monochrome spritelayer can be 160x100 using sprite HW double pixels...
:-)
I know dude, but that all depends on how you fill the pixels. Just fill 'm up with 2x2 pixels and you're done.
Depending on what you want to do, you could also make it fli every 2nd line, and swap front/back colors to switch 2x2 pixels on and off...
|
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
@mrt: of course an expanded sprite layer is easier and cheaper to pixel in than an every 2nd line fli bitmap layer, don't you think? (assuming monochrome pixels) :D |
| |
Jetboy
Registered: Jul 2006 Posts: 337 |
And with multicolor y expanded sprites you can get 92x100(or more verticaly) in 4 colours.
All depends what you need it for... |
| |
Melkor Account closed
Registered: Apr 2006 Posts: 11 |
Quoting JackAsser@Melkor: Sorry but no. What they mean is that when VCBASE isn't incremented the next char row (8 lines) is a copy of the first. If VCBASE IS increased then you get a new char row. The only possible bitmap stretching/line repeating is to repeat line 7 of each char row.
Aha. I see. That makes sence. I tought thats what FLD did but i guess FLD only creates a empty line then?
If i have graphics on the screen and i remove the 2nd badline i get a 1 pixel gap between the first and second char rows, is that how it works? |
| |
enthusi
Registered: May 2004 Posts: 677 |
heh, I remember that I was a bit shocked when I realized 'how much more complex' a strecher is compared to FLD...
|
| |
Radiant
Registered: Sep 2004 Posts: 639 |
MRT: Sprites are way easier than doing FLI, and leave more free raster time. Only problem there is timing the Y multiplexing and sprite data switch, but that's not too hard either. Using FLI for monochrome 2x2 gfx is just a waste of cycles and coding time.
EDIT: And a normal bitmap consumes way more memory than a layer of sprites. :-) |
| |
Jetboy
Registered: Jul 2006 Posts: 337 |
But for bitmap its easier to calculate actual byte you need to change for given coordinates.
And for sprites, if you start each sprite one (two in that case)line later than you need only change one sprite per raster line. Of course you waste some sprite gfx, and you make calcualting actual byte to set pixel even harder in this way.
Sprite alignment:
111
111222
111222333
|
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
lol, well I think amidog was looking for a 'real' 160x100 mode. However we dont have such. IMHO the most simple way of this is only update every 2nd line of the gfx, and voila you have it for nothing. :D
But besides what I have used in a zillion of effects: update alternatively the odd and even pixel rows of your effects, and voila it looks like a full 200 lines high fx, and you even have a neat motion blur like extra effect :) Cheap, effective, you get twice the gfx updated for almost free. |
| |
MRT Account closed
Registered: Sep 2005 Posts: 149 |
Oswald... You cheat you... ;-) |