Vic20 NTSC Graphics

Basic and Machine Language

Moderator: Moderators

Post Reply
armypavarmy
Vic 20 Hobbyist
Posts: 107
Joined: Wed Oct 02, 2013 1:54 am
Location: Italy

Vic20 NTSC Graphics

Post by armypavarmy »

Hello
now I have a Vic20 NTSC
I'm looking for a program for graphics
For Vic20 NTSC
Maxigrafik and Hypergrafik
if someone has or knows where to find them
or he can modify them
thanks Armando
User avatar
Mike
Herr VC
Posts: 4843
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: Vic20 NTSC Graphics

Post by Mike »

With regard to available graphics resolutions in NTSC, please check the linked threads in the sticky post/thread:

New Frontiers in VIC-Hires-Graphics Series

... especially for NTSC 192x416i ("Retina-Display") and NTSC 88x400i (NIFLI). Note these modes only work on real hardware. Currently, VICE does not support the interlace capability of the NTSC VIC-I chip.

Before you ask: Torsten and I consider these two modes as the maximum resolution possible on NTSC when you either want a complete overscan display (and "basic" colour capabilities as with MINIGRAFIK); this is the case for Retina - and when you want more colourful graphics with 8x1 (foreground) colour data and 3 global registers on each raster, 88x400i is the limit. In both cases, the CPU is monopolized to nearly 100% to assist the VIC-I chip during display. It is not possible to run a user program alongside.

