Coder Social home page Coder Social logo

rseq_rs's Introduction

rseq_rs

TBH I still expect some breakage from the current code, so make sure to make a GitHub issue on crashes or things not working as expected.

I'm also putting more work into GotaSequenceCmd now, so you may want to use that instead of this.

Usage

Disassemble

disassemble input.brseq output.txt where input is a file in the BRSEQ format and output is where you wish its disassembly to be output.

Assemble

assemble input.txt output.brseq where input is an 'assembly' file in the format produced by disassembly, and output is where you wish the resulting BRSEQ to end up.

Invert

invert input.brseq output.brseq where input is a BRSEQ file and output is where you want to create a BRSEQ with 'inverted' notes. (for every note it does 0x7F - note_value)

This was created as a very simple test for producing songs that could be used to replace other songs before the assembler was created/finished.

Play

play input.brseq output.midi

This is essentially a reimplementation of rseq2midi using the same parsing code as the rest of these programs. YMMV, but last I checked it handled call and jump better than rseq2midi.

Credits

Atlas, for the BRSEQ documentation that was immensely useful for implementing this (https://pastebin.com/xgsKecv9) Ruben Nunez and Valley Bell, for making rseq2midi which play is based on and was also used as a form of documentation Adam Crossing, for making videos about Wii Music and inspiring me to look into this

rseq_rs's People

Contributors

kitlith avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

rseq_rs's Issues

Tempo and Play (and possibly others) need a better way of executing the instructions

tempo goes through the instructions in physical order, which is an issue when the tempo instruction is only in a single track and it's not the first track. It would help if it took an approach closer to play, following control flow.

play follows control flow, but it goes through each track in turn instead of following strict temporal order, which would be preferred for accurate emulation of some aspects of rseq.

The end goal for this issue would be to produce a single player that could be used for both purposes, and possibly others in the future.

Handle Missing Labels (+ label stripping tool?)

rseq_rs will currently break if an address is referenced that doesn't have a label to go with it.

Label stripping is an idea intended for space savings when you need to hex edit a brseq into a brsar, as an effortless way to gain a little bit of extra space for the song. For substantial space savings, though, people should still look into looping (and I should really look into writing a compression algorithm).

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.