Giter Club home page Giter Club logo

kaizosplits's Introduction

Kaizosplits

A Super Mario World romhack autosplitter with ambitions to make all SNES emulator autosplitting easier.

Should work for most normal splits out of the box but I like fine-grained splits so there's support for checkpoints, room transitions, and more. Unforutunately SMW romhacks can be weird, so you will need to add a couple custom splits (or disable a couple splits) if using fine-grained splits and there is some rudimentary custom split support for this.

Installation

Go to Releases and download the zip. Instructions are in the README.

Customize splits in the Scriptable Autosplitter settings once it's installed.

Debugging

You'll need to be able to debug to customize splits, add new emulators, or for development in general.

DebugView is a program for viewing debug statements. All errors from all your Windows programs go there, but LiveSplit and the LiveSplit autosplitter plugin, and kaizosplits will have useful messages there if you're stuck.

Custom Splits

If you end up wanting more fine-grained splits, such as removing some checkpoint splits, custom credits split, or room splits for only one level, then this gets a bit complicated. Here's how:

Open your Kaizo.asl which is defines the whole autosplitter and take a look at the split {} section for the switch cases.

To add custom splits to a run, add a case for your run name which you can see in Livesplit or by using the DebugViewer debugging program.

Add a credits split, add regular splits, or suppress splits like this:

s.credits = CONDITION;
s.other = CONDITION || CONDITION || ... || CONDITION;
s.block = CONDITION || CONDITION || ... || CONDITION;

These CONDITIONs are usually:

w.SHIFT_CONDITION or (w.ONGOING_CONDITION && w.SHIFT_CONDITION)

The list of ONGOING_CONDITIONs and SHIFT_CONDITIONs are in Watchers.cs relative to this README file. You'll need to find specific room numbers or other values to fill in these conditions. Check the Debugging above for how to monitor values.

This is generic C# code, but if you follow the examples that exist there already, you shouldn't need to learn any programming.

Note that these custom splits depend heavily on your settings config, but currently you can't have different cases per settings config, so you'll probably need to change your custom splits if you change your settings config.

If you're trying to add custom splits for, say, a specific level, you'll need to know the level number. Same for or room numbers or whatever.

  • Go to the update{} section of Kaizo.asl and find the MONITOR HERE comment
  • Below it, add a line for each memory item you want to monitor.
t.Monitor(w.A_MEMORY_WATCHER_NAME, w);
t.Monitor(w.ANOTHER_MEMORY_WATCHER_NAME, w);

The list of MEMORY_WATCHER_NAMEs are in Watchers.cs. Some examples are levelNum, roomNum, or io.

kaizosplits's People

Contributors

amcknight avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.