Gr-O Mac OS

S e arch a n d se l ect yo u r cl a s s gr o u p f r o m t h e l is t b y d o ubl e-cl i ck in g o n t h e class n a m e. C l i ck the OK button o n t h e t o p lef t - h a n d c o r n e r. E n ter t h e s u b je c t o f y o u r e - m ail in t h e S u b j e c t: te xt b o x. List of 8-letter words containing the letters H, O, S and Y. There are 157 eight-letter words containing H, O, S and Y: ACOLYTHS ATHODYDS BILLYOHS. YOUNGISH YOUNGTHS YOUTHENS. Every word on this site can be used while playing scrabble. See other lists, that start with or end with letters of your choice.

Changes with 7.2.7 (2020-08-23)

Added shortcuts to toggle color drag modes in palette window.

Improvements to frame resize dialog concerning size definitions. The changes include percentage edits as well as a new adjustment button containing different predefined width/height adjustments.

Fix: When modifying a halftone pattern slot value in the paint mode settings and closing/starting PM again then it selected the dither pattern you had in your last session, but it did not load the individual slot settings. Instead it used the default values.

Fix: When using the hue slider in the square color selector pad and moving to the fare right position it turned the color to black.

Pipette options for “pick once” and “pick opacity”.
If enabled “pick once” returns to the previous tool after color pick up.
If enabled “right Ctrl picks opacity” picks opacity with alpha transparent projects.

Fix: Clicking minimize icon of PM directely when another app is active, left main window open.

Added name labels for color harmonies.

Added shortcut to toggle layer solo mode.

Fix: If you have layer effects in two projects that display each other then you could not load them again in PM. An endless internal loop occurred.

Fix: If a brush whose colours have been remapped gets resized using shift++ or shift+- its colours get reverted to the originals unremapped state.

Fix: Create animation from color cycling lost transparency.

Added option for TGA compression.

Added crop to selection feature in menu “Frame”.

Shortcut entry to send current brush to brush container.

Function to select everything that has the current foreground color in menu “Selection”.

Fix: Remove files from recent file lists that don’t exist anymore and remove duplicates.

Fix: When having full screen window and closing last project then it stays open leading to crash later.

Allow max pixel scale of 600 on export.

Fix: If a daily update check has been done and a new version is available then the corresponding “New Version available” button shows. If PM was restarted then the button did not show anymore until next day when a new update check was done.

Fix: Loading true color image improvements. Sort palette. White is first color. Select color 0 to be be transparent when using alpha transparency.

Fix: The function to hold Shift to lock the movement to an axis suddenly stopped working. Internally it is checked that only Shift and no other key is down. On some Systems a couple of extra keys like “Play”, “Kana”, “Kanji” are always “down” to enable certain special functions. Such keys are now ignored.

Changes with 7.2.6 (2020-04-26)

Fix: Random crash when closing project.

Fix: Loading an (older) tile map project could lead to project corruption.

Fix: Random error when using (e.g.) Ctrl + 1 to unzoom after opening/closing projects.

Increased max layers to 256.

New shortcuts for layer navigation: Move layer up / down, top / bottom, toggle layer lock.

Fix: Right mouse button tile erase not working in tile map pick place mode. When you have a tile as brush and place it with the right mouse button then a full tile erase should be done. This worked with indexed transparency but not with alpha transparency. An “action aborted” message appeared.

Improved keyboard shortcut management. Now keys like “Tab” can be used as well.

Fix: Licensing engine not working with UTF8 characters. Names with Asian characters have been displayed as ????

Free edition project management improvement. Due to a restriction to have two projects open at a time only, certain sample projects could not be loaded. It should be possible to load every existing project while creating a new project is only possible if you have only a single one open.

Fix: Different clipboard transfer glitches. Creating new project from clipboard did not use transparency if an image was copied to the clipboard that used indexed transparency. Getting data from clipboard as brush not working with clipboard image using alpha transparency.

Increased export scale max value to be 20.

Fix: Brush container could not be placed on second monitor. Always returned to top left corner of main window after startup.

Fix: Main window not maximizing again after minimizing all Apps using WinKey + D and switching back to Pro Motion.

More Shortcuts…
Toggle bucket isolated fill on and off
Toggle pen pressure sensitivity (known as ‘brush tip size’) on and off
Toggle brush pattern fill mode (technically, being able to cycle through fill modes on the fly)

Fix: Shortcut using F1 and any extra key opens help instead of when F1 pressed only.

Store option to display or hide home screen for next start up.

Fix: Export only plugins accessed even when only checked for supporting to read a file.

Fix: Outside border selection modification one pixel too small.

Fix: ESC not working with “Create Animation Window”. ESC now stops a running preview and closes the window otherwise.

Fix: App windows not disabled when no project active. If home screen is active the app windows could be used leading to different sorts of errors.

Stencil improved.
Stencil operations now stored in undo history.
Warning message if selection is to be changed while stencil auto update feature is enabled because this reverts the operation so that nothing would happen.
Initially “deselecting” a color must invert stencil first, automatically.

Added message if Windows Ransomware Protection blocks access to documents folder.

Added warning when trying to save alpha transparent image/animation with incompatible file types.

Improved overlay hint texts for the option icons in the layer window. There are a couple of icons in the layer window to show if alpha is enabled, stencil, global palettes and spare frame. Their text descriptions for when these options are active or inactive have been improved to make their state and function more clear to the user.

Added separate white color index for transparent pixels when loading alpha enabled images/animations. When image/animation files (e.g. png) where loaded then there was only a single white color used for fully transparent pixels and opaque white pixels at the same time. Now there is a separate white palette index for the transparent pixels.

Fix: Create project from clipboard contents not working correctly. With alpha enabled images the empty area was not correctly cleared. The palette was not taken/built from the image data but from the current project default.

When creating an alpha enabled project now color 0 is used as white and transparent instead of 255.

Fix: Errors in palette window when “alpha only” edit mode is enabled. If you clicked into the alpha palette then an error occurred. Also the vertical size of the alpha gray scale palette was wrong.

Changes with 7.2.5 (2020-03-20)

Drop indicator for dragging layers.

Added shortcus to toggle select/edit area in palette window.

Made F1 key to be available for other functions than help topic only.

Fix: Swap FG/BG color removed transparency pattern of the transparent color swatch.

Added shortcut slot to toggle pixel perfect drawing option. A concrete shortcut must be defined individually. There is no default.

Added functions to modify the current selection, see menu “Selection/Modify”. Grow, Shrink, Inside Border, Outside Border with given size and round or square shape

New function to directly shade a brush. New submenus Brush/Shade/Shade up, Brush/Shade/Shade down added. These functions take the colors of the brush and shade them like the multi shade paint mode.

Fix: Loading a third image in Free Edition led to an error.

Fix: Flipped gradients used wrong order after loading project.

Shortcuts to cycle through color palette rows. A concrete shortcut must be defined individually. There is no default.

Fix: Anti aliasing not working with pattern drawing.

Fix: Tile set export did not correctly remember file type and added two file type extensions. When you repeatedly exported a tile library and reused the previous name like “abc.png” then the extension “png” was added again.
Also when you saved as “PNG” then the next run pre-selected “TGA” as file type instead of using PNG again.

Fix: Swap FG/BG color removed transparency pattern of the transparent color swatch. If you had an alpha transparent project where the (fully) transparent color index is not “0”, you select this as drawing color and use the “flip fg/bg color button” then the color swatch did not show the transparency pattern anymore.

Fix: Random crash when opening gradient editor.

“Home screen” added with recent projects and files to load as well as news display.

When using mouse wheel to cycle through brushes in the container the selected brush is now brought into view area. It is now also in “selected” state.

When the currently selected tile changes then it is now made visible in the tile palette. The tile palette now scrolls to the tile position instead of leaving it out of view.

Changing selected layer with Shift + T now scrolls layer window to the position of the new active layer.

Fix: Undo/redo with single dot tool and paint mode “selection” not working. Also latest changes reverted when you switch to another tool.

Fix: Internal error when picking up tiles in alpha enabled project and moving to non-alpha project where tile index display is enabled.

Changes with 7.2.4 (2020-02-09)

Mouse wheel action to cycle through gradient colors + key shortcuts.

Fix: Random crashes when editing tile map based projects.

Fix: When toggling sync mode by key shortcut then brush preview was baked into the image and turned into tiles.

Fix: Mouse wheel not working in full screen mode.

Fix: Connected tile map projects problem when copying tile map projects. If you created a copy of the a tile map project file, e.g. with “Save Copy as” or by copy/paste in the file system then the connected project settings became wrong. The previous project was added as connected project to the new project file copy.

Fix: Invert selection clashed with stencil. When a stencil is active then Selection/Invert Selection inverted the stencil. This raised problems because the stencil might have been used for the initial selection. After that other selection modifications could have been made. When using the invert selection function then now the stencil definition is removed and the selection is inverted as is. To invert the stencil the invert stencil function in the palette editor must be used.

Fix: Brush alignment with single dot painting sometimes not working. The dot space definition was used a minimum distance, even if “Brush Size aligned” is active which sjould always use the brush size.

Fix: Modifying a mask while stencil auto update is enabled did not revert the change. If you had a stencil mask active and “stencil auto update” option enabled then you may not modify the mask, e.g. by drawing with paint mode “selection”. If you did then an error was displayed but the change was not reverted.

Fix: Sometimes an internal error occurred in palette editor when moving colors. After certain palette operations some function states are updated. Some involve checking if there is data in the clipboard. Opening the clipboard can raise an error. Windows sometimes refuses access to clipboard data randomly (probably due to security checking, virus scanning or something).

Fix: Palette edit allowed even if not all connected tile map projects are loaded.

Fix: Copied tile map projects interfered with each other. If you created a copy of a tile map file then internally a technical project id was copied as well. If you loaded both projects then both used the same id leading to weird effects and even destruction of the projects.

Fix: Brush magic wand cut pickup + undo not working.

Fix: Shade paint modes not working with alpha transparent brushes.

Fix: Some tile set operations always allowed though only valid when sync mode is enabled.

Fix: IFF animation files not loading. A ‘Not a valid IFF(Anim5) Animation!’ error occurred.

Fix: Pipette + Shift to select a color jumped to move/edit area of the palette window even when you wee currently in contrast/brightness area. Now it stays there.

Fix: Tile drag/drop not working when scrolling with mouse wheel. If you dragged a tile in the tile set and used the mouse wheel to scroll then the drop operation was ignored.

When creating to many new tiles, the operation is directly reverted if the user cancels. When creating too many tiles with a single operation (e.g. fill tool) then the user was asked if he wants to create so many individual tiles. If he says “no” now then the operation is reverted directly instead of letting the user hit undo.

