Commodore 64 tape preservation project
SITE POLICY / GOALS
We preserve c64 tape games (not disk and cartridge games as there are other good sites.)
No download of games for ordinary users (only for research)
It's probably not legal, it eats LOTS of bandwidth and it's not why this site exists.
Raw dumps available to developers who can help analyze loaders.
Games available to developers/researchers so that more information about the games can be provided.
We are a preservation and research project
Information about all companies, people and products
We want to preserve as many games and information about those games as possible before it's too late.
We're a non-profit project
No membership fees
Open discussions / plans
Create a strong community for preservation
Open database format
All information will be available and there will be no closed database formats.
All data owned by the community, NOT the site admins
Change copyright notes (footer) when it's decided to whom/what enitity it's to be transfered to.
Open Publication License (OPL) might be considered.
We need several guides telling contributors how to create and provide information for the site.
Without these guides we get a much harder time incorporating the info and use lots of time to adapt it.
The acuracy of the information will also be higher when people know what we need and how to get/
Analyze loaders guide
Submit files/data guide
Quality check data
Don't add data you're not sure about.
If in doubt, please consult with other people.
Comprehensive docs of all c64 tape formats
Loaders documented with full source
id int ID of game
uniq_id int Uniq ID across c64 sites
same int Number that bind together same game, but different loader,
cover_title varchar(255) Title on the cover/inlay. This is the title displayed
label_title varchar(255) Title on cassette/cassette label
game_title varchar(255) Title when game completely loaded
genre indexes genre
create_date date When record was first created
update_date date When record was last updated
languages bigint Bitfield of languages
compilation index compilation If game part of compilation
scanned_by index preservers Who did the scanning
screenshots_by index preservers Who did the screenshots
owned_by indexes preservers Who own this game
developer_names indexes people_companies
publisher_name index people_companies
publisher_year index year The year THIS particular game was IN the STORES
coded_by indexes people_companies
music_by indexes people_companies
gfx_by indexes people_companies
others_by indexes people_companies All other people involved (designer, producer, manual
writer, cover designer
other_info blob Lots of info (can also be info about owners of this game)
filename varchar(255) path+filename of game
raw varchar(255) path+filename of raw dump(s)
sid varchar(255) path+filename of sid(s)
docs varchar(255) path+filename of docs
box_format index box what kind of box is game contained in
barcode varchar(255) barcode number on packaging
tape_num_tapes byte Number of tapes
tape_num_sides byte Number of tape sides
tape_multiload int Number of parts
tape_modified index yesno Manually modified?
tape_loader index loader Loader used
tape_notes blob Lots of info (report from FT and other)
tape_cbmrcrc32 varchar(9) CRC32 of CBM ROM block
clean_software index clean What software and version was used to clean tap(s)
magic_crc32 varchar(64) CRC32 of entire TAP (1 line for each TAP)
reviews varchar(255) Magazine reviews (1 line for each)
rarety int How rare the release is
value int How much is the release worth
btw: pictures does not have a field in the db. They are called id_[l|s|g|o]_num.
[l|s|g|o] = l - loader, s - start, g - game, o - other. num = number of picture.
Example: 163_l_1 = the first loader picture of game no. 163.
Same thing for scans. They are called id_[f|if|ib|tf|tb|box]_num
f = front of cassette cover or box
if = inlay front
ib = inlay back
tf = cassette front
tb = cassette back
box = scan of all sides of a box
Remember that games part of a compilation will use the compilation scans.
name varchar(32) Name of country
short varchar(2) Short version of name (en = england, de = germany, no = norway)
name varchar(48) Loader name
threshold varchar(4) Threshold (TAP byte) $xx
threshold2 varchar(5) Threshold (Clock cyles) $xxxx
endianess index endianess MSbF or LSbF
pilot varchar(255) Pilot
sync varchar(255) Sync
bit0_pulse varchar(4) $xx
bit1_pulse varchar(4) $xx
notes blob Description of loader
disassembly blob Disassembly of loader
name varchar(128) Name of person/company, not uniq
company index yesno Is this a company? (or a person)
notes blob Info about company/person
name varchar(64) Name of owner/dumper/scanner, not uniq
name varchar(255) Full name of compilation
publisher index people_comanies Name of publisher
num_games byte Number of games
name varchar(32) Box types/names
name varchar(3) yes or no
preserver index preservers The owner of this game/comment
comments tinyblob The comment
game_id index main The game we want to comment
name varchar(32) Software name and version
name varchar(32) See rarety guide below
index = int
indexes = varchar(255), containing numbers separated by spaces
1 - Very common
2 - Common
3 - Somewhat scarce
4 - Scarce
5 - Somewhat rare
6 - Rare
7 - Very rare
8 - Extremely rare
9 - Prototype
TAPClean (win+lin util)
FinalTap (windows util - both GUI and CLI version)
Mtap (dos util)
Recorder Justage (c64 util)
Inspect2 (windows util)
Commodore 64 Programmer's Reference Guide
This site is based on input and data from the following people:
Bo Goeran Kvamme (PHP, DB and data input)
Fungus (Loader analysis)
Mason (data input)
Peepo (DB and data input)
TCE (Loader analyzis and the DC2N)
...and others at tapes.c64.no
(if your name is missing, please let me know)
- Title.php: Only display db-fields with actual data (not sure about this one)
- Title.php: Fix MS Explorer render bug (width and size of screenshots)
- Recode all pages to use php templates and even more CSS (partly done)
- Let owners make duplicate lists + describe condition of their games/collection
- Status: Show list of games added since last visit
- Add user profiles: enable/disable db fields, output preferences, session support etc.
- Fix pages still using old design
- Add page explaining how to add/change data to/in the database
- Toggle showing of original releases only or all games
- By clicking on the thumbnails you will see the full scan (jpg).
Admin user will see png. (this part is done)
- Handle links when uploading scans + cover for compilations
- Add ability to edit owner field (only remove yourself)
- When adding games part of a compilation: Do it all on one page and only do the
common fields once.
- Add reports (select fields to add to the query)
- Right align numbers on front page. Maybe using tables and CSS?
- A 'show loader' page with all info about a loader, including list of games using it.
- Add barcode checker (check for duplicates and games missing barcode)
- New design
- Look at Ajax
- Show info field at title page when logged in
- Show games (last 7 days) with taps added
- Fix download of Grog's Revenge (0299). Probably quotes trouble.
720 degrees too
- Update time for edit_game is 0, date is ok
RULES FOR ENTERING A GAME TO THE DATABASE
- You should own the game or know someone who do AND get the data about the game from the packaging.
- If a game title start with 'The', put it at the end like this: 'Game, The'.
- If the game has got a subtitle, put it behind main title after a ': '.
- Prepositions and 'the' inside sentences should be all small caps.
- Please remember to add the publisher of YOUR ACTUAL release in the publisher field.
That is: Rereleases and compilations use the publisher of the rerelease/compilation.
- Don't set the Year field if you don't know the year YOUR ACTUAL release was in the STORES.
- Only use barcode numbers from original game package (inlay for tape games).
Use 'None' if no barcode, or Incomplete if damaged.
- The tap and raw filenames use the name of the game from the packaging as the filename.
- Multiple versions/packaging of the same game get their own entries in the db.
Different barcode numbers -> new db entry.
Different inlay -> new db entry.
They MIGHT share the same tap. We don't handle multiple version of cassette label prints for now.
- Inlay scans are done in 300dpi in png format (you may scan in higher resolution).
- Scan with descreen, then in photoshop use unsharp mask with values 120-180 and 0,5 in the first two parameters. Plain sharpen in terrible
You may scan the text ONLY pages without colors in grayscale.
If there are colors, you scan it in colors.
- The cover is a 'cropped' front inlay resized to a width of 300 pixels and in jpg
- Don't fill in the scanned_by field if you don't intend to do that work.
- Please remember that scans, dumps and screenshots follow a SPECIFIC version of the game.
Screenshots are made from the taps OF THAT game. NOT some other dump from the Internet.
- Filenames for taps, raw taps and docs:
title = in-game title
dumper= username of dumper
id = game id (xxxx)
raw taps: title_dumper_id.zip [files: title_dumper_id_RAW-X.tap or .dmp for dc2n files]
taps: title_id.zip [files: title (Side x)_id.tap]
docs: title_id_doc.zip [files: ]
Remember: 'a' and 'the' at end of sentence, and ':' becomes '-' (not sure about the ':')
- If in doubt, PLEASE ASK BEFORE adding data to the database.
- Suggestions/improvements are always welcome.
- There are currently some db fields that can't be added/changed without a SQL client.
This will be fixed SOON.
- There will be a new contribution page with more information soon.
- SUMMARY: ALL data should come from original game/packaging and the dump of THAT game.