C64 "lines" size optimization contents
Deadline: midnight Finnish time on Monday, Aug 12, 2019.
Problem: make a PRG file that draws two crossing lines in C64 text mode in as few bytes as possible. The output should look exactly like this:
(Note: the reference includes the black border. See the reference code for details.)
Prize: the cassette version of Subtelevision C64 demo by Orange.
How to submit your entry before the deadline
Compute an MD5 sum of your entry PRG file, reply on the contest Twitter thread with
<md5sum foo.prg>, <n> bytes where
n is the size of your PRG in bytes. Example reply:
ba70a303cbac00687ec35266dd642b63, 286 bytes
Why MD5? Sharing only the hash of your output binary means you can share your result and give it a timestamp, without sharing its code publicly yet. Once the contest is over, winner entrants will be asked for their smallest PRG that matches the MD5 that they published. The result PRGs will be verified as follows:
Running the PRG on VICE and comparing the output framebuffer with reference_output.png. The entry output must be an exact pixel match. Note: different VICE setups use a different palette so comparing RGB PNG will not match bit-exactly. The expected colors in C64 index color are: 0 for black, 14 for light-blue (ie., default C64 text color).
Matching that PRG md5sum matches to what was published before the deadline.
Two reference implementations are provided in this gist: one for KickAssembler (
kickass.asm) and one for c64jasm (
c64.asm). The reference code is intentionally unoptimized for size.
The compiled output of
kickass.asm is included in this gist: ka.prg. You should be able to run it directly in VICE.