| |
Radiant
Registered: Sep 2004 Posts: 639 |
Release id #3310 : Mentallic
There has been some discussion in the release comments about how the "9 sprite trick" in the last part is achieved. Some have said that one of the letters (the 'I') is made using the $3fff (or whatever bank) byte. But wouldn't that be impossible to achieve, due to the requirement of exact timing?
I really haven't played around much with that byte, but I figure it would need to be changed at exactly the right cycle, and then immediately changed back the next - which, unless I'm mistaken, is impossible without utilizing a REU or something. |
|
| |
Ninja
Registered: Jan 2002 Posts: 411 |
iopop is correct. The "i" is done using $D016. For example, if you change the screen-x-offset from leftmost to rightmost in the middle of the screen, you create a "hole" showing the background color. Really neat trick! |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
It becomes even better when crossbow does characters with holes in them (see Krestage, Krestage). Now how's that possible? =D |
| |
Ben Account closed
Registered: Feb 2003 Posts: 163 |
As far as Mentallic goes, set $d015 to 0 and $3fff to e.g. $55, for good fun.. |
| |
Spinball
Registered: Sep 2002 Posts: 88 |
wasn´t that $d016 trick invented by cruzer?
One Year Camelot 3 (last part) |
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
The first demo with the "$D016 gap trick" which comes to my mind is indeed 1 Year Camelot III. The disadvantage of that trick is that you can only produce a gap of 1-7 pixels and not any byte pattern, so Crossbow/Crest later invented another trick in "Krestage" which can display ANY byte. |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
@graham: For the all mighty CSDB record, how does that trick work? |
| |
HCL
Registered: Feb 2003 Posts: 728 |
Just read the answer in the code :).
;prepare..
LDA #$ff
STA $3FFF
LDA #COLOR
STA $D021
;put gfx..
LDX #PATTERN
LDA #0
STX $3FFF
STA $D021
Strange enough, $3fff seems to be updated 2 cycles slower than $d021.. So we get two bytes of gfx. Set $d016 to #$cf and 7 pixels will go away.. left is 9 pixels, where two of them are copies of the same 3fff-bit. That gives us 7 pixels to make a random pattern of. Done :). |
| |
CyberBrain Administrator
Posts: 392 |
Much of this was already discussed at 9th Sprite so check that thread aswell |
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
@HCL: Why "strange enough"? It's obvious because before the VIC can display the byte, it first has to be fetched from memory and be passed to the bitmap shifter. |
| |
Tch Account closed
Registered: Sep 2004 Posts: 512 |
Thanx guys...I keep on learning. 8)
But probably I´ll never use this knowledge.
Nice trick though and I really like the demo.
Anyway,Panoramic Designs always had a special place in my heart.
Ahead of their time!! |
... 9 posts hidden. Click here to view all posts.... |
Previous - 1 | 2 - Next |