{"id":13575528,"url":"https://github.com/KimJorgensen/KungFuFlash","last_synced_at":"2025-04-04T22:31:26.306Z","repository":{"id":40240628,"uuid":"230510300","full_name":"KimJorgensen/KungFuFlash","owner":"KimJorgensen","description":"Cartridge for the Commodore 64 that packs a punch","archived":false,"fork":false,"pushed_at":"2025-03-22T05:42:35.000Z","size":2749,"stargazers_count":430,"open_issues_count":29,"forks_count":64,"subscribers_count":68,"default_branch":"master","last_synced_at":"2025-03-22T06:26:11.097Z","etag":null,"topics":["commodore-64","stm32f4"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"zlib","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KimJorgensen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2019-12-27T20:02:04.000Z","updated_at":"2025-03-21T09:01:59.000Z","dependencies_parsed_at":"2024-03-23T15:23:17.084Z","dependency_job_id":"29987d7a-6650-4ba5-8c3f-922d8962872b","html_url":"https://github.com/KimJorgensen/KungFuFlash","commit_stats":null,"previous_names":[],"tags_count":54,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KimJorgensen%2FKungFuFlash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KimJorgensen%2FKungFuFlash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KimJorgensen%2FKungFuFlash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KimJorgensen%2FKungFuFlash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KimJorgensen","download_url":"https://codeload.github.com/KimJorgensen/KungFuFlash/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247260627,"owners_count":20910042,"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":["commodore-64","stm32f4"],"created_at":"2024-08-01T15:01:01.829Z","updated_at":"2025-04-04T22:31:21.297Z","avatar_url":"https://github.com/KimJorgensen.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"# Kung Fu Flash\r\n\r\nCartridge for the Commodore 64 that packs a punch.\r\n\r\n![Kung Fu Flash Launcher](pics/launcher.jpg)\r\n\r\nKung Fu Flash can emulate different cartridge types, load PRG files and use D64 disk images.\r\nJust place your desired CRT, PRG or D64 files on a FAT formatted microSD card and use the built-in launcher to execute them.\r\n\r\n## Hardware\r\n\r\nThere are three buttons on the cartridge; a reset button, a menu button for starting the launcher, and a special button that is used by the freezer cartridges.\r\n\r\n![Cartridge Case](pics/cartridge_case2.jpg)\r\n\r\nThe PCB will fit the Stumpy Cartridge Case from TFW8b, you just need to drill some holes for the buttons and make a cut for the microSD card.\r\nIf you have mounted the USB connector you will need to cut a hole for that as well.\r\n\r\nYou can also 3D print a cartridge case as the one designed by bigby, [see here](https://www.thingiverse.com/thing:4153414).\r\n\r\n![Kung Fu Flash PCB](pics/pcb_rev2.jpg)\r\n\r\nThe gerber files and BOM can be found [here](https://github.com/KimJorgensen/KungFuFlash/releases/tag/rev.2).\r\n\r\n## Supported Cartridges\r\n\r\nThe following cartridge types are currently supported:\r\n\r\n* Generic cartridge (8k, 16k, Ultimax)\r\n* Action Replay v4.x/v5/v6\r\n* KCS Power Cartridge\r\n* Final Cartridge III(+)\r\n* Simons' BASIC\r\n* Fun Play, Power Play\r\n* Super Games\r\n* Ocean type 1\r\n* Epyx Fastload\r\n* C64 Game System, System 3\r\n* WarpSpeed\r\n* Dinamic\r\n* Zaxxon, Super Zaxxon\r\n* Magic Desk, Domark, HES Australia\r\n* Super Snapshot v5\r\n* Comal-80\r\n* EasyFlash\r\n* Prophet64\r\n* Freeze Frame\r\n* Freeze Machine\r\n* MACH 5\r\n* Pagefox\r\n* RGCD, Hucky\r\n* Drean\r\n* C128 Generic cartridge (external function ROM)\r\n* WarpSpeed 128\r\n\r\n## Supported File Types\r\n\r\nThe following file types are currently supported:\r\n\r\n* Cartridge (CRT)\r\n* C64/C128 generic cartridge (ROM, BIN)\r\n* Disk image (D64, D71, D81)\r\n* Tape image (T64)\r\n* Program (PRG, P00)\r\n* Firmware update (UPD)\r\n* Text document (TXT, NFO, 1ST)\r\n\r\n## USB Port\r\n\r\nThe USB port allows programs or disk images to be transferred from/to a PC using the EasyFlash 3 USB protocol.\r\nThe USB port is active when:\r\n\r\n* The Kung Fu Flash launcher is running\r\n* A program is started using \"Load\" in the file options menu (SHIFT+RETURN)\r\n* BASIC is started via F7 in the launcher\r\n\r\nKung Fu Flash shows up as a standard serial port when connected to a PC not requiring any custom drivers to be installed.\r\nThis means, however, that the EasyFlash 3 program on the PC side must be modified to support Kung Fu Flash.\r\nFor that reason a modified version of [EasyFlash 3 USB Utilities](3rd_party/ef3utils) and [EasyFlash 3 BBS](3rd_party/ef3bbs) has been included in this repository.\r\n\r\n## Firmware Update\r\n\r\nJust place the KungFuFlash_v1.xx.upd file on the SD card and select the file in the launcher to initiate the firmware update.\r\nThe newest firmware can be found [here](https://github.com/KimJorgensen/KungFuFlash/releases/).\r\n\r\nFor initial firmware installation, [see here](firmware/README.md).\r\n\r\n## Limitations\r\n\r\nKung Fu Flash is a so called Software Defined Cartridge where a fast microcontroller emulates cartridge hardware in software.\r\nThis makes it extremely flexible, allowing different cartridge types to be supported at a relative low cost.\r\n\r\nHowever, it can be challenging to get the C64 bus timing correct in software and in some places the timing is very close to the limit.\r\nEven though Kung Fu Flash has been tested on different models of the Commodore 64, there is a chance that it doesn't work correctly on your specific model, or requires [phi2 offset adjustment](firmware/README.md#diagnostic).\r\nUse it at your own risk!\r\n\r\nKung Fu Flash will work with the PAL and NTSC version of the Commodore 64 or Commodore 128.\r\n\r\nDisk drive emulation is using kernal vectors and will not work with fast loaders or software that uses direct hardware access which a lot of games does.\r\nCurrently REL files are not supported and only a subset of the Commodore DOS commands are supported.\r\n\r\n## Thanks\r\n\r\nKung Fu Flash was based on or uses other open source projects:\r\n\r\n* [EasyFlash 3](https://bitbucket.org/skoe/easyflash) by Thomas Giesel\r\n* [Draco Browser](https://csdb.dk/release/?id=89910) by Sascha Bader\r\n* [fatfs-stm32](https://github.com/colosimo/fatfs-stm32) by Aurelio Colosimo\r\n* [FatFs](http://elm-chan.org/fsw/ff/00index_e.html) by ChaN\r\n* [libusb_stm32](https://github.com/dmitrystu/libusb_stm32) by Dmitry Filimonchuk\r\n* [stm32f4-bare-metal](https://github.com/fcayci/stm32f4-bare-metal) by Furkan Cayci\r\n* [OpenC64Cart](https://github.com/SukkoPera/OpenC64Cart) by Giorgioggì\r\n* [EasyFlash 3 USB Utilities](https://csdb.dk/release/?id=150097) by Tomaz Kac\r\n* [Disk2easyflash](https://csdb.dk/release/?id=150323) by ALeX Kazik\r\n\r\nand a few others. Please check the individual files for their license.\r\n\r\nThanks to Bjørn N. Jørgensen for giving this project its name.\r\n\r\nSpecial thanks to the author of [Sidekick64](https://github.com/frntc/Sidekick64) Carsten Dachsbacher for his support and inspiration.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKimJorgensen%2FKungFuFlash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FKimJorgensen%2FKungFuFlash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKimJorgensen%2FKungFuFlash/lists"}