17

As far as I know, there is no register in the VIC-II, which would enable this.

Despite that, in nearly all intros and in many cases even in old games, sprites on the border were visible. Actually, it was the only way to put meaningful pixel images to the border.

How did it work?

11

You need an assembler to do this trick. This is an interrupt timing trick with some behind-the-scenes coding. The frame allows sprites to sneak towards the edge without the device stopping them. They are connected to scan lines displayed by the device. Of course, for top and bottom, it is easier to make this happen as you only need to interrupt once and only need one scan line per sprite.

  • Programm an interrupt, synced to start at a certain scan line, 7 pixel or sth like that before the lower border.
  • Set the register in VIC to make the border smaller. (There is a register that can do that.)
  • VIC now believes that the border already started and does not start to paint it.
  • -> No border at the bottom.
  • Programm another interrupt after the real border to set it back to original.

But for left and right borders, you have to make sure you repeat the process (the interruptions) per scan line:

  • Programm an interrupt, synced to start at a certain scan line.
  • Then do some NOPs until you are 7 pixel before the right border.
  • Set the register in VIC to make the border smaller.
  • -> No border at the right side.
  • Do some NOPs until you are after the real border and set the register back to original value.
  • Again do some NOPs until step 2.

This answer is based on this StackOverflow answer and the code (plus more information) is shown in the linked answer.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.