GithubHelp home page GithubHelp logo

smw-coop's Introduction

2 Player Co-op in Super Mario World

Hey there! Lemme tell you a story.

Much of this story no longer applies, as I have reclaimed my SMW wizardry title and reimplemented the Mario/Luigi mode and added a flag to toggle between the two.

Once upon a time I was a Super Mario World Hacker. I might still be. I don't know. But I was a really good hacker, and I wrote a wonderful little patch for SMW to add simultaious 2-player mode, a la NSMBWii. It was cool! Then I left the project for whatever reason. That wasn't cool. But over the past couple of years I've gotten a lot of requests to release the source from the project, but I could never find it, until now! This is it!

Except I've totally forgotten how everything works. Well, not totally. SNES ASM is coming back to me frighteningly quickly, and in getting the project into presentable shape I've gone though and commented some of the code. But the fact remains that there's kilobytes of code out there that I have literally no idea what it does. So here I am, open sourcing the project at last!

At the moment, it's still 2-player co-op in the form of playing as My Little Ponies. For some people, getting rid of that might be priority number one. That's cool, but I think it's worth keeping the code to do that around, just so we can extend the sprite to other characters as well. That, and the current version does this cool thing where you get different characters depending on which save file you pick. That's neat; let's not scrap that.

There are some bugs that have popped up since the last time I touched the project. Seriously, it's almostly like somebody went in and intentionally changed a couple lines such that bugs would start cropping up and you wouldn't be able to tell why unless you looked really closely. Augh. I fixed most of them, but we'll get to fixing others.

Documentation

Comments in source files are scarce, because past me is a moron. However, there is the wonderful co-op.txt file, which is my personal notes from when I was working on the project. Feel free to add notes to that file or to add comments to the source.

If you're really stumped about something, ask me. I'll probably be able to remember after thinking hard enough.

Building

I was able to build the project from a clean SMW ROM with the following steps:

  • Stick the clean rom in the rom directory, named something convenient (I used coop.smc)
  • Rename the folder of graphics in rom you want to just "Graphics"
  • Open the ROM in Lunar Magic
  • Check the checkbox in the Options menu for "Used joined GFX files"
  • Press the green mushroom button to insert AllGFX.bin
  • Click the rainbow star, then the red star with the red arrow
  • Select one of the .pal files from the rom directory
  • Click the save button in the Palette Editor
  • Run the following, in the project root: <path to asar> co-op.asm rom/coop.smc
  • Bam.

Contributing

Fork, make edits, and submit a pull request. Money.

smw-coop's People

Contributors

rhelmot avatar

Watchers

James Cloos avatar  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.