Code Monkey home page Code Monkey logo

smw's Introduction

smw

A reimplementation of Super Mario World.

Our discord server is: https://discord.gg/AJJbJAzNNJ

About

This is a reverse engineered clone of Super Mario World.

It reimplements all parts of the original game and a bunch of mods added by Lunar Magic. The game is playable from start to end.

You need a copy of the ROM to extract game resources (levels, images). Then once that's done, the ROM is no longer needed.

It uses the PPU and DSP implementation from LakeSnes, but with lots of speed optimizations.

Requirements

TCC SDL2 A rom that has this exact hash 6B47BB75D16514B6A476AA0C73A683A2A4C18765.

You can check the hash running python /assets/restool.py

Building

tcc -run nobuild.c

The game will be on build folder, enjoy!

Usage and controls

The game supports snapshots. The joypad input history is also saved in the snapshot. It's thus possible to replay a playthrough in turbo mode to verify that the game behaves correctly.

Button Key
Up Up arrow
Down Down arrow
Left Left arrow
Right Right arrow
Start Enter
Select Right shift
A X
B Z
X S
Y A
L C
R V

The keys can be reconfigured in smw.ini

Additionally, the following commands are available:

Key Action
Tab Turbo mode
P Pause (with dim)
Shift+P Pause (without dim)
Ctrl+Up Increase window size
Ctrl+Down Decrease window size
T Toggle replay turbo mode
K Clear all input history from the joypad log
L Stop replaying a shapshot
R Toggle between fast and slow renderer
F Display renderer performance
F1-F10 Load snapshot
Alt+Enter Toggle Fullscreen
Shift+F1-F10 Save snapshot
Ctrl+F1-F10 Replay the snapshot

How it Works?

It runs an emulated version in the background and compares the ram state every frame. If it detects a mismatch, it saves a snapshot in saves/ and displays a counter on screen counting down from 300.

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.