Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > FLI Gray area
2015-06-30 06:43
Trash

Registered: Jan 2002
Posts: 122
FLI Gray area

Hello, I've got this idea and have no real machine to test it on.

I recently read up on how FLI actually works and found out how to manipulate the gray area of a FLI-picture using a SCPU. In principle the solution is that if you use the speed of the SCPU and write to an IO-registry once for each cycle of the three cycles that value would be seen as the colors parsed as multicolors for the left three characters.

Is this only possible since the SCPU runs async with the VIC-chip or is it possible to the same thing using a REU?

Using a REU would be something like this:
Set up transfer that is 4 bytes long, burst it into $d011, $d012, $d013 and $d014 (4 writes in 8 cycles) at the right moment. Would that result in d012-d014 would be written during the first three cycles (in the gray area) or would the behaviour be like d011 triggers badlinecondition, the vic takes over for 40 cycles and then we get our dma-transfer to d012-d014 at the right edge of the screen instead?
 
... 8 posts hidden. Click here to view all posts....
 
2015-06-30 22:09
chatGPZ

Registered: Dec 2001
Posts: 11386
Quote:
If that is the case, it should be possible to manipulate the value assuming a read or write to the VIC-II can be achieved.

its the value that was last fetched and remains on the bus -> blackmail FLI editor
2015-06-30 22:29
Copyfault

Registered: Dec 2001
Posts: 478
Quoting Groepaz
Quote:
If that is the case, it should be possible to manipulate the value assuming a read or write to the VIC-II can be achieved.

its the value that was last fetched and remains on the bus -> blackmail FLI editor

But this value only gives colour information for the $d800-pixels, or am I wrong here?

I like the idea of forcing values on the VIC-II-Bus by means of a REU or SCPU. It breaks down to the question wether the corresponding write accesses are admitted also during blocked "="-cycles, but I guess the CPU is blocked as soon as the write cycle of the $D011-access occurs and it stays so until the end of the badline.


We badly need someone with time and hw to do the necessary tests ;))
2015-06-30 22:34
chatGPZ

Registered: Dec 2001
Posts: 11386
Quote:
But this value only gives colour information for the $d800-pixels, or am I wrong here?

you are correct :=)
Quote:
We badly need someone with time and hw to do the necessary tests ;))

making a test program has been on my todo list for a while now... oh well :)

edit: here is the routine from blackmails editor.
2015-07-01 06:32
Trash

Registered: Jan 2002
Posts: 122
Quote: Trash: Sorry, i can't quite make out whether you actually succeeded in overcoming the FLI bug using an SCPU. Did you, or couldn't you test this on real hardware either?

Krill: It has been done, just not by me ( http://unusedino.de/ec64/technical/c=hacking/ch21.html ).
It was only the base of my idea on how to do it with a REU.
2015-07-01 07:53
Trash

Registered: Jan 2002
Posts: 122
Quote: Quoting Groepaz
Quote:
If that is the case, it should be possible to manipulate the value assuming a read or write to the VIC-II can be achieved.

its the value that was last fetched and remains on the bus -> blackmail FLI editor

But this value only gives colour information for the $d800-pixels, or am I wrong here?

I like the idea of forcing values on the VIC-II-Bus by means of a REU or SCPU. It breaks down to the question wether the corresponding write accesses are admitted also during blocked "="-cycles, but I guess the CPU is blocked as soon as the write cycle of the $D011-access occurs and it stays so until the end of the badline.


We badly need someone with time and hw to do the necessary tests ;))


I understand like this:
Since the bus is 12 bits, the gray cant be manipulated (its the upper 4 bits out of theese 12) but the lower value kan be manipulated either by writing stuff to the bus or by using different op-codes (thus placing them on the bus for the vic to see). So what is accomplished in the scpu-solution is that you get gray, d021 and two multicolors to choose from on each of the three bytes, d021 and 2 multicolors for all three bytes.
2015-07-01 10:56
AmiDog

Registered: Mar 2003
Posts: 97
Quoting Oswald
too bad, scpu doom would have been better without fli bug :)

Scpu doom has the fli bug because of a limitation in VICE. See bug 545.
2015-07-01 10:59
Krill

Registered: Apr 2002
Posts: 2980
Quoting Trash
Krill: It has been done, just not by me ( http://unusedino.de/ec64/technical/c=hacking/ch21.html ).
It was only the base of my idea on how to do it with a REU.
Okay... but how about Chameleon? It is both actually available and surpasses SCPU in many regards. IF it chickens out as early as REU, i'm pretty sure its makers would be willing to provide a firmware (= FPGA image) fix so it could make fullscreen FLI just as well as SCPU.
2015-07-01 11:04
AmiDog

Registered: Mar 2003
Posts: 97
Quoting Trash
I understand like this:
Since the bus is 12 bits, the gray cant be manipulated (its the upper 4 bits out of theese 12) but the lower value kan be manipulated either by writing stuff to the bus or by using different op-codes (thus placing them on the bus for the vic to see). So what is accomplished in the scpu-solution is that you get gray, d021 and two multicolors to choose from on each of the three bytes, d021 and 2 multicolors for all three bytes.

With a SCPU you get d021 and 2 multicolors. The color-RAM color will be the same as the low nibble of the byte you force onto the bus.

See this thread.

Quote:
Either way, AEC is always high during these first three cycles (the CPU half thereof) and so the 4066 analogue switch must always be enabled, making D11 - D8 the same as D3 - D0.
2015-07-01 11:11
AmiDog

Registered: Mar 2003
Posts: 97
Quoting Krill
Quoting Trash
Krill: It has been done, just not by me ( http://unusedino.de/ec64/technical/c=hacking/ch21.html ).
It was only the base of my idea on how to do it with a REU.
Okay... but how about Chameleon? It is both actually available and surpasses SCPU in many regards. IF it chickens out as early as REU, i'm pretty sure its makers would be willing to provide a firmware (= FPGA image) fix so it could make fullscreen FLI just as well as SCPU.

Since the Chameleon apparently makes use of an undocumented PLA mode in order to have the VIC fetch all graphics data from external memory, to avoid ever having to write to the C64 memory, it should be much easier to fix for the Chameleon since it just need to put whatever it likes on the bus for the VIC to see.
2015-07-01 19:26
chatGPZ

Registered: Dec 2001
Posts: 11386
yes, it would be relatively easy to do on chameleon - on the other hand that is completely out of the focus of what we want it to be, and thus wont be done (at least not until we fixed every other bug).
Previous - 1 | 2 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
iAN CooG/HVSC
Wayne Kerr/Flashtro
New Design/Excess
Fred/Channel 4
HBH.ZTH/Abnormal
Freeze/Blazon
4gentE/ΤRIΛD
Hairdog/BOOM!^Dream
MWR/Visdom
Martinland
TheRyk/MYD!
Nordischsound/Hokuto..
B.A./QUANTUM
Guests online: 115
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 No Listen  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Coders
1 Axis  (9.8)
2 Graham  (9.8)
3 Lft  (9.8)
4 Crossbow  (9.8)
5 HCL  (9.8)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.074 sec.