diff --git a/README.md b/README.md index ceb7502..8a8c97b 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,19 @@ # smw +A reimplementation of Super Mario World. Our discord server is: https://discord.gg/AJJbJAzNNJ -Early version. It has bugs and the code is messy. +## 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](https://github.com/elzo-d/LakeSnes), but with lots of speed optimizations. + +## Building You must self-build for now. Easy method on 64-bit Windows (no terminal or big downloads):
(1) Download [Python](https://www.python.org/ftp/python/3.11.4/python-3.11.4-amd64.exe) if you don't have it and install with "Add to PATH" checked
@@ -17,3 +28,42 @@ For other platforms and compilers, see: https://github.com/snesrev/smw/blob/main When running, 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. Please submit these bug snapshots on discord so that they can be fixed. +## 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 |