Character Study

Character Study

Update: 2025-05-31
Share

Description

Character Study. Dan’s MEGA65 Digest for May 2025.


<figure>

<figcaption>
Character Study.
</figcaption>
</figure>
<figure>



<figcaption>
</figcaption>
</figure>

It’s upgrade season in the MEGA65 community! We partied hearty for the 10th anniversary last month, and the result is an all-new stable release of the MEGA65 platform packed with features and bug fixes, a bug fix update to the C64 core, and a new version of the M65Connect app. We also finished up the Screenful of BASIC compo, with 26 entries!


For this month’s feature article, I’m starting my series on MEGA65 character graphics. It’s a big subject that we’ll cover over multiple issues. We’ll probably take breaks to cover other subjects just to mix things up.


Here we go!



MEGA65 News

MEGA65 platform v0.97 released!


It’s here! Over 14 months in the making, the new MEGA65 platform release v0.97 is now available. The MEGA65 team recommends that all owners upgrade to this version.


Sign in to Filehost with your registered owner account, then download the release package appropriate for your mainboard version:



Upgrade instructions are in the latest User Guide. Remember to copy the SD card files to your SD card, including the .M65 system software files and the MEGA65.ROM file.


Also remember to install the core in slot 1, then also in slot 0. Upgrading slot 0 is easy if you previously upgraded slot 0 to v0.96: press <kbd>Mega</kbd> + <kbd>,</kbd> (comma) from the core selection menu to start the process. If you have an older core in slot 0, you’ll need to start v0.97 from slot 1 then immediately press and hold <kbd>No Scroll</kbd> to re-open the newer version of the core selection menu, then press <kbd>Mega</kbd> + <kbd>,</kbd> and proceed.


We reviewed the changelogs back in the March Digest. Check out all the new stuff you’re getting.


C64 Core v5.2 released!


<figure>

Various C64 cartridges tested with the C64 core

<figcaption>

Various C64 cartridges tested with the C64 core.


</figcaption>
</figure>

While you’re updating cores, be sure to pick up C64 core v5.2. This maintenance release fixes several bugs, including the HDMI display bug that has blocked a minority of users with a set of vertical bars. It also adds support for COMAL 80, Simons BASIC, Waterloo Structured BASIC, Mikro Assembler, and BMP-Data Turbo 2000 as CRT files.


Huge thanks to everyone testing and contributing fixes to the C64 core!


M65Connect v2.4 released!


M65Connect, the essential desktop companion app for the MEGA65, has an update also! Version 2.4 includes richer support for subdirectories, creating new D81 disk images, and many usability improvements. Whether you connect to your MEGA65 via Ethernet or JTAG adapter, or just move a microSD card between your MEGA65 and your PC, M65Connect is the easiest way to manage your files and perform other tasks.


Starting with M65Connect v2.4, macOS no longer complains that the app is “corrupt,” thanks to a long-awaited bug fix in a library that the app uses. As with many open source apps, the macOS version is “unsigned,” and the first time you run it will be blocked by the operating system. In macOS Sequoia, open the app, dismiss the message with the “Done” button, then open the Privacy & Security panel in macOS settings and scroll down to find the button to give it permission to run (“Open Anyway”).



Thanks as always to Tayger for this great tool.


Screenful of BASIC Compo 2025 results!


<figure>

Screenful of BASIC Compo 2025 compilation disk menu

<figcaption>

The Screenful of BASIC Compo 2025 compilation disk menu.


</figcaption>
</figure>

From February to April, the Screenful of BASIC Compo 2025 challenged us to write a game, demo, or tool using just an 80x25 screenful of BASIC 65 code. There were 26 fabulous entries.


I put together a compilation disk with all of the entries and a browsable menu. Try them all!


After a friendly round of voting, three winners came out on top:



  1. Sokoban by johan

  2. Escape with Puppy by lochmana

  3. Dark Horse Tim by fredrikr


Want to know more about compact BASIC coding techniques? Check out The 8 Bit Theory’s YouTube video explaining his Screenful Compo entry, “Screenful Crawler,” a 3D maze in just 16 lines.


Several entries have already had updates and expanded versions published to Filehost, so be sure to check those out as well.


Featured Files


More amazing things recently uploaded to Filehost:



  • Two arcade cores from muse this month! Rush’n Attack (1985) from Konami, and Moon Patrol (1982) from Irem / Williams Electronics.

  • MEGAVOXL and MEGAVOX2, two brilliant 3D voxel demos by Mirage.

  • Tank Versus UFO by Zhedlas, a faithful port of the BASIC game from the VIC-20 user manual.

  • FTL by SirGeldi, a brief starfield demo with music, in BASIC.


Don’t forget that you can follow the MEGA65Files bot on Mastodon or your favorite federated social media service. The bot posts about both new files and updates to existing ones. If you don’t have a fediverse account, you can also follow the bot’s page in your RSS reader.



Why character graphics?


<figure>

Some pixels of the MEGA65 start-up banner

<figcaption>
Some pixels of the MEGA65 start-up banner.
</figcaption>
</figure>

When you first switch on your MEGA65, it shows a screen with a displayable area 640 pixels wide and 200 pixels tall, capable of displaying up to 4,096 possible colors. The MEGA65’s VIC-IV video chip determines the color of each pixel by reading graphics data from memory, and generates a video signal that draws the final image to the screen, many times per second.


If we were designing a graphics system, how would we design the data that describes the image drawn to the screen? One possibility would be to store the color of each pixel. This screen is 640 x 200 = 128,000 pixels. With 4,096 possible colors, each pixel needs to be stored as 12 bits. 128,000 x 12 = 1,536,000 bits = 192,000 bytes, or 187.5 kilobytes. That’s a lot of memory to dedicate to graphics data. Even if we could find a place to put it in the MEGA65’s RAM, it would require substantial computational power to update this memory to draw or animate objects, or scroll a playfield.


<figure>

Pixels represented as 12-bit color values

<figcaption>
Pixel graphics: 12 bits represent one pixel.
</figcaption>
</figure>

The most obvious way to reduce the memory demand of the graphics system is to reduce the quality of the image. Using a pixel resolution that’s 320 pixels wide instead of 640 cuts the needed memory b

Comments 
loading
In Channel
Every Pixel a Color

Every Pixel a Color

2025-11-3023:48

So Many Things

So Many Things

2025-08-1613:32

Taste the Rainbow

Taste the Rainbow

2025-07-0728:00

Character Study

Character Study

2025-05-3132:32

MEGA65: The First Ten Years

MEGA65: The First Ten Years

2025-04-1501:09:34

What's New in v0.97

What's New in v0.97

2025-03-2524:42

EasyAsm

EasyAsm

2024-08-2626:12

Let's paint!

Let's paint!

2024-07-1846:50

KERNAL of Truth

KERNAL of Truth

2024-06-1825:30

Racing the Beam

Racing the Beam

2024-06-0145:12

Sprite Attack!

Sprite Attack!

2024-02-1632:20

The New Hotness

The New Hotness

2024-01-1516:58

loading
00:00
00:00
1.0x

0.5x

0.8x

1.0x

1.25x

1.5x

2.0x

3.0x

Sleep Timer

Off

End of Episode

5 Minutes

10 Minutes

15 Minutes

30 Minutes

45 Minutes

60 Minutes

120 Minutes

Character Study

Character Study

Dan Sanderson