View Single Post
Old 07 August 2014, 18:58   #1349
Join Date: Jun 2010
Location: out in the wild
Posts: 1,245
Originally Posted by AmiDog View Post
The BASIC setting is for programs using the default screen setup (like most programs written in BASIC). For GEOS (VIC bank 2), you enable the GEOS setting, for programs using VIC bank 1 you enable that setting. That is, you tell the SCPU which memory areas needs to be mirrored to C64 memory so the VIC can see it. No sprite restrictions that I know of, the SCPU isn't in any way affected by VIC DMA cycles, bad-lines and such, unless you atempt to write to mirrored memory, in which case the SCPU need to wait until the C64 is ready to accept the write.
Thanks - this confirms that the comparison was fair from the very beginning, as the SCPU is "cheating" it's speed by omitting writes to memory that could be used by the VIC. I can easily write a Basic program that will fail to display things with these optimizations switched on. That's totally not what the user wants - it's either "it works", or it doesn't. This optimization might be good for a few Basic programs, but not for all of them, and surely not for other applications, hence it should not be used for a speed comparison.

Originally Posted by AmiDog View Post
The Chameleon also needs to mirror writes to C64 memory in order to allow the VIC to see it, unless you settled with using the emulated VIC only, but that's cheating to say the least. Judging by the Wiki results, the Chameleon either doesn't mirror memory at all, or only mirrors the required memory, just as the SCPU did when I ran the test.
Not correct - we really don't mirror writes to the C64 memory, but that's not required, because the Chameleon feeds the VIC with data from the fast Chameleon memory. This is absolutely not cheating, but I must admit that this mode of the PLA chip was not documented before. The whole idea of the Chameleon was born when I found this previously not-documented mode of the PLA chip, where the whole internal memory can be replaced by an external source.

Originally Posted by AmiDog View Post
The same goes for the ZP results, if all memory indeed is mirrored to the C64 memory, one can never achieve a 20x speedup. That issues is shared between the SCPU and Chameleon. With the SCPU it's easy to set it to mirror ZP (and Stack area) as well. I assume you can do something similar with the Chameleon, but I don't have one so don't know how that's done.
Thanks for pointing out that the Chameleon is the superior accelerator, because it does not require the user to know about "which memory area needs to be mirrored or not". It just provides the speed and you don't need to know about the technical details.

Schoenfeld is offline  
Page generated in 0.04315 seconds with 10 queries