Allow layer merge on brush pick up with tile map projects. This was disabled because merged multi layer tile data can’t be placed as tiles. But it can be used as new tiles and it is also useful when not in sync mode, so it’s up to the user to do the right thing instead if disabling that function.

Fix: Shortcuts to cycle through tiles not working correctly. If you used Shift + F and Shift + V to cycle through tiles with the brush then two problems appeared: They cycled to wrong direction (next vs. previous). With alpha transparent projects the brush was fully transparent showing no tile.

Fix: Import brush color dialog does not find matches if brush has transparent color. Some more tweaks:
Mark transparent color in project palette.
Auto map transparent brush color to project transparent color.
Display brush color details when hovering on them.

Fix: Color channel bits not considered when importing brush colors.

Fix: Get Brush (from clipboard) + certain functions reset to last pick up brush before applying the function

Fix: Getting 32Bit image data from clipboard can result in loosing colors even if no more that 256 are used

Changes with 7.2.3.1 (2019-11-25)

Fix: When having multiple projects open layers display did not update. This could even lead to crashes because of executing functions on wrong layers.

Fix: Mouse wheel not working in embedded windows mode.

Changes with 7.2.3 (2019-11-16)

Added typical layer handling functions to the Layers menu.

Fix: Mouse wheel using wrong operation. If a dialog was open and mouse wheel used then the underlying window sometimes executed its mouse wheel operation instead.

Transparent brush color can now be imported as well with the brush color import function (menu Colors/Import Colors from Brush). The transparent color (if any) is marked by some orange bar and placed at the end of all colors to be imported.

Fix: Different problems when importing data from Windows clipboard. Transparency was mixed up and sometimes “Paste Frame” did not work at all.

Prior to NG the Alt key was used as pipette option to replace a color you click on.
With NG this was changed so that Alt picks up opacity and Alt Gr is replace color mode. This was a mistake, because of two reasons:
Alt should have staid as it was and Alt Gr should have been added to pick up opacity.
Alt Gr does not even exist on all keyboards.
New approach:
Alt is used to replace the color again
Right(!) Ctrl key is now used for picking up opacity (Alt Gr does the same additionally).

Allow isometric angle locks with Shift when drawing straight lines or polygon lines.

Fix: Polygon tools didn’t capture mouse movement correctly. When leaving the canvas window the lines where interrupted.

Fix: Brush used wrong size when grabbed with freehand selection.

Fix: Some glitches with color palette selection (e.g. when selecting a palette in project creation window).
– the system searched all files in folder tree. This is now limited to 2 levels
– files that where 768 Bytes in size where incorrectly recognized as color palette

Fix: Error when using gradient color sort function in gradient editor

Fix: Clicking into PM with middle mouse button when comming from another app did a tool operation (e.g. drawing) instead of moving canvas when there is a pinned window.

With menu Edit/Insert Frame global layer palette is not deactivated anymore. Instead the layer palette is used and the frame pixels are remapped to it.

When turning a project into a tile map then it is automatically resized if it does not fit the tile size.

Fix: Import colors from brush reverted the brush the one that was pick up instead of the current one (e.g. imported from clipboard)

Changes with 7.2.2.2 (2019-10-06)

Fix: “Paste” menu entry in color palette window sometimes disabled even if there is paste-able data in the clipboard

Fix: Merging two layers on the layer stack not working. Contents of lower frame where removed.

Fix: Color remapping creates wrong colors when importing from true color (e.g. load true color images or paste from clipboard).

Changes with 7.2.2 (2019-09-15)

Fix: Inverse halftone gradient fill not working with gradient auto slots.

Fix: When drawing lines with symmetry then parts of the line end are not finally drawn.

Fix: Inaccuracy with multi point symmetry modes. With the multi point dots the symmetry positions are sometimes wrong, especially with larger zoom values and when moving the mouse cursor at the edges of a zoomed pixel. In that case the calculation suffers from rounding effects leading to misplaced dots.

Playback limit modifications now recorded in undo history.

Fix: Problems in 3D animation dialog:
If you enlarged the frame range and execute rendering then the last frame that was already there before the enlargement is erased.
Using “B” for acquiring the last brush stamp position was sometimes not working correctly.
Missing or doubled brush pixel lines when doing a straight movement without rotation at z=0 form outside screen on the left to outside screen on the right.

Internal color management and color calculations reworked.

Fix: Timeline selection with Shift sometimes not working correctly. Starting frame was removed from selection.

Fix: Internal palette generation corrected to match default palette.

You can now define a frame range when exporting animation data.

Added filter option to fill pattern management dialog to only show patterns that match the current gradient type.

Layer based selections:
Ctrl +… selection actions for layers when clicking on eye-icon
no other modifier key = set
Shift = add
Alt = subtract
Shift + Alt = logical “and”
Right Mouse button = remove selection

Single color editor reworked:
– RGB square, RYB/LCh/Lab color wheels and edits
– Color harmonies and scales
– individual scale editor to easily create color ramps
– screen color picker

Removed HSL/HSB preferences. With the new color editor offering different color spaces the option to use HSL over HSB has been removed from the preferences. The color palette window now always uses HSL. HSB is available in the single color edit dialog.

Compatibility tab in the preferences now always visible to e.g. define windows being “inside” the main window not only when running on MacOS or Linux.

Fix: AnimBrush could not be placed at outside top/left area. Also project frame now does not flip to the next one when placing an AnimBrush.

Added menu entries to the context menu in the color palette window (edit area)
– reduce colors
– remove unused colors
– remove duplicate colors

Fix: Some color changes in palette editor did not update paint color slots. If e.g. gray or invert color have been used and one of the affected colors where selected as first/second drawing color then their slots in the main form have not been updated.

Option “Auto select Color” in the dialog menu of the palette editor window is now “Select Paint Colors in Edit/Move Area” and also selects RMB color instead of opening context menu.

In the palette window where you can edit contrast, brightness and saturation gray colors can be changed concerning saturation turning them into colors.

Reworked color sort functions
– made color sort functions to be always available with any selection
– sort from bright to dark
– use multiple sort levels where useful
– let transparent color be untouched when sorting colors

Fix: color palette handling, paint modes, color matching algorithms reworked and glitches removed
– using CIE LAB color remapping
– paint modes used transparent color index if it’s best matching to the color to find
– transparent color problem with multi layer merges

Fix: when saving as PNG24 (sprite sheet) the layer merge used 256 color reduction.

Changes with 7.2.1 (2019-05-05)

Limit color remapping to masked area.

Shortcut option for 2×2 brushes.

Fix: The pen pressure range settings might become “0 to 0” after start up disabling all pressure based functions.

Fix: Layer merging still using wrong transparent color in merge result.

New functions as “hidden” shortcuts Alt Gr + O, Alt Gr + P that rotate the frames of the current layer, either the ones that are selected as playback limit or those that are selected on the time line.

Added preference settings to change transparency pattern size.

Fix: Cancelling layer settings editing led to unsaved changes flag being set to the project.

Fix:When you dragged a tile in the tile window but you start at the area where there are no tiles (gray dashed area at the end of the tiles) then
it destroyed the destination tile leading to different crashes later on.

Fix: Crash using shortcut Alt + D to show tile indices when not having a tile map project.

Fix: Different glitches with “Create from Modification History”.

Allow color sort in color palette with single color selection if the colors have a consecutive range.

Fix: Exporting merged mulit layer image/animation leds to an opaque image although there are transparent parts.

Fix: Crash when exporting scaled image/animation and enabled spare frame.

Fix: Crash when moving layer FX out of range in the effects list.

Fix: Pixel upscaling on export not working with alpha transparency.

Fix: Random crash when using quick mask stencil.

Fix: Preview of “Create Animation” could not be stopped. Click on Preview button now stops. Escape does not close the dialog anymore.

Fix: Undo/redo of frame scrolling down not working. Redo moved frame to the right instead of to the top.

Changes with 7.2.0 (2019-04-05)

Added “limit” option to the light table to limit rendering light table frames to the selected animation frames.

Fix: Merging layers using effects or opacity looses transparent color.

Real time paint mode usage with brush drawing tools.

Fix: Pixel precise drawing not working with Stereo drawing.

Fix: Ramp RGB/HSV did not respect channel bit depth.

Follow Preview option for magnify window.

Functions added to the palette editor to remap colors to a given color selection.

Some Microsoft ransomware protection denies access to the user documents folder. If this is the case then a special message is shown.

Added new tile index display mode for tiles that use mirroring.

Fix: File I/O plugin behavior not as described in the docs.

Scale and pixel size options now offered on file export (image and animation).

Random playback option for AnimBrushes added.

Fix: Prevent shortcut execution when application is not fully loaded.

Fix: Leaving ‘pick stencil from canvas’ with line mode shortcut changes the line mode

Re-integrated the “Create from Undo Buffer” function that was available. Now called “Create from Modification History”

Fix: When using two spin edit fields on the same dialog that have a track bar then an exception was sometimes raised when the dialog closes.

Fix: Pinned windows disappeared behind unpinned magnify windows (e.g. when using Alt key).

Swap Zoom Level now zooms at mouse position when switching to a larger zoom value and otherwise it centers the view position.

Mouse wheel brush size change now uses one pixel steps.

Zoom function (e.g. magnify and mouse wheel zoom) now keep the pixel under cursor aligned.

Scrollbar handle sizes are made dynamic, depending on the canvas display contents in magnify and animation window.

Fix: GIFs having different transparent colors per frame ended up with a wrong overall transparent color after being loaded. Such animations are now set to be opaque.

Fix: E-key selection and undo did not work.

Re-included image file names per frame as it was in V6.5.

When using flip or sort functions in palette window and option “Apply color Movements to Pixels” is enabled then the pixels are remapped automatically.

Fix: After moving selected colors in the color palette a following sort operation is applied to the original selection not to the destination after move.

Fix: Pick up brush, turn single color, change color, resize –> first selected color was used again instead of the latest one.

Fix: When creating an alpha transparent project, color index 255 must be used as white and transparent.

Fix: Pattern drawing and stereo drawing must deny each other.

Paint mode toggle added. If you hit a paint mode shortcut twice then it toggles back to the previously selected paint mode.

Fix: frame resize dialog did not allow width/height below 4

Fix: In alpha plane only edit mode, transparency pickup with pipette did not work.

Fix: In alpha plane only edit mode, value replacement with pipette + undo did not work.

Right mouse button or double click on tool icon now shows the corresponding tool settings.

Shortcut added to simulate right mouse button. For pen users it’s useful to hold a key (“P” by default) and draw to apply the second color while using the pen normally on the tablet.

When defining colors for a gradient, the color selection mode button was not down (initially it’s single color selection).

When adding colors to a gradient making it incompatible for color cycling, this option is silently deactivated instead of showing an error when you hit ok.

