Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
  You are not logged in - nap
ALBERT 1.0.50 (Preview)   [2023]

ALBERT 1.0.50 (Preview) Released by :
Hokuto Force [web]

Release Date :
11 October 2023

Type :
Other Platform C64 Tool

Website :
https://www.luigidifraia.com/software/

User rating:**********  10/10 (11 votes)   See votestatistics

Credits :
Code .... The Chaos Engineer of Hokuto Force
Graphics .... The Sarge of Bonzai, Fairlight
Design .... The Sarge of Bonzai, Fairlight
Test .... The Sarge of Bonzai, Fairlight
Help .... Flavioweb of Asura, Digital Monastery, Hokuto Force

Download :

Look for downloads on external sites:
 Pokefinder.org


Summary
Submitted by TCE on 11 October 2023
# ALBERT - Autumn 2023 Preview

Welcome to ALBERT, the pixel editor for extended Commodore 64 images. In case you were wondering, ALBERT was named after Albert Charpentier, one of the VIC-II designers. However, ALBERT is also an acronym that stands for "Advanced Lightweight Bitmap Extender with Raster Tech".

ALBERT provides pixel artists with a single editor to create artwork that can only be displayed with the support of native code for the Commodore 64, without requiring the assistance of an assembly coder.
In its basic, publicly available, form, users can pixelate hires and multicolor images that extend into the left and right borders of the visible screen, using sprites to display the extra pixels.
Individual sprite colors can be set on a per-sprite basis with just two exceptions, due to the so-called "bad lines". In fact, there are no demo-style nearly-whole-RAM-consuming tricks at play here.

The technical details in a nutshell:

