Skip to content

Latest commit

 

History

History
55 lines (36 loc) · 2.25 KB

README.md

File metadata and controls

55 lines (36 loc) · 2.25 KB

CustomiZ3-Core

Build Status Coverage Status NPM Version Code Style: Standard

Description

CustomiZ3 is a tool for customizing Zelda 3 roms. It relies fully on the contents of the provided rom, as most of its editing capability consists of pointing to other parts of the rom and copying over values.

The tool has an internal map of where to find certain game data, and by providing instructions, it becomes possible swap or copy the behaviour of things such as holes, bird locations and whirlpools to other objects of the same type.

Installation

You can use Node package manager to install CustomiZ3.

npm install @gamesaucer/customiz3-core

Usage

Use CustomiZ3 in a project as follows:

const CustomiZ3 = require('@gamesaucer/customiz3-core')
// or:
const { getPatcher, getRomVersion, getDomainList } = require('@gamesaucer/customiz3-core')

Retrieve the version data of a rom by calling getRomVersion and providing the path to the rom file:

const version = await CustomiZ3.getRomVersion('path/to/rom')

Get a list of Domain objects for a set of changes by calling getDomainList and providing the changes:

const domainList = await CustomiZ3.getDomainList(changes)

Get a PatcherFactory by calling getPatcher and providing the Domain list and the rom version. Then call the PatcherFactory with the desired type of patch to get a Patcher.

const patcherFactory = await CustomiZ3.getPatcher(domainList, version)
const patcher = await patcherFactory('native')

Call the patch method on the Patcher with the path to the rom file and a target location:

await patcher.patch('path/to/rom', 'path/to/target')

The target file will now be a copy of the rom, but with the changes applied to it.