{"id":19297231,"url":"https://github.com/AlbanBedel/scummc","last_synced_at":"2025-04-22T08:31:21.030Z","repository":{"id":72035909,"uuid":"11711295","full_name":"AlbanBedel/scummc","owner":"AlbanBedel","description":"A Scumm Compiler","archived":false,"fork":false,"pushed_at":"2023-11-24T10:06:02.000Z","size":1407,"stargazers_count":129,"open_issues_count":4,"forks_count":19,"subscribers_count":16,"default_branch":"master","last_synced_at":"2024-11-09T23:02:24.549Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlbanBedel.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}},"created_at":"2013-07-27T21:28:54.000Z","updated_at":"2024-08-07T09:55:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"45b49c87-aef2-4316-8d2b-e669f4de33eb","html_url":"https://github.com/AlbanBedel/scummc","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlbanBedel%2Fscummc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlbanBedel%2Fscummc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlbanBedel%2Fscummc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlbanBedel%2Fscummc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlbanBedel","download_url":"https://codeload.github.com/AlbanBedel/scummc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250206156,"owners_count":21392197,"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":[],"created_at":"2024-11-09T23:01:48.757Z","updated_at":"2025-04-22T08:31:16.021Z","avatar_url":"https://github.com/AlbanBedel.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"\n\n# ScummC - A Scumm Compiler\n\n\n## I. What is ScummC ?\n\nScummC is a set of tools allowing to create SCUMM games from scratch.\nIt is capable to create games for SCUMM version 6 (used by Day Of\nThe Tentacle, aka dott) and somewhat support version 7 (used by Full\nThrottle).\n\n\n## II. This release\n\nIn this release you will find:\n\n  * scc      : the compiler\n  * sld      : the linker\n  * boxedit  : a room box editor\n  * cost     : a costume compiler\n  * char     : a charset converter\n  * costview : a costume viewer/editor prototype\n  * soun     : a simple soun resources builder\n  * midi     : a tool to hack MIDI files\n\nSome utilities that might (or might not) be useful with SCUMM related\nhacking.\n\n  * zpnn2bmp : convert ZPnn blocks to bmp\n  * imgsplit : split a bmp (it conserve the palette)\n  * imgremap : exchange two colors (both palette and data)\n  * palcat   : combine bmp palettes.\n  * raw2voc  : read some raw 8bit unsigned samples and pack them in a voc.\n  * scvm     : a VM prototype that should become a debugger some day.\n\n\n## III. Compiling it\n\nRequirements:\n\n  * GNU make \u003e= 3.80\n  * bison \u003e= 2.7\n  * GTK \u003e= 2.4 (for boxedit and costview)\n\nOptional libraries:\n\n  * Freetype (to build charsets from ttf fonts)\n  * SDL (for scvm)\n  * xsltproc (for the man pages and help messages)\n\nTo compile just run configure and then make (or gmake). If you want to\nalso compile the extra utilities run make all. To see all available\ntargets run make help.\n\nThe code is now continuously tested with Travis CI and AppVeyor,\nthe following platforms are currently known to work:\n\n  * GNU/Linux x86\n  * Mingw64 x86 (native and cross compiled from GNU/Linux)\n  * OSX x86\n\nPast versions have been known to build on NetBSD, FreeBSD, OpenBSD,\nSolaris, OS2 and AmigaOS.\n\n\n## IV. What can i do with that ?\n\nAlready quite a lot ;) All major features from the engine are usable,\nand a full game can be built from scratch. SCUMM version 6 is the default\ntarget, but version 7 is also partially supported.\n\n\n## V. Getting started\n\nAn example is provided. Just cd into one of the example directory and\nrun make. If all went well it should produce 3 files: scummc6.000,\nscummc6.001 and scummc6.sou.\n\nTo run ScummC games with ScummVM their is two ways. The recommended\nway is to patch ScummVM to have it recognise ScummC games and run them\nwithout any game specific hack. Otherwise you can run the game as Day\nof the tentacle, this is not recommended because a few hacks might\nkick in. However that shouldn't be a problem with small test games.\n\nTo patch ScummVM cd in your ScummVM source directory and run:\n `patch -p1 \u003c ~/scummc-X.X/patches/scummvm-Y.Y.Y-scummc.diff`\n\nAlternatively you can use the original LEC interpreter, but be warned\nthat a few things (namely save/load) are currently not working with it.\nNot that you really need to save in the example game ;)\n\nNote that to run the game as Day of the Tentacle with ScummVM or with the\nLEC interpreter you must give the following extra options to sld:\n`-o tentacle -key 0x69`. For the LEC interpreter you must also rename\ntentacle.sou to monster.sou. The example games can be built as Day of\nthe Tentacle by running `make tentacle`.\n\nDocumentation is currently limited, the two most useful sources are:\n\n  * https://github.com/AlbanBedel/scummc/wiki\n\n    For all ScummC specific documentation and some technical stuff\n    about SCUMM internals.\n\n  * http://wiki.scummvm.org/index.php/SCUMM_Technical_Reference\n\n    More techinal documentation. If you are new to SCUMM you should at least\n    read http://wiki.scummvm.org/index.php/SCUMM_Virtual_Machine which give\n    a nice overview of the VM.\n\n  * The man pages\n\n    The man directory contain man pages for the various tools. Just open\n    the XML files with any XSLT capable browser (like firefox).\n\n\n## VI. The box editor\n\nThis tool allow you to define the boxes in your room in a graphical\nmanner and to name them for easy reffering in the scripts.\nBe warned that the interface is perhaps a bit unusual. The 2 open and save\nbuttons should be self-explicit. But both have an alternative action if\nclicked with a shift key pressed. Namely open a background image and\nsave as. On the view you have following actions:\n\n * left button        : add point to the selection\n * right button       : remove point from the selection\n\n * shift+left button  : add box to the selection\n * shift+right button : remove box from the selection\n\n * ctrl+left button   : select other point (a point need to be selected first)\n * ctrl+right button  : select other box (a box need to be selected first)\n\n * left button drag   : move the selection\n * middle button drag : move the view\n\nThere are also the following keys:\n\n * b         : create a new box\n * d / suppr   : delete the selection\n * esc       : clear selection\n * u / q       : undo\n * r / o       : redo\n * \u003e / +       : zoom in\n * \u003c / -       : zoom out\n * s         : save\n * S         : save as\n\nI'm using a Dvorak layout so the o/q are well placed, i put u/r as\nalternative because they are easy to remember. However i would be glad\nto add some qzerty friendly bindings.\n\nOn the command line you can specify a box filename and/or a background image\nwith the -img parameter.\n\n\n## VII. Warning and other legal stuff\n\nBe warned this is still beta, some features are still missing. Use at your\nown risk. All the code has been written by myself and is under GPL.\nSome bit of code have been stolen (ie. copy/pasted and c-ifier) from scummvm.\nI don't have time for legal stuff at the moment so just play fair ;)\n\n\n## VIII. Thanks\n\nBig thanks to all ScummVM coders and contributors. All this would\nhave never been possible without you !!!!\n\nBig thanks to David Given, http://www.cowlark.com/scumm was a very\nuseful source.\n\nBig thanks to sourceforge.net for the compile farm that allowed making\nthis software portable on 10 different platforms.\n\nBig thanks to Jesse McGrew and James Urquhart for their contributions.\n\nBig thanks to Gerrit Karius for OpenQuest and generally making this\nproject move forward.\n\nAnd last but not least, thanks to the few people who at least tried to\ncompile and perhaps even used a bit one of those early versions.\n\n\n## IX. Contact\n\nScummC is hosted on github: https://github.com/AlbanBedel/scummc\nThere you can find the wiki, bug tracker, etc\n\nFor anything relevant to ScummC and SCUMM games developement use\nthe github bug tracker at https://github.com/AlbanBedel/scummc/issues,\nfor anything else I can be reached at albeu@free.fr.\n\nPatches and suggestions of all kinds are always welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAlbanBedel%2Fscummc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAlbanBedel%2Fscummc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAlbanBedel%2Fscummc/lists"}