All Projects → szapp → Ninja

szapp / Ninja

Licence: MIT License
Patching extension for the video games Gothic and Gothic 2.

Programming Languages

assembly
5116 projects
NSIS
403 projects
Makefile
30231 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to Ninja

ts-c99-compiler
ANSI C 16bit Compiler + NASM Assembler + Intel 8086 / 80186 + X87 emulator written entirely in TypeScript
Stars: ✭ 78 (+358.82%)
Mutual labels:  nasm
V8Power
Putting the power of an 8-cylinder engine under the hood of DOS batch files.
Stars: ✭ 30 (+76.47%)
Mutual labels:  nasm
IBMulator
The IBM PS/1 emulator.
Stars: ✭ 62 (+264.71%)
Mutual labels:  80386
NanumBarunGothic
나눔바른고딕 경량화 웹폰트 (NanumBarunGothic Webfont Optimization)
Stars: ✭ 26 (+52.94%)
Mutual labels:  gothic
snax86
A snake game written in x86 Assembly language for windows console
Stars: ✭ 21 (+23.53%)
Mutual labels:  nasm
mbr-boot-manager
💾 Master Boot Record with a boot menu written in Assembly
Stars: ✭ 57 (+235.29%)
Mutual labels:  nasm
fastoverflowtk
This Buffer Overflow Toolkit works through FTP, SMTP, POP, HTTP protocols as well file outputs for playlists exploiting customized variables/commands. Payloads can be generated through MSFVENOM or you can use your own ASM files.
Stars: ✭ 16 (-5.88%)
Mutual labels:  nasm
reverse shell nasm
No description or website provided.
Stars: ✭ 15 (-11.76%)
Mutual labels:  nasm
cmake-nasm-test
Building a nasm hello world app with cmake
Stars: ✭ 18 (+5.88%)
Mutual labels:  nasm
Kroha
A small language makes assembly less painful.
Stars: ✭ 30 (+76.47%)
Mutual labels:  nasm
proiel-treebank
Official releases of the PROIEL treebank of ancient Indo-European languages
Stars: ✭ 30 (+76.47%)
Mutual labels:  gothic2
asm tutorial
Code samples for the Understanding Windows x64 Assembly tutorial.
Stars: ✭ 131 (+670.59%)
Mutual labels:  nasm
pidi-os
A minimalistic operating system
Stars: ✭ 35 (+105.88%)
Mutual labels:  nasm
Sasm
SASM - simple crossplatform IDE for NASM, MASM, GAS and FASM assembly languages
Stars: ✭ 5,557 (+32588.24%)
Mutual labels:  nasm
Asm Dude
Visual Studio extension for assembly syntax highlighting and code completion in assembly files and the disassembly window
Stars: ✭ 3,898 (+22829.41%)
Mutual labels:  nasm
LudOS
A toy monolithic kernel written in C++
Stars: ✭ 38 (+123.53%)
Mutual labels:  nasm
Assembly-x64
My Collection of x64 Assembly programs with NASM
Stars: ✭ 17 (+0%)
Mutual labels:  nasm

Ninja

This repository contains the source code of the Ninja extension for Gothic 1 and Gothic 2 NotR.

If you are interested in developing patches with Ninja, please follow the instructions in the relevant chapters of the documentation.

About

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.

Nevertheless, if you wish to do so anyway, not all resources necessary for building are supplied in this repository and you'll not be able to successfully build it. The purpose of this repository is merely to provide insight into the source code. The additional resources may be provided upon request.

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.

Additionally, you'll need various GNU Win32 packages:

All binaries of the listed software must be added to your PATH environment variable.

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).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].