Skip to content

Selicre/quasar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quasar - a modern SNES assembler

Logo

Quasar is an assembler that targets the WDC 65816 architecture and lets you create patches for various SNES ROMs, primarily Super Mario World. The goal of this project is to allow beginners to quickly diagnose the issues with their code and be able to fix them at compile time, rather than having to use a debugger to diagnose crashes.

Features

Quasar is currently in active development, so all of this is what you should expect by the time it's done:

  • Compatibility with asar
    • Some patches that work in asar may throw errors, but no patch should assemble incorrectly
    • Emulation of asar quirks (e.g. no comparison ops, no whitespace in expressions)
  • Expressive, detailed errors
  • Linting for runtime errors
    • Using the wrong operand size in immediate addressing
    • Executing data
    • Going past segment bounds
  • Opt-in peephole optimizations for certain code patterns
    • REP #$20 : CLC -> REP #$21
    • Removal of unused instructions

Roadmap

  • Implement a subset of asar functionality to be more approachable for beginners
  • Implement the rest of (sane) functionality to be useful as a complete replacement
  • Implement own syntax to be useful as a general assembler while still being compatible with asar patches

Eventually, quasar will change from being a subset of asar with good errors into being a superset.

About

A replacement for asar, the SNES assembler.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages