Conform the readmes to markdownlint spec

This commit is contained in:
Colton G. Rushton 2021-03-07 20:35:11 -04:00
parent d47f0fe55c
commit dd59d17834
6 changed files with 197 additions and 112 deletions

View File

@ -963,7 +963,7 @@ else
# acpp, which needs -Wp,-+ to handle C++-style comments.
$(BUILD_DIR)/src/audio/effects.o: OPT_FLAGS := -O2 -Wo,-loopunroll,0 -sopt,-inline=sequence_channel_process_sound,-scalaroptimize=1 -Wp,-+
$(BUILD_DIR)/src/audio/synthesis.o: OPT_FLAGS := -O2 -sopt,-scalaroptimize=1 -Wp,-+
$(BUILD_DIR)/src/audio/seqplayer.o: OPT_FLAGS := -O2 -sopt,-inline_manual,-scalaroptimize=1 -Wp,-+,-Wo,-v,-bb,-l,seqplayer_list.txt
#$(BUILD_DIR)/src/audio/seqplayer.o: OPT_FLAGS := -O2 -sopt,-inline_manual,-scalaroptimize=1 -Wp,-+ #-Wo,-v,-bb,-l,seqplayer_list.txt
# Add a target for build/eu/src/audio/*.copt to make it easier to see debug
$(BUILD_DIR)/src/audio/%.acpp: src/audio/%.c

View File

