| |
ws
Registered: Apr 2012 Posts: 229 |
4x4 FLI questions..
So, Onslaught Design uses a gfx mode which I have never consciously observed before, and i was amazed that it actually seems to be all characters, no bitmap, no sprites.
So, do i get this right: like this you can get any of 16 colours next to eachother in a 4x4 pix matrix with only 2x 1k (minus the fli bug gap) ? Or are there neighbouring restrictions, too?
Question2: is there a crossplatform converter for this already, like PNG or BMP to 4x4 Charmode FLI?
Question3: can you point me at a plasma that uses this mode?
Thanks! |
|
| |
ws
Registered: Apr 2012 Posts: 229 |
Oh no. I just understood it actually DOES use bitmap. My bad. Nevermind! |
| |
chatGPZ
Registered: Dec 2001 Posts: 11147 |
There must be converters too (it's trivial) - look for "Zoom4" (or "Zoom8", which is the same but with 8x8 blocks) |
| |
Oswald
Registered: Apr 2002 Posts: 5028 |
zoom4 and zoom8 are really stupid naming, wtf is zoomed ? nothing. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11147 |
Stupid terms in the scene? No way :) |
| |
DKT
Registered: Aug 2004 Posts: 96 |
zoom the pixels in any gfx editor 4 times and you will figure out why it's called zoom4 ;) |
| |
Krill
Registered: Apr 2002 Posts: 2854 |
Quoting wsSo, So, do i get this right: like this you can get any of 16 colours next to eachother in a 4x4 pix matrix with only 2x 1k (minus the fli bug gap) ? Or are there neighbouring restrictions, too? Quoting wsOh no. I just understood it actually DOES use bitmap. My bad. Nevermind! Yes, bitmap mode is required to set two independent colours per 8 pixels wide tile.
To minimise memory usage, you could use the repeated-badline technique rather than extra DMA by FLI.
This would limit the bitmap portion to the first 320 bitmap bytes, but spread out the colour map all over RAM in chunks of 40 bytes.
Interrupt overhead is higher (need an interrupt every 4 rather than 8 rasterlines), but there is no FLI bug and thus full width. |
| |
Oswald
Registered: Apr 2002 Posts: 5028 |
Recently I was wondering if repeating first line of bitmap 4x4 is possible, thanks for the answer :) hadnt had a use case yet tho. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11147 |
The way it scatters the VRAM over memory is a bit... annoying :) |
| |
HCL
Registered: Feb 2003 Posts: 717 |
Yes, the memory usage is very fragmented.. but the interrupt-overhead is probably *not* higher, like Krill suggests, perhaps even lower.. Since there is no FLI-bug involved, the interrupt is not timing critical, and you can also trigger two badlines within the same interrupt.. |
| |
Copyfault
Registered: Dec 2001 Posts: 467 |
Well, initially I wanted to post something very close to what Krill wrote, but then I decided to refrain from it, mainly due to that awful memory scattering already mentioned.
And cheering in to HCL's post: the approach even allows for getting along without any IRQ at all - code interleaving is your friend ;) |
| |
chatGPZ
Registered: Dec 2001 Posts: 11147 |
and that's where "annoying" turns into "plain ugly" :) |
| |
ws
Registered: Apr 2012 Posts: 229 |
that reminds me of a question in another thread, if there would be any desirable additional feature for the VICII, and yes, that would def be a switchable/banked color ram. but since it is hard-wired, that will remain an eternal desire. |
| |
ChristopherJam
Registered: Aug 2004 Posts: 1381 |
<c128> Heyyyy, I've got two color RAMs! |
| |
ChristopherJam
Registered: Aug 2004 Posts: 1381 |
Of course, if you don't want to do quite so much fragmenting but still would prefer not to spend an entire 8000 bytes on repeated $f0, you can mix and match the techniques a little.
Just use FLI to allow the character pointer to advance to a new row every half a dozen pixel rows or thereabouts (eg every 20 or 24 raster lines), then you can drop your bitmap size down to a touch over 3k, and fit all the screens you need in the same bank.
You'll need a few sprites here and there to patch over the FLI bug if you want a full 80x50 display area, but most of the rows will be full width already.
(thinking out loud here, e&oe) |
| |
ws
Registered: Apr 2012 Posts: 229 |
@Christopherjam: oh, most interesting, didn't know that! But can it be "exploited" like switching it on a rasterline back and forth? Damn i never even shallow-dived into C128 although i had (and again have) one. Such a shame. |
| |
mankeli
Registered: Oct 2010 Posts: 110 |
Quote: that reminds me of a question in another thread, if there would be any desirable additional feature for the VICII, and yes, that would def be a switchable/banked color ram. but since it is hard-wired, that will remain an eternal desire.
Axis had a routine in Incoherent Nightmare (iirc) that had color ram split into two pages :) |
| |
chatGPZ
Registered: Dec 2001 Posts: 11147 |
The greetings part in CL13 does this as well. |
| |
ChristopherJam
Registered: Aug 2004 Posts: 1381 |
@ws: so far as I'm aware the color RAM values are fetched at the same time as the character indices, just like on c64, so you wouldn't be able to switch mid line as the video chip is stealing all the cycles at that point. But you can still choose each raster independently if you force them all to be badlines. |
| |
Digger
Registered: Mar 2005 Posts: 422 |
These discussions usually result in HCL, Cruzer or Krill inventing a new (G)FX mode =)
Like that plasma in The Elder Scrollers using 4x3 wide pixel blocks. |
| |
HCL
Registered: Feb 2003 Posts: 717 |
I'm not quite sure what you guys mean in the latest few posts.. splitting color RAM.. Couldn't find that in Incoherent Nightmare or ComaLight 13, perhaps i didn't look enough :).
Splitting color RAM was dedicated a whole chapter in Edge of Disgrace.. 3-4 parts in a row! At least that's what i call splitting color RAM.. |
| |
Digger
Registered: Mar 2005 Posts: 422 |
Quote: I'm not quite sure what you guys mean in the latest few posts.. splitting color RAM.. Couldn't find that in Incoherent Nightmare or ComaLight 13, perhaps i didn't look enough :).
Splitting color RAM was dedicated a whole chapter in Edge of Disgrace.. 3-4 parts in a row! At least that's what i call splitting color RAM..
@HCL: You mean HCB? And HCB-like plasmas? |
| |
chatGPZ
Registered: Dec 2001 Posts: 11147 |
I was referring to double height "chars", allowing to double buffer color ram. Which i think is what mankeli implied :) |
| |
mankeli
Registered: Oct 2010 Posts: 110 |
Quote: I was referring to double height "chars", allowing to double buffer color ram. Which i think is what mankeli implied :)
Yeah, that's what i meant. :) Didn't know the cl13 greetspart uses that too! It's not visible at all. |