Post by willymanilly on Dec 27, 2017 2:32:05 GMT
I've been researching the behavior of the VICIIe during 2Mhz mode and am just sharing some of my findings. This is a very brief explanation of my observations so is not going to be very technical. Once I finish researching I will give a more detailed analysis of my observations.
As you know when using poke 53296,1 to set the cpu to 2Mhz mode the VICII output loooks random. In actual fact it is possible to control the output of the VICII in 2 Mhz mode with precise timing. When in 2Mhz mode the following seems to happen. I've attached some test programs that show this behavior.
As you know when using poke 53296,1 to set the cpu to 2Mhz mode the VICII output loooks random. In actual fact it is possible to control the output of the VICII in 2 Mhz mode with precise timing. When in 2Mhz mode the following seems to happen. I've attached some test programs that show this behavior.
- VICIIe no longer can control the databus or freeze the cpu
- CPU always runs at 1Mhz mode during DMA refresh cycles (5 cycles per line)
- VICIIe still behaves as though it is fetching data on badlines and sprite DMA but the data received by the VICIIe is controlled directly by the CPU. Using the VICII article by Christian Bauer as a reference, the following seems to happen during c-access and g-access
C-access data
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
| 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
| phase 1 data left | *interal VICII databus (can be seen when reading|
| on bus from cpu | and writing to VICII registers in bitmap mode.) |
+-------------------+-------------------------------------------------+
g-access data
+----+----+----+----+----+----+----+----+----+
| 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+----+----+----+----+----+----+----+----+----+
| phase 2 data left on bus from cpu |
+----+----+----+----+----+----+----+----+----+
The VICII version of Risen from Oblivion uses the above concepts with their awesome demo.
I have implemented all the above discussed behavior in the new UI of Z64K. I note the color of the 4th last character of the test screenshot does not match (directly after the @ symbol) but otherwise seems to match perfectly. The part with light blue background of first test is in 2Mhz mode. 2nd test demonstrates point in c-access highlighted with *.
I'm being rushed out the door for social commitment but I will update this information and clarify any questions when I'm free.