Super Mario Land 2: Implement New Game (#2730)

Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: alchav <alchav@jalchavware.com>
This commit is contained in:
Alchav
2025-05-21 11:02:30 -04:00
committed by GitHub
parent d5bacaba63
commit 955a86803f
16 changed files with 3578 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
# Super Mario Land 2: 6 Golden Coins
## Where is the options page?
The [player options page for this game](../player-options) contains all the options you need to configure and export a
config file.
## What items and locations get shuffled?
Completing a level's exits results in a location check instead of automatically bringing you to the next level.
Where there are secret exits, the secret exit will be a separate location check. There is one exception, Hippo Zone,
that does not have a separate check for its secret exit. The Hippo Zone secret exit will still bring you to the Space
Zone.
Ringing the Midway Bells in each level that has one will register a location check. If the "Shuffle Midway Bells" option
is turned on, then ringing the bell will not grant the checkpoint, and instead you must obtain the Midway Bell item from
the item pool to gain the checkpoint for that level. Holding SELECT while loading into a level where you have unlocked
the Midway Bell checkpoint will start you at the beginning of the level.
Unlocking paths to new levels requires finding or receiving Zone Progression items. For example, receiving the first
"Turtle Zone Progression" will unlock the path from Turtle Zone 1 to Turtle Zone 2. Paths to secret levels are separate
items, so Turtle Zone Secret will open the path from Turtle Zone 2 to the Turtle Zone Secret Course.
Depending on settings, there may be some "Zone Progression x2" items that open two paths at once.
The path from Tree Zone 2 to the branch to Tree Zone 3 and 4 is one unlock, so both levels will open at this point.
Besides the zone progression unlocks, the following items are always shuffled:
- Mushroom: required to become Big Mario. If you are Fire or Bunny Mario and take damage, and have not obtained the
Mushroom, you will drop straight down to Small Mario.
- Fire Flower: required to become Fire Mario.
- Carrot: required to become Bunny Mario.
- Hippo Bubble: required to use the bubbles in Hippo Zone to fly.
- Water Physics: Mario will fall through water as though it is air until this is obtained.
- Space Physics: the Space Zone levels will have normal gravity until this is obtained.
- Super Star Duration Increase: you begin with a drastically lowered invincibility star duration, and these items will
increase it.
Additionally, the following items can be shuffled depending on your YAML options:
- The 6 Golden Coins: note that the game will still show you the coin being sent to the castle when defeating a boss
regardless of whether the coin is actually obtained in that location.
- Mario Coin Fragments: As an alternative to shuffling the 6 Golden Coins, you can shuffle Mario Coin Fragments,
a chosen percentage of which are needed to assemble the Mario Coin. You will start with the other 5 coins.
- Normal Mode/Easy Mode: you can start the game in Normal Mode with an Easy Mode "upgrade" in the item pool, or start in
Easy Mode with a Normal Mode "trap" item, swapping the difficulty.
- Auto Scroll: auto-scrolling levels can be set to not auto scroll until this trap item is received.
- Pipe Traversal: required to enter pipes. Can also be split into 4 items, each enabling pipe entry from a different
direction.
- Coins: if Coinsanity is enabled, coins will be shuffled into the item pool. A number of checks will be added to each
level for obtaining a specific number of coins within a single playthrough of the level.
## When the player receives an item, what happens?
There is no in-game indication that an item has been received. You will need to watch the client or web tracker to be
sure you're aware of the items you've received.
## Special Thanks to:
- [froggestspirit](https://github.com/froggestspirit) for his Super Mario Land 2 disassembly. While very incomplete, it
had enough memory values mapped out to make my work significantly easier.
- [slashinfty](https://github.com/slashinfty), the author of the
[Super Mario Land 2 Randomizer](https://sml2r.download/) for permitting me to port features such as Randomize Enemies
and Randomize Platforms directly from it.

View File

@@ -0,0 +1,75 @@
# Setup Guide for Super Mario Land 2: 6 Golden Coins
## Important
As we are using BizHawk, this guide is only applicable to Windows and Linux systems.
## Required Software
- BizHawk: [BizHawk Releases from TASVideos](https://tasvideos.org/BizHawk/ReleaseHistory)
- Version 2.9.1 is recommended.
- Detailed installation instructions for BizHawk can be found at the above link.
- Windows users must run the prereq installer first, which can also be found at the above link.
- The built-in Archipelago client, which can be installed [here](https://github.com/ArchipelagoMW/Archipelago/releases)
- A Super Mario Land 2: 6 Golden Coins version 1.0 ROM file. The Archipelago community cannot provide this.
## Configuring BizHawk
Once BizHawk has been installed, open EmuHawk and change the following settings:
- Under Config > Customize > Advanced, make sure the box for AutoSaveRAM is checked, and click the 5s button.
This reduces the possibility of losing save data in emulator crashes.
- Under Config > Customize, check the "Run in background" box. This will prevent disconnecting from the client while
EmuHawk is running in the background.
It is strongly recommended to associate Game Boy ROM extensions (\*.gb) to the EmuHawk we've just installed.
To do so, we simply have to search any Game Boy ROM we happened to own, right click and select "Open with...", unfold
the list that appears and select the bottom option "Look for another application", then browse to the BizHawk folder
and select EmuHawk.exe.
## Configuring your YAML file
### What is a YAML file and why do I need one?
Your YAML file contains a set of configuration options which provide the generator with information about how it should
generate your game. Each player of a multiworld will provide their own YAML file. This setup allows each player to enjoy
an experience customized for their taste, and different players in the same multiworld can all have different options.
### Where do I get a YAML file?
You can generate a yaml or download a template by visiting the [Super Mario Land 2 Player Options Page](/games/Super%20Mario%20Land%202/player-options)
## Joining a MultiWorld Game
### Generating and Patching a Game
1. Create your options file (YAML).
2. Follow the general Archipelago instructions for [generating a game](../../Archipelago/setup/en#generating-a-game).
This will generate an output file for you. Your patch file will have a `.apsml2` file extension.
3. Open `ArchipelagoLauncher.exe`
4. Select "Open Patch" on the left side and select your patch file.
5. If this is your first time patching, you will be prompted to locate your vanilla ROM.
6. A patched `.gb` file will be created in the same place as the patch file.
7. On your first time opening a patch with BizHawk Client, you will also be asked to locate `EmuHawk.exe` in your
BizHawk install.
You must connect Super Mario Land 2 to a server, even for a single player game, or progress cannot be made.
### Connect to the Multiserver
By default, opening a patch file will do steps 1-5 below for you automatically. Even so, keep them in your memory just
in case you have to close and reopen a window mid-game for some reason.
1. Super Mario Land 2 uses Archipelago's BizHawk Client. If the client isn't still open from when you patched your
game, you can re-open it from the launcher.
2. Ensure EmuHawk is running the patched ROM.
3. In EmuHawk, go to `Tools > Lua Console`. This window must stay open while playing.
4. In the Lua Console window, go to `Script > Open Script…`.
5. Navigate to your Archipelago install folder and open `data/lua/connector_bizhawk_generic.lua`.
6. The emulator may freeze every few seconds until it manages to connect to the client. This is expected. The BizHawk
Client window should indicate that it connected and recognized Super Mario Land 2.
7. To connect the client to the server, enter your room's address and port (e.g. `archipelago.gg:38281`) into the
top text field of the client and click Connect.
To connect the client to the multiserver simply put `<address>:<port>` on the textfield on top and press enter (if the
server uses password, type in the bottom textfield `/connect <address>:<port> [password]`)