To stress this out: these modes are intended to provide the maximum resolution of VIC-I at the expense of all available means, i.e. if the CPU is not used to assist the video chip, you can only display the standard resolution of 160x192 of MINIGRAFIK at max (given one doesn't want to clobber the lower 1K of internal RAM).

The modes have been equipped with working converters from greyscale *.pgm or colour *.ppm files. I have no plans to adapt a BASIC extension for their use.
User avatar
tokra
Vic 20 Scientist
Posts: 1123
Joined: Tue Apr 27, 2010 5:32 pm
Location: Scheessel, Germany

Re: Vic20 NTSC Graphics

Post by tokra »

These special modes are however emulated in Z64K - a new emulator, which also emulates the special modes for the C128 I created and for which Mike also provided converters:

http://www.z64k.com/
User avatar
Kweepa
Vic 20 Scientist
Posts: 1315
Joined: Fri Jan 04, 2008 5:11 pm
Location: Austin, Texas
Occupation: Game maker

Re: Vic20 NTSC Graphics

Post by Kweepa »

A new emulator... in java? Whyyyyyyyy?!?
armypavarmy
Vic 20 Hobbyist
Posts: 107
Joined: Wed Oct 02, 2013 1:54 am
Location: Italy

Re: Vic20 NTSC Graphics

Post by armypavarmy »

Hello
I did a lot of tests
Hypergrafik works in NTSC
only problem is that the graphic screen
it is not centered, but a little moved to the right at the bottom.
With emulator it is little but with real Vic20 it is more.
If you could correct this problem the
program would be OK.
Hypergrafik is written in basic with date.
Armando
User avatar
Mike
Herr VC
Posts: 4843
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: Vic20 NTSC Graphics

Post by Mike »

Armando,

Torsten and I *know* the program HYPER-GRAPHICS by heart. It was this very program, which was the inspiration for us two to provide this resolution (208x256 pixels) and beyond as true bitmap.

Unlike the fully bitmapped modes that resulted from our project, HYPER-GRAPHICS employs a so-called "sparse bitmap". It uses only chars in the screen, where at least one pixel is set in a 8x16 pixel tile. All empty tiles are represented by a single screencode value, in this case #26. The definitions of the screencodes 0..25 overlap with the text screen and can't be used. 229 usable characters remain.

Now, HYPER-GRAPHICS neither uses the bottom 1K nor does it employ interrupts to change the character set base address, and neither does it rewrite character definitions from data in external memory during display of the screen. That means, it can only use those 229 characters to represent any filled tile of the screen. As you can hopefully imagine, this is not sufficient to fill up the entire screen. When you attempt this, HYPER-GRAPHICS displays an error as soon as more than roughly one half of the screen tiles are used. This is sufficient for simple line drawings and function plots, and this is the application HYPER-GRAPHICS was supposed to be used for.


When you now assert, that "HYPER-GRAPHICS works in NTSC", I need to refute this claim. HYPER-GRAPHICS as is does *not* work in NTSC. It simply can't, because the NTSC VIC-I does not support a vertical number of 256 pixels. Neither does it support 208 pixels width. It falls short a few pixels on both axes with its total display area, which is actually around 200x250 pixels. Also, most NTSC displays (TV and monitors) won't allow one to show more than, say, 184x208 pixels. This is a *huge* step back from 208x256 (which is also at the edge for most PAL TV sets) and really not much more than what you get from MINIGRAFIK, so up to date no-one bothered to port HYPER-GRAPHICS to NTSC.

I already pointed you to Retina-Display and NIFLI. They increase the vertical resolution by using interlace, and their 416i (Retina) or 400i (NIFLI) pixels correspond to the non-interlaced screen heights of 208 or 200 pixels, i.e. well within the display limit I stressed out above. Just you need to prepare the graphics beforehand and then convert them.

The higher achievable resolutions come at the cost of CPU time. Also, the respective maximum values do not overlap for PAL and NTSC, i.e. you can't do 416(i) vertical in PAL (PAL has no interlace) and you can't do 224 horizontal in NTSC (just not enough display width). Once again, as lowest common denominator for both PAL and NTSC - which has also the charme it interworks well with BASIC and KERNAL, and doesn't use the sparse resource of any IRQs, and actually displays the bitmap with 0% CPU overhead - guess what you end up with? MINIGRAFIK.

...

Armando, some of your posts come around and read like a complaint as if we (Torsten and I) are somehow holding you back utilizing the best possible graphics resolutions on the VIC-20. We two put three full years into this project, and can assure you, that what you get from these display drivers *is* the optimum! For both PAL and NTSC, we have achieved a fully bitmapped display over the whole overscan area. Anything you ask beyond that, is beyond the capabilities of the VIC chip. We're talking about hard hardware limits here. Talking about to transcend them is not more than wishful thinking.

When it comes to programmer's support - as I have already written: these modes work as they are, and they are equipped with converters, so any conceivable (static) picture can be displayed in those modes. With MAXIGRAFIK, I put quite some extra work into a corresponding BASIC extension, which got exactly 1 known 3rd party user (yes, you) after so many years. At some point after this project topped out with PAL 224x280 (Ubermode) and 104x256 (FLI104) and, for NTSC, 192x416i (Retina) and 88x400i (NIFLI), we decided to leave it as is, and devote our time to other projects.


Greetings,

Michael
Willymanilly
Vic 20 Newbie
Posts: 8
Joined: Tue Dec 06, 2016 4:20 am
Website: http://www.z64k.com
Location: Australia
Occupation: APS

Re: Vic20 NTSC Graphics

Post by Willymanilly »

Kweepa wrote:A new emulator... in java? Whyyyyyyyy?!?
Why use Java... Why not? I've researched all the pros and cons of using multiple types of languages and have not experienced any issues with Java on the multiple systems I have tested my emulators on. The ease of distributing a single file that can run on multiple platforms with very little additional configuration required by end users to use the software on their setup was a big factor for my decision.
armypavarmy
Vic 20 Hobbyist
Posts: 107
Joined: Wed Oct 02, 2013 1:54 am
Location: Italy

Re: Vic20 NTSC Graphics

Post by armypavarmy »

Michael
Thanks for the precious information.
I know you do not want to worry about Minigrafik and Maxigrafik anymore
I wanted to try Maxigrafik NTSC
and I have not found where to download it.
About Hypergrafik I just wanted to know
if you think you can change it in NTSC to 184 x 208?
Because for my use it is always better than 160 x 192 of Minigrafik.
Above all for the highest horizontal resolution.
No criticism but only if possible these two information
Thank you
Armando
User avatar
Mike
Herr VC
Posts: 4843
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: Vic20 NTSC Graphics

Post by Mike »

armypavarmy wrote:I know you do not want to worry about Minigrafik and Maxigrafik anymore
MAXIGRAFIK works fine as is, and I still have ideas to expand upon MINIGRAFIK. Just not in the way that seems to suit you.
I wanted to try Maxigrafik NTSC and I have not found where to download it.
Simply put, there is no "MAXIGRAFIK NTSC" and what doesn't exist, you can't download anywhere.
About Hypergrafik I just wanted to know if you think you can change it in NTSC to 184 x 208?
For sure I could. Just I am not going to do it. I clearly stated the reasons for this in my preceding post here.


Armando, we've had this kind of discussion for quite some time now. I mean, what's the point of repeatedly asking for a higher graphics resolution if you haven't even scratched the surface of what's possible with MINIGRAFIK? Most of the examples you posted in the last months work perfectly well with the 160x192 display that MG delivers. Especially line graphics can easily be rescaled from a higher resolution down to 160x192. If the line graphics is much too detailed that the details are lost with MG, you won't gain much more with whatever higher resolution is possible on the VIC-20, you'd need to use a C64 or C128 (with its VDC chip) instead.

If this still doesn't satisfy you, one suggestion: equip yourself with the necessary documentation of 6502 machine language, the VIC-20 ROM listing, the data sheet of the VIC-20 video hardware, and a suitable cross-development environment and then try to improve upon MINIGRAFIK by yourself. Then maybe you will finally understand why I settled on the 160x192 resolution for "daily work".
Post Reply