{"id":15049449,"url":"https://github.com/clownacy/clownlzss","last_synced_at":"2025-04-10T02:09:48.079Z","repository":{"id":96449153,"uuid":"160430740","full_name":"Clownacy/clownlzss","owner":"Clownacy","description":"Collection of compressors, built upon a small and simple graph-based LZSS framework.","archived":false,"fork":false,"pushed_at":"2024-09-02T19:58:22.000Z","size":1054,"stargazers_count":27,"open_issues_count":1,"forks_count":4,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-02-14T03:18:09.672Z","etag":null,"topics":["ansi-c","c89","c90","compression","compressor","cpp20","framework","library","lzss","sega","sega-genesis","sega-mega-drive"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"0bsd","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Clownacy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2018-12-04T23:12:16.000Z","updated_at":"2025-02-10T17:56:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"0b76f9db-c9ff-4fe0-9b41-afc9dba4e271","html_url":"https://github.com/Clownacy/clownlzss","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clownacy%2Fclownlzss","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clownacy%2Fclownlzss/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clownacy%2Fclownlzss/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clownacy%2Fclownlzss/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Clownacy","download_url":"https://codeload.github.com/Clownacy/clownlzss/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239114235,"owners_count":19583985,"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":["ansi-c","c89","c90","compression","compressor","cpp20","framework","library","lzss","sega","sega-genesis","sega-mega-drive"],"created_at":"2024-09-24T21:20:32.091Z","updated_at":"2025-04-10T02:09:48.071Z","avatar_url":"https://github.com/Clownacy.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"clownlzss is a lightweight, minimalist, graph-based LZSS framework.\nAlso included are a collection of compressors which utilise the framework.\n\nFormats supported by the supplied utilities include:\n\n- Kosinski - a compression format common to first-party Sega Mega Drive games\n\n- Saxman - a format used by Sonic the Hedgehog 2, to compress its sound engine\n  and music data (is actually a lightly-modified version of Haruhiko Okumura's\n  1989 LZSS format)\n\n- Chameleon - a format that saw use in Kid Chameleon and Sonic the Hedgehog 2's\n  \"Nick Arcade\" prototype\n\n- Rocket - a format used by Rocket Knight Adventures\n\n- Rage - a format used by Streets of Rage 2 (is actually RLE, not LZSS)\n\n- Kosinski+ - a modified version of Kosinski developed by the Sonic ROM-hacking\n  community, which optimises the format for the Mega Drive's CPU, improving\n  decompression speed at no cost to compression ratio\n\n- Faxman - a modified version of Saxman designed to produce smaller files when\n  used to compress SMPS music data\n\n- Comper - another community-developed format, which is designed from the\n  ground up with a focus on decompression speed on the Motorola 68000. This\n  comes at a significant cost to compression ratio\n\n- GBA BIOS - LZSS compression as implemented in the Gameboy Advance BIOS.\n  Both normal and VRAM safe mode are supported.\n\nclownlzss utilises graph theory to perform optimal compression: naive \"greedy\nalgorithm\" compressors prefer to compress the longest runs possible, but this\ndoes not guarantee the best compression ratio. Graph-based compressors resolve\nthis by creating an \"LZSS graph\" - a weighted directed acyclic graph where each\nnode is a value in the uncompressed file, and each edge is an LZSS match. By\nusing a shortest-path algorithm, this graph can be used to compute the ideal\ncombination of matches needed to produce the smallest file.\n\nThis project is under the 0BSD licence.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclownacy%2Fclownlzss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclownacy%2Fclownlzss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclownacy%2Fclownlzss/lists"}