First note this is software is free as in freedom. You are welcome to learn from this site, use components of it in your own works, modify it, host your own copies, share derived versions with others, etc. The only notable condition is that you must guarantee others the exact same freedoms and benefits that I have granted you. See the 'LICENSE' section for more detail.
A pre-built version of the site should have been included for your convenience.
To run the site, you will need http server software. For local testing, I recommend using either Node.js or Python (the programming language).
If it isn't already, you will need Node.js http-server installed. Open a command line and run:
npm install -g http-server
Then open the command line and navigate to this directory. Once there, type in:
http-server
And hit enter to start a local http server. The command line should tell you some local web addresses you can visit to look at your site.
If Python is installed, then open the command line and navigate to this directory. Once there, type in:
python3 -m http.server
And hit enter to start a local http server.
Finally, open a web browser. Type "localhost:8000" into the address bar to see your local instance of the site.
Note that the build process is merely a fancy way of generating HTML, CSS, and JavaScript files. If you'd prefer to keep things simple and get working immediately, you can always edit those output files directly. Be advised, however, that if you switch to the full build process later, that process will overwrite any changes you made to the output files.
If you're working more extensively, it's generally easier to work with the source files and use software to automatically generate the HTML, CSS, and JavaScript. To run this build process, you will need several pieces of software installed. You will need:
After Node.js and npm are installed, these packages can be installed by opening a command line and running:
If everything is installed correctly, you should be able to open this directory in the command line and run:
make
The entire site will be built automatically, and you can view it locally in your web browser if you have an http server running (See 'Running Locally').
If this doesn't work, chances are you are missing the GNU utilities like xargs, cat, zip, or base64 which come by default on GNU/Linux systems but may require additional steps to install depending on your choice of operating system.
The source files are all located in the 'src' directory. Most of these are text files, and can be edited with a standard text editor. However, some form of code-oriented editor will make life easier for you. If you don't already have a preferred code editor, I recommend trying "Visual Studio Code" (NOT to be confused with "Visual Studio," which is a different product).
The images (*.xcf files) were created with GIMP. You can use GIMP to open these files and edit the exact, original sources with all the layers and effects used. Alternatively, under "res/img," you can open and edit the final image files directly without these layers and effects. Some images do not have a source XCF file because they were created directly in this fashion.
The site has several constraints as part of it's aesthetic.
Note these are minimum constraints, since a C64 could only display at that standard under very specific circumstances. Other cases of images have more constraints to better match the C64.
To take an existing image and make it obey these constrains, first you should crop the area of interest to fit the resolution constraints.
Keeping images on palette usually involves using GIMP's Image->Mode->Indexed tool with the C64Palette as the palette. Usually, some form of dithering is preferred to get better color usage. However, often this alone does not produce images of high enough quality.
To resolve this, first I export the cropped image with the Image->Mode->Indexed tool and no color dithering. This is my "colormap" image, which I use to guide further edits to ultimately create a higher quality conversion.
In general, the editing process is:
Two tools useful for editing an existing image into the palette:
Most of the images that I converted to the C64 palette use exactly this, nothing extra. You can look in src/res folder to see the original images for these along with the final version before conversion. This can be useful to try the process yourself.
The most popular image mode for C64 games was multicolor mode. This mode featured:
Images used for more than just static display, such as backgrounds in a web game, should obey these tighter constraints.
C64 spirtes were limited to 12x21 with 2x1 pixels with 3 shared colors (background color is same as with the rest of the screen, but other two shared colors are unique to sprites) and an individual color. Technically limited to 8 sprites at a time, but in practice interrupt swapping could allow as many as 30 at once without too many complications.
You may notice that PNGs and GIFs created by your favorite image editor are larger than the PNGs and GIFs in the res/img folder. Smaller images are preferred because the page loads faster and they cost less to host. To get PNGs and GIFs of similar tiny size, I use the "zopflipng" to optimize PNGs and "gifsicle" to optimize gifs.
For "zopflipng," I optimize using the recommended maximum optimization:
zopflipng --iterations=500 --filters=01234mepb --lossy_8bit --lossy_transparent infile.png outfile.png
For "gifsicle," I use the basic optimization command. Note that there is little point in optimizing a gif that is not an animation, since there aren't many optimization tricks inherent in the format.
gifsicle -O3 infile.gif -o outfile.gif
For the benefit of showing you the full writing process, my unreleased articles and notes are included in this release. These include everything under the 'src/articles' folder but not in the 'src/articles/published' subfolder. While I hope they are interesting and instructive, bear in mind that these are effectively unpublished notes to myself. Therefore, since they are not written for a public audience, a number of usual assumptions about reading and interpreting them are no longer valid.
What exactly is different?
A personal note is simply anything I found useful for reminding myself of a particular idea. They have no particular organization or theme, don't necessarily have a clear interpretation or meaning to anyone other than myself, and aren't necessarily reflective of my own thoughts or beliefs.
Here are some points to help you better understand these notes correctly.
As they are personal notes, I am the sole intended audience of these notes. As such, I do not make any effort to ensure their meaning is clear to anyone else or to prevent others from misinterpreting them. Even in nearly-published articles, I include some things which are only meant as a note for myself, and I do not always clearly separate those out. Therefore, I suggest being very cautious of assuming what one of these notes means to you is the same meaning I intended for myself when I wrote it.
Unlike published works, these are simply semi-unorganized notes, and do not necessarily have a coherent overall message they are trying to communicate. While it can be tempting to look for an overall meaning, especially in parts that are closer to full articles, I suggest not looking too hard. Some things that look like part of an article aren't actually intended to be part of the article, and are simply more elaborated reminders to myself of particular ideas.
The primary purpose of these notes is to remind me of certain ideas, but that doesn't mean they are my own ideas, or even ideas I necessarily agree with. I can and do make notes of other's ideas that I happened upon. I also make notes of ideas I disagree with, sometimes even in great detail, for various reasons such as intending to write an informed argument against them, or thinking that a better understanding of that viewpoint could help me write in a way that resonates with those who do believe that view.
Therefore, I kindly ask you to not try and use these notes as a window into my personal views and beliefs. Some of these notes do reflect my views and beliefs, but not all of the notes are reflective of that. If you're interested in my beliefs or views on something, I suggest a more effective method is to simply ask me.
Due to neocities' file extension whitelist, all SID files have renamed file extensions. For these files, the "PNG" file extension can be dropped so it becomes a ".sid" file to obtain the original file.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.
See COPYING.AGPL for the GNU AFFERO GENERAL PUBLIC LICENSE
While this work as a whole and all of it's components are available under the GNU Affero General Public License, some components are also available under different license terms. These components and their respective terms are listed below.
For any copyright year range specified as YYYY-ZZZZ in this package note that the range specifies every single year in that closed interval.
res/img/agpl-v3-logo.svg
The AGPL Logo is in the public domain.
res/fonts/CCH.woff2
The "Connecting Chain" font is Copyright (C) 2018 by Katapan, and is licensed under the following terms:
You MAY use the "Connecting Chain Handserif" font provided with the patch for anything you create, as long as you give credit to me.
res/fonts/CP.woff2
The "Commodore 64" font is Copyright (C) 2005 by Devin Cook, and is licensed under the following terms:
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
"Let's Go" is Copyright (C) 2002 by Kamil Wolnikowski (Jammer)
"Eager to Play" is Copyright (C) 2002 by Kamil Wolnikowski (Jammer)
JSSid is Copyright (C) 2013 by Joe Hohertz, and is licensed under the GNU GPL Version 2.
pico.js is Copyright (C) 2013 by nao yonamine, and is licensed under the following terms:
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
steam.js is Copyright (C) 2013 by Matt Westcott & Ben Firshman, and is licensed under the following terms:
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
All files under the res/img folder that are not listed elsewhere on this page are Copyright (C) 2020 by thebatknight <thebatbox@
protonmail.com>.Permission is granted to copy, distribute and/or modify these files under the terms of a Creative Commons Attribution-ShareAlike International License, Version 4.0 or any later version published by Creative Commons Corporation. A copy of the license is included in the ''COPYING.CSA'' file as part of this distribution, and is also available at https://creativecommons.org/licenses/by-sa/4.0/
All files under the res/mid folder that are not listed elsewhere on this page are Copyright (C) 2020 by thebatknight <thebatbox@
protonmail.com>.Permission is granted to copy, distribute and/or modify these files under the terms of a Creative Commons Attribution-ShareAlike International License, Version 4.0 or any later version published by Creative Commons Corporation. A copy of the license is included in the ''COPYING.CSA'' file as part of this distribution, and is also available at https://creativecommons.org/licenses/by-sa/4.0/
This document is Copyright (C) 2020 thebatknight <thebatbox@
protonmail.com>Permission is granted to copy, distribute and/or modify this document under the terms of a Creative Commons Attribution-ShareAlike International License, Version 4.0 or any later version published by Creative Commons Corporation. A copy of the license is included in the ''COPYING.CSA'' file as part of this distribution, and is also available at https://creativecommons.org/licenses/by-sa/4.0/
Click here to return.