base:vic
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revisionLast revisionBoth sides next revision | ||
base:vic [2014-06-10 13:20] – external edit 127.0.0.1 | base:vic [2019-07-06 02:31] – ftc | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== VIC Programming ====== | ||
+ | On this page you find graphics programming information in general, such as how to set up various graphics modes, how to draw on screen, or how to display and move a sprite. If you are looking for information on how to code certain demo effects, you should look in the [[base: | ||
+ | |||
+ | The general rule of thumb is that //if something is of more general use than just for demo effects, or if it is too simple or restricted to constitute a full demo effect in itself (such as opening the borders or achieving a specific custom screen mode through VIC trickery), you will find it here rather than in the demo coding section.// | ||
+ | |||
+ | There is also some information related to VIC programming in the [[base: | ||
+ | |||
+ | ===== Basics ===== | ||
+ | * [[Visible area]] - How much of the overscan area actual monitors actually show | ||
+ | * [[Pixel aspect ratio]] - To sum it up, it's 0.9365:1 (X:Y) on PAL | ||
+ | * [[magazines: | ||
+ | * [[base: | ||
+ | * [[base: | ||
+ | * [[Built in screen modes]] - written and compiled by Oswald/ | ||
+ | * [[base: | ||
+ | ===== Using built in screen modes ===== | ||
+ | * [[petscii to screencode|Convert ASCII/ | ||
+ | * [[make modified character sets|Applications of modified character sets]] | ||
+ | * [[Displaying a picture at $2000|Display a multicolor Koala Picture]] by Richard Bayliss | ||
+ | * [[Calculate VIC settings for showing a koala|Generic koala shower (VIC settings calculator)]] by JTR/DMAgic | ||
+ | |||
+ | ===== Sprites ===== | ||
+ | |||
+ | See the general section on how to use sprites. It contains basic usage as well as sprite multiplexers and other things, including (some) demo effects with sprites. | ||
+ | |||
+ | * [[base: | ||
+ | |||
+ | ===== Drawing on the screen ===== | ||
+ | |||
+ | * [[Various techniques to calculate adresses fast, common screen formats for pixel graphics]] | ||
+ | * [[Rather small and rather fast screen offset component splitter]] - by JackAsser/ | ||
+ | * [[Bresenham' | ||
+ | * [[Bresenham' | ||
+ | * [[Lines]] (bresenham, collecting pixels into one byte, runlength slice) - by Bitbreaker FIXME (slope and sing the SID / CIA for slopes still missing) | ||
+ | * [[Filling the vectors]] - by Bitbreaker | ||
+ | * [[Dots and Plots]] - by TWW/CTR | ||
+ | * [[Bresenham Circle Routine]] - Implementation by Scout | ||
+ | * [[Draw RAM to screen or color memory]] - by malcontent | ||
+ | * [[4x4 mode and circle routine]] - by malcontent | ||
+ | |||
+ | ===== VICII Hardware tricks ===== | ||
+ | This section is more about the workings of the VIC chip than about certain demo effects which are //based// on these VIC tricks. | ||
+ | |||
+ | ==== Border ==== | ||
+ | |||
+ | * Opening upper and lower borders | ||
+ | * [[Removing the top/bottom border|Short code]] - by HCL/Booze Design | ||
+ | * [[Opening the top/bottom borders|Opening the borders]] - by Richard Bayliss | ||
+ | * [[magazines: | ||
+ | * [[Opening up the borders - a further explanation]] - by TheHighlander | ||
+ | * [[base: | ||
+ | * [[Sprites in bottom sideborder]] - by Groepaz/ | ||
+ | * [[Removing the sideborders]] - by HCL/Booze Design | ||
+ | * [[Displaying graphics using $3fff]] | ||
+ | |||
+ | ==== Screen ==== | ||
+ | |||
+ | === Vertical Movement === | ||
+ | |||
+ | * [[FLD]] - Flexible Line Distance - by HCL/Booze Design | ||
+ | * [[Linecrunch]] - Vertical Screen Positioning | ||
+ | * [[Double Screen Vertical Scroller]] - Using simple copy method with double buffer | ||
+ | * [[Smooth Linecrunch]] - by Karmic/ | ||
+ | |||
+ | === Horizontal Movement === | ||
+ | |||
+ | * [[Horizontal Screen Positioning (HSP)|HSP]] - Horizontal Screen Positioning (aka Wanker aka DMA-Delay/ | ||
+ | |||
+ | === Useful Combinations === | ||
+ | |||
+ | * [[AGSP (Any Given Screen Position)|AGSP]] - Any Given Screen Position (VSP and LineCrunch combined) | ||
+ | * [[Double Screen Horizontal Scroller|Double Screen Horizontal Scroller]] - Using VSP to display a double bitmap picture (80x25 chars) | ||
+ | |||
+ | === Vertical Tweaks === | ||
+ | |||
+ | * [[Introduction to vertical tweaks]] | ||
+ | * [[FLD]] - Flexible Line Distance - by HCL/Booze Design | ||
+ | * [[FPD]] - Flexible Pixel Distance | ||
+ | * [[FPS]] - Flexible Pixel Size (like FPD but stretching pixels) | ||
+ | * [[FPP]] - Flexible Pixel Position | ||
+ | * [[FPP-last-line|FPP]] - by repeating the last line | ||
+ | * [[FPP-first-line|FPP]] - by repeating the first line | ||
+ | * [[Repeating char-lines]] - by HCL/Booze Design | ||
+ | |||
+ | NOTE: The names of above vertical movements are legacy and not always explicative. ' | ||
+ | |||
+ | ==== Sprites ==== | ||
+ | |||
+ | This section about sprites.. | ||
+ | |||
+ | === Vertical Tweaks === | ||
+ | |||
+ | * [[Stretching sprites]] - using $d017. | ||
+ | * [[Sprite FPD]] | ||
+ | * [[Sprite FPP]] | ||
+ | * [[Sprite-crunching]] | ||
+ | === Sprite Tweaks in general === | ||
+ | |||
+ | * [[9th Sprite]] code and explanation | ||
+ | ===== Custom Graphics Modes ===== | ||
+ | |||
+ | This section is for custom graphics modes only, as contrasted to the built in graphics modes with official hardware support, such as hires, multicolor, etc. | ||
+ | |||
+ | === Non-tweaked modes === | ||
+ | |||
+ | * [[SH]] - Super Hires | ||
+ | * [[Drazlace]] | ||
+ | *[[Drazlace displayer|Display Drazlace picture]] - by HCL | ||
+ | |||
+ | === Tweaked modes === | ||
+ | |||
+ | * [[FLI]] - Flexible Line Interlace | ||
+ | * [[magazines: | ||
+ | * [[FLI displayer]] - by Graham | ||
+ | * [[40 Bytes FLI displayer|FLI displayer]] - by Crossbow (only 40 bytes long) | ||
+ | * [[Hires FLI]] - High Resolution FLI | ||
+ | * [[IFLI]] - Interlaced FLI | ||
+ | * ([[AFLI]] - Advanced FLI) | ||
+ | * [[UFLI]] - Underlayer FLI | ||
+ | * [[SHFLI]] - Super Hires FLI | ||
+ | * [[SHIFLI]] - Super Hires Interlace FLI | ||
+ | * [[XFLI]] - EndOfNameSpace :) FLI | ||
+ | |||
+ | === Others === | ||
+ | |||
+ | * [[Junk Modes]] - low resolution modes with charsets | ||
+ | * [[4x4 FLI chunky mode]] | ||
+ | |||
+ | ==== Editors for the Custom Graphics Modes ==== | ||
+ | See the general section on: | ||
+ | |||
+ | * [[GFX Editors and Converters]] | ||
+ | |||
+ | ===== Color info ===== | ||
+ | |||
+ | * [[VIC-II Color Cheatsheet]] - by Groepaz | ||
+ | * [[Commodore VIC-II Color Analysis]] - by Pepto | ||
+ | * {{ : | ||
+ | |||
+ | ===== Graphics file formats ===== | ||
+ | |||
+ | * [[c64 grafix files specs list v0.03|C64 Graphics File Format Specs]] - by Groepaz | ||
+ | |||
+ | There is also a nice collection of file format info at AAY64: | ||
+ | |||
+ | * [[http:// | ||
+ | ===== Various VIC related ===== | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[Detect VIC Type]] - by Crossbow | ||
+ | * [[Detect PAL/NTSC]] - Various routines | ||
+ | * [[base: |
base/vic.txt · Last modified: 2020-04-12 18:25 by verz