Home
|
About
|
Mint
|
Contract
|
Twitter

PETARP

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.

Read More View Contract OpenSea

Minted:
...
out of 64

Click to start
The linked video is a 30 second .mp4 excerpt with a volume fade at the end

Settings / Controls

 
Key
Value
Filter Routing
1 - 3
Filter Mode
4
up
Filter Cutoff Hi Byte
5 - 6
Color Effect
7
Detune Mode
8
Root Note Change
9
Journey Mode
locked
Custom Bytes
 
One byte in the PRG can be set per 64 days after transfer, up to 8 bytes

Byte Editor

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.
Slot Address Value  

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.


< Back
Download Size:
...
out of
64
have been minted.
Please to view your collection

PETARP PRGs

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.
Image Attribution: Bill Bertram Retouched by Lichtspiel, CC BY-SA 2.5, via Wikimedia Commons

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.

function getTokenPRG( uint256 tokenId, bool unmodified ) public view returns ( bytes memory );

the getTokenPRG function has two arguments:

tokenId The id of the PETARP token to fetch the PRG for
unmodified 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 Etherscan. 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.

  Key Unlock Criteria
Filter Routing 1 - 3 Not locked
Filter Mode 4 Not locked
Filter Cutoff Hi Byte 5 - 6 Not locked
Color Change 7 Unlockable if last transfer > 31 days and own more than 1 PETARP
Detune Mode 8 Unlockable if last transfer > 63 days
Root Note Change 9 Unlockable if last transfer > 127 days
Journey Mode 0 Unlockable if last transfer > 255 days and own more than 3 PETARPs
Custom Bytes   A byte can be changed in the PRG every 64 days up to maximum of 8 bytes

Commodore 64 Specifications

A Commodore 64 Rev A. PAL motherboard (1982)
Image Attribution: Bill Bertram, CC BY 2.0, via Wikimedia Commons

Release Date August 1982
CPU MOS Technology 6510/8500 running at 1.023 MHz for NTSC models and 0.985 MHz for PAL Models
Memory 64 KB RAM + 20 KB ROM
Graphics 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.
Sound 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,.
Image Attribution: Tim Colegrove, CC BY-SA 4.0, via Wikimedia Commons

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 cooking recipes. 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.

Not Found