| |
Credits :
Download :
Look for downloads on external sites:
Pokefinder.org
User Comment Submitted by Moloch on 26 May 2016
Use the forums ... comments aren't for long threads of discussion. | User Comment Submitted by Fresh on 26 May 2016
I've never seen this bug before but I think it can be explained this way:
VIC tries to read sprite definitions every line, even when there are no sprite to display.
- When a sprite is being displayed (ie SpriteY =< $d012 <= SpriteY+20) VIC holds the bus and correctly reads from $3f8-$3ff
- When outside the display area it doesn't take over the bus so it reads $ff ($3fff) $ff.
The VIC reads $ff when the cpu is using the bus (so, VIC side, the bus is tristated); it reads from location $3fff while it's holding the bus but it's in idle state.
This can be tested by changing $3fff during line $A2 before or after cycle 4: change it before and it will reflect on the middle byte of sprite 4, change it after and it won't affect the sprite.
Long story short: those are just three bytes read from VIC in the preceeding line on cycles 4.5/5/5.5 while not holding the bus. | User Comment Submitted by Smasher on 26 May 2016 User Comment Submitted by Scan on 26 May 2016
Thanks for testing on a real C64! I have no access to one, so I just hope the stuff I write nowadays works on a real C64. Btw, tested my virus? ;) | User Comment Submitted by Smasher on 26 May 2016
@Scan: just tested - it's really there! :)
(my monitor can show 35-36 pixels in the right border) | User Comment Submitted by Smasher on 26 May 2016
ah ok, cool!
that only happens on the first line of a sprite, so every 21 lines, or? does it depend if it's on a "badline" or not? (try to place that sprite on the upper right border) | User Comment Submitted by Scan on 26 May 2016
Let me rephrase that. "I would assume it would be visible on a real C64". I haven't tested it. | User Comment Submitted by Scan on 26 May 2016
It would be visible on a real C64 if I placed the sprite at $68 instead of $70, like I did in the example. But then it would only show the line above the A, not the ghostbyte above the B (it's still there, just not shown on a real C64 since the border is 32 pixels wide). Btw, I don't think it's usable for anything, but I'm curious why this happens. Why can I change the pattern above the B using $3fff and not ones above the A and C? Is there a memory location that changes them? | User Comment Submitted by Smasher on 26 May 2016
very interesting!!!
the problem is that I don't know how you could test that on real H/W as that "spriteghost" is really far in the border. I mean: you should first discover if it's one of those cool vic bugs we all love or an emulator only behavior. |
|
|
|
| Search CSDb |
| Navigate | |
|
| Detailed Info | |
|
| Fun Stuff | |
· Goofs · Hidden Parts · Trivia
|
|
| Forum | |
|
| Support CSDb | |
|
| |
|