Welcome to Emulationworld

Forum Index | FAQ | New User | Login | Search

Make a New PostPrevious ThreadView All ThreadsNext ThreadShow in Flat Mode*

SubjectRe: uhm... not enough... Reply to this message
Posted byShadow_fire
Posted on05/05/02 11:00 AM

> Thanks, man, you are very kind, but unfortunately this info is not enough...
> Character Map Mode
> Each character is 8x8. The screen is made of 40x25 characters
> Well, (8x8)*(40x25) is 320x200. Fine, that's the usable text area. But I guess
> that the backgroud surrounding it is not considered here...
> Bitmapped Graphics Mode
> HiRes Mode: 320x200 pixels, any one color per character-cell, and the background
> color
> Multocolor Mode: 160x200 pixels, 3 pre-selected colors, any one color per
> character-cell, and the background color
> Again, this is the "work area". It would be enough, if the VIC-II wouldn't allow
> to blit anything outside of it - which is not the case.
> Play some tricky-programmed games, like Creatures 1 & 2 or Turrican (if my
> memory serves me well), and you'll see sprites travelling right there, where
> there shouldn't be anything...
> I want to know the resolution of the WHOLE C64 screen, not just the "normally
> usable" part of it.

Pixel-addressable space on the C-64 is 320x200 (in hires graphics/character mode) and 160x200 (in multicolor hires/multicolor character mode). There was also a VIC-II register that controlled "border" color (which was basically anywhere outside the 320x200 or 160x200 area), and you could set up a scan-line interrupt to change the register at certain scanlines, but pixels outside of the 320x200 area could never be affected by anything outside the border color register. The size of the border was actually a function of you monitor's horizontal/vertical size/height adjustments, nothing could be done from within the machine to change that.

So what resolution you run your emulator at is all in personal preference. You can run any game at 320x240 (and have the border only at the top and bottom), and this is the resolution that I run at. You can run it at 400x300 (which will give you left/right borders, as well). Your choice, makes no difference.

There was a "trick" to display sprites in the border area (which involved flipping the screen vertical height bit from 25 rows to 24 rows after the VIC had started displaying the 24th row, thus tricking the VIC into never turning off the sprites at the "bottom" (and top) of the screen), but this only allows sprites to be seen outside the borders, it doesn't affect the display resolution of the VIC chip at all, and you can't use vertical scrolling in 25-line mode without artifacts showing up on the top/bottom of the screen. Few (if any) games used this- AFAIK only demo coders used this "bug", because you could stick a sprite out there but no background graphics.

The C-64 programmers reference manual has a section on sprites (Commodore called them "movable object blocks" or "MOBS")... if you read the section detailing sprite X and Y coordinates, you'll get an insight into how the VIC internally divvied up the screen coordinates, which is I believe what you are looking for.

Entire Thread
Subject  Posted byPosted On
*c64 resolution(s?)  Terry Bogard04/25/02 08:24 AM
.*Re: c64 resolution(s?)  Lord Ashram05/08/02 06:47 PM
..*H res was 320 pixels...  Prophet05/24/02 03:12 AM
...*Re: H res was 320 pixels... *edited*  Jan_Klaassen06/02/02 06:09 PM
...*nopey  Lord Ashram05/28/02 00:08 AM
..*Great, thanks a lot! [nt]  Terry Bogard05/09/02 02:49 PM
.*http://roger.trideja.com/c64/ -(nt)  Trebor04/25/02 11:41 AM
..*uhm... not enough...  Terry Bogard04/25/02 01:00 PM
....Re: uhm... not enough...  Shadow_fire05/05/02 11:00 AM
....*this is a good answer indeed! thanks! [nt]  Terry Bogard05/07/02 08:01 PM
...*Re: uhm... not enough...  Iron Man04/25/02 02:14 PM