Add auto close option to freehand pickup.

Solo layer mode toggle. When holding Alt and clicking on the visibility icon (eye) of a layer then all other visible layers become invisible. Doing again will make them become visible again.
If the layer that was enabled for this solo mode is invisible at the time you hold Alt and click on it then it turns visible and doing it again will make it invisible again.

Added GIMP gpl palette file format support.

Fix: the animation preview window is considered optional, but there was a problem that when switched off and magnify window was enabled to display anim playback it still popped up. When the magnify window plays back then there is no need to auto pop up the animation window as well.

Added “Save Copy as” feature to project file menu. It just creates a detached copy for the current project. It leaves the project filename untouched and also does not reset the “unsaved changes flag”.

Fix: If you right clicked on a brush container already having a brush and cancelling after overwrite prompt an out of memory error appeared.

Fix: Cycling through brushes with shift + mouse wheel does not show brush when tile map project is used.

Mouse wheel now scrolls window contents that is under the cursor no matter if it’s focused or not, as long as it supports wheel scrolling.

Fix: Pipette did not switch back to previous tool when picking up transparency in alpha transparent project.

Redefinition of coordinate displays. The coordinate displays top left, center, bottom right showed the bounding rectangle and its center of the operation either of a single brush dot, line or rectangle etc. .
With single dots this is fine but not when drawing primitives. With these the display should display the brush grip position for the start and end of the drawing operation and the center of it.

Fix: sometimes an exception occurs when drawing a gradient direction line.

Add consistent filling with filled shape tools and real time preview. All fill tools have been reworked to show real time preview of gradient and brush filling. This is also supported with pattern drawing.
Some problems have been fixed along with the rework like
– can’t undo gradients drawn in selection mode
– fill mode “outline” not working with paint mode “selection”
– If paint mode selection is enabled and fill tool is used then the operation is not undoable
– Inline contour gradient direction inverted
– cancelling Fill shape during creation lead to non-undable operation

Use arbitrary grey scale image as halftone and transition patterns.
– pattern management system in paint mode setting and filled shape settings
– new pattern preview system in gradient editor

Fix: having all layers invisible and using canvas mover crashed.

Store animation as single image file export settings with project: folder, prefix, start index, file type are now stored with the project file.

Shortcut entries to switch halftone pattern slot (no shortcuts set by default).

Added new mouse wheel option to switch halftone slot.

Added new window arrangement option: “Set default layout”.

“Arrange Windows” function now arranges the windows based on their current position instead of always using a default layout. The user can roughly place the windows horizontally and vertically ordered an they are placed accordingly into to the three areas/lanes left, middle, right.

Fix: Holding flip frame keys (“1”, “2”) led to slow animation and frame switching lags.

Fix: Prev/next frame functions do not respect playback limit

Fix: Crash when setting a Lock grid dimension to 0.

Fix: Mirror and rotate always use latest pickup brush.

Fix: Pen opacity edit fields where not disabled for non alpha transparent projects.

Fix: Dark skin scrollbars stuck in place after arrange windows.

Fix: Tile set window placed on a second monitor displayed on the first monitor after new program start

Fix: Pen settings did not update usable options on project switch

Fix: Flicker in main window at startup.

Fix: Create project from clipboard led to wrong playback limit.

Fix: Random crash when closing project.

Fix: Frame resize with resample + undo led to wrong transparent colors.

Fix: Random crash when saving project with layer effects

Fix: Remapping colors should not change a transparent color.

Fix: When there is an open action in the palette window, moving the mouse outside now applies the operation

Fix: color selection rendered in alpha edit mode

Fix: ensure changes are always applied (leaving window, closing window, changing tab)

Store layer flattening options for image/animation file export with project so that there is no need to confirm them next time you save after reloading the project.

Added tool option to color picker to define if only the current layer should be used or all/current and below.

Added extra options for mouse wheel for Shift, Ctrl, Alt keys.

New layer effect “Re-apply Color Palette”. This enables you to apply other color palettes to existing pixels or shift color ranges to apply different color ramps.

Fix: hold E -> click without movement did not update selection mask rendering.

Fix: single pixel brush does not activate last used brush draw tool

Fix: rectangles did respect lock grid Keep Cell Boundaries option (which is now called “Inbound”).

Reworking grid settings and algorithms and introducing “inbound” option that creates objects within grid cells.

Extensive rework of the tile mapping engine. Most important changes:

  • with tile map projects transparent colors per layer are not useful and therefore not allowed anymore
  • tile map integrity check is now an official function, but only available by shortcut (Shift+Ctrl+i)
  • new workflow options for modifying tiles:
    • edit empty Tile: Allow new Tiles, Merge new Tiles, Reuse matching Tiles
    • edit present tile: Modify existing Tiles, Auto place matching Tiles, Duplicate & Modify Tiles
  • switching transparency mode alhpha vs. indexed now possible with tile map projects
  • the order of connected projects can now be changed with drag and drop.
  • if a project is saved having connected projects then they are saved as well if they have changes.
  • added tile set display settings dialog in the tile set window. There you can define a fixed number of tiles to be displayed per row as well as the marks for empty and duplicate tiles.
  • context popup functions in tile set window: Insert Duplicate, Join Duplicates
  • new tile set import features incl. append, overwrite and color handling options
  • improved export features for tile set and tile map data
  • flattening FX and layer merge now allowed for tile mapping projects. Requires sync mode to be off.
  • tile set windo completely reworked to support selection display, better drag/drop, delete/insert shortcuts, better scaling etc. .
  • tile index display has now differnt options which will also color indices based on the selected display mode, e.g. tiles selected as brush are emphasized, duplicates etc.
  • tile drawing is automatically updated over tiles incl. merging as the seamles pattern drawing does
  • in pick/place mode the brush coordinates now use tile coordinates
  • allowing color movement and remapping with tile mapping sync mode disabled
  • cycle tiles by mouse wheel (see “control” section in paint & tool settings dialog)
  • improved connected projects management
  • remove duplicate and unused colors now available with tile maps
  • single image layers can now be used as tile maps
  • tools like filed shapes or fill now automatically place aligned tiles when using “Pick/Place” mode
  • info displays (tile coordinates, in-tile position, mirror options…)
  • fixed a couple of problems with undo/redo
  • Construct 2/3 JSON tile map export

Changes with 7.1.8 (2018-08-26)

Mac OS and Linux version based on Wine including a couple of compatibility changes that where required to be more compatible with Wine.

New import functions for colors. Theer is now an extended dialog when using Coors/Import from Brush to place and arrange colors to be imported from Brush to the current project.

Tweaks: Removed some warning dialogs. Upated Tips. “Help/Support” menu entry. Changed UI fonts.

Dark Skin now available for Free Edition.

Best way to clean up macbook. Plugins now available for Free Edition.

Fix: Smear paint mode placed wrong pixels when doing multiple strokes.

Fix: Different improvements concerning pinned Windows.

Fix: Random crashes when switching to full screen mode.

Fix: Crash when using the fill tool off the canvas in tile map editing.

Fix: Crash with “edit alpha only”. Sometimes there was a crash with alpha transparent projects when switch on alpha plane edit mode.

Fix: Shortcut for real time dither/halftone did not work anymore.

Fix: Single image layer erased when defining number of animation frames.

Tweak: In palette window keep selection when switching edit areas.

Fix: Default selection mode in the color palette editor not correctly preselected.

Quick ramp key “R” in color palette window now creates vertical ramps, too.

Fix: Using lines and curves for 3d stereo no longer worked with 3D offsets changes.

Fix: The fill tool did not fill with a dither pattern when dither was enabled.

Changes with 7.1.7 (2018-05-06)

Fix: AnimBrush playback skipped frames with continuous drawing and placing single dots

Fix: Initial AnimBrush pick up creates empty 1×1 brush if tablet is connected

Fix: Multi layer image/animation not preserving transparency correctly when storing as GIF/PNG

Fix: Grip position not reset when standard brush tip is set by brush tip size change (slider or edit field)

Fix: License holder name displayed wrong with UTF-8 characters

Fix: The automatic horizontal or vertical lock that is enabled when holding Shift sometimes drew the first dot not precisely but for one pixel aside.

Fix: Rotating a standard brush was not possible. It reverted to the latest picked up brush and rotated this one.

Fix: Using Shift + S when brush is on canvas it was stored with the image.

Fix: Phantom pixels appearing on the canvas occasionally.
– loading an image with keyboard shortcuts
– switching between file browser and PM with Alt-Tab and loading a project from the file explorer with double click
– when closing a project with Alt + F4

Fix: When the current layer transparent color was selected as foreground and background color and picking up a portion as brush then selecting a standard brush led to a fully transparent one which was not usable.

Fix: Restore brush function (Shift + B) did not rewind an AnimBrush to its first frame.

Fix: Error in tile palette window when switching between tile map projects and normal projects.

Fix: There where different regular internal errors on some systems. Fixed based on user feedback.

Fix: When all layers are turned into single image layers and then deleting a layer raised an internal error.

Fix: It was possible to create a project with more than 32768 pixels width leading to program faults.

Fix: Random crash when using brush size slider and closing program.

Fix: When using the transparency edit field in the layer window, then the edit field was always reactivated when you re-enter the window, even if you olny click on a layer. When using keys 1/2 to switch frames you accidentally changed the opacity value then.
Additionally it was possible to enter huge numbers leading to a failure.

Fix: If layers window and brush container where not visible and window rearrange function was used then an error occurred.

Changes with 7.1.6 (2018-02-14)

Raised the 2GB memory limit to 4GB.

Fix: Mouse pointer icon not always immediately changing when using keyboard shortcuts to switch tool.

Fix: Remove alpha plane made layers opaque.

Fix: Filled polygon with auto close did not fill bottom and right edges.

Tweak: Inconsistent insertion behavior for color slots and auto slots in gradient editor. Now the slot that was used before the insertion is always active after insertion.

Fix: Color palette select single colors incorrect tool tip.

Tweak: Canvas drawing operations are now refused on invisible layers.

Fix: When tool settings change the tool window was activated leading to some flickering.

Fix: Random crash when closing last project.

Changes with 7.1.5 (2018-01-14)

New Option in timeline to switch to the frame where the playback was stopped

Some magnify window options enabled by default: Show Animation Playback, Pan around Canvas.

Always apply animation playback in preview window even if playback in magnify window is enabled as well.

Fix: Storing file associations not working on some systems. An error message occurred.

Fix: Symmetry sometimes not working correctly when drawing fast strokes.

Fix: Light table settings crashing under Win7 with dark UI

Changes with 7.1.4 (2018-01-01)

Fix: Mouse wheel brush size change restored last picked up brush although a round brush was selected before.

Fix: Pipette tool left temporary line on canvas when after using the line tool.

Fix: Loading true color image and reducing colors not functioning when you use “current palette” option.

Fix: Brush size slider suddenly disappeared when sliding.

Fix: Moving colors in the palette editor not working with tile map projects if sync mode is off.

Changes with 7.1.3 (2017-12-16)

Fix: If the tile library window is on second monitor all dialogs opened there as well.

Fix: Creation of project from a frame stored in the clipboard selected wrong transparent color with alpha transparent image data.

Changes with tile map engine
– Added warning if more than 200 tiles are created at once with modify/create tile map edit mode.
– When using the tile pick/place mode then the paint mode replace is activated because replacing the bitmap data by the brush pixels is required. But instead of switching to this paint mode it is used internally now to prevent confusion.
– Added tile index and orientation info to the information panel
– Shortcut to switch between tile map modes (create/place tiles)
– Duplicate mode now also works in modify/create tile map edit mode
– In modify/create tile map edit mode drawing on empty tiles now always creates new ones and does not use tiles already present in the library
– Fix: Tile mirroring options where ignored when creating a new tile project
– Option that shows number of tiles in tile map project on the canvas
– Fix: Tile library window did not show all tiles vertically. Some at the end might have been cut off in certain situations
– Added option to the tile library window to toggle if picking up a tile from the library should activate the pick/place mode
– Tile mapping duplicate and sync option now available in the keyboard shortcut prefs
– Tile drawing limit. Hold “I” to enter tile selection tool. This will select a tile area with LMB and unselect with RMB.
– Store tile library window open state
– Allow saving tile map project with sync mode off
– No automatic switch to “Pick/Place Tiles” or “Modify/Create” after brush pickup anymore
– Pick up single tile with a single click when using Pick/Place Tiles mode on a tile map project
– Ensure drawing grid to be visible when creating a new tile map project.
– Allowing to cut tiles with right mouse button brush pick up

Fix: Creating a bitmap font project does not work

Fix: Delta keys not working with drawing lines and curves stereo drawing

Fix: Slow or no brush re-display on Win10 fall creators update when switching frames. MS seemed to have changed mouse refresh functions.

Fix: Startup speed improvements. Especially Win 10 Fall Creators update has some slower gfx functions. Workaround was added.

Fix: Quantization settings where ignored when loading animation from single images.

Fix: Onion Skinning not showing next frames as expected when using “Key Frames only” if there was no previous key frame as well.

Tweak: Mousewheel control “switch frames” now cycles instead of stopping at the and or the start of the animation.

Changes with 7.1.2 (2017-10-13)

Tweak: In palette editor the option “Apply Color Movement to Pixels” now is not used when using the copy mode. Because when copying colors the pixels should still use the original and not the copy.

Fix: Palette issues after compacting unused or duplicate colors with tile map projects.

Fix: Tile Map projects and moving/remapping colors in the palette caused problems because the tile library data was not updated.

Fix: When saving a tile map project with the last tile being an empty duplicate of the 0-tile then crashes appear after reload.

Tweak: If a tile turns empty then the tile map entry was not reset to be the zero tile which required to use “optimize” to get rid of those empty tiles. Now if a tile turns empty then it is replaced by the zero-tile in the tile map.

Fix: Crash when undoing right after creating a new tilemap project.

Fix: On some systems there’s a crash on startup due to a incompatible wintab32.dll.

Fix: Cannot move around the canvas anymore with cursor keys when drawing.

Changes with 7.1.1 (2017-09-25)

There are a lot of changes and fixes. Too much to list all in very detail. Here is an excerpt.

Fix: Symmetry center coordinates inverted with Multi Dot Mirror/Cycle

Fix: Crash when turning single animation layer into single image (global color palette disabled)

Fix: When having Tile Mapping Sync mode off you can accidentally close project with unsaved changes

New Timeline with selection drag & drop etc. .

Fix: Polyline tool did not automatically finish when first dot was hit

Added auto-close option to filled polygon / contour tool.

Double size option to increase size of mouse cursors.

Fix: Text brush creation preview not working when using background color

Allow palette ramps with rectangular color selection in color palette editor. This way also vertical gradients can be created.

New option at palette editor to auto commit color movement.

Fix: Circle with N dots and AnimPainting not working with small circles.

Fix: Busy-cursor after brush rotate.

Fix: N-dots circle not working correctly. With higher N-values the where not placed correctly along the circle outline.

Brightness calculation for sorting and gray scale conversion improvement to better match the perceived brightness of a color.

Remap frames to gradient.

Fix: Layer effect “display other project” did not relocate projects when moved

New window to host different settings for quick access: tool options, paint mode and dither settings, lock grid, symmetry, pen pressure settings

Some quick indicicons moved form main window to layers (spare frame, alpha mode…)

Dark UI skin.

Layer blend modes + opacity at layers window.

Tweak: Layer lock icon is now a button to toggle directly at the layer

New color constraints engine to support error detection for legit hardware systems.

Option to use HSL color scheme instead of HSB.

Color palette generation tool to create colored ramps.

New project creation workflows with preset management.

Fix: Brush resize sometimes not working as well as Shear/Bend

Fix: Picked up brush is not restored when you select a standard brush tip and use Shift + B afterwards

Paint mode values (% scales) can now be edited directly at the color selector area.

Brush tip setting moved to color selectors area.

Transparency mode selection for brush pickup.

Color contrast algorithm in the palette editor renewed to have better results.

Changes with 7.0.10 (2017-06-05)

Fix: New installer software because the previous one did not install if you have more that 2TB free space on the traget drive.

Fix: Hex-Edit in palette window was not usable with “c” because it executed the shortcut of quick copy instead of typing a “c”

Fix: Sometimes the brush did not paint or even a crash appears. It was connected to disabling pen pressure brush size option.

Tweak: Added shortcut settings to clear and invert stencil

Fix: Shift + mouse move did not always lock the correct movement direction.

Changes with 7.0.9 (2017-05-07)

Fix: When there is no gradient that is active for color cycling then animation/create from color cycling crashed.

Fix: Mouse wheel didn’t scroll tile library when the tile library window was over brush container or layers list windows.

Fix: Crash when invoking ‘Print…’ from menu without any open project.

Tweak: Gradient reordering via drag & drop. Resizeable gradient list windows. Speed improvements concerning gradient list display when switching projects.

Fix: When using pipette tool with double click on the canvas then the color change requester opens. After that, using a drawing tool immediately used it actively on the canvas as if the mouse button was pressed.

Fix: AnimBrush “rewind after drawing” option was not working correctly. The rewind was also done if deactivated.

Fix: Curve tool did not work correctly with AnimBrush.

Fix: Crash when undoing the creation of a 3D animation on a new project with single frame.

Fix: Project files could not be loaded that had a mask and where resized before being stored. The mask was saved with a wrong size sometimes leading to weird effects when loading again.

Fix: Slow mouse wheel scrolling in select gradient window and gradient management.

Tweak: Allow closing a project when animation/color cycling is still running.

Fix: Temporary ‘Move canvas’ tool did not deactivate in full screen mode when releasing space bar.

Fix: Copy/Paste multiple frames dialog allowed to enter “0” for frame numbers leading to an error.

Menu entry File/Animation/Append Image… removed because File/Animation/Import Image… does the job.

Fix: Second tile map layer destroyed tiles if the first layer was not empty when adding a new layer

Changes with 7.0.8.1 (2017-03-18)

Fix: Crash when loading a tile map project with multiple layers.

Changes with 7.0.8 (2017-03-05)

Tweak: The “New Project” dialog should enable transparent project by default.

Fix: Store/reload ‘Allow Display Below 1:1’ tickbox setting for full screen mode.

Gr-o Mac Os Update

Tweak: If a layer has a transparent color then “clear” should use that transparent color instead of the current 2nd color.

Gromacs -f

Tweak: Store selected layer index with project and activate on reload.

Tweak: Earlier close with polygon tools. Polygon (brush pickup or draw tool) automatically closes when setting a dot 3 pixels near to the starting point.

Fix: Tile mapping “Remove duplicate Tiles” menu entry was not disabled in non-tilemap projects.

Tweak: adding trackbar editor to several number edit fields.

Fix: Harmless ‘External error’ on startup on some systems when using the Free Edition.

Tweak: Do not allow lock grid and symmetry enabled because this does not make sense and also is not always working.

Feature: Support for drawing tablets. There are pen options to use pressure for:

  • Brush tip size
  • Brush scaling
  • Real time dithering
  • Gradient with dithering
  • Paint mode scale for Brighten, Translucent, Saturation, Hue, Shade, Multi Shade and Halftone
  • AnimBrush frame switch
  • Alpha transparency (opacity value)

The eraser can be used as well for second color/inverse operations or erase.

Feature: Allow for circles with even width and height pixel size for non-centered circle drawing.

Tweak: Centered brush grip is now pixel perfect for brushes with even width or height. Before the brush was half pixel out of center.

Fix: Right click on empty tile areas in the tile library lead to an internal error.

Fix: Error at startup with CrossOver 16.1

Fix: Crash when using tile duplicate mode when placing tiles and using undo later on.

Changes with 7.0.7 (2017-02-05)

Fix: Brush pickup tools did not contain the subsymbol that indicates a tool group.

Fix: Light table did not work in full screen mode

Fix: Color slot shows transparency pattern even if the current layer has a different transparent color.

Fix: Shortcut “D” did not activate Continuous Drawing when “cycle grouped tools…” in the prefs was switched off.

Fix: Crash in tile library palette window if there are duplicated tiles and the window has a certain size.

Tweak: Stay on selected palette editor page when picking up color.

Fix: Double click on empty tile (dashed area) in tile library leads to an error

Fix: Crash when creating first project from clipboard data.

Fix: True color sprite sheet saves wrong when having more than one row.

Fix: Flatten to background option could not be removed when storing as single layer and display of background color was switched off. Example: You had set up displaying a background color on the layer stack. You save the file as sprite sheet (e.g. PNG) and select “flatten to background color”. Then you switch off the background color in the layer stack and save again (even with “save as”). Still the background color is used silently instead of creating a transparent image.

Changes with 7.0.6 (2016-12-26)

Fix: Symmetry drawing caused brush artifacts left on the canvase when used with pattern drawing.

Fix: Remap brush to gradient sometimes introduced wrong transparency to the brush.

Tweak: when using “paste” (Ctrl + C/V) in palette editor then switch cursor to “ok”-shape

Tweak: Shortcuts for animation playback can toggle playback and stop now.

Tweak: Automatically switching to ‘Edit Stencil Mask’ when invoking ‘Quick selection’ (E) and reselect previously active area when leaving quick selection

Fix: Undo was not working AnimPainting (hold ALT and draw).

Fix: When using “keep cell boundaries” on a grid that is not aligned to 0x0 but e.g. 5×5 then drawing a line from lower right to top left snapped to wrong positions.

Tweak: “tile palette” for tile map projects consequently renamed to be “tile library”

‘Layer modification settings’ of menu Layers removed. In the scroll submenu you can now decide which layers to scroll. The operation of “Flip” of menu “Frame” was replaced by the operation from “Flip Frames…” of menu “Animation”. So there will open a requester asking for frame range and layer settings now.

Fix: There was a slight brush distorted when creating 3D animations.

Fix: When switching from two displays back to one from time to time then some dialogs have been displayed outside the visible area.

Tweak: Tile library window now has a vertical scrollbar only and supports mouse wheel and auto track.

Tweak: Tile mapping settings window is now resizeable

Fix: Tile zoom window hides behind tile library window when opening and closing a modal dialog.

Fix: Brush container did not work correctly with saved window positon (alternative).

Fix: Top level windows have been still weird when switching between applications.

Fix: Crash with vertical line contour gradient on small areas.

Fix: Layer effect “display other project” crashed when using current project.

Fix: File drag drop not working when splash screen is switched off.

Tabs are now used in the brush container to select between global and project brush container.

Tabs are now used in the palette window to select between color selection and extended edit modes.

Added new “Inline Contour Gradient” fill mode. It fills the shape with colors of the gradient from outside in.

Changes with 7.0.5 (2016-11-20)

Paint mode “shade” has been slowed down to only apply a single shade step until the mouse button is released. Re-factoring of the brush container:

  • dynamically add slots without having a full set predefined
  • selection of multiple slots + drag/drop, copy, paste, delete…
  • background definition
  • slot size definition
  • auto slot alignment to have only a vertical scrollbar for faster navigation
  • auto zoom
  • animated brush indicator

Decoupled lock grid and symmetry settings to have separate tool box icons and settings dialog.

Added X- and Y-Mirroring to the symmetry tool.

Lock grid can now display the corresponding grid lines by option.

Toggle for symmetry mode so that symmetry can lie between 2 pixels.

Fix: mirror settings not working when creating tile map from image.

Undo for frame speed settings.

Fix: Create animation (3D) did not work with alpha transparent brushes.

Fix: Strange behavior of paint mode settings edit fields when entering numbers.

Palette editor changes:

  • improved palette entry selection/move with single entries
  • enabled color ramp in single color selection mode
  • new selection visualization
  • when moving colors then the corresponding pixels are moved too by option which
  • instead of auto-cancel do auto-ok when an operation is in progress and the mouse leaves the window is a better approach than the auto remap option

Gromacs -f

Fix: Crash when File / Load Animation… with certain avi files.

Black jack gratis. Letting the main tool key only cycle through tools that have no shortcut defined.

Fix: Fix Background stored the visible brush when using keyboard shortcut.

Moved File/Recent Files menu below File/Project Settings

Fix: CTRL based shortcuts sometimes leave the pipette active.

Changes with 7.0.4 (2016-07-17)

Tweak: Improved filter with keyboard settings to also search for keys like “Ctrl + A”.

Update information feature.

Tweak: Left click on selected tool brings settings window on top. Useful for when using pinned windows.

Keyboard shortcut settings have been moved to a separate (larger) settings dialog.

Switch to display or hide light table layers in magnify and animation window separately.

Tool cycling (e.g. “B” for brush pickup tools or “V” for lines) can now be disabled in the preferences.

Fix: Changes in connected tile map projects did not trigger the “unsaved changes” flag which led to inconsistent tile data.

You can now define a shortcut for every single line tool.

Tweak: User folder is used as initial default for save/load dialog instead of the app folder.

Fix: Symmetry “place center” function not correctly working with tile maps.

Tweak: Symmetry center is now project center by default.

Tweak: Save scroll frame settings for next restart (menu Frame/Scroll/Scroll current Frame only).

Fix: Crash when enabling sync mode (tile mapping).

Fix: Crash when using paste frame(s) function with position offset.

Changes with 7.0.3.1 (2016-06-19)

Fix: Adding layer not working with tile map projects.

Changes with 7.0.3 (2016-03-22)

Tweak: Improving quick mask/stencil selection (E key) to also work on empty mask/stencil when using right mouse button to remove selection area or stencil mask colors.

Fix: Crash when creating a tile map project from an image with alpha plane and using tile map data export function.

Fix: Spare frame is enabled with new projects although being empty.

Feature: Layer effects are now availabe for free edition.

Feature: Layer effect “Display other project” was extended to repeat the project frame horizontally and/or vertically to apply endless tiling. See effect settings.

Feature: Layer effect “Display other project” was extended to have a dynamic x/y offset depending on the frame index displayed for the master project. This way you can apply automatic scrolling of external project display while animating the master project. This can be used for (e.g.) parallax effects like this where every parallax level is a separate project displayed with a master project’s layer:
See effect settings.

Fix: Layer flattening on file export glitched under certain conditions leading to missing image data.

Feature: Quick operations (copy, swap, ramp) for RGB/HSB tab added in palette editor:

Fix: Playback buttons did not allow switching between play modes directly without hitting stop before.

Fix: Single image layer disabled for tile map projects because it is not supported yet and leads to bad side effects.

Fix: “Layer effect “Display other project”‘s “on top” setting did not work correctly.

Fix: Animation Window not updated in full-screen view.

Feature: Modify color channel bit depth now undoable. Changes can now also be applied without changing channel bit values to re-format a palette that has been loaded into the project.

Fix: Lock grid height could not be set to “1” anymore.

Fix: Crash when using “duplicate layer” function on a tile map project layer.

Feature: It is now possible to have both PM NG and PM 6.5 open at the same time.

Fix: Single image layers have been cleared when inserting or copying frames.

Fix: Crash on exit happening sometimes on CrossOver (Mac)

Tweak: Automatic activation of web color edit in onscreen palette is now an option.

Tweak: Added default keyboard shortcuts for colour reduction functions (menu Colors).

Major changes from 6.5 to Release 7.0.2 (2016-02-17)

Gr-O Mac OS

(Only major changes are mentioned. Please check the Free Edition to play with Pro Motion NG when you are used to V6.5 yet. It will give you a better impression about the changes.)

All new layer engine with lock layer, merging, layer effects (stroke, display other project), duplicate etc.

Key frame settings (color/title).

New light table system.

New gradient engine including auto slots.

Pixel perfect drawing to remove smeared pixels/jaggies when drawing freehand with single pixel brush.

Redone Copy/Paste of multiple frames.

Improved edge line displays/cross hairs for canvas tools like brush pickup, filed polygon etc.

Support of Ctrl-C/Ctrl-V in palette editor (RGB/HSB views).

Option to have a pan around the canvas to be able to move corners to the middle of the window.

New color edit dialog with color preset slots.

Stereo drawing (experimental).

Free Edition with some features switched off.

Lots of UI changes incl. better Windows 10 compatibility.

Lots of smaller tweaks and fixes.

The ATARI 400/600/800/1200/1400 home computers are some of the most impressive graphics machines available at prices under $1000. Each of these very special machines, in addition to containing a 6502B microprocessor that runs at nearly twice the speed of many competing computers, also contains a number of custom hardware chips. One of these is a separate graphics microprocessor called ANTIC. These powerful chips free the 6502B to do what it was designed to do, calculate.

The computer was built to be extremely flexible with multiple graphics modes, redefinable character sets, indirect color registers, player-missile graphics, collision registers, display list interrupts, fine scrolling, and a built-in sound generator. These features give a polished, smooth, colorful look to the display, almost an arcade look. The effect isn't a coincidence, for the computer is nearly a clone of the hardware used in some of Atari's arcade machines like Missile Command.

Skilled Assembly language programmers can harness many of the Atari's capabilities, but less skilled or even beginning programmers may find the machine's flexiblity downright intimidating. Atari BASIC limits the programmer's choices, but it also eliminates much of the error prone graphics initialization that might produce wacky displays. Fortunately, capabilities like player-missile graphics and four-voice sound can still be accessed by PEEKing and POKEing to the machine's hardware addresses.

Most computers limit their graphics display to one or two modes because they are hardware dependent and memory specific. The Apple Ile, for instance, has Lo-Res and Hi-Res graphics. The 8K block of Hi-Res graphics is hard wired to specific memory locations $2000-$3FFF. Each byte (7 pixels) in display memory contains both pixel and color information that hardware uses to raster color dots on the television screen. If you move an object, you must change all of the bytes at both the old and new locations in screen memory without erasing the background. Worse yet, if you want to change an entire blue screen to red, you need to rewrite all 8K bytes of screen data. Similarly, scrolling requires a memory shuffle and at best results in slow, jerky motion.

The Atari, on the other hand, uses the ANTIC graphics microprocessor to interpret the graphics data in screen memory and another chip, the CTIA/GTIA, to plot the color information. Each of the fourteen different graphics modes (six text/character and eight graphic) uses differing amounts of screen memory for display. As a rule of thumb, the higher the resolution and the more colors available for display, the more memory required. Essentially, you need one bit of information for each pixel displayed plus additional bits for color information. Required screen memory, including the accompanying display list, can be as little as 261 bytes for double width, double height text, or as much as 7891 bytes for a hi-resolution 320 x 192 pixels screen. The screen can be placed nearly anywhere in memory as long as you tell ANTIC where to obtain its data.

The programmer can mix graphics modes because he can instruct ANTIC to display data from a specific part of memory in a particular graphics mode. This means you can have medium resolution graphics at the top of the screen, text in the middle and hi-resolution graphics at the bottom, if you like. The display is stacked in horizontal bands that stretch across the entire width of the screen. Any combination of display modes can be chosen as long as the entire display does not exceed 192 scan lines.

You are not even limited to using just the graphics characters in the ROM character set for your playfield graphics. A new character set can be customized with a character set editor. The computer will substitute the new set when you set the character set pointer to its address.

The unique way that the Atari computer handles color information through a series of addressable color registers gives the programmer added flexiblity. Each screen pixel is assigned to one of four playfield color registers when it is plotted. Simply changing the color value in one of these registers changes the color of every pixel assigned to that register. An entire background can be changed from red to blue with one simple POKE.

Although you can choose from 128 colors, you can work with only four at a time. Fortunately, you can gain extra colors either by adding different colored players to the display, or by changing the colors in mid-display using display list interrupts. Moreover, the addition of three GTIA modes allows either sixteen colors with one luminance, or one color with sixteen luminances, or nine colors. Although these modes sacrifice resolution to some extent, they are useful for three-dimensional shading, or adding a lot of color to the screen easily.

Perhaps the most powerful and useful graphics feature on the Atari is the playermissile graphics. Since these objects are completely independent of playfield memory, they can move smoothly over the display without affecting it. If the programmer wishes, he can set the priority so that one or more of the four players (five without missiles) can pass behind other players or playfield objects. Each player can be of different color, height and width, with a maximum width of eight pixels. In addition each player and each missile has individual collision registers that keep track of any collisions between each other and the playfields.

The Atari computer was the first home computer with player-missile or sprite graphics. It unfortunately doesn't allow true X,Y positioning. While the horizontal position can be set with a single POKE, the player's data must be shifted within a 128 or 256 (depending on the resolution) block of player memory to obtain true vertical positioning. In addition, although players can be plotted in double or quadruple width, the basic width of eight pixels imposes further limitations on the programmer.

Certainly, the use of player-missile graphics makes programming smooth animated graphics light years easier than on non-sprite-oriented computers like the Apple. But some of the newer computers like the Commodore 64 have eight players, each 24 x 21 pixels with true X,Y positioning, and both Coleco's Adam and the Texas Instrument's TI-99A have thity-two sprites, each 32 x 32 pixels with true X,Y positioning. While it may be easier to program these computers using players exclusively, each has only three or four graphics modes that can't be mixed, and none can smooth-scroll the playfield without extensive memory shuffling.

The Atari's ability to fine scroll the graphics display either horizontally or vertically sets the Atari apart from all other home computers. The Atari does this easily because the ANTIC chip can begin with data anywhere in memory and automatically map to the screen sequential memory bytes on a line by line basis. To vertically rough scroll a 40 character per line text screen you only need to change by 40 bytes the start of the memory area from which ANTIC gets display data. You can scroll the screen less, just a few scan lines at a time or a portion of one character, by setting the vertical fine scroll register. Horizontal scrolling is done similarly, but the data structure is much more difficult to set up because the data lines do not follow sequentially in memory but have gaps to store the off-screen image. To move any row requires only resetting the memory pointer by one byte; however, the reset must be performed for each row or mode line that you want to scroll.

Since the Atari computer is interrupt driven, time critical program code can be executed during the computer's vertical blank period at a rate of exactly 60 times a second. It is also the perfect time to scroll the screen, move players, and check collisions, for discontinuous screen jumps can't occur when the electron beam is between frames.

The Atari computer has many powerful graphics features that overall far surpass any home computer on the market today. We will explain each of these features in greater detail through working arcade game examples in the appropriate chapters in this book.

Display Modes

The Atari computer's fourteen display modes includes six text or character graphics modes, and eight bit-mapped graphics modes of varying resolution. In addition, computers containing the GTIA color chip have three extra graphics modes which are special cases of the highest resolution bit-mapped graphics mode.

Programmers using the Atari BASIC cartridge from non-XL machines can easily access only nine of these fourteen display modes. Although XL machines can access four of these five additional modes directly from BASIC, these extra modes, which include several multi-colored character set modes requiring custom character sets, are best left to the Assembly language programmer.

The character graphics modes 0, 1, and 2 are easy to understand. The normal text display is graphics 0. It consists of twenty-four rows of forty characters. Each character is eight dots wide by eight dots or television scan lines high. Graphics mode I characters are just graphics mode 0 characters stretched twice as wide; only twenty of these characters fit on any row. Graphics 2 characters are as wide as graphics one characters but are twice as deep. Since each character is sixteen scan lines high, only twelve rows would fit on the screen in the full screen mode.

Normally a text window occupies the bottom four rows (32 scan lines) in all BASIC graphics modes except the GTIA modes. If you were to set the display for graphics mode 2 characters, ten rows of these characters would be displayed above four rows of graphics 0 characters. The display can be set to full screen by adding 16 to the graphics mode. Thus, invoking GRAPHICS 2+16 sets up a full screen display consisting of twelve rows of graphics 2 characters. Sakura lady slot.

Graphics modes 3 thru 8 are bit-mapped graphics modes that don't involve characters. Instead they plot colored dots or pixels of varying resolution. A pixel can be as large as eight dots by eight dots in graphics mode 3, be four dots by four dots in graphics mode 5, two dots by two dots in graphics 7, or be as small as one single dot in graphics mode 8. The finest resolution in graphics mode 8 gives us complete control over every dot on the screen.

Obviously, there are more reasons to use each of these modes beyond the varying degrees of resolution. As the graphics modes increase in resolution, more memory is required for display. Bigger pixels simply fill up the screen faster and therefore require less memory. For example, a graphics 3 screen that has pixels the size of a character and a screen resolution of forty pixels by twenty-four, requires only 480 bytes for screen memory. A graphics 8 screen that stores groups of eight pixel-sized dots in one byte, requires 7680 bytes of screen memory. A programmer using this mode on a 16K Atari 400 or 600XL, would have very little room for his program.

The number of colors available is another reason for choosing a particular graphics mode. As a rule, more memory is required to display more color because the color information must be encoded within the screen data. For example, the only difference between the two color graphics modes 4 and 6, and the four color modes 3, 5, and 7 is in the amount of memory required. Graphics modes 4 and 5 have the same resolution (80 x 48), but graphics mode 4 uses only half as much memory. Graphics mode 5 must use two bits to encode the color for each pixel, where only one bit is needed to tell the computer how to display graphics mode 4 pixels. A similar relationship exists between graphics modes 6 and 7.

You have probably noticed that each graphics mode is displayed in a series of rows. A full-screen graphics 5 screen consists of forty-eight vertically stacked rows of pixels, each four scan lines high. A graphics seven screen consists of ninety-six vertically stacked rows of pixels, each two scan lines high. In each case there are 192 scan lines displayed on the screen. This number is no accident but is determined by the way television sets draw or scan a picture.

How Televisions Work

Most television sets, including the ones on which you actually watch TV, are raster scan devices. A moving electron beam strikes the individual phosphors that are painted on the inside front surface of the television tube. Each time an electron strikes a phosphor, it glows momentarily. If the beam continues to strike the same phosphor it will glow, continously.

In order to draw an entire screen full of glowing dots the electron beam has to move in a series of accurate sweeps across the picture tube. A charged deflection plate bends the electron beam so that the stream of electrons strikes a series of adjacent phosphors along a straight horizontal line. These closely packed individual dots appear to be a solid line. The electron beam starts at the top of the screen and scans from left to right. When it finishes a line, it shuts down briefly while it returns to the left edge and drops down to the next scan line. This period is known as the 'horizontal blank.' The electron beam does this 192 times in a process known as 'raster scan.' When the beam finishes it returns to the top of the screen in a time period known as 'vertical blank.'

Obviously, if the pixels are to remain lit for longer than a brief moment the screen will have to be refreshed quite often. The electron beam retraces its 192 line path sixty times a second. A television set actually scans 262 scan lines, but the average set can only display slightly more than 200 lines. The area above and below your rectangular playfield contains some of these extra lines.

In order to get an image other than solid white, the electron beam's intensity is varied while it is scanning. By varying the intensity or the number of electrons that hit individual phosphors, different brightness levels are achieved. This gives us shading on black and white television sets that ranges from black through various shades of grey to pure white.

The process of producing a color image is only slightly different. The electron beam scans as usual from left to right over the playfield's 192 scan lines at sixty times per second. The difference is in the phosphors on the screen's surface. Each dot consists of a triangular pattern of three sub dots; one blue, one green and one red. Instead of one electron beam there are three beams, one for each color. Each beam is aimed very precisely through a mask at the subdots containing its color. Thus, when the Atari sends to the television set or color monitor color (frequency) and luminance (amplitude) information at a particular time during the scanning process, the electron beams will produce the desired display. The Atari doesn't tell the electron beams where to display information on the screen, but instead when to display information. The Atari's special hardware chips wait until the electron beams reach a particular point on the screen before immediately sending the proper color and luminance information.

The time unit used to determine when to send color information is called the color clock. This is the amount of time it takes to change the frequency between the different colors. The electron beam has time to send 228 color clocks on one scan line. Again some of the information is plotted off screen so that the Atari displays only 160 color clocks. The color information is transmitted to the TV in the form of a square wave. When the signal is high during one clock cycle, you get one color, and when it is low you get the complementary color. Other colors are obtained by phase shifting the signal slightly.

Memory Map

It is best at this time to develop an understanding of where the Atari computer stores your BASIC computer program and the location of display memory. All 6502-based Atari computers, address 64K bytes of memory whether physical memory exists or not. The computer is divided into RAM (Random Access Memory) and ROM (Read Only Memory). You can store things like your BASIC program in RAM memory. Atari 400's and 600XL's contain 16K of RAM memory, while the larger 800's, 1200's and 1400's contain 48K or 64K of RAM memory. Most of the area above 48K, from 52K to 64K is reserved for the computer's Operating System (OS), and the use of various hardware chips ANTIC, POKEY, CTIA/GTIA and PIA. The OS and all of these chips are in ROM. Locations in them can be read, but only a very few hardware locations in some of the chips can be written to. Since many of these writable hardware locations can't hold information for longer than 1/60 of a second, they are 'shadowed' by RAM memory locations in the lower portion of the computer's memory. These 'shadowed' memory locations, that contain information such as joystick/paddle values for each of the registers, are copied to the appropriate RAM locations during the vertical blank period between television frames. Color information 'shadowed' in RAM is copied to the hardware registers at the same time. This not only saves you the trouble of refreshing the hardware each cycle, but allows you to read the 'shadowed' values.

The lowest section of memory contains zero page, BASIC and OS system RAM, the stack, and the keyboard buffer. All of this occupies the space between 0 and 1535 ($000-$5FF). The area between 1536 and 1791 ($600$6FF) known as page six is free for user Machine language subroutines. The area above 1792 to location 7420 or LOMEM is reserved for the DOS File Management System. LOMEM drops to 1792 in computers that don't use a disk drive or interface module.

The 8K ROM BASIC cartridge occupies memory from 40K to 48K regardless of memory configuration. When the cartridge is engaged, RAMTOP or HIMEM drops to 40959 in 48K and 64K machines and remains at 16384 in 16K machines. The memory between LOMEM and HIMEM is the area available for running and storing your BASIC language programs.

BASIC programs are stored beginning at LOMEM. The program along with its buffers, tables, and run time stack build upwards in memory. When a graphics mode is invoked, BASIC reserves the area just below HIMEM for the graphics screen and text window if there is one. It stores a small program called the display list just below the graphics screen. This display list, which we will discuss in greater detail in the next chapter, tells ANTIC where to find display data and in which graphics mode to display it. In brief, the list contains an instruction for each row of graphics data, plus

instructions about the number of blank lines to skip before plotting plus the locations of the screen's data and the beginning of its own display list.

