mirror of https://github.com/sm64pc/sm64pc.git
Conform the readmes to markdownlint spec
This commit is contained in:
parent
d47f0fe55c
commit
dd59d17834
2
Makefile
2
Makefile
|
@ -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
|
||||
|
|
26
README.md
26
README.md
|
@ -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.**
|
||||
|
|
185
README_es_ES.md
185
README_es_ES.md
|
@ -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
|
||||
```
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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。
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue