Ninja
Extension framework for the video game series Gothic to allow true modular modifications
Install / Use
/learn @szapp/NinjaREADME
This repository contains the source code of the Ninja extension for the Gothic game series.
If you are interested in developing patches with Ninja, please follow the instructions in the relevant chapters of the documentation and get started with the official patch template.
About
Ninja 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).
For information on Ninja, please visit the documentation.
Usage
To use Ninja, download and install the latest release. If you run into issues or need further instructions, please consult the documentation.
Building from Source
There is absolutely no need to assemble Ninja yourself as the latest build is always available for download.
The purpose of this repository is merely to provide insight into the source code.
Requirements
Because of linking a Windows DLL, assembling this project is no longer possible under *nix but is exclusive to Windows. (All *nix shell scripts have been stripped from this project, but may still be found in the git history.) For linking the final DLL the following libraries are required on your system.
- User32.dll
- Kernel32.dll
- NtDll.dll
For assembling and building, the following software is required.
- NASM (The Netwide Assembler) (2.16.03)
- GoLink (Go Tools for Windows) (1.0.4.5)
- GoRC (Go Tools for Windows) (1.0.3.0)
- NSIS (Nullsoft Scriptable Install System) (3.10)
Additionally, you'll need the following binaries:
- GNU Make (3.81)
- Git for Windows (2.45.1) for various included GNU Win32 tools
- BinUtils (2.28) for
objdump
The binaries of the listed software must be added to your PATH environment variable or placed in the root directory.
Some 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.
Assembling
Building Ninja consists of a cascade of assembling the core and assembling the DLL wrapper.
First, the core is assembled into binary files. These are then included when assembling the wrapper which is then
finally linked into a DLL.
The reason for this compartmentalization is to separate core and wrapper and to avoid slow absolute (eax) jumps within the executed code by injecting it into the executable at fixed addresses to make use of relative jumps to addresses known at time of assembling.
All the steps above are performed simply with
make
Legal
Ninja is free software and released under the MIT License (MIT).
Related Skills
qqbot-channel
349.9kQQ 频道管理技能。查询频道列表、子频道、成员、发帖、公告、日程等操作。使用 qqbot_channel_api 工具代理 QQ 开放平台 HTTP 接口,自动处理 Token 鉴权。当用户需要查看频道、管理子频道、查询成员、发布帖子/公告/日程时使用。
docs-writer
100.4k`docs-writer` skill instructions As an expert technical writer and editor for the Gemini CLI project, you produce accurate, clear, and consistent documentation. When asked to write, edit, or revie
model-usage
349.9kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
Design
Campus Second-Hand Trading Platform \- General Design Document (v5.0 \- React Architecture \- Complete Final Version)1\. System Overall Design 1.1. Project Overview This project aims t