- 2 whole columns of sprites in each side-border, for a total of 96 extra pixels (48 fat pixels) that get the total image width to 416 pixels (208 fat pixels),
- no glitches and no bugs in any of the sprites all the way to the external edges (try "Debug borders" in VICE's Commodore 64 emulator),
- stable code for PAL and NTSC machines.


# Projects

Designs can be saved to project files for later modification. In fact, the application ships with a few example projects under the `sample-projects` folder.
A project contains all workstages, unless these were explicitly flattened by the user using the "Edit->Clear History" menu item.


# Saving Workstages

Workstages, also referred to as checkpoints in the history of changes, can be saved to PNG files. These can then be used to produce a timelapse to illustrate all production stages of the creative process behind a project.


# Importing PNG Images

Currently ALBERT can import non-native images as long as they are 24-Bit PNG files with a width of 416 pixels and a height of 200 pixels. Some of these restrictions will be lifted in future versions.
Multiple palette conversion methods are available: nearest match, error diffusion (Floyd–Steinberg) dithering, and ordered dithering. Each of them references the palette currently active: different palettes will produce different results at conversion time.
Furthermore, whereas the natural (Euclidean) distance is found to be unsuitable for color matching, a weighted alternative is available. The latter should produce results in line with expectations based on the luminance value of Commodore 64 palette colors.
Finally, a "curves adjustment" widget is provided in order to adjust each color channel separately and/or all of them at the same time.


# Exporting to PNG

The current contents of the drawing canvas can be exported to PNG images, handy for being used as screenshots e.g. when uploading a release to CSDb.


# Exporting to Executable PRG

The current contents of the drawing canvas can also be exported to executable PRG files, which include the necessary support code for PAL and NTSC machines.
Executable files are crunched using Exomizer 3.1.1, whose binaries are included in the distribution archive of this application in order to ensure a seamless and consistent experience for end-users across a variety of supported operating systems.


# Keyboard Keys

The available key shortcuts, which are not already menu item accelerators, are detailed below:

Keys 1-8: set color for the pen associated to the left mouse button
Keys , and .: decrease and increase brush size for freehand drawing
Keys [ and ]: decrease and increase brush size for freehand drawing
Key a: replaces pixel color from pen 2's to pen 1's
Key x: swaps pixel color from pen 2's to pen 1's
Key b: activates the pen tool
Key e: activates the erase tool
Key g: activates the flood fill tool
Key space: activates the pan tool, until released
Key r: activates the rotation tool, until released; left click and drag the canvas around to rotate it while active
Key Alt (left): temporarily activates the color picker tool if it makes sense based on the currently active tool (pen, erase, fill, pan)
Key Shift (left or right): locks the drawing direction if the pen tool is active or snaps the rotation angle by the nearest multiple of 15 degrees if the rotation tool is active (r key)
Key z: when reference grids are active, press it to switch their color between two different shades of grey and improve cell grid visibility
Key Shift (left or right) + z: when reference grids are active, press both to toggle the pixel grid on and off
Cursor Keys: translate the canvas


# Lua Functions

A number of Lua functions are provided for programmatic drawing. Here's a comprehensive list:

drawclear (): clears the canvas using the current background color
drawfill (pos_x, pos_y, color): flood fills starting at the given coordinates
drawbrush (pos_x, pos_y, color): draws a brush at the given coordinates
drawline (from_x, from_y, to_x, to_y, color): draws a line with width 1 connecting the given coordinates
drawcircle (center_x, center_y, color): draws a hollow circle with line width 1 and centered at the given coordinates
drawcirclef (center_x, center_y, color): draws a filled circle centered at the given coordinates
drawstar (top_left_x, top_left_y, width, height, color): draws a hollow star
brushsize (size): sets brush size; valid values are 1 through 16
checkpointon (): enables the creation of checkpoints in the history of changes after a drawing operation, if it modifies the contents of the canvas
checkpointoff (): disables the creation of checkpoints in the history of changes after a drawing operation
checkpointsave (): creates a checkpoint in the history of changes, which is useful to compound multile drawing operations in a single checkpoint while checkpointing is globally disabled
exportpng (full_path): saves the canvas to a PNG file
invalidateon (): enables the automatic refresh of the canvas display after a drawing operation, if it modifies the contents of the canvas
invalidateoff (): disables the automatic refresh of the canvas display after a drawing operation
drawrefresh (): causes a refresh of the canvas display

Note that these functions, including names and input parameters, might change between now and the date when the first official release of ALBERT will be published.


# Known Issues

Under macOS:

- The radio menu items do not update based on the currently active item.

Unfortunately there is no obvious workaround for this issue.


# Future Plans / Unfinished Features

The following items are almost entirely based on my availability of free time:

- Additional extended modes: mixed mode sprites, expanded sprites, overlapping sprites, etc.
- Additional key shortcuts, including the ones for colors 9-15
- Linux builds
- Additional brush shapes and outlines
- Handling of selections: clip drawing operations, copy, cut, and paste
- Handling of clipboard contents
- Bespoke canvas size upon creating a new project
- A version based on GTK 3 is not entirely out of question as I've been careful to minimize migration efforts required to upgrade
- Multiple image editing mode


# Reporting Issues

Until I get a chance to set up an issue tracker, you can head to the following URL and use my contact form for reporting issues with ALBERT: https://www.luigidifraia.com/contact/
Remember that if an issue can't be repeated at will by the individual who reports it, then it might be quite hard for me to find its root cause and fix it.


# Credits

ALBERT and the supporting Commodore 64 "stable" code were written by Luigi Di Fraia a.k.a. TCE.
UI design, UX, and help testing was provided by Joachim Ljunggren a.k.a The Sarge.
Help, suggestions, and ideas for the Commodore 64 code were contributed by Flavioweb.
Exomizer was written by Zagon. For additional information visit: Exomizer V3.1.1
Search CSDb
Advanced
Navigate
Prev - Random - Next
Detailed Info
· Summaries (1)
· User Comments (12)
· Production Notes (1)
Fun Stuff
· Goofs
· Hidden Parts
· Trivia
Forum
· Discuss this release (1)
Support CSDb
Help keep CSDb running:



Funding status:




About this site:
CSDb (Commodore 64 Scene Database) is a website which goal is to gather as much information and material about the scene around the commodore 64 computer - the worlds most popular home computer throughout time. Here you can find almost anything which was ever made for the commodore 64, and more is being added every day. As this website is scene related, you can mostly find demos, music and graphics made by the people who made the scene (the sceners), but you can also find a lot of the old classic games here. Try out the search box in the top right corner, or check out the CSDb main page for the latest additions.
Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.12 sec.