Generative Audio and Visuals, runnable on Commodore 64 computers and emulators.
Parameters are set at time of minting.
C64 executables generated on chain
The 2048 byte Commodore 64 executable PRG for each token can be obtained by executing the contract function 'getTokenPRG'.
The executable PRGs should be available for as long as the Ethereum blockchain exists and runnable for as long as Commodore 64 computers and emulators are available.
The linked video is a 30 second .mp4 excerpt with a volume fade at the end
Settings / Controls
1 - 3
Filter Cutoff Hi Byte
5 - 6
Root Note Change
One byte in the PRG can be set per 64 days after transfer, up to 8 bytes
Click a slot to select it and then a byte to set it. Nothing is saved until you click 'Save Bytes'.
White bytes can be changed.
One slot per 64 days after last transfer.
Slots can be used to set custom bytes within a PETARP's PRG.
Each slot has an address and a value. New slots become available every 64 days after the token was last transferred.
Once an address has been used in a slot, that address cannot be used in the same slot for other tokens.
The code for each PETARP is a 2048 byte PRG which can be executed on Commodore 64 hardware or Commodore 64 emulators such as the x64sc emulator included with VICE.
When running, the PRG will produce generative audio with visuals. The visuals are based on a subset of the PETSCII character set, a character set created for the Commodore PET computer and then later remade for the Commodore 64.
This website contains a Commodore 64 emulator which will display the output of the PRG for the PETARP currently being viewed together with the waveforms for each of the voices of the sound chip, the disassembly of the code being executed and the contents of zero page memory (memory addresses 0 - 255).
The Commodore 64 8-bit computer was introduced at CES in January 1982, released in August 1982 and discontinued in April 1994. Estimates of units sold are between 12.5 million and 17 million.
A Commodore 64 PRG is a binary file where the first 2 bytes specify a 16 bit address in little endian (least significant byte first) format and the remainder of the file contains the binary data to load into memory at that address.
PETARP PRGs contain the data for the characters used in the visuals and do not use the Commodore 64 Character, BASIC or Kernal ROMs while running.
Obtaining the PRG
The PRG code for a PETARP can be obtained either by using the 'Download PRG' buttons on this website or by executing the 'getTokenPRG' function contained in the PETARP Contract.
The PRG for each token should be available for as long as the Ethereum blockchain exists.
Over time, an owner of a PETARP may apply changes to it, set 'unmodified' to 1 to obtain the original PRG for the PETARP, or 0 for the modified version
The function will return the type 'bytes'.
This may take the form of a hex string starting with '0x' where each byte will be represented by two characters in the string and each character will be a hexadecimal number.
The high nibble for the byte will come before the low nibble.
Executing the 'getTokenPRG' function for PETARP 000 (tokenId 0) on
Only part of the returned bytes are shown in the image.
Settings / Unlocks
Settings can be used to alter the sound or look of a PETARP.
The owner of a PETARP can save these settings to the blockchain so the next time the PETARP is viewed it will be loaded with these settings in place.
After settings are saved, the PRG, video and gallery images made available from this website will be updated. This can take a few minutes.
Some of the settings are locked until certain criteria are met. Once the criteria for a locked setting is met, there is no fee to unlock it apart from the gas fee.
If a setting is unlocked, it will remain unlocked even if the criteria is no longer met.
The 0 - 9 keys on the keyboard can be used to change values of unlocked settings when viewing the PETARP.
1 - 3
Filter Cutoff Hi Byte
5 - 6
Unlockable if last transfer > 31 days and own more than 1 PETARP
Unlockable if last transfer > 63 days
Root Note Change
Unlockable if last transfer > 127 days
Unlockable if last transfer > 255 days and own more than 3 PETARPs
A byte can be changed in the PRG every 64 days up to maximum of 8 bytes
MOS Technology 6510/8500 running at 1.023 MHz for NTSC models and 0.985 MHz for PAL Models
64 KB RAM + 20 KB ROM
MOS Technology VIC-II
Max 320×200 resolution, 16 fixed colors, the number of colors onscreen and the resolution will depend on the mode. Modes can be mixed.
MOS Technology SID 6581/8580
3 Oscillators with ADSR, each capable of producing 4 different waveforms: Triangle, Sawtooth, Pulse, Noise
One filter shared between the oscillators
Over the time of its production run of 11.5 years there were revisions to components in the Commodore 64, but generally the specifications remained the same.
Software written for the Commodore 64 platform is be able to run on any of the machines produced (with a very small exception of some programs which take advantage of particular undocumented features).
Despite the hardware remaining largely unchanged, the software produced for the Commodore 64 increased in quality and capability even after the production run had ended.
Tools, techniques and ideas developed and evolved over time and discoveries were made of what the hardware was capable of.
Some notes on Home Computers
The three computers Byte Magazine referred to as the "1977 Trinity" of home computing: The Commodore PET 2001, the Apple II, and the TRS-80 Model I,.
Before the release of the Commodore 64 in 1982, the idea of home computers intended for non-technical
users had already been introduced in 1977 by the Apple II, Commodore PET and TRS-80 computers.
The companies producing these early computers had the challenge of convincing people
they needed a device in their home that they had never needed before.
Many of the suggestions in advertisements seemed to relate to education, home finance and organizing
By 1982 home video games had already gained popularity. The first video game console, the Magnavox Odyssey, was released in 1972.
The Atari 2600 was released in September of 1977 and sold in large quantities after the release of the Atari 2600 conversion of Space Invaders in 1980.
The success of home computers in the late 70s and early 80s lead to many electronic companies releasing their own home computers.
Some companies had no prior connection to the computer industry.
Not much thought was given to compatibility between manufacturers. Many of the computers were unsuccessful.
Commodore released the Commodore VIC-20 in 1980/81 and it was the embodiment of the philosophy 'computers for the masses not the classes'.
It was intended to be more affordable than previous computers and became the first computer of any type to sell a million units.
When the Commodore 64 was released in 1982, the experience and ingenuity of Commodore's engineers
allowed it to produce a computer which was superior to other computers in its price range in terms of graphics and sound.
Commodore owned its own semiconductor fabrication facilities, MOS Technology, which allowed it to reduce costs and aggressively price the computers.
The Commodore 64 brought home computing to a large number of people.
The power of computers has increased significantly since the introduction of the Commodore 64.
Computers are no longer limited to the same 16 fixed colours or the 3 voice sound the Commodore 64 possessed.
Moore's law, an observation that the number of transistors on an integrated circuit doubles around every two years, has mostly held true since the 70s.
The popularity of the internet since the 90s has made owning a computer to be more desirable to people who may never have considered owning a computer before.
Many people now reaching adulthood have never known life without computers or the internet.
Innovations and ideas which rely on computers have taken place and been adopted to the point they have become part of everyday life for a large number of people.
The moment when companies had to convince people of the need for computers seems long gone.
With progress comes obsolescence.
Recent technological obsolescence can make some some types of media disappear or at least become difficult
to experience again.
Operating Commodore 64s still exist in the world and are available on second hand markets.
Commodore 64 emulators for modern operating systems are still actively developed and maintained.
Time will most likely lead to more progress in the field of computing,
but the base specification of the Commodore 64 will remain unchanged.