For example, if we set up a full screen graphics 7 screen (40 x 96), BASIC places the beginning of screen memory automatically at 36960 for a 48K machine. The screen's memory is 3840 bytes. The 104-byte display list is placed at memory location 36760. If we choose instead a graphics 7 screen with a text window (40 x 80), only 3200 bytes of screen memory are required. BASIC puts screen memory at the same location but leaves the top 640 bytes empty. It stores the data for the 160 byte (4 line) text screen beginning at 40800. The display list is 10 bytes shorter and begins at location 36770 for 48K machines. The diagram below shows the appropriate addresses for 16K machines.

The advantage of having BASIC set up your graphics screen and display list is that it avoids errors that might produce weird displays. This includes displaying the proper screen data in the wrong graphics mode, or displaying a section of memory that isn't your screen data. The disadvantage is that you can't mix graphics modes or custom design a display. You are limited to displaying a single graphics mode with or without a four line text screen at the bottom.

Color

The Atari uses a very flexible method to display color. Instead of storing the color of each pixel directly in display memory, the Atari refers the color information to a specific color register. Each pixel has the color register number stored rather than a specific color. This method, is extremely flexible, but it allows only a maximum of five colors on the screen at any one time. In an effort to save screen memory at most only two bits are used to specify a pixel's color. On the other hand, if you wish to change the background color or the color and luminence of all the pixels referring to a particular color register, you need only to change the color value in that one color register.

There are five available color registers numbered 0 through 4. Color register 4 is also known as the background color register because it specifies the color and luminance for any place on the screen where nothing else is written. In the bitmapped graphics modes 3-8, this means the color between any of the plotted pixels. In text mode 0 it means the border area, not the color behind the character.

The color registers are each one byte long. The upper four bits determine the color (0-15), and the lower four specify the brightness. Only the highest three of the four luminance bits are used, so that there are eight levels of brightness. Sixteen different colors and eight levels of brightness create 128 shades of color. The arrangement for each color is in groups of sixteen. Values 0- 15 are for color #0 in different intensities, 16-31 for color #1, etc. The table below lists the values for many of the common colors.

As we said, there are five different color registers. Think of these as paint pots. You can put a color into any one of these color registers and then draw points (pixels) and lines using that color register. It is similar to drawing on a canvas with a brush. The difference is that if you draw a green line five pixels long with color register 0, screen memory doesn't store it as green, green, green, green, green, but as a series of bits 01 01010101. When ANTIC fetches screen data and feeds it to the CTIA/GTIA chip, this color chip looks to the appropriate color register to determine which color is to be put on the screen for each separate pixel. For most of the four color graphics modes the bit pattern is as follows:

Gromacs Tutorials

Thus, if we had the following screen data for eight pixels, the colors drawn by the color chip would reflect the values stored in the different color registers. In the example below, black is in the background color register and red, blue and yellow are in the other color registers.

These five color registers are located in hardware in the actual CTIA/GTIA chip. Each time ANTIC feeds it data, it looks to these hardware locations before plotting the color. Even what appears to be a blank empty screen is still generated from the CTIA/GTIA's interpretation of the data. Even all zero bits indicate that the entire screen is just background. The chip looks to these registers thousands of times during the refresh process of updating the screen.

The operating system also maintains copies of these color registers in RAM memory. These are called shadow color registers. They are maintained because the hardware locations are 'write only' locations. Since they can't be read, we need RAM locations where they can be read. At the beginning of each refresh cycle, these five shadowed registers are copied into the hardware locations.

BASIC uses the SETCOLOR command to set up the color registers. It is in the form of SETCOLOR (color reg #), (color #),(luminance #). A direct POKE to the O.S. shadow register is equivalent to SETCOLOR and is faster. For example SETCOLOR 1,3,8 is the same as POKE 709,(3*16)+8 or POKE 709,56.

COLOR VALUES FOR COLOR REGISTERS

Atari BASIC's COLOR command, used to specify a particular playfield register that plots points or draws lines, is probably the most confusing aspect of Atari graphics. When you choose a COLOR #, it selects a color register assigned to a playfield. It uses that color register to plot with until a new color register is chosen. The problem is that the COLOR # often doesn't correspond to the color register and varies with the graphics mode.

There is a logical explanation for the discrepancy, but it is more apparent to the Assembly language programmer than to the casual BASIC programmer. Remember that in most modes two bits are used to specify the color. This is true in all of the bit-mapped graphics modes. Color #0 is usually background because a Machine language 00 written into display memory usually plots nothing. If COLOR # is I it writes a 01 in display memory for that pixel, if equal to a 2 it writes a 10, and if equal to a 3 it writes an 11. Unfortunately, if you refer to the table above, bits 01 corresponds to color register #0, bits 10 to color register #1, and bits I I to color register #2. On the other hand, the two color modes use only COLOR #1 to plot points because just a single bit is used to direct the CTIA to the color register.

The character graphics modes, 0, 1, and 2 are even more confusing. The upper two bits in each character not only determine which color register is selected, but effect which character is displayed. Essentially, parts of the character set appear in different colors. For example, if you are using the computer's default colors and you are in character mode #1, a 20 character per line mode, upper case letters appear in orange, lower case in light green, inverse upper case characters in dark blue, and inverse lower case graphics characters in red.

Since the relationships between the COLOR # and the playfield it refers to differ in many of the graphics modes, beginners will do best by refering to the table below or the one in their BASIC reference manual. The concept of drawing lines and shapes using color registers as paint pots is best illustrated with the following demonstration. We will draw in graphics mode 7 full screen. This is a four color mode with three foreground colors and one background color. Initially, we will fill our paint pots or color registers with dark gray, green, blue and red.

We will draw our rectangular paint pots at the bottom of the screen and one shape in its color above each pot. We will also draw another shape or line above one of the other paint pots. When we are finished we will have six shapes above three paint pots. The solid shapes are filled in using the standard XIO color fill command in BASIC.

The XIO fill command is designed to work with four-sided figures, but if you are careful it will work with triangles. In general you plot a point in the lower right hand corner of the figure and use DRAWTO statements to reach the upper right hand corner of the figure. You next use the position statement to move the cursor to the lower right hand corner and use the POKE statement to place a number, equal to the COLOR number to be used for plotting into memory location 765. Last, you perform a XIO 18, #6,0,0,'S'. The fill commands works from left to right and will fill the figure until it encounters any illuminated pixel between the left and right sides of the figure being filled. For example:

When you fill a triangle, two sides of the figure are drawn. While you may not be at the top of the figure when you finish, you will be on the left side when you reposition the cursor to the bottom right. Usually, the color fill works properly; but, if you look at the blue triangle, you will notice that we repositioned the cursor at the bottom one pixel to the left. This is because when the last line fills on the bottom it must have a right boundary to fill to. If the boundaries are equal, the line will begin filling from there to the right edge of the screen.

The colored bar above the paint pot indicates which paint pot or color register can be adjusted by the joystick. You can select an individual paint pot with the select key. When the bar is to the far right beyond the last paint pot, it points to the paint pot used to color the background. You can adjust the color in the paint pot by moving the joystick up or down. If you begin at the first paint pot, which is intially green, and change the color, you will notice that the two shapes that were green changed to the new color in the paint pot. It doesn't matter if the shape is above the paint pot or somewhere else on the screen. What matters is which color register or paint pot was in effect when the shape was drawn, for those pixels contain data that point to a particular color register.

You can play with the four paint pots and watch the various shapes change color. When you change the background color one or more of the other shapes will vanish if the two paint pots are identical. The shape is still there, but the pixels instruct the CTIA/GTIA chip to produce the same color as the background. The shape just blends in to become invisible.

Download PAINTPOT.BAS (Saved BASIC)
Download / View PAINTPOT.LST (Listed BASIC)

Graphics Modes

ATARI computers can display fourteen graphics modes of which nine can be directly accessed from BASIC on older machines and thirteen on the newer XL units. This section of the book will explain each of the various graphics modes, their resolution or size, the method by which they are mapped to the screen, and how colors are generated.

Graphics Mode 0 (ANTIC 2)

This is the normal-sized character or text mode that the computer defaults to on start up. Being a character mode, screen memory consists of bytes that represent individual characters in either the ROM or a custom character set. ANTIC displays forty of these 8 x 8 sized characters on each of twenty-four lines.

Graphics 0 is a 1 1/2 color mode. Color register #2 is used as the background color register. Color register #1 sets the luminance of the characters against the background. Setting the color has no effect. Bits within a character are turned on in pairs to produce the luminace color. Otherwise single bits tend to produce colored artifacts on the high resolution screen. These colors depend on whether the computer has a CTIA or GTIA chip, and the color of the background.

Graphics 1 (ANTIC 6)

This is one the expanded text modes. Each characters is 8 x 8 but the pixels are one color clock in width instead of the 1/2 color clock mode of Graphics 0 making the characters twice as wide. Only twenty characters fit on any line. A graphics I screen has twenty rows while the full screen mode has twenty-four rows of characters.

The two high bits of each ATASCII character, that normally identify lowercase or inverse video text in Graphics 1, set the color register for the 64 character set. Decimal character numbers 0-63 use color register zero, while those same 64 characters if given character numbers 64-127 use color register #1. If you are typing from the Atari keyboard, the uppercase letters A-Z ATASCII 65-90 (Internal # 33-58) are assigned to color register zero, while the lowercase numbers 97-122 (Internal # 97-122) are signed to register #1.

Mac Os Download

Graphics Modes

Graphics 2 (ANTIC 7)

This text mode is basically the same as the previous mode except that each row of pixels is two scan lines high. Thus 12 rows of 20 characters are displayed on a full screen. Only ten rows fit on a split screen.

Graphics 3 (ANTIC 8)

This four-color graphics mode turns a split screen into 20 rows of 40 graphics cells or pixels. Each pixel is 8 x 8 or the size of a normal character. The data in each pixel is encoded as two bit pairs, four per byte. The four possible bit pair combinations 00, 0 1, 10, and I I point to one of the four color registers. The bits 00 is assigned to the background color register and the rest refer to the three foreground color registers. When the CTIA/GTIA chip interprets the data for the four adjacent pixels stored within the byte, it refers to the color register encoded in the bit pattern to plot the color.

Graphics 4 (ANTIC 9)

This is a two-color graphics mode with four times the resolution of GRAPHICS 3. The pixels are 4 x 4, and 48 rows of 80 pixels fit on a full screen. A single bit is used to store each pixel's color register. A zero refers to the background color register and a one to the foreground color register. The mode is used primarily to conserve screen memory. Only one bit is used for the color, so eight adjacent pixels are encoded within one byte, and only half as much screen memory is needed for a display of similiar-sized pixels.

Graphics 5 (ANTIC A or 10)

This is the four color equivalent of GRAPHICS 4 sized pixels. The pixels are 4 x 4, but two bits are required to address the four color registers. With only four adjacent pixels encoded within a byte, the screen uses twice as much memory, about IK.

Graphics 6 (ANTIC B or 11)

This two color graphics mode has reasonably fine resolution. The 2 x 2 sized pixels allow 96 rows of 160 pixels to fit on a full screen. Although only a single bit is used to encode the color, screen memory still requires approximately 2K.

Graphics 7 (ANTIC D or 13)

This is the four color equivalent to GRAPHICS mode 6. It is the finest resolution four color mode and naturally the most popular. The color is encoded in two bit-pairs exactly the same way as in GRAPHICS 3. The memory requirements of course is much greater as there are 96 rows of 160 - 2 x 2 sized pixels. It requires 3840 bytes of screen memory with another 104 bytes for the display list.

Graphics 8 (ANTIC F or 15)

This mode is definitely the finest resolution available on the Atari. Individual dot-sized pixels can be addressed in this one-color, two-luminance mode. There are 192 rows of 320 dots in the full screen mode. Graphics 8 is memory intensive; it takes 8K bytes (eight pixels/byte) to address an entire screen.

The color scheme is quite similar to that in GRAPHICS mode 0. Color register #2 sets the background color. Color register #1 sets the luminance. Changing the color in this register has no effect, but, this doesn't mean that you are limited to just one color.

Fortunately, the pixels are each one half of a color clock. It takes two pixels to span one color clock made up of alternating columns of complementary colors. If the background is set to black, these columns consist of blue and green stripes. If only the odd-columned pixels are plotted, you get blue pixels. If only the odd-columned pixels are plotted, you get green pixels. And if pairs of adjacent pixels are plotted, you get white. So by cleverly staggering the pixel patterns, you can achieve three colors. This method is called artifacting. This all depends on background color and luminance.

The following five graphics modes have no equivalent in BASIC on older machine but if indicated do correspond to an equivalent graphics mode on the newer XL models.

Antic 3

This rarely used text mode is sometimes called the lowercase descenders mode. Each of the forty characters per line are ten scan lines high, but since each of the characters are only eight scan lines high, the lower two scan lines are normally left empty. However, if you use the last quarter of the character set, the top two lines remain blank, allowing you to create lowercase characters with descenders.

Antic 4 (Graphics 12-XL computers only)

This very powerful character graphics mode supports four colors while using relatively little screen memory (1 K). In addition its 4 x 8 sized characters have the same horizontal resolution as GRAPHICS 7, yet twice the vertical resolution. A large number of games with colorful and detailed playfields use this mode.

These characters differ considerably from ANTIC 6 (BASIC 2) characters, in that each character contains pixels of four different colors, not just a choice of one color determined by the character number. Each byte in the character is broken into four bit pairs, each of which selects the color register for the pixel. That is why the horizontal resolution is only four bits. A special character set generator is used to form these characters.

Antic 5 (Graphics 13-XL computers only)

This mode is essentially the same as ANTIC 4 except that each character is sixteen scan lines high. The character set data is still eight bytes high so ANTIC double plots each scan line.

Antic C (Graphics 14-XL computers only)

This two-color, bit-mapped mode the eight bits correspond directly to the pixels on the screen. If a pixel is lit it receives its color information from color register #0, otherwise the color is set to the background color register #4. Each pixel is one scan line high and one color clock wide. This mode's advantages are that it only uses 4K of screen memory and doesn't have artifacting problems.

Antic E (Graphics 15-XL computers only)

This four-color, bit-mapped mode is sometimes known as BASIC 7 1/2. Its resolution is 160 x 192 or twice that of GRAPHIC 7. Each byte is divided into four pairs of bits. Like the character data in ANTIC 4, the bit pairs point to a particular color register. The screen data, however, is not character data but individual bytes. The user has a lot more control, but this mode uses a lot more memory, approximately

GTIA

There are three additional graphics modes in the GTIA chip that are actually special interpretations of ANTIC mode $F, a high resolution graphics mode. They are designed to add a lot more color to the screen without sacrificing too much resolution. Graphics mode 9 is a one-color, sixteen luminance mode. Mode 10 is a nine-color mode with independent luminance setting, and mode 11 offers sixteen colors set at one luminance. Each mode has a resolution of 80 columns by 192 rows. There is no split screen in these modes.

The GTIA modes are selected by the upper two bits in the priority register shadowed at location 623 ($26F). BASIC programmers can reach any of these GTIA modes by normal graphics statements GRAPHICS 9, 10, or 11. Others will need to POKE the correct bit. Graphics mode 9 can be activated by turning on bit 6 with a POKE 623,64. GRAPHICS 10 is activated by turning on bit 7 with a POKE 623,128. Both bits 6 and 7 need to be set with a POKE 623,192 to activate graphics mode 11. These values will disturb the other bits in GPRIOR that set various functions, so take care if you have set any other bits previously by POKEing a value that combines both. These other bits allow the combination of all four missiles into a fifth player, establish player-missile and playfield priorities, and enable multiple-colored or overlapping players.

The GTIA chip was not standard equipment on Atari computers until December, 1981. Those with older computers may wonder if this chip is installed. If you are on the text screen (GR.0) and do a POKE 623,64, the screen will go black and become unreadable with the GTIA chip. If nothing happens, you have the CTIA chip. Your machine can be updated to the newer GTIA chip by your Atari dealer if you desire.

Since GTIA modes allow a lot more color while using the same screen memory as GRAPHICS 8, more bits are needed to keep track of the color. In fact sixteen colors require four bits, so that only two pixels are encoded within a byte instead of the usual eight. This is the reason the horizontal resolution drops from 320 pixels to 80 pixels per scan line. The pixels are elongated instead of square. Also, since there are only nine color registers in the computer, the sixteen colors are bit mapped to the screen as in other computers, instead of by the Atari method of color indirection.

Graphics 9

GRAPHICS mode 9 produces up to sixteen different luminances of the same hue. This is quite useful for drawing pictures that require alot of shading, or for digitizing pictures. The main color is set by the background color register #4. You can use the SETCOLOR command to set the color value in the upper four bits (nybble), and the luminance in the lower four bits to zero. The COLOR command is used to vary the luminance. What actually happens is that the pixel data from ANTIC is logically ORed with the lower nybble of the background color register to set the luminance that appears on the screen. A quick little program that will demonstrate the mode is listed below.

Graphics 11

GRAPHICS 11 is a one luminance, 16 color mode. The luminance this time is set by the background color register #4. The SETCOLOR command is used to set up the single luminance value in the lower nybble of this register, while zeros representing the hue are placed in the upper nybble. The COLOR command is used in this mode to select the various colors. This time ANTIC's pixel data is logically ORed with the upper nybble of the background color register to set the hue that appears on the screen. A typical example follows:

This sixteen-color mode doesn't use the four playfield color registers for color indirection. The colors on the screen are determined directly by the data bits stored in memory. Each pixel has the value for the hue stored in memory. For example, a blue hue, which is number 7, has a bit value 0 111. This is what is stored in the nybble. Two adjacent pixels, which are stored in the same byte have a value of 01110111 or 119 decimal ($77). All have the luminance assigned to the background color register.

There is a slight advantage to not using the color registers in either GRAPHICS 9 or 11: even more color can be added to the screen by adding players of different colors. The disadvantage is that the collision registers are useless in both modes.

Graphics 10

GRAPHICS 10 is probably the most versatile of the GTIA modes. While it only has nine colors with variable luminance, it does use color indirection to produce its color. This means that the screen data points to one of the five playfield-color registers and the four player-color registers to obtain its color information rather than storing the color data on the screen as in the other two GTIA modes. Since players use the same color as part of the background, you must be careful. They will blend in when they coincide with that portion of the playfield using the same color. Collision registers don't work in this mode either. We believe ANTIC's collision registers are bypassed in all GTIA modes. A typical GRAPHICS 10 example follows;

When you choose the color register via the COLOR statement in BASIC, 16 different values can be used but only the first nine are valid. The remainder just repeat various playfield registers. The chart is listed below. You will notice that COLOR 4 no longer sets the background color. Instead it is set by player O's color in register number 704. It is best to use POKEs to set the color registers rather than SETCOLOR.

You can achieve some really nice animation effects when using this mode through the power of color indirection. If you don't count the background, you can rotate eight colors through the color registers to create a sense of motion.

The example below draws a very colorful rectangular box in perspective. Part of one side was left open so that you can see more of the left and back sides. The different color registers or paint pots are set up in a bucket brigade. Since location 713 isn't used for anything, we used this as a temporary storage location. The color or paint from register 705 is first put into this temporary bucket or storage location, then shift the rest of the colors by moving them from the higher color register to the next lower one. This is done in a FOR .. NEXT loop. We POKE the lower color register with the value we find in the next higher color register.

Download GR10DEMO.BAS (Saved BASIC)
Download / View GR10DEMO.LST (Listed BASIC)

GTIA Trick

The GTIA modes, because they are special cases of GRAPHICS mode 8, require a considerable amount of display memory, approximately 8K. Graphics mode 0, a text mode, in many respects is very much like our high resolution mode. It is a 1 1/2 color mode, and the individual pixels within a character are the same.

If you turn on GTIA mode I I from GRAPHICS 0 by POKING 623,192 the screen turns black and you get weird colored pixel patterns where your characters were. Recall from the above discussion that the color pixel patterns are directly bit mapped in screen memory in pairs of four bits, or nybbles, two per byte. If we could rewrite the character set so that the sixteen possible nybble pairs were in the first sixteen characters in the set, we could plot colored blocks the size of characters. While it wouldn't be as fine a resolution as in normal GRAPHICS 11, it would only require 960 bytes of screen memory, quite a substantial savings.

The bit pattern that is used to set color registers is the same one that we need to set up our pair of nybbles in each row of our character. The chart is listed below.

We need to POKE a $00 into each of the bytes of the Oth character, a $11 (decimal 34) into the bytes for the 1st character, a $22 (decimal 34) into the bytes of the third character, etc. The values are seventeen apart so that it is simple to put the correct color nybble values into an array CT(16). Then it is a straightforward affair to method of POKEing the values in eight at a time into the proper character position in the new character set.

Any of these special GTIA color characters can be plotted to the screen at a specific position by calculating the offset from the beginning of screen memory. This location is stored at locations 88 and 89.

SCREEN PEEK(88)+PEEK(89)*256
OFFSET (40 x row #) + column #
LOCATION = SCREEN + OFFSET

So if you want to plot a purple pixel at character location (2,2) you do a POKE SCREEN + 82, 85. The luminance is set by the background color register 712.

An example of putting a row of sixteen different-colored GTIA pixels in GRAPHICS 0 is shown below.

Download GTIATRIC.BAS (Saved BASIC)
Download / View GTIATRIC.LST (Listed BASIC)

Return to Table of Contents Previous Chapter Next Chapter