@ -1,7 +1,8 @@
# sm64ex
Fork of [sm64-port/sm64-port](https://github.com/sm64-port/sm64-port) with additional features.
Feel free to report bugs and contribute, but remember, there must be **no upload of any copyrighted asset**.
Fork of [sm64-port/sm64-port](https://github.com/sm64-port/sm64-port) with additional features.
Feel free to report bugs and contribute, but remember, there must be **no upload of any copyrighted asset**.
Run `./extract_assets.py --clean && make clean` or `make distclean` to remove ROM-originated content.
Please contribute **first** to the [nightly branch](https://github.com/sm64pc/sm64ex/tree/nightly/). New functionality will be merged to master once they're considered to be well-tested.
@ -10,21 +11,22 @@ Please contribute **first** to the [nightly branch](https://github.com/sm64pc/sm
## New features
* Options menu with various settings, including button remapping.
* Optional external data loading (so far only textures and assembled soundbanks), providing support for custom texture packs.
* Optional analog camera and mouse look (using [Puppycam](https://github.com/FazanaJ/puppycam)).
* Optional OpenGL1.3-based renderer for older machines, as well as the original GL2.1, D3D11 and D3D12 renderers from Emill's [n64-fast3d-engine](https://github.com/Emill/n64-fast3d-engine/).
* Option to disable drawing distances.
* Optional QoL fixes (e.g. the smoke texture and the BitDW trapdoor sound).
* Skip introductory Peach & Lakitu cutscenes with the `--skip-intro` CLI option
* Cheats menu in Options (activate with `--cheats` or by pressing L thrice in the pause menu).
* Support for both little-endian and big-endian save files (meaning you can use save files from both sm64-port and most emulators), as well as an optional text-based save format.
* Options menu with various settings, including button remapping.
* Optional external data loading (so far only textures and assembled soundbanks), providing support for custom texture packs.
* Optional analog camera and mouse look (using [Puppycam](https://github.com/FazanaJ/puppycam)).
* Optional OpenGL1.3-based renderer for older machines, as well as the original GL2.1, D3D11 and D3D12 renderers from Emill's [n64-fast3d-engine](https://github.com/Emill/n64-fast3d-engine/).
* Option to disable drawing distances.
* Optional QoL fixes (e.g. the smoke texture and the BitDW trapdoor sound).
* Skip introductory Peach & Lakitu cutscenes with the `--skip-intro` CLI option
* Cheats menu in Options (activate with `--cheats` or by pressing L thrice in the pause menu).
* Support for both little-endian and big-endian save files (meaning you can use save files from both sm64-port and most emulators), as well as an optional text-based save format.
Recent changes in Nightly have moved the save and configuration file path to `%HOMEPATH%\AppData\Roaming\sm64ex` on Windows and `$HOME/.local/share/sm64ex` on Linux. This behaviour can be changed with the `--savepath` CLI option.
For example `--savepath .` will read saves from the current directory (which not always matches the exe directory, but most of the time it does);
`--savepath '!'` will read saves from the executable directory.
## Building
For building instructions, please refer to the [wiki](https://github.com/sm64pc/sm64ex/wiki).
**Make sure you have MXE first before attempting to compile for Windows on Linux and WSL. Follow the guide on the wiki.**
**Make sure you have [MXE](mxe.cc) first before attempting to compile for Windows on Linux and WSL. Follow the guide on the wiki.**

View File

@ -1,205 +1,258 @@
# sm64pc
Adaptación a OpenGL de [n64decomp/sm64](https://github.com/n64decomp/sm64).
No dudes en contribuir o reportar bugs, pero recuerda: **no se debe subir nada con copyright**.
Ejecuta `./extract_assets.py --clean && make clean` o `make distclean` para borrar todo el contenido proveniente de la ROM. Este port es posible gracias a [n64-fast32-engine](https://github.com/Emill/n64-fast3d-engine/) creado por [Emill](https://github.com/Emill).
Adaptación a OpenGL de [n64decomp/sm64](https://github.com/n64decomp/sm64).
No dudes en contribuir o reportar bugs, pero recuerda: **no se debe subir nada con copyright**.
Ejecuta `./extract_assets.py --clean && make clean` o `make distclean` para borrar todo el contenido proveniente de la ROM. Este port es posible gracias a [n64-fast3d-engine](https://github.com/Emill/n64-fast3d-engine/) creado por [Emill](https://github.com/Emill).
## Funcionalidades
* Renderizado nativo. Podrás jugar a Super Mario 64 sin necesidad de un emulador.
* Resolución y relación de aspecto variables. Puedes jugar a Super Mario 64 a básicamente cualquier resolución o tamaño de ventana.
* Soporte nativo para mandos XInput. En Linux, se ha confirmado que el DualShock 4 funciona sin más.
* Cámara analógica y cámara controlada con el ratón. (Se activa con `make BETTERCAMERA=1`.)
* Opción para desactivar el límite de distancia de renderizado. (Se activa con `make NODRAWINGDISTANCE=1`.)
* Configurar los controles desde el juego.
* Posibilidad de saltarte la intro con la opción de línea de comandos `--skip-intro`
* Menú de trucos (_cheats_) en _options_. (Se activa con la opción de línea de comandos `--cheats`) Ten en cuenta que si un cheat te pide pulsar el botón "L", se refiere al botón de N64, el cual tendrá que estar asignado a un botón de tu mando. Ve a los ajustes de control y asegúrate de que tienes "L" mapeado a un botón de tu mando.
* Renderizado nativo. Podrás jugar a Super Mario 64 sin necesidad de un emulador.
* Resolución y relación de aspecto variables. Puedes jugar a Super Mario 64 a básicamente cualquier resolución o tamaño de ventana.
* Soporte nativo para mandos XInput. En Linux, se ha confirmado que el DualShock 4 funciona sin más.
* Cámara analógica y cámara controlada con el ratón. (Se activa con `make BETTERCAMERA=1`.)
* Opción para desactivar el límite de distancia de renderizado. (Se activa con `make NODRAWINGDISTANCE=1`.)
* Configurar los controles desde el juego.
* Posibilidad de saltarte la intro con la opción de línea de comandos `--skip-intro`
* Menú de trucos (_cheats_) en _options_. (Se activa con la opción de línea de comandos `--cheats`) Ten en cuenta que si un cheat te pide pulsar el botón "L", se refiere al botón de N64, el cual tendrá que estar asignado a un botón de tu mando. Ve a los ajustes de control y asegúrate de que tienes "L" mapeado a un botón de tu mando.
## Compilar en Windows
**No intentes compilar ejecutables para Windows bajo Linux usando `WINDOWS_BUILD=1`. No va a funcionar. Sigue la guía.**
#### 1. Instalación y configuración de MSYS2.
### 1. Instalación y configuración de MSYS2
1. Descarga [msys2-x86_64-latest.exe](http://repo.msys2.org/distrib/msys2-x86_64-latest.exe) y ejecútalo. Si tu sistema operativo es de 32 bits (¿por qué?) descarga [msys2-i686-latest.exe](http://repo.msys2.org/distrib/msys2-i686-latest.exe) en su lugar. Asegúrate de que lo instalas en `C:\dev\msys64` (o `C:\dev\msys32` para 32 bits...). Ejecuta MSYS2.
2. En la ventana de comandos de MSYS2, ejecuta el siguiente comando:
```
```bash
pacman -Syuu
```
3. Abre "MSYS2 MinGW 64-Bit". Ejecuta este comando __repetidamente__ hasta que MSYS diga que ya no hay más actualizaciones. Es posible que tengas que volver a cerrar y abrir MSYS2.
```
```bash
pacman -Syuu
```
5. Ejecuta este comando y cuando te pida confirmación pulsa intro:
4. Ejecuta este comando y cuando te pida confirmación pulsa intro:
```
```bash
pacman -S --needed base-devel mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain \
git subversion mercurial \
mingw-w64-i686-cmake mingw-w64-x86_64-cmake
```
6. Listo.
5. Listo.
#### Instala las dependencias
```
```bash
pacman -S mingw-w64-i686-glew mingw-w64-x86_64-glew mingw-w64-i686-SDL2 mingw-w64-x86_64-SDL2 python3
```
### Crea el directorio en el que preparar todo
Desde el explorador de Windows, navega a `C:\msys64\home\(nombre de usuario)\` y crea una carpeta con el nombre que te apetezca. Aquí es donde vamos a preparar todo.
### Clona el repositorio
En MSYS2, introduce el siguiente comando:
```
```bash
git clone https://github.com/sm64pc/sm64pc/
```
(Si no funciona, prueba a escribirlo manualmente, en lugar de copiar y pegar)
#### Copia la ROM base al directorio correspondiente
El paso anterior tiene que haber creado una carpeta llamada sm64pc. Dentro de esa carpeta, y para cada version de la ROM (jp/us/eu) de la cual quieras compilar un ejecutable, coloca la ROM con el nombre `baserom.<version>.z64` para extraer sus assets. Por ejemplo, `baserom.us.z64` para la versión americana, o `baserom.eu.z64` para la versión europea.
#### En MSYS2, vamos a navegar a la carpeta `./tools/audiofile-0.3.6/` y ejecutar el `autoreconf-i`. Introduce los siguientes comandos, en orden, uno a uno:
```
#### En MSYS2, vamos a navegar a la carpeta `./tools/audiofile-0.3.6/` y ejecutar el `autoreconf-i`. Introduce los siguientes comandos, en orden, uno a uno
```bash
cd sm64pc/tools/audiofile-0.3.6/
autoreconf -i
```
No te vayas de este directorio hasta el paso 9.
#### Ejecuta el script `configure`
```
```bash
PATH=/mingw64/bin:/mingw32/bin:$PATH LIBS=-lstdc++ ./configure --disable-docs
```
#### Ejecuta el script `make`
```
```bash
PATH=/mingw64/bin:/mingw32/bin:$PATH make
```
#### Crea un directorio `lib` en `tools/`
```
```bash
mkdir ../lib
```
#### Acabas de compilar `libaudiofile`. Ahora cópialo a `tools/lib/`
```
```bash
cp libaudiofile/.libs/libaudiofile.a ../lib/
cp libaudiofile/.libs/libaudiofile.la ../lib/
```
#### Ahora toca hacer algo desde Windows.
#### Ahora toca hacer algo desde Windows
En el explorador de Windows, ve a sm64pc\tools y edita el archivo Makefile desde un editor de texto (es recomendable usar un editor decente como Notepad++ o Sublime Text, en lugar del bloc de notas, para asegurarte de que no rompes el formato del texto) Busca la línea que contiene esto:
```tabledesign_CFLAGS := -Wno-uninitialized -laudiofile```
Y añade ` -lstdc++` al final, de manera que quede así (¡no olvides el espacio!)
Y añade `-lstdc++` al final, de manera que quede así (¡no olvides el espacio!)
```tabledesign_CFLAGS := -Wno-uninitialized -laudiofile -lstdc++```
Guarda el archivo.
#### Vuelve a la carpeta tools y ejecuta `make` con los siguientes comandos.
```
#### Vuelve a la carpeta tools y ejecuta `make` con los siguientes comandos
```bash
cd ..
PATH=/mingw64/bin:/mingw32/bin:$PATH make
```
#### Vuelve al directorio sm64pc
```
```bash
cd ..
```
#### Finalmente, ejecuta ```make``` de nuevo.
#### Finalmente, ejecuta ```make``` de nuevo
(Ten en cuenta que mingw32 y mingw64 han sido intercambiados. Esto es para que puedas compilar la versión de 32 bits si quieres.)
Aquí pones las opciones que quieras según la versión que quieras compilar. Por ejemplo, si quieres activar la cámara analógica, añade al final BETTERCAMERA=1. Si quieres la opción de distancia de renderizado ilimitada, añade NODRAWINGDISTANCE=1.
Por ejemplo:
```
```bash
PATH=/mingw32/bin:/mingw64/bin:$PATH make BETTERCAMERA=1 NODRAWINGDISTANCE=1
```
Listo. El .exe estará en sm64pc\build\. Disfruta.
## Compilar en Linux
### Nota para usuarios de Windows
No intentes compilar un ejecutable para Windows desde Linux o WSL. No funciona. Sigue la guía para Windows.
#### Copia la(s) ROM(s) base para la extracción de assets.
#### Copia la(s) ROM(s) base para la extracción de assets
Por cada versión de la cual quieras compilar un ejecutable, copia la ROM en `./baserom.<versión>.z64` para extraer los assets.
#### Instala las dependencias.
#### Instala las siguientes dependencias
Para compilar necesitas las sigueintes dependencias.
* python3 >= 3.6
* libsdl2-dev
* [audiofile](https://audiofile.68k.org/)
* libglew-dev
* git
Para compilar necesitas las siguientes dependencias.
* python3 >= 3.6
* libsdl2-dev
* [audiofile](https://audiofile.68k.org/)
* libglew-dev
* git
Puedes instalarlas con este comando:
##### Debian / Ubuntu - (compilando para 32 bits)
```
```bash
sudo apt install build-essential git python3 libaudiofile-dev libglew-dev:i386 libsdl2-dev:i386
```
##### Debian / Ubuntu - (compilando para 64 bits)
```
```bash
sudo apt install build-essential git python3 libaudiofile-dev libglew-dev libsdl2-dev
```
##### Arch Linux
Hay un paquete AUR (cortesía de @narukeh) disponible bajo el nombre [sm64pc-git](https://aur.archlinux.org/packages/sm64pc-git/). Instálalo con tu gestor de AURs preferido.
Si quieres compilarlo por tu cuenta:
```
```bash
sudo pacman -S base-devel python audiofile sdl2 glew
```
##### Void Linux - (compilando para 64 bits)
```
```bash
sudo xbps-install -S base-devel python3 audiofile-devel SDL2-devel glew-devel
```
##### Void Linux - (compilando para 32 bits)
```
```bash
sudo xbps-install -S base-devel python3 audiofile-devel-32bit SDL2-devel-32bit glew-devel-32bit
```
#### Compila el ejecutable.
#### Compila el ejecutable
Ejecuta `make` para compilar (por defecto `VERSION=us`)
```
```bash
make VERSION=jp -j6 # Compila la versión (J) usando 6 hilos
make VERSION=us MARCH=i686 TARGET_BITS=32 # Compila un ejecutable de la versión (U) de 32 bits
make TARGET_RPI=1 # Compila un ejecutable para Raspberry Pi
```
## Compilar para la web
Puedes compilar el juego para navegadores que admitan WebGL usando [Emscripten](https://github.com/emscripten-core). Para hacerlo, instala [emsdk](https://github.com/emscripten-core/emsdk) y ejecuta `make TARGET_WEB=1`.
## Script para compilar para Raspberry Pi
[Hyenadae](https://github.com/Hyenadae/) ha creado un script que ayuda a compilar el juego para Raspberry Pi. Estos son los pasos que hace el script:
* Instala las dependencias;
* Cambia VC4_DRM en la RPi de 0 a 3;
* Cambia ajustes en la memoria de las RPis 0 y 1 para que se pueda completar la compilación;
* Permite la instalación de un SDL2 con KMS, lo que elimina la necesidad de usar X11 y garantiza el máximo rendimiento de cualquier RPi que ejecute VC4;
* Clona sm64pc si no encuentra los archivos necesarios;
* Comprueba si existen los assets y la ROM base necesaria (baserom.*.z64);
* Compila sm64pc.
* Instala las dependencias;
* Cambia VC4_DRM en la RPi de 0 a 3;
* Cambia ajustes en la memoria de las RPis 0 y 1 para que se pueda completar la compilación;
* Permite la instalación de un SDL2 con KMS, lo que elimina la necesidad de usar X11 y garantiza el máximo rendimiento de cualquier RPi que ejecute VC4;
* Clona sm64pc si no encuentra los archivos necesarios;
* Comprueba si existen los assets y la ROM base necesaria (baserom.*.z64);
* Compila sm64pc.
El script está incluído en la rama master, pero también puede descargarse [aquí](https://raw.githubusercontent.com/sm64pc/sm64pc/master/pisetup.sh).
# Problemas conocidos
### Problemas ya conocidos:
* La versión EU tiene bugs en los textos y no tiene audio.
* El movimiento analógico horizontal de la cámara vuelve al estilo antiguo en el nivel Bowser in the Dark World (#72)
* La cámara con el ratón falla cuando disparas a Mario hacia un árbol o un tubo. (#71)
* "make: Nothing to be done for 'default'" al compilar para web. (#67)
### Estos problemas están marcados como solucionados. Por favor, contacta si sigues teniendo estos problemas.
* El juego se llena de flags aleatorias en las builds de 64 bits para Windows
* Hazy Maze Cave se cuelga en pantalla completa (#57)
* La pantalla de título no tiene el cursor para manipular a Mario en pantalla completa. (#28)
## Problemas conocidos
### Problemas ya conocidos
* La versión EU tiene bugs en los textos y no tiene audio.
* El movimiento analógico horizontal de la cámara vuelve al estilo antiguo en el nivel Bowser in the Dark World (#72)
* La cámara con el ratón falla cuando disparas a Mario hacia un árbol o un tubo. (#71)
* "make: Nothing to be done for 'default'" al compilar para web. (#67)
### Estos problemas están marcados como solucionados. Por favor, contacta si sigues teniendo estos problemas
* El juego se llena de flags aleatorias en las builds de 64 bits para Windows
* Hazy Maze Cave se cuelga en pantalla completa (#57)
* La pantalla de título no tiene el cursor para manipular a Mario en pantalla completa. (#28)
## Parches
En la carpeta `./enhancements` hay varios archivos `patch`, que pueden aplicarse de la siguiente manera:
```
```bash
git apply fps.patch --ignore-whitespace --reject
```
Si ocurre un rechazo, puedes buscarlo con el comando `find | grep .rej`.
Intenta resolver los rechazos a través de [wiggle](https://github.com/neilbrown/wiggle).
```
```bash
wiggle rejection.rej --replace
```

View File

@ -1,5 +1,6 @@
# sm64pc
Adaptação em OpenGL de [n64decomp/sm64](https://github.com/n64decomp/sm64).
Adaptação em OpenGL de [n64decomp/sm64](https://github.com/n64decomp/sm64).
Sinta-se livre para reportar bugs [aqui](https://github.com/sm64pc/sm64pc/issues) e contribuir, mas tenha em mente que não
aceitamos compartilhamento de conteúdo protegido com direitos autorais.
@ -15,17 +16,18 @@ Novas funcionalidades serão adicionadas à branch master quando forem considera
## Recursos
* Renderização nativa. Você agora pode jogar SM64 no PC sem precisar de emulador.
* Proporção de tela e resolução variáveis. O jogo renderiza corretamente em basicamente qualquer tamanho de janela.
* Suporte a entradas de controle através de `xinput`. Tal como usando DualShock 4 em distribuições Linux.
* Controle de câmera com analógico ou mouse. (Ative com `make BETTERCAMERA=1`.)
* Uma opção para desativar distância de renderização. (Ative com `make NODRAWINGDISTANCE=1`.)
* Remapeamento de controles _in-game_.
* Pule as cenas introdutórias da Peach e Lakitu com usando a opção `--skip-intro` ao executar o jogo na linha de comando.
* Menu de cheats nas opções. (Ative com `--cheats`)
** Note que se algum cheat pedir pelo botão "L", o botão em questão é o "L" do N64. Certifique-se de que este está mapeado, caso necessário.
* Renderização nativa. Você agora pode jogar SM64 no PC sem precisar de emulador.
* Proporção de tela e resolução variáveis. O jogo renderiza corretamente em basicamente qualquer tamanho de janela.
* Suporte a entradas de controle através de `xinput`. Tal como usando DualShock 4 em distribuições Linux.
* Controle de câmera com analógico ou mouse. (Ative com `make BETTERCAMERA=1`.)
* Uma opção para desativar distância de renderização. (Ative com `make NODRAWINGDISTANCE=1`.)
* Remapeamento de controles _in-game_.
* Pule as cenas introdutórias da Peach e Lakitu com usando a opção `--skip-intro` ao executar o jogo na linha de comando.
* Menu de cheats nas opções. (Ative com `--cheats`)
** Note que se algum cheat pedir pelo botão "L", o botão em questão é o "L" do N64. Certifique-se de que este está mapeado, caso necessário.
## Compilação
Para instruções de compilaçao, consulte a [wiki](https://github.com/sm64pc/sm64pc/wiki).
## Para usuários de Windows

View File

@ -1,4 +1,5 @@
# sm64pc
本项目是 [n64decomp/sm64](https://github.com/n64decomp/sm64) 的 OpenGL 移植版本。
我们欢迎贡献代码与 bug 报告,但请切记,**不得上传任何被版权保护(来自 ROM 文件)的资源**。
@ -7,15 +8,16 @@
## 主要功能
* 原生渲染。现在不用任何模拟器就可以运行 马力欧64 了。
* 长宽比和分辨率可以自由改变。本游戏目前可以在几乎任何窗口尺寸下正确渲染。
* 原生 xinput 手柄支持。在 Linux 下,已经确认 PS4 手柄可以即插即用。
* 支持模拟量视点控制、鼠标控制视点。(请使用 `make BETTERCAMERA=1` 编译)
* 可取消可视距离限制。(请使用 `make NODRAWINGDISTANCE=1` 编译)
* 游戏内操作设定功能,目前在 `testing` 分支下可用。
* 使用 `--skip-intro` 命令行选项跳过碧奇公主与 Lakitu 的片头剧情。目前在 `testing``skip-intro` 分支下可用。
* 原生渲染。现在不用任何模拟器就可以运行 马力欧64 了。
* 长宽比和分辨率可以自由改变。本游戏目前可以在几乎任何窗口尺寸下正确渲染。
* 原生 xinput 手柄支持。在 Linux 下,已经确认 PS4 手柄可以即插即用。
* 支持模拟量视点控制、鼠标控制视点。(请使用 `make BETTERCAMERA=1` 编译)
* 可取消可视距离限制。(请使用 `make NODRAWINGDISTANCE=1` 编译)
* 游戏内操作设定功能,目前在 `testing` 分支下可用。
* 使用 `--skip-intro` 命令行选项跳过碧奇公主与 Lakitu 的片头剧情。目前在 `testing``skip-intro` 分支下可用。
## 编译方法
关于如何编译,请参考 [wiki](https://github.com/sm64pc/sm64pc/wiki)。
**请勿在 Linux 或者 WSL 下使用 `WINDOWS_BUILD=1` 参数尝试编译 Windows 版本,这样无法编译成功。请参考 Wiki。

View File

@ -1,4 +1,5 @@
# Text-based savefile format
This small document describes a new, TOML-like text format for game saves. This format allows the user to use a simple text editor to change the data necessary for the game (for example, special saves for speedrun training).
All data is stored in pairs (*key = value*). Pairs can be placed arbitrarily within a single section. The format of values may differ for each section.
@ -7,11 +8,14 @@ Each savefile (4 total) must be named `save_file_X.sav`, where X - save slot (0,
> **Note**: The game creates the savefile only when you are saved in the game after completing a course!
___
## Header
The header is automatically generated by the game when saving progress. It mainly contains information about the value of the 0 and 1 flags, the character that the comment starts with, and the time when the file content changed.
Example:
```
```python
# Super Mario 64 save file
# Comment starts with #
# True = 1, False = 0
@ -19,18 +23,23 @@ Example:
```
___
## Commenting
All comment lines starts with `#` character. Comments can be located on a separate line or as part of another line. When the game reads the save, comments are ignored.
Example:
```
```python
# This is a comment
coin_score_age = ?? # This is a comment too!
```
___
## Menu Section - [menu]
This section contains two flags for menu.
This section contains two flags for menu.
| Flag | Value | Description |
|---|---|---|
@ -38,37 +47,42 @@ This section contains two flags for menu.
| sound_mode | stereo, mono, headset | Sound mode for the game
Example:
```
```python
[menu]
coin_score_age = 0
sound_mode = stereo
```
___
## Flags Section - [flags]
This section contains all main game flags (walkthrough milestones).
> **Note**: The value can be only 0 (False) or 1 (True).
| Flag | Description |
|---|---|
| wing_cap | **Red Switch** is pressed
| wing_cap | **Red Switch** is pressed
| metal_cap | **Green Switch** is pressed
| vanish_cap | **Blue Switch** is pressed.
| vanish_cap | **Blue Switch** is pressed
| key_1 | Key is found in **Bowser in the Dark World**
| key_2 | Key is found in **Bowser in the Fire Sea**
| basement_door | Mario unlocked castle's basement door
| upstairs_door | Mario unlocked castle's upper floors
| ddd_moved_back | **Dire Dire Docks** painting is moved back
| ddd_moved_back | **Dire Dire Docks** painting is moved back
| moat_drained | Water is drained in the moat of the castle
| pps_door | **Princess's Secret Slide** window is unlocked
| wf_door | **Whomp's Fortress door** is unlocked
| ccm_door | **Cool, Cool Mountain door** is unlocked
| jrb_door | **Jolly Roger Bay door** is unlocked
| bitdw_door | **Bowser in the Dark World door** door is unlocked
| bitfs_door | **Bowser in the Fire Sea** door is unlocked
| bitfs_door | **Bowser in the Fire Sea** door is unlocked
| 50star_door | **Endless Staircase** is not endless anymore
Example:
```
```python
[flags]
wing_cap = 1
metal_cap = 1
@ -76,14 +90,17 @@ vanish_cap = 0
key_1 = 1
key_2 = 1
```
___
## Main Courses Section - [courses]
This section contains all stars and coins that Mario collected in each main course.
The first value stores the number of coins collected.
> **Warning!**: Make sure that coins count will not exceed 255!
> **Warning!**: Make sure that the coin count does not exceed 255!
The second value stores the stars (or completed missions). Each mission (6 main + 1 bonus) is must be marked `0` (not completed) and `1` (completed).
The second value stores the stars (or completed missions). Each mission (6 main + 1 bonus) is must be marked `0` (not completed) and `1` (completed).
> **Warning!**: The sequence of stars' missions goes from **RIGHT** to **LEFT**!
> **Note**: Last star flag is **100 coins star**
@ -106,23 +123,27 @@ The second value stores the stars (or completed missions). Each mission (6 main
| rr | Rainbow Ride
Example:
```
```python
[courses]
bob = "3, 0000011"
wf = "3, 0000101"
jrb = "0, 1000000"
ccm = "1, 1111111"
```
___
## Bonus Section - [bonus]
This section contains all bonus stars that Mario collected in the castle and all bonus courses.
> **Note**: The game takes into account only the number of bonus stars collected, the order of stars flags can be arbitrary
| Flag | Stars | Description |
|---|---|---|
| hub | 5 | MIPS' stars and Toads' stars
| bitdw | 1 | Bowser in the Dark World
| bitfs | 1 | Bowser in the Fire Sea
| bitdw | 1 | Bowser in the Dark World
| bitfs | 1 | Bowser in the Fire Sea
| bits | 1 | Bowser in the Sky
| pss | 2 | The Princess's Secret Slide
| cotmc | 1 | Cavern of the Metal Cap
@ -132,7 +153,8 @@ This section contains all bonus stars that Mario collected in the castle and all
| sa | 1 | The Secret Aquarium
Example:
```
```python
[bonus]
hub = 11101
bitdw = 1
@ -140,8 +162,11 @@ bitfs = 0
bits = 1
pss = 10
```
___
## Cap Section - [cap]
This section contains information about where Mario lost his cap and who, or what, took it.
| Flag | Value | Description |
|---|---|---|
@ -150,7 +175,8 @@ This section contains information about where Mario lost his cap and who, or wha
| area | 1, 2 | Specifies the area in the course.
Example:
```
```python
[cap]
type = ground
level = ssl