Skip to content

rhelmot/smw-coop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.