{"id":18852049,"url":"https://github.com/youdirk/c64-non-sense","last_synced_at":"2026-01-24T02:39:32.789Z","repository":{"id":73186129,"uuid":"305229662","full_name":"YouDirk/c64-non-sense","owner":"YouDirk","description":"The C64 NonSense Game Engine.","archived":false,"fork":false,"pushed_at":"2022-07-23T12:16:02.000Z","size":602,"stargazers_count":4,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-27T23:12:18.182Z","etag":null,"topics":["archived","c1541","c64","c64-game","cc65","game-development","game-engine","gamedev","linux","nonsense","vice"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/YouDirk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["YouDirk"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-10-19T01:13:05.000Z","updated_at":"2024-04-16T17:51:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"f9d16b47-cbac-4d29-b58a-a982ea8207fb","html_url":"https://github.com/YouDirk/c64-non-sense","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YouDirk%2Fc64-non-sense","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YouDirk%2Fc64-non-sense/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YouDirk%2Fc64-non-sense/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YouDirk%2Fc64-non-sense/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YouDirk","download_url":"https://codeload.github.com/YouDirk/c64-non-sense/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248860242,"owners_count":21173339,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["archived","c1541","c64","c64-game","cc65","game-development","game-engine","gamedev","linux","nonsense","vice"],"created_at":"2024-11-08T03:37:50.657Z","updated_at":"2026-01-24T02:39:32.784Z","avatar_url":"https://github.com/YouDirk.png","language":"C","funding_links":["https://github.com/sponsors/YouDirk"],"categories":[],"sub_categories":[],"readme":"\u003e C64 NonSense, the C64 Game Engine.\n\u003e Copyright (C) 2020-2025  Dirk \"YouDirk\" Lehmann\n\u003e\n\u003e This program is free software: you can redistribute it and/or modify\n\u003e it under the terms of the GNU Affero General Public License as published\n\u003e by the Free Software Foundation, either version 3 of the License, or\n\u003e (at your option) any later version.\n\u003e\n\u003e This program is distributed in the hope that it will be useful,\n\u003e but WITHOUT ANY WARRANTY; without even the implied warranty of\n\u003e MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n\u003e GNU Affero General Public License for more details.\n\u003e\n\u003e You should have received a copy of the GNU Affero General Public License\n\u003e along with this program.  If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n\n\nC64 NonSense\n============\n\nWelcome the C64 NonSense Game Engine :)\n\n* Interesting stuff?  Then **Donate/Sponsor**  \n  [![Donate/Sponsor][sponsor-pic]][sponsor-link] https://github.com/sponsors/YouDirk\n\nThe progression of C64 NonSense is vlogged at [Youtube here\n(German)][youtube-list], too :)\n\n![The Screenshot](trunk/screenshot-promo.jpg)\n\n### Features\n\n* **Video**  \n      PAL (optimized), NTSC (working, via [`src/Timer.h`](src/Timer.h)\n      optimizable)\n* **Graphic modes**  \n      HiRes 320x200 with 2 colors/cell, Multicolor 160x200 with 4\n      colors/cell *[WiP]*\n* **Sprites**  \n      8x real-time configurable sprites, with collision detection and\n      bitmap animations *[WiP]*\n* **Input**  \n      joysticks (port 2 and 1), keyboard (via scan codes and PETSCII\n      characters)\n\nDevelopment toolchain\n---------------------\n\nWe are developing on **Linux** using a **Debian** distribution as host\nplatform.  You need the following tools to develop, which you are able\nto install using the Debian package manager `apt`\n\n* **git** To clone the source repository, i.e.\n  ```shell\n  $\u003e git clone https://github.com/YouDirk/c64-non-sense.git c64-non-sense\n  ```\n* **make** To build and run the stuff.  See the section *\"Make targets\"*\n           below.  I.e. to compile and run in VICE type\n  ```shell\n  c64-non-sense/$\u003e make run\n  ```\n* **cc65** Command `cl65` for the C64 C cross-compiler collection.\n* **vice** Command `c1541` for the disk-image tool and command `x64`\n           (optional) for the C64 emulator.  Make sure to have\n           **`contrib`** enabled in `/etc/apt/sources.list`!\n           Additionally you need to install the Kernal/BASIC ROMs\n           manually, see the section below.\n* **pmount (optional)** To automatically copy the D64 file to a\n           removable disk (i.e. USB storage) using the make target\n           `$\u003e make disk`.\n\n```shell\n$\u003e sudo apt-get install git make cc65 vice\n$\u003e sudo apt-get pmount               # optional\n```\n\n### VICE/x64 (C64 emulator) Kernal/BASIC/CharGen ROMs\n\nIf you are using the **Debian** `contrib` package of `vice` then you\nneed to download manually the Kernal, BASIC and CharGen ROMs of the\nemulator due to copyright purposes.  Here an how-to:\n\nDownload the source tarball `vice-3.x.tar.gz` (replace `3.x` with your\ninstalled VICE version as listed in `$\u003e dpkg -l 'vice*'`) from\n\n* *https://sourceforge.net/projects/vice-emu/files/releases/*\n\nUnpack it and copy it´s whole `data/*` directory into\n`/usr/share/vice/`.\n\n```shell\ntmp/$\u003e tar zxf vice-3.x.tar.gz\ntmp/$\u003e sudo cp -rf vice-3.x/data/* /usr/share/vice/\n```\n\nDone, now you can run VICE using `$\u003e x64` :)\n\n### Make targets\n\n```make\nall \u003cdefault\u003e: Compiles and packs the src/non-sense.d64 disk image file\nrecompile:     Runs 'clean' followed by 'all'\nclean:         Deletes temporary files / prepare for recompilation\n               Useful on 'Header file not found' compilation errors\nclean-all:     Deletes all files which are not under version control\nrun:           Make 'all' and `RUN` NonSense in VICE, use PAL (VIC 6561)\nrun-ntsc:      Same as 'run', but using NTSC version of VIC (VIC 6560)\nrun-load:      Same as 'run', but just `LOAD\"*\",8,1` NonSense, no `RUN`\nrun-attach8:   Same as 'run', but no `LOAD`, no `RUN`\ndebug:         Make 'all', then as configured in makefile.config.mk set\n               breakpoint and `RUN` NonSense with debugger attached (PAL)\ndebug-ntsc:    Same as 'debug', but using NTSC version of VIC emulated\ndisk:          Make 'all' and copy the D64 file to a removable disk\n               (i.e. USB storage) as configured in makefile.config.mk\ntags-all:      Make 'tags-ctags', 'tags-etags' and 'tags-ebrowse'\ntags-ctags:    Runs 'ctags' indexer for TAB auto-completion\ntags-etags:    Runs 'ebrowse' indexer for TAB auto-completion in Emacs\ntags-ebrowse:  Runs 'etags' indexer for TAB auto-completion\n```\n\nCredits\n-------\n\n* Donators:  \n  [![Donate/Sponsor][sponsor-pic]][sponsor-link] *nobody1, nobody2,\n  nobody3 D':*\n\n* Regular contributors:  \n  *Dirk \"YouDirk\" Lehmann*\n\n----------------------------------------------------------------------\n\n### Appendix: Programmers references\n\n* Commodore 64 wiki *(well beginning)*\n    - (en)                     https://www.c64-wiki.com/wiki/C64\n    - (de, *sometimes deeper*) https://www.c64-wiki.de/wiki/C64\n\n* Commodore 64 Programmer's Reference Guide\n    - (pdf)  http://www.classiccmp.org/cini/pdf/Commodore/C64%20Programmer's%20Reference%20Guide.pdf\n    - (html) http://www.devili.iki.fi/Computers/Commodore/C64/Programmers_Reference/page_iii.html\n    - (txt)  http://www.zimmers.net/cbmpics/cbm/c64/c64prg.txt\n    - (wiki) https://www.c64-wiki.com/wiki/Commodore_64_Programmer%27s_Reference_Guide\n\n* Commodore 64 ROMs disassembled\n    - (Kernal, BASIC, etc.) http://unusedino.de/ec64/technical/aay/c64/\n\n* Commodore 64 schematic diagrams\n    - (left)   https://www.c64-wiki.com/wiki/File:PRG_Schematic_(left).gif\n    - (right)  https://www.c64-wiki.com/wiki/File:PRG_Schematic_(right).gif\n    - (others) http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/c64/\n\n* Commodore 64 datasheets\n    - (MOS 6510, CPU)            http://www.6502.org/documents/datasheets/mos/mos_6510_mpu.pdf  \n      *instruction set, opcodes* http://www.6502.org/tutorials/6502opcodes.html\n\n* CC65 compiler specifications\n    - (2x C stack: return \u0026 parameter) https://github.com/cc65/wiki/wiki/Parameter-and-return-stacks\n    - (C calling conventions) https://github.com/cc65/wiki/wiki/Parameter-passing-and-calling-conventions\n\n\n[sponsor-link]: https://github.com/sponsors/YouDirk\n[sponsor-pic]: trunk/button-sponsor.20.png\n[youtube-list]: https://www.youtube.com/playlist?list=PLSC2VXOJyxP01kz__GU2nvx4RmgCN4ZwO\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoudirk%2Fc64-non-sense","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyoudirk%2Fc64-non-sense","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoudirk%2Fc64-non-sense/lists"}