{"id":21195258,"url":"https://github.com/szapp/ninja","last_synced_at":"2025-07-10T04:30:24.544Z","repository":{"id":202345218,"uuid":"140121640","full_name":"szapp/Ninja","owner":"szapp","description":"Extension framework for the video game series Gothic to allow true modular modifications","archived":false,"fork":false,"pushed_at":"2024-09-07T18:47:14.000Z","size":466,"stargazers_count":41,"open_issues_count":0,"forks_count":0,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-09-07T20:09:11.629Z","etag":null,"topics":["80386","assembly","gothic","gothic1","gothic2","modding-gothic","nasm"],"latest_commit_sha":null,"homepage":"https://ninja.szapp.de","language":"Assembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/szapp.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":{"ko_fi":"szapp"}},"created_at":"2018-07-07T22:46:46.000Z","updated_at":"2024-09-07T18:47:17.000Z","dependencies_parsed_at":"2024-05-12T17:40:41.281Z","dependency_job_id":"d56af994-7033-47f9-88de-e9be3cd7b231","html_url":"https://github.com/szapp/Ninja","commit_stats":null,"previous_names":["szapp/ninja"],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szapp%2FNinja","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szapp%2FNinja/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szapp%2FNinja/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szapp%2FNinja/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/szapp","download_url":"https://codeload.github.com/szapp/Ninja/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225617618,"owners_count":17497382,"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":["80386","assembly","gothic","gothic1","gothic2","modding-gothic","nasm"],"created_at":"2024-11-20T19:26:51.026Z","updated_at":"2025-07-10T04:30:24.537Z","avatar_url":"https://github.com/szapp.png","language":"Assembly","funding_links":["https://ko-fi.com/szapp"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# [![Ninja](https://github.com/szapp/Ninja/assets/20203034/adff73c7-a449-4a4c-8e80-0540deb67e6f)](https://github.com/szapp/Ninja)\n\n[![Build status](https://github.com/szapp/Ninja/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/szapp/Ninja/actions/workflows/build.yml)\n[![Documentation](https://img.shields.io/badge/docs-wiki-blue)](https://github.com/szapp/Ninja/wiki)\n[![GitHub release](https://img.shields.io/github/v/release/szapp/Ninja.svg)](https://github.com/szapp/Ninja/releases/latest)\n[![Support on Ko-fi](https://img.shields.io/badge/ko--fi-support-ff586e?logo=kofi\u0026logoColor=white)](https://ko-fi.com/szapp)\n[![Combined downloads](https://api.szapp.de/downloads/ninja/total/badge)](https://github.com/szapp/Ninja/wiki#user-content-downloads)  \n[![World of Gothic](https://raw.githubusercontent.com/szapp/patch-template/main/.github/actions/initialization/badges/wog.svg)](https://www.worldofgothic.de/dl/download_652.htm)\n[![Spine](https://raw.githubusercontent.com/szapp/patch-template/main/.github/actions/initialization/badges/spine.svg)](https://clockwork-origins.com/spine)\n[![Steam Gothic 1](https://img.shields.io/badge/steam-Gothic%201-2a3f5a?logo=steam\u0026labelColor=1b2838)](https://steamcommunity.com/sharedfiles/filedetails/?id=2786936496)\n[![Steam Gothic 2](https://img.shields.io/badge/steam-Gothic%202-2a3f5a?logo=steam\u0026labelColor=1b2838)](https://steamcommunity.com/sharedfiles/filedetails/?id=2786910489)\n\n\u003c/div\u003e\n\nThis repository contains the source code of the Ninja extension for the Gothic game series.\n\nIf you are interested in developing patches with Ninja, please follow the instructions in the relevant chapters of the\n[documentation](https://github.com/szapp/Ninja/wiki) and get started with the official [patch template](https://github.com/szapp/patch-template).\n\n[![Patch template](https://img.shields.io/badge/get%20started-patch%20template-green?style=for-the-badge\u0026logo=github)](https://github.com/szapp/patch-template)\n\n# About\n\nNinja is supported by the games Gothic (1.08k_mod), Gothic Sequel (1.12f), Gothic 2 (1.30 fix report version), and Gothic 2 NotR (2.6 fix report version).\n\nFor information on Ninja, please visit the [documentation](https://github.com/szapp/Ninja/wiki).\n\n# Usage\n\nTo use Ninja, download and install the [latest release](https://github.com/szapp/Ninja/releases/latest). If you run into\nissues or need further instructions, please consult the [documentation](https://github.com/szapp/Ninja/wiki).\n\n---\n\n# Building from Source\n\nThere is **absolutely no need to assemble Ninja yourself** as the latest build is always available for download.\n\nNevertheless, if you wish to do so anyway, not all resources necessary for building are supplied in this repository and\nyou'll not be able to successfully build it. The purpose of this repository is merely to provide *insight* into the\nsource code. The additional resources may be provided upon request.\n\n## Requirements\n\nBecause of linking a Windows DLL, assembling this project is no longer possible under \\*nix but is exclusive to Windows.\n(All \\*nix shell scripts have been stripped from this project, but may still be found in the git history.) For linking\nthe final DLL the following libraries are required on your system.\n\n- User32.dll\n- Kernel32.dll\n- NtDll.dll\n\nFor assembling and building, the following software is required.\n\n- [NASM (The Netwide Assembler)](https://nasm.us) (2.16.03)\n- [GoLink (Go Tools for Windows)](http://godevtool.com) (1.0.4.5)\n- [GoRC (Go Tools for Windows)](http://godevtool.com) (1.0.3.0)\n- [NSIS (Nullsoft Scriptable Install System)](https://nsis.sourceforge.io) (3.10)\n\nAdditionally, you'll need the following binaries:\n\n- [GNU Make](http://gnuwin32.sourceforge.net/packages/make.htm) (3.81)\n- [Git for Windows](https://git-scm.com/download/win) (2.45.1) for various included GNU Win32 tools\n- [BinUtils](https://sourceforge.net/projects/mingw/files/MinGW/Base/binutils/) (2.28) for `objdump`\n\nThe binaries of the listed software must be added to your `PATH` environment variable or placed in the root directory.\n\nSome binaries are attempted to be automatically detected at build time and added to the `PATH` for the duration of building. These include `nasm`, `makensis`, `grep`, `date`, `dd`, `touch`, `xxd`.\n\n## Assembling\n\nBuilding Ninja consists of a cascade of assembling the core and assembling the DLL wrapper.  \nFirst, the core is assembled into binary files. These are then included when assembling the wrapper which is then\nfinally linked into a DLL.\n\nThe reason for this compartmentalization is to separate core and wrapper and to avoid slow absolute (eax) jumps within\nthe executed code by injecting it into the executable at fixed addresses to make use of relative jumps to addresses\nknown at time of assembling.\n\nAll the steps above are performed simply with\n\n```bash\nmake\n```\n\n# Legal\n\nNinja is free software and released under the MIT License (MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fszapp%2Fninja","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fszapp%2Fninja","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fszapp%2Fninja/lists"}