Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How debug? #772

Open
inukaze opened this issue Aug 24, 2020 · 10 comments
Open

How debug? #772

inukaze opened this issue Aug 24, 2020 · 10 comments

Comments

@inukaze
Copy link

inukaze commented Aug 24, 2020

Hi there look i am trying to found why my mupen64plus its not working anymore, some weeks ago i use perfectly, but right now i just got a segmentation fault. and i don't have idea why.

Try 1 : just open the test rom :

./mupen64plus m64p_test_rom.v64 
 __  __                         __   _  _   ____  _             
|  \/  |_   _ _ __   ___ _ __  / /_ | || | |  _ \| |_   _ ___ 
| |\/| | | | | '_ \ / _ \ '_ \| '_ \| || |_| |_) | | | | / __|  
| |  | | |_| | |_) |  __/ | | | (_) |__   _|  __/| | |_| \__ \  
|_|  |_|\__,_| .__/ \___|_| |_|\___/   |_| |_|   |_|\__,_|___/  
             |_|         https://mupen64plus.org/               
Mupen64Plus Console User-Interface Version 2.5.9

UI-Console: attached to core library 'Mupen64Plus Core' version 2.5.9
UI-Console:             Includes support for Dynamic Recompiler.
Core: Updating parameter set version in 'Core' config section to 1.01
Core: Using full mem base
Violación de segmento

Try 2 : using --debug parameter

$ ./mupen64plus --debug m64p_test_rom.v64 
 __  __                         __   _  _   ____  _             
|  \/  |_   _ _ __   ___ _ __  / /_ | || | |  _ \| |_   _ ___ 
| |\/| | | | | '_ \ / _ \ '_ \| '_ \| || |_| |_) | | | | / __|  
| |  | | |_| | |_) |  __/ | | | (_) |__   _|  __/| | |_| \__ \  
|_|  |_|\__,_| .__/ \___|_| |_|\___/   |_| |_|   |_|\__,_|___/  
             |_|         https://mupen64plus.org/               
Mupen64Plus Console User-Interface Version 2.5.9

UI-Console: attached to core library 'Mupen64Plus Core' version 2.5.9
UI-Console:             Includes support for Dynamic Recompiler.
Core: Updating parameter set version in 'Core' config section to 1.01
Core: Using full mem base
UI-Console Error: can't use --debug feature with this Mupen64Plus core library.

I had compile using "DEBUG=1" why that "UI-Console Error: can't use --debug feature with this Mupen64Plus core library." ?

Try 3 : Using gdb

$ gdb ./mupen64plus m64p_test_rom.v64
GNU gdb (GDB) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-slackware-linux".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./mupen64plus...done.
"/tmp/mupen64plus/m64p_test_rom.v64" is not a core dump: No se reconoce el formato del fichero
(gdb) run
Starting program: /tmp/mupen64plus/mupen64plus 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
 __  __                         __   _  _   ____  _             
|  \/  |_   _ _ __   ___ _ __  / /_ | || | |  _ \| |_   _ ___ 
| |\/| | | | | '_ \ / _ \ '_ \| '_ \| || |_| |_) | | | | / __|  
| |  | | |_| | |_) |  __/ | | | (_) |__   _|  __/| | |_| \__ \  
|_|  |_|\__,_| .__/ \___|_| |_|\___/   |_| |_|   |_|\__,_|___/  
             |_|         https://mupen64plus.org/               
Mupen64Plus Console User-Interface Version 2.5.9

UI-Console: attached to core library 'Mupen64Plus Core' version 2.5.9
UI-Console:             Includes support for Dynamic Recompiler.
Core: Updating parameter set version in 'Core' config section to 1.01
Core: Using full mem base
[New Thread 0x7fffcbe6b700 (LWP 18144)]
UI-Console Error: no ROM filepath given
[Thread 0x7fffcbe6b700 (LWP 18144) exited]
[Inferior 1 (process 18134) exited with code 05]
(gdb) 

Well i don't know how make gdb take mupen64plus binary executable with the test rom, because i saw this line :
UI-Console Error: no ROM filepath given

I need to know how debug the error to try fix it.

I had my own bash script for download, compile and install mupen64plus, well this is a modify version to not download, compile for generic machines, and install inside /tmp/mupen64plus. i am from venezuela, and my script are the mayor part on spanish. Here is :

#!/usr/bin/env bash

echo '
Autor ----------------> Inukaze ( Venezuela )
Sitio ----------------> https://goo.gl/ij6WqW
Correo-E -------------> bloginukaze@gmail.com
Licencia -------------> GPL 2

******* Inicio : Acerca de este Script ********
				  
  Yo intento escribir scripts compatibles con
   Sistemas operativos Unix & POSIX , y otros
   Sistemas operativos que soporten bash

  Este archivo es un guion simple para 
   Descargar y compilar Mupen64Plus

******** Fin : Acerca de este Script **********'
sleep 3

unset MensajeBase

function MensajeBase()
{
echo -e "\nLa forma correcta de utilizar este guion es :\n$0 instalar <modulo> <opcion>\n"
echo -e "Modulos Disponibles :\nNucleo\nROM\nRSP     [Opciones : HLE, Z64, CXD4]\nSDL     [Opciones : Audio, Entrada]\nIGU     [Opciones : Terminal (Necesaria), Python, QT, UI], IGU=Interfaz Grafica para Usuario\nVideo   [Opciones : Glide64, Glide64Mk2, GlideN64, Rice, Z64]\nTodo    [Lo instalara todo : Modulos + Opciones]"
echo -e "\nPor Ejemplo :\n1) $0 instalar rom\n2) $0 instalar todo\n3) $0 instalar igu qt\n4) $0 instalar rsp cxd4\n5) $0 instalar sdl audio\n6) $0 instalar sdl entrada\n7) $0 instalar video gliden64\n"
#echo -e '\n\nNOTA: Para la IGU de Python necesitas tener establecida la\nVariable de entorno de ruta para tu usuario el prefijo \n"~/.local/bin" para que funcione correctamente\n\n'
}

#NOTAS :
#1) Debo encontrar : las dependencias escenciales/basicas para poder compilar cada uno de los componentes
#2) Debo escribir una(s) funcion(es) que me permitan : 1 - Determinar la distro, 2 - Determinar el gestor de paquetes instalado, 3 - Instalar dependencias
#3) Luego de tener eso, añadirle una parte grafica a este guion permitiendo asi, a traves de seleccion multiple seleccionar que cosas se van a instalar.

# Obtener la Arquitectura
Arquitectura=$(uname -m)
case "$Arquitectura" in
	x86)    Arquitectura="x32"						;;
	i?86)   Arquitectura="x32"						;;
	amd64)  Arquitectura="x64"						;;
	x86_64) Arquitectura="x64"						;;
	* ) echo    "Tu Arquitectura '$Arquitectura' -> NO ESTA SOPORTADA."	;;
esac

# Optimizaciones #NOTA : se requiere tener instalado 'cpuid' para usar el valor "native" en -march.
CFLAGS='-O2' ; CXXFLAGS='-O2' ; OPTFLAGS='-O2'
export {C,CXX}FLAGS='-O2' ; export OPTFLAGS='-O2'

#Crear Directorios que se usaran e ingresar al directorio de trabajo "/tmp/src/mupen64plus" despues de crearlo
mkdir -p /tmp/src/mupen64plus
cd /tmp/src/mupen64plus

#VARIABLES :
CARPETA="/tmp/src/mupen64plus/" #Directorio de Trabajo
export DEBUG=1 # Simbolos de depuracion
export V=1 # Salida Verbosa
export PIC=1 # Codigo de Posicion Independiente 
export HLEVIDEO=1 # RSP Z64 & CXD4 : Mover emulacion de tareas graficas al complemento de video HLE

# Exportando las "Rutas" para cada parte
# Necesitaras tener instalada en tu distro la herramienta "cpuid"
# Para poder utilizar las "banderas" (flags) de optimizacion correspondientes a tu procesador.

# Para el Nucleo :
#export TARGETDIR="/usr"
#export TARGETDIR="/opt/videojuegos/emuladores/nintendo/64"
export TARGETDIR="/tmp/mupen64plus/"
export PREFIX="$TARGETDIR"			#Predeterminado para todas las distros -> /usr
export SHAREDIR="$TARGETDIR"		#Predeterminado para todas las distros -> /usr/share
export LIBDIR="$TARGETDIR/.libs/64Bits/"			#Predeterminado para todas las distros -> /usr/lib/mupen64plus
export INCDIR="$TARGETDIR/.libs/64Bits/inc"		#Predeterminado para todas las distros -> /usr/include/mupen64plus

# Para Los Complementos :
export PREFIX="$TARGETDIR"			#Predeterminado para todas las distros -> /usr/share/games/mupen64plus
export LIBDIR="$TARGETDIR/.libs/64Bits/"			#Predeterminado para todas las distros -> /usr/lib/mupen64plus
export PLUGINDIR="$TARGETDIR/plugin/64Bits/"		#Predeterminado para todas las distros -> /usr/lib/mupen64plus

# Para la Interfaz de Consola :
export COREDIR="$TARGETDIR/.libs/64Bits/"		#Predeterminado para todas las distros -> /usr/lib/mupen64plus
export APIDIR="$TARGETDIR/.libs/64Bits/inc/"		#Predeterminado para todas las distros -> /usr/include/mupen64plus
export BINDIR="$TARGETDIR"			#Predeterminado para todas las distros -> /usr/games
export MANDIR="$TARGETDIR"		#Predeterminado para todas las distros -> /usr/share/man
export APPSDIR="$TARGETDIR"			#Predeterminado para todas las distros -> /usr/share/applications
export ICONSDIR="$TARGETDIR"	#Predeterminado para todas las distros -> /usr/share/icons

#Prevenir las funciones para que no sean usadas automaticamente
#al iniciar este guion :
unset core
unset rsp_hle
unset rsp_z64
unset rsp_cxd4
unset sdl_audio
unset sdl_entrada
unset video_arachnoid
unset video_glide64
unset video_glide64mk2
unset video_rice
unset video_z64
unset video_gliden64
unset igu_terminal
unset igu_qt
unset igu_ui
unset rom

#QMAKE#function dependencias{
#QMAKE##qmake=4.0.0
#QMAKE#
#QMAKE##RESOLVER DEPENDENCIAS de forma Manual [Puede ser fuera de la funcion, o en otra funcion para esto]
#QMAKE#QMAKE=$(qmake -version | tail -n1 | awk '{print $4}')
#QMAKE#if (( $(awk 'BEGIN {print ("'4.0.0'" < "'$QMAKE'")}') )); then
#QMAKE#    echo 'QMake QT Version : '"$QMAKE"''
#QMAKE#    echo 'Version minima requerida o superior NO Encontrada'
#QMAKE#    echo 'Si intentara descargar, compilar e instalar QT Version : '"$QMAKE.tar.gz"''
#QMAKE#    mkdir -p "/tmp/cdf" ; cd "/tmp/cdf"
#QMAKE#    wget -c "https://www./$QMAKE.tar.gz"
#QMAKE#    tar xfvz "$QMAKE.tar.gz"
#QMAKE#    cd "$QMAKE"
#QMAKE#    ./autogen.sh
#QMAKE#fi
#QMAKE##RESOLVER DEPENDENCIAS de forma Manual [Puede ser fuera de la funcion, o en otra funcion para esto]
#QMAKE#}

function core(){
#001 El Nucleo / La Base :
# Ir a a la carpeta establecida en la variable CARPETA
cd "$CARPETA"
#git clone https://github.com/mupen64plus/mupen64plus-core
cd mupen64plus-core/projects/unix
make clean
make all
make install

#Enlazar Libreria necesaria para mupen64plus-ui
ln -s "$TARGETDIR/lib/libmupen64plus.so.2" "$TARGETDIR/lib/libmupen64plus.so"
}

function rsp_hle()
{
##002 Complemento : "Procesador de señal de realidad : Emulación de alto nivel" [RSP - HLE] :
# Ir a a la carpeta establecida en la variable CARPETA
cd "$CARPETA"
#Descargar
#git clone https://github.com/mupen64plus/mupen64plus-rsp-hle
# Inregresar a la carpeta "projects/unix" del directorio que se acaba de descargar de internet
cd mupen64plus-rsp-hle/projects/unix
# Limpiar cualquier archivo indeseado
make clean
# Compilar todo
make all
#Instalar complemento, en caso de que no tenga install, copiar manualmente la libreria generada "muepn64plus-rsp-hle.so" al directorio de complementos.
make install
cp *.so "$PLUGINDIR"
}


function rsp_z64()
{
##003 Complemento : "Procesador de señal de realidad : Emulación de bajo nivel (z64)" [RSP - Z64] :
# Ir a a la carpeta establecida en la variable CARPETA
cd "$CARPETA"
#Descargar mediante git
#git clone https://github.com/mupen64plus/mupen64plus-rsp-z64
# Inregresar a la carpeta "projects/unix" del directorio que se acaba de descargar de internet
cd mupen64plus-rsp-z64/projects/unix
# Limpiar cualquier archivo indeseado
make clean
# Compilar todo
make all
#Instalar complemento, en caso de que no tenga install, copiar manualmente la libreria generada "muepn64plus-rsp-z64.so" al directorio de complementos.
cp *.so "$PLUGINDIR"
}

function rsp_cxd4()
{
#004 Complemento RSP - cxd4
##004 Complemento : Procesador de señal de realidad : Procesador de señal de tecnología (cxd4)" [RSP - CXD4] :
# Ir a a la carpeta establecida en la variable CARPETA
cd "$CARPETA"
#Descargar mediante git
#git clone https://github.com/mupen64plus/mupen64plus-rsp-cxd4
cd mupen64plus-rsp-cxd4/projects/unix
make clean
make all
cp *.so "$PLUGINDIR"
}


function rom()
{
cd "$CARPETA"
#git clone https://github.com/mupen64plus/mupen64plus-rom
cd mupen64plus-rom
cp "m64p_test_rom.v64" "$TARGETDIR/"
}

function sdl_audio()
{
#005 Complemento de Audio - SDL
# Ir a a la carpeta establecida en la variable CARPETA
cd "$CARPETA"
#git clone https://github.com/mupen64plus/mupen64plus-audio-sdl
cd mupen64plus-audio-sdl/projects/unix
make clean
make all
make install
}

function sdl_entrada()
{
#006 Complemento de Entrada - SDL
# Ir a a la carpeta establecida en la variable CARPETA
cd "$CARPETA"
#git clone https://github.com/mupen64plus/mupen64plus-input-sdl
cd mupen64plus-input-sdl/projects/unix
make clean
make all
make install
}

function video_arachnoid(){
#007 Complemento de Video - Arachnoid
# Ir a a la carpeta establecida en la variable CARPETA
cd "$CARPETA"
#git clone https://github.com/mupen64plus/mupen64plus-video-arachnoid
cd mupen64plus-video-arachnoid/projects/unix
make clean
make all
make install
}

function video_glide64(){
#008 Complemento de Video - Glide64
# Ir a a la carpeta establecida en la variable CARPETA
cd "$CARPETA"
#git clone https://github.com/mupen64plus/mupen64plus-video-glide64
cd mupen64plus-video-glide64/projects/unix
make clean
make all
make install
cd ../../..
}

function video_glide64mk2()
{
#009 Complemento de Video - Glide64mk2
# Ir a a la carpeta establecida en la variable CARPETA
cd "$CARPETA"
#git clone https://github.com/mupen64plus/mupen64plus-video-glide64mk2
cd mupen64plus-video-glide64mk2/projects/unix
make clean
make all
make install
}

function video_rice()
{
#010 Complemento de Video - Rice
# Ir a a la carpeta establecida en la variable CARPETA
cd "$CARPETA"
#git clone https://github.com/mupen64plus/mupen64plus-video-rice
cd mupen64plus-video-rice/projects/unix
make clean
make all
make install
}

function video_z64()
{
#011 Complemento de Video - z64
# Ir a a la carpeta establecida en la variable CARPETA
cd "$CARPETA"
#git clone https://github.com/mupen64plus/mupen64plus-video-z64
cd mupen64plus-video-z64/projects/unix
make clean
make all
cp *.so "$PLUGINDIR" &> /dev/null
}

function igu_terminal()
{
#012 Interfaz de Consola:
# Ir a a la carpeta establecida en la variable CARPETA
cd "$CARPETA"
#git clone https://github.com/mupen64plus/mupen64plus-ui-console
cd mupen64plus-ui-console/projects/unix/
make clean
make all
make install

#Crear carpeta para el o los binario(s) ejecutable(s)
mkdir -p "$TARGETDIR/bin"

#Mover el binario ejecutable a la carpeta para binarios ejecutables
mv "$TARGETDIR/mupen64plus" "$TARGETDIR/bin/"

# Crear / Actualizar los enlaces necesarios para ser utilizados con la rutina
echo '[Desktop Entry]
Version=1.0
Type=Application
Name=Mupen64Plus
GenericName=N64 Emulator
Comment=Nintendo 64 emulator and plugins for Linux, Mac OSX, FreeBSD, and Windows
Exec='$TARGETDIR/bin/mupen64plus %f'
Icon='$TARGETDIR/share/icons/scalable/apps/mupen64plus.svg'
MimeType=application/x-n64-rom;
Categories=Game;Emulator;
Keywords=Emulator;Nintendo64;Mupen64plus;
NoDisplay=true' | tee "$TARGETDIR/mupen64plus.desktop"

#Colocarlo en el menu del usuario :
cp "$TARGETDIR/mupen64plus.desktop" "$HOME/.local/share/applications/mupen64plus.desktop" 
}

function igu_qt()
{
#014 Interfaz Qt :
# Ir a a la carpeta establecida en la variable CARPETA
cd "$CARPETA"
#git clone https://github.com/dh4/mupen64plus-qt
cd mupen64plus-qt

#Intentar usar la version mas actualizada de qmake que se encuentre :
QMAKE=$(whereis -B "/usr/sbin" "/usr/local/sbin" "/sbin" "/usr/bin" "/usr/local/bin" "/bin" -b qmake-qt5 | grep -i "qmake-qt5" | cut -d " " -f02 | cut -c10-18) ; eval "$QMAKE"
QMAKEVER=$(eval $QMAKE -version | tail -n1 | cut -d " " -f04  | cut -c01)
if [ "$QMAKE" = "qmake-qt5" ]; then
	#echo 'Se encontro el binario ejecutable : qmake | Version : '$QMAKEVER''
	eval "$QMAKE mupen64plus-qt.pro"
else
	echo "No se encontro el binario ejecutable : qmake-qt5, buscando qmake en su lugar"
	QMAKE=$(whereis -B "/usr/sbin" "/usr/local/sbin" "/sbin" "/usr/bin" "/usr/local/bin" "/bin" -b qmake | grep -i "qmake" | cut -d " " -f02 | cut -c10-14) ; eval "$QMAKE"
	if [ -z "$QMAKE" ]; then
		echo "No se encontro el binario ejecutable : qmake, instala QT & QMake para poder compilar esta IGU"
	else
		eval "$QMAKE mupen64plus-qt.pro"
	fi
fi
make
mv mupen64plus-qt "$TARGETDIR/bin/"
#Crear enlace :
echo '[Desktop Entry]
Version=1.0
Type=Application
Name=Mupen64Plus-Qt
GenericName=Mupen64Plus Launcher
GenericName[ru]=Интерфейс для Mupen64Plus
Comment=A customizable launcher for Mupen64Plus
Comment[ru]=Настраиваемый интерфейс для Mupen64Plus
Exec='$TARGETDIR/bin/mupen64plus-qt'
Icon='$TARGETDIR/share/icons/scalable/apps/mupen64plus.svg'
Terminal=false
Categories=Game;Emulator;
Keywords=emulator;mupen;mupen64plus;Nintendo;64;' | tee "$TARGETDIR/mupen64plus-qt.desktop"
cp "$TARGETDIR/mupen64plus-qt.desktop" "$HOME/.local/share/applications/"
}

function igu_ui()
{
#015 Interfaz Qt Alternativa [Esta mejor trabajada]
cd "$CARPETA"
#git clone https://github.com/robalni/mupen64plus-ui
cd mupen64plus-ui/

#Intentar usar la version mas actualizada de qmake que se encuentre :
QMAKE=$(whereis -B "/usr/sbin" "/usr/local/sbin" "/sbin" "/usr/bin" "/usr/local/bin" "/bin" -b qmake-qt5 | grep -i "qmake-qt5" | cut -d " " -f02 | cut -c10-18) ; eval "$QMAKE"
QMAKEVER=$(eval $QMAKE -version | tail -n1 | cut -d " " -f04  | cut -c01)
if [ "$QMAKE" = "qmake-qt5" ]; then
	#echo 'Se encontro el binario ejecutable : qmake | Version : '$QMAKEVER''
	eval "$QMAKE mupen64plus-ui.pro"
else
	echo "No se encontro el binario ejecutable : qmake-qt5, buscando qmake en su lugar"
	QMAKE=$(whereis -B "/usr/sbin" "/usr/local/sbin" "/sbin" "/usr/bin" "/usr/local/bin" "/bin" -b qmake | grep -i "qmake" | cut -d " " -f02 | cut -c10-14) ; eval "$QMAKE"
	if [ -z "$QMAKE" ]; then
		echo "No se encontro el binario ejecutable : qmake, instala QT & QMake para poder compilar esta IGU"
	else
		eval "$QMAKE mupen64plus-ui.pro"
	fi
fi

#Arreglar el archivo Makefile
sed -i "Makefile" -e 's#/usr/local/include/mupen64plus#"'$TARGETDIR/include'"#' Makefile
sed -i "Makefile" -e 's#LFLAGS        = -L/usr/lib64 -Wl,-O1#LFLAGS        = -L/usr/lib64 -L"'$TARGETDIR/lib'" -Wl,-O1#' Makefile

#Compilar
make

#Renombrar y mover al directorio de binarios ejecutables del prefijo :
mv mupen64plus mupen64plus-ui
mv mupen64plus-ui "$TARGETDIR/bin/"

#Borrar Enlace en caso de que exista
rm -rf "$TARGETDIR/mupen64plus-ui.desktop"

#Crear enlace
echo '[Desktop Entry]
Version=1.0
Type=Application
Name=Mupen64Plus UI
GenericName=Mupen64Plus Launcher
Comment=An emulator for Nintendo 64
Exec='"$TARGETDIR/bin/mupen64plus-ui"'
Icon='$TARGETDIR/share/icons/scalable/apps/mupen64plus.svg'
Terminal=false
Categories=Game;Emulator;
Keywords=emulator;mupen;mupen64plus;Nintendo;64;' | tee "$TARGETDIR/mupen64plus-ui.desktop"
cp "$TARGETDIR/mupen64plus-ui.desktop" "$HOME/.local/share/applications/"
}

function video_gliden64()
{
#016 Complemento de Video - GLideN64
cd "$CARPETA"
#git clone https://github.com/gonetz/GLideN64
cd GLideN64/src
chmod a+o+x getRevision.sh
bash getRevision.sh
#cmake -DVEC4_OPT=On -DMUPENPLUSAPI=On .
cmake -DMUPENPLUSAPI=On .
make
cd plugin/Release/
cp *.so "$PLUGINDIR"
}

#Si el usuario no pasa ningun parametro indicar como se usa este guion
if [ -z "$1" ]; then
    MensajeBase
fi

#Guion : Aqui se ha definido como se utilizara este guion correctamente para instalar lo que se desee de forma especifica.
#Entrada : Cualquier palabra pasada por el parametro $1 sera convertida en minusculas
Entrada=$(echo "$1" | tr -s  '[:upper:]'  '[:lower:]')

#Si el usuario usa este guion por ejemplo 
#./esteguion instalar
#le mostrara lo que esta contenido en la funcion 'echo'
if [ "$Entrada" == "instalar" ]; then
MensajeBase
#Entrada : Cualquier palabra pasada por el parametro $2 sera convertida en minusculas
Entrada=$(echo "$2" | tr -s  '[:upper:]'  '[:lower:]')
	    if [ "$Entrada" == "nucleo" ]; then
	    echo "Has decidido : $1 el $2"
	    core
	    fi
	    if [ "$Entrada" == "rsp" ]; then
	    echo -e 'Debes especificar que tipo de complemento "Procesador de señal de realidad (RSP) : Emulación de alto nivel (HLE)" quieres instalar, puede ser\nhle\nz64\cxd4'
		    #Entrada : Cualquier palabra pasada por el parametro $3 sera convertida en minusculas
		    Entrada=$(echo "$3" | tr -s  '[:upper:]'  '[:lower:]')
		    if [ "$Entrada" == "hle" ]; then
		    echo "Has decidido $1 el complemento : $3"
		    rsp_hle
		    fi
		    if [ "$Entrada" == "z64" ]; then
		    echo 'Has decidido '"'$1'"' el complemento : "Procesador de señal de realidad : Emulación de bajo nivel ('"$3"')'
		    rsp_z64
		    fi
		    if [ "$Entrada" == "cxd4" ]; then
		    echo 'Has decidido '"'$1'"' el complemento : "Procesador de señal de realidad : Procesador de señal de tecnología" ('"$3"')'
		    rsp_cxd4
		    fi
	    fi
	    if [ "$Entrada" == "sdl" ]; then
	    echo -e "Debes especificar cual complemento SDL deseas instalar, esta disponible\n\nAudio\nEntrada"
	    #Entrada : Cualquier palabra pasada por el parametro $3 sera convertida en minusculas
	    Entrada=$(echo "$3" | tr -s  '[:upper:]'  '[:lower:]')
		    if [ "$Entrada" == "audio" ]; then
		    echo "Has seleccionado : $1 $3"
		    echo 'Has decidido '"'$1'"' el complemento '"$2"' de '"$3"''
		    sdl_audio
		    fi
		    if [ "$Entrada" == "entrada" ]; then
		    echo 'Has decidido '"'$1'"' el complemento '"$2"' de '"$3"''
		    sdl_entrada
		    fi
	    fi
	    if [ "$Entrada" == "video" ]; then
	    echo -e "Debes especificar cual complemento de video, esta disponible\n\nArachnoid\nGlide64\nGlide64Mk2\nGlideN64\nRice\nZ64"
	    #Entrada : Cualquier palabra pasada por el parametro $3 sera convertida en minusculas
	    Entrada=$(echo "$3" | tr -s  '[:upper:]'  '[:lower:]')
		    if [ "$Entrada" == "arachnoid" ]; then
		    echo "Has seleccionado : $1 $3"
		    echo 'Has decidido '"'$1'"' el complemento de '"$2"' : '"$3"''
		    video_arachnoid
		    fi
		    if [ "$Entrada" == "glide64" ]; then
		    echo 'Has decidido '"'$1'"' el complemento de '"$2"' : '"$3"''
		    video_glide64
		    fi
		    if [ "$Entrada" == "glide64mk2" ]; then
		    echo 'Has decidido '"'$1'"' el complemento de '"$2"' : '"$3"''
		    video_glide64mk2
		    fi
		    if [ "$Entrada" == "rice" ]; then
		    echo 'Has decidido '"'$1'"' el complemento de '"$2"' : '"$3"''
		    video_rice
		    fi
		    if [ "$Entrada" == "z64" ]; then
		    echo 'Has decidido '"'$1'"' el complemento de '"$2"' : '"$3"''
		    video_z64
		    fi
		    if [ "$Entrada" == "gliden64" ]; then
		    echo 'Has decidido '"'$1'"' el complemento de '"$2"' : '"$3"''
		    video_gliden64
		    fi
	    fi
	    if [ "$Entrada" == "igu" ]; then
	    echo -e "Debes especificar cual Interfaz para usuario quieres instalar\n\nTerminal\nPython\nQT\nUI"
	    #Entrada : Cualquier palabra pasada por el parametro $3 sera convertida en minusculas
	    Entrada=$(echo "$3" | tr -s  '[:upper:]'  '[:lower:]')
		    if [ "$Entrada" == "terminal" ]; then
		    echo 'Has decidido '"'$1'"' la interfaz para usuario : '"$3"''
		    igu_terminal
		    fi
		    if [ "$Entrada" == "python" ]; then
		    echo 'Has decidido '"'$1'"' la interfaz para usuario : '"$3"''
		    igu_python
		    fi
		    if [ "$Entrada" == "qt" ]; then
		    echo 'Has decidido '"'$1'"' la interfaz para usuario : '"$3"''
		    igu_qt
		    fi
		    if [ "$Entrada" == "ui" ]; then
		    echo 'Has decidido '"'$1'"' la interfaz para usuario : '"$3"''
		    igu_ui
		    fi
	    fi
	    if [ "$Entrada" == "rom"  ]; then
	    echo -e 'Has decidido '"'$1'"' la rom de prueba'
	    rom
	    fi
	    if [ "$Entrada" == "todo" ]; then
	    #Entrada : Cualquier palabra pasada por el parametro $3 sera convertida en minusculas
	    echo "Has seleccionado : $1 $2"
	    core
	    rsp_hle
	    rsp_z64
	    rsp_cxd4
	    sdl_audio
	    sdl_entrada
	    video_arachnoid
	    video_glide64
	    video_glide64mk2
	    video_rice
	    video_z64
	    video_gliden64
	    igu_terminal
	    rom
	    igu_python
	    igu_qt
	    igu_ui 
	    fi
fi

# Permitir a todo(s) hacer lo que quiera con el mupen64plus
chmod -R 777 "$TARGETDIR" 2>/dev/null

# Acomodar archivos :
cd "$TARGETDIR/bin"         >/dev/null 2> /dev/null
mv mupen64plus ../          >/dev/null 2> /dev/null
mv mupen64plus-qt ../       >/dev/null 2> /dev/null
cd ..                       >/dev/null 2> /dev/null
rm -rf "$TARGETDIR/bin"     >/dev/null 2> /dev/null
cd "$TARGETDIR/48x48/apps"  >/dev/null 2> /dev/null
mv mupen64plus.png ../../   >/dev/null 2> /dev/null
rm -rf "$TARGETDIR/48x48"   >/dev/null 2> /dev/null
cd scalable/apps/           >/dev/null 2> /dev/null
mv mupen64plus.svg ../../   >/dev/null 2> /dev/null
cd "$TARGETDIR"             >/dev/null 2> /dev/null
rm -rf scalable             >/dev/null 2> /dev/null
cd "$TARGETDIR/man6"        >/dev/null 2> /dev/null
mv mupen64plus.6 ../        >/dev/null 2> /dev/null
cd "$TARGETDIR"             >/dev/null 2> /dev/null
rm -rf man6                 >/dev/null 2> /dev/null

This script is just for use like :
./mupen64plus instalar todo

on english => mupen64plus install all

@inukaze
Copy link
Author

inukaze commented Aug 25, 2020

$ gdb ./mupen64plus

GNU gdb (GDB) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-slackware-linux".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./mupen64plus...done.

(gdb) r "m64p_test_rom.v64"

Starting program: /tmp/mupen64plus/mupen64plus "m64p_test_rom.v64"
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".


| / |_ _ _ __ ___ _ __ / /_ | || | | _ | |_ _ ___
| |/| | | | | '_ \ / _ \ '_ | '_ | || || |) | | | | / |
| | | | || | |) | / | | | (_) | | __/| | || __ \
|| ||_,| .
/ _|| ||_/ || || ||_,|_/
|
| https://mupen64plus.org/
Mupen64Plus Console User-Interface Version 2.5.9

UI-Console: attached to core library 'Mupen64Plus Core' version 2.5.9
UI-Console: Includes support for Dynamic Recompiler.
Core: Updating parameter set version in 'Core' config section to 1.01
Core: Using full mem base
[New Thread 0x7fffcbe7a700 (LWP 4539)]

Thread 1 "mupen64plus" received signal SIGSEGV, Segmentation fault.
0x00007ffff1a72002 in ConfigHasUnsavedChanges (SectionName=0x633130 "")
    at ../../src/api/config.c:805
805	{

ok i try the follow :
mv "$HOME/.config/mupen64plus/mupen64plus.cfg" "$HOME/.config/mupen64plus/mupen64plus.cfg.old"

I try gdb again :
$ gdb ./mupen64plus

GNU gdb (GDB) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-slackware-linux".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./mupen64plus...done.

(gdb) r "m64p_test_rom.v64"

Starting program: /tmp/mupen64plus/mupen64plus "m64p_test_rom.v64"
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".


| / |_ _ _ __ ___ _ __ / /_ | || | | _ | |_ _ ___
| |/| | | | | '_ \ / _ \ '_ | '_ | || || |) | | | | / |
| | | | || | |) | / | | | (_) | | __/| | || __ \
|| ||_,| .
/ _|| ||_/ || || ||_,|_/
|
| https://mupen64plus.org/
Mupen64Plus Console User-Interface Version 2.5.9

UI-Console: attached to core library 'Mupen64Plus Core' version 2.5.9
UI-Console: Includes support for Dynamic Recompiler.
Core: Couldn't open configuration file '/home/inukaze/.config/mupen64plus/mupen64plus.cfg'. Using defaults.
Core Warning: No version number in 'Core' config section. Setting defaults.
Core Warning: No version number in 'CoreEvents' config section. Setting defaults.
Core: Using full mem base
[New Thread 0x7fffcbe7a700 (LWP 6241)]
UI-Console Warning: No version number in 'UI-Console' config section. Setting defaults.
Core: Goodname: Mupen64Plus Demo by Marshallh (GPL)
Core: Name: Mupen64Plus
Core: MD5: DBF04773EC2B8ADF8A94DB7E3E461138
Core: CRC: DDBA4DE5 B107004A
Core: Imagetype: .v64 (byteswapped)
Core: Rom size: 1048576 bytes (or 1 Mb or 8 Megabits)
Core: Version: 1444
Core: Manufacturer: 0
Core: Country: Demo
UI-Console Status: Cheat codes disabled.
Video Warning: No version number in 'Rice-Video' config section. Setting defaults.
Video Warning: Old parameter config version detected : 0, updating to 1;
UI-Console: using Video plugin: 'Mupen64Plus OpenGL Video Plugin by Rice' v2.5.9
Audio Warning: No version number in 'Audio-SDL' config section. Setting defaults.
UI-Console: using Audio plugin: 'Mupen64Plus SDL Audio Plugin' v2.5.9
Input Warning: Missing or incompatible config section 'Input-SDL-Control1'. Clearing.
Input Warning: Missing or incompatible config section 'Input-SDL-Control2'. Clearing.
Input Warning: Missing or incompatible config section 'Input-SDL-Control3'. Clearing.
Input Warning: Missing or incompatible config section 'Input-SDL-Control4'. Clearing.
Input: Using auto-config file at: '/tmp/mupen64plus/InputAutoCfg.ini'
UI-Console: using Input plugin: 'Mupen64Plus SDL Input Plugin' v2.5.9
RSP Warning: No version number in 'Rsp-HLE' config section. Setting defaults.
UI-Console: using RSP plugin: 'Hacktarux/Azimer High-Level Emulation RSP Plugin' v2.5.9
Core: input plugin did not specify a render callback; there will be no on screen display by the input plugin.
Input: 0 SDL joysticks were found.
Input: N64 Controller #1: Forcing default keyboard configuration
Input: Using auto-config file at: '/tmp/mupen64plus/InputAutoCfg.ini'
Input: 1 controller(s) found, 1 plugged in and usable in the emulator
Input Warning: Couldn't open rumble support for joystick #1
Input Warning: Couldn't open rumble support for joystick #2
Input Warning: Couldn't open rumble support for joystick #3
Input Warning: Couldn't open rumble support for joystick #4
Input: Mupen64Plus SDL Input Plugin version 2.5.9 initialized.
RSP: RSP Fallback disabled !
Core: Using video capture backend: dummy
Core: Game controller 0 (Standard controller) has a Memory pak plugged in
Core: Game controller 1 (Standard controller) has a Memory pak plugged in
Core: Game controller 2 (Standard controller) has a Memory pak plugged in
Core: Game controller 3 (Standard controller) has a Memory pak plugged in
Core: Using CIC type X102
Video: SSE processing enabled.
Video: ROM (CRC e54dbadd4a0007b1-00) not found in INI file
Video: Initializing OpenGL Device Context.
Core: Setting 32-bit video mode: 640x480
Video Warning: Failed to set GL_BUFFER_SIZE to 32. (it's 24)
Video Warning: Failed to set GL_DEPTH_SIZE to 16. (it's 24)
Video: Using OpenGL: GeForce GT 620/PCIe/SSE2 - 2.1.2 NVIDIA 304.137 : NVIDIA Corporation
Audio: Using resampler speex
[New Thread 0x7fffc8ef5700 (LWP 6250)]
[New Thread 0x7fffc83a2700 (LWP 6251)]
Audio: Initializing SDL audio subsystem...
[New Thread 0x7fffc715d700 (LWP 6252)]
Input Warning: Couldn't open rumble support for joystick #1
Input Warning: Couldn't open rumble support for joystick #2
Input Warning: Couldn't open rumble support for joystick #3
Input Warning: Couldn't open rumble support for joystick #4
Core: Initializing 4 RDRAM modules for a total of 8 MB
Core: Starting R4300 emulator: Dynamic Recompiler
Core Status: Stopping emulation.
Core: R4300 emulator finished.
[Thread 0x7fffc715d700 (LWP 6252) exited]
[Thread 0x7fffc83a2700 (LWP 6251) exited]
[Thread 0x7fffc8ef5700 (LWP 6250) exited]
Core Status: Rom closed.
[Thread 0x7fffcbe7a700 (LWP 6241) exited]
[Inferior 1 (process 6233) exited normally]

(gdb) quit

Now its working well i don't understand the console-ui just simply print "Error in configuration file"

@inukaze
Copy link
Author

inukaze commented Aug 25, 2020

$ gdb ./mupen64plus

GNU gdb (GDB) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-slackware-linux".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./mupen64plus...done.

(gdb) r "m64p_test_rom.v64"

Starting program: /tmp/mupen64plus/mupen64plus "m64p_test_rom.v64"
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".


| / |_ _ _ __ ___ _ __ / /_ | || | | _ | |_ _ ___
| |/| | | | | '_ \ / _ \ '_ | '_ | || || |) | | | | / |
| | | | || | |) | / | | | (_) | | __/| | || __ \
|| ||_,| .
/ _|| ||_/ || || ||_,|_/
|
| https://mupen64plus.org/
Mupen64Plus Console User-Interface Version 2.5.9

UI-Console: attached to core library 'Mupen64Plus Core' version 2.5.9
UI-Console: Includes support for Dynamic Recompiler.
Core: Updating parameter set version in 'Core' config section to 1.01
Core: Using full mem base
[New Thread 0x7fffcbe7a700 (LWP 4539)]

Thread 1 "mupen64plus" received signal SIGSEGV, Segmentation fault.
0x00007ffff1a72002 in ConfigHasUnsavedChanges (SectionName=0x633130 "")
    at ../../src/api/config.c:805
805	{

ok i try the follow :
mv "$HOME/.config/mupen64plus/mupen64plus.cfg" "$HOME/.config/mupen64plus/mupen64plus.cfg.old"

I try gdb again :
$ gdb ./mupen64plus

GNU gdb (GDB) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-slackware-linux".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./mupen64plus...done.

(gdb) r "m64p_test_rom.v64"

Starting program: /tmp/mupen64plus/mupen64plus "m64p_test_rom.v64"
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".


| / |_ _ _ __ ___ _ __ / /_ | || | | _ | |_ _ ___
| |/| | | | | '_ \ / _ \ '_ | '_ | || || |) | | | | / |
| | | | || | |) | / | | | (_) | | __/| | || __ \
|| ||_,| .
/ _|| ||_/ || || ||_,|_/
|
| https://mupen64plus.org/
Mupen64Plus Console User-Interface Version 2.5.9

UI-Console: attached to core library 'Mupen64Plus Core' version 2.5.9
UI-Console: Includes support for Dynamic Recompiler.
Core: Couldn't open configuration file '/home/inukaze/.config/mupen64plus/mupen64plus.cfg'. Using defaults.
Core Warning: No version number in 'Core' config section. Setting defaults.
Core Warning: No version number in 'CoreEvents' config section. Setting defaults.
Core: Using full mem base
[New Thread 0x7fffcbe7a700 (LWP 6241)]
UI-Console Warning: No version number in 'UI-Console' config section. Setting defaults.
Core: Goodname: Mupen64Plus Demo by Marshallh (GPL)
Core: Name: Mupen64Plus
Core: MD5: DBF04773EC2B8ADF8A94DB7E3E461138
Core: CRC: DDBA4DE5 B107004A
Core: Imagetype: .v64 (byteswapped)
Core: Rom size: 1048576 bytes (or 1 Mb or 8 Megabits)
Core: Version: 1444
Core: Manufacturer: 0
Core: Country: Demo
UI-Console Status: Cheat codes disabled.
Video Warning: No version number in 'Rice-Video' config section. Setting defaults.
Video Warning: Old parameter config version detected : 0, updating to 1;
UI-Console: using Video plugin: 'Mupen64Plus OpenGL Video Plugin by Rice' v2.5.9
Audio Warning: No version number in 'Audio-SDL' config section. Setting defaults.
UI-Console: using Audio plugin: 'Mupen64Plus SDL Audio Plugin' v2.5.9
Input Warning: Missing or incompatible config section 'Input-SDL-Control1'. Clearing.
Input Warning: Missing or incompatible config section 'Input-SDL-Control2'. Clearing.
Input Warning: Missing or incompatible config section 'Input-SDL-Control3'. Clearing.
Input Warning: Missing or incompatible config section 'Input-SDL-Control4'. Clearing.
Input: Using auto-config file at: '/tmp/mupen64plus/InputAutoCfg.ini'
UI-Console: using Input plugin: 'Mupen64Plus SDL Input Plugin' v2.5.9
RSP Warning: No version number in 'Rsp-HLE' config section. Setting defaults.
UI-Console: using RSP plugin: 'Hacktarux/Azimer High-Level Emulation RSP Plugin' v2.5.9
Core: input plugin did not specify a render callback; there will be no on screen display by the input plugin.
Input: 0 SDL joysticks were found.
Input: N64 Controller #1: Forcing default keyboard configuration
Input: Using auto-config file at: '/tmp/mupen64plus/InputAutoCfg.ini'
Input: 1 controller(s) found, 1 plugged in and usable in the emulator
Input Warning: Couldn't open rumble support for joystick #1
Input Warning: Couldn't open rumble support for joystick #2
Input Warning: Couldn't open rumble support for joystick #3
Input Warning: Couldn't open rumble support for joystick #4
Input: Mupen64Plus SDL Input Plugin version 2.5.9 initialized.
RSP: RSP Fallback disabled !
Core: Using video capture backend: dummy
Core: Game controller 0 (Standard controller) has a Memory pak plugged in
Core: Game controller 1 (Standard controller) has a Memory pak plugged in
Core: Game controller 2 (Standard controller) has a Memory pak plugged in
Core: Game controller 3 (Standard controller) has a Memory pak plugged in
Core: Using CIC type X102
Video: SSE processing enabled.
Video: ROM (CRC e54dbadd4a0007b1-00) not found in INI file
Video: Initializing OpenGL Device Context.
Core: Setting 32-bit video mode: 640x480
Video Warning: Failed to set GL_BUFFER_SIZE to 32. (it's 24)
Video Warning: Failed to set GL_DEPTH_SIZE to 16. (it's 24)
Video: Using OpenGL: GeForce GT 620/PCIe/SSE2 - 2.1.2 NVIDIA 304.137 : NVIDIA Corporation
Audio: Using resampler speex
[New Thread 0x7fffc8ef5700 (LWP 6250)]
[New Thread 0x7fffc83a2700 (LWP 6251)]
Audio: Initializing SDL audio subsystem...
[New Thread 0x7fffc715d700 (LWP 6252)]
Input Warning: Couldn't open rumble support for joystick #1
Input Warning: Couldn't open rumble support for joystick #2
Input Warning: Couldn't open rumble support for joystick #3
Input Warning: Couldn't open rumble support for joystick #4
Core: Initializing 4 RDRAM modules for a total of 8 MB
Core: Starting R4300 emulator: Dynamic Recompiler
Core Status: Stopping emulation.
Core: R4300 emulator finished.
[Thread 0x7fffc715d700 (LWP 6252) exited]
[Thread 0x7fffc83a2700 (LWP 6251) exited]
[Thread 0x7fffc8ef5700 (LWP 6250) exited]
Core Status: Rom closed.
[Thread 0x7fffcbe7a700 (LWP 6241) exited]
[Inferior 1 (process 6233) exited normally]

(gdb) quit

Now its working well i don't understand the console-ui just simply print "Error in configuration file"

@Narann
Copy link
Member

Narann commented Aug 25, 2020

When mupen64plus open config file, it read its version. If config file version is older than mupen64plus version, it try to update.

I suspect the update process is crashing. Could you provide the crashing config file?

@inukaze
Copy link
Author

inukaze commented Aug 26, 2020

Old Config (Crashing Configuration File) :

# Mupen64Plus Configuration File
# This file is automatically read and written by the Mupen64Plus Core library

[]



[64DD]

# Filename of the 64DD IPL ROM
IPL-ROM = ""
# Filename of the disk to load into Disk Drive
Disk = ""


[Audio-SDL]

# Mupen64Plus SDL Audio Plugin config parameter version number
Version = "1.000000"
# Frequency which is used if rom doesn't want to change it
DEFAULT_FREQUENCY = 33600
# Swaps left and right channels
SWAP_CHANNELS = False
# Size of primary buffer in output samples. This is where audio is loaded after it's extracted from n64's memory.
PRIMARY_BUFFER_SIZE = 16384
# Fullness level target for Primary audio buffer, in equivalent output samples. This value must be larger than the SECONDARY_BUFFER_SIZE. Decreasing this value will reduce audio latency but requires a faster PC to avoid choppiness. Increasing this will increase audio latency but reduce the chance of drop-outs.
PRIMARY_BUFFER_TARGET = 2048
# Size of secondary buffer in output samples. This is SDL's hardware buffer. The SDL documentation states that this should be a power of two between 512 and 8192.
SECONDARY_BUFFER_SIZE = 1024
# Audio resampling algorithm. src-sinc-best-quality, src-sinc-medium-quality, src-sinc-fastest, src-zero-order-hold, src-linear, speex-fixed-{10-0}, trivial
RESAMPLE = "speex-fixed-4"
# Volume control type: 1 = SDL (only affects Mupen64Plus output)  2 = OSS mixer (adjusts master PC volume)
VOLUME_CONTROL_TYPE = 1
# Percentage change each time the volume is increased or decreased
VOLUME_ADJUST = 5
# Default volume when a game is started.  Only used if VOLUME_CONTROL_TYPE is 1
VOLUME_DEFAULT = 80
# Synchronize Video/Audio
AUDIO_SYNC = False


[Core]

# Mupen64Plus Core config parameter set version number.  Please don't change this version number.
Version = 1,010000
# Draw on-screen display if True, otherwise don't draw OSD
OnScreenDisplay = True
# Use Pure Interpreter if 0, Cached Interpreter if 1, or Dynamic Recompiler if 2 or more
R4300Emulator = 2
# Disable compiled jump commands in dynamic recompiler (should be set to False)
NoCompiledJump = False
# Disable 4MB expansion RAM pack. May be necessary for some games
DisableExtraMem = False
# Increment the save state slot after each save operation
AutoStateSlotIncrement = False
# Activate the R4300 debugger when ROM execution begins, if core was built with Debugger support
EnableDebugger = False
# Save state slot (0-9) to use when saving/loading the emulator state
CurrentStateSlot = 0
# Path to directory where screenshots are saved. If this is blank, the default value of ${UserDataPath}/screenshot will be used
ScreenshotPath = ""
# Path to directory where emulator save states (snapshots) are saved. If this is blank, the default value of ${UserDataPath}/save will be used
SaveStatePath = ""
# Path to directory where SRAM/EEPROM data (in-game saves) are stored. If this is blank, the default value of ${UserDataPath}/save will be used
SaveSRAMPath = ""
# Path to a directory to search when looking for shared data files
SharedDataPath = "/media/Compartido/Videojuegos/Linux/Emulador/mupen64plus/64Bits/share"
# Force number of cycles per emulated instruction
CountPerOp = 0
# Randomize PI/SI Interrupt Timing
RandomizeInterrupt = True
# Duration of SI DMA (-1: use per game settings)
SiDmaDuration = -1
# Gameboy Camera Video Capture backend
GbCameraVideoCaptureBackend1 = ""


[CoreEvents]

# Mupen64Plus CoreEvents config parameter set version number.  Please don't change this version number.
Version = "1.000000"
# SDL keysym for stopping the emulator
Kbd Mapping Stop = 27
# SDL keysym for switching between fullscreen/windowed modes
Kbd Mapping Fullscreen = 0
# SDL keysym for saving the emulator state
Kbd Mapping Save State = 286
# SDL keysym for loading the emulator state
Kbd Mapping Load State = 288
# SDL keysym for advancing the save state slot
Kbd Mapping Increment Slot = 0
# SDL keysym for resetting the emulator
Kbd Mapping Reset = 290
# SDL keysym for slowing down the emulator
Kbd Mapping Speed Down = 291
# SDL keysym for speeding up the emulator
Kbd Mapping Speed Up = 292
# SDL keysym for taking a screenshot
Kbd Mapping Screenshot = 293
# SDL keysym for pausing the emulator
Kbd Mapping Pause = 112
# SDL keysym for muting/unmuting the sound
Kbd Mapping Mute = 109
# SDL keysym for increasing the volume
Kbd Mapping Increase Volume = 93
# SDL keysym for decreasing the volume
Kbd Mapping Decrease Volume = 91
# SDL keysym for temporarily going really fast
Kbd Mapping Fast Forward = 102
# SDL keysym for advancing by one frame when paused
Kbd Mapping Frame Advance = 47
# SDL keysym for pressing the game shark button
Kbd Mapping Gameshark = 103
# Joystick event string for stopping the emulator
Joy Mapping Stop = ""
# Joystick event string for switching between fullscreen/windowed modes
Joy Mapping Fullscreen = ""
# Joystick event string for saving the emulator state
Joy Mapping Save State = ""
# Joystick event string for loading the emulator state
Joy Mapping Load State = ""
# Joystick event string for advancing the save state slot
Joy Mapping Increment Slot = ""
# Joystick event string for resetting the emulator
Joy Mapping Reset = ""
# Joystick event string for slowing down the emulator
Joy Mapping Speed Down = ""
# Joystick event string for speeding up the emulator
Joy Mapping Speed Up = ""
# Joystick event string for taking a screenshot
Joy Mapping Screenshot = ""
# Joystick event string for pausing the emulator
Joy Mapping Pause = ""
# Joystick event string for muting/unmuting the sound
Joy Mapping Mute = ""
# Joystick event string for increasing the volume
Joy Mapping Increase Volume = ""
# Joystick event string for decreasing the volume
Joy Mapping Decrease Volume = ""
# Joystick event string for fast-forward
Joy Mapping Fast Forward = ""
# Joystick event string for advancing by one frame when paused
Joy Mapping Frame Advance = ""
# Joystick event string for pressing the game shark button
Joy Mapping Gameshark = ""


[Input-SDL-Control1]

# Mupen64Plus SDL Input Plugin config parameter version number.  Please don't change this version number.
version = "2.000000"
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
mode = 0
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
device = -1
# SDL joystick name (or Keyboard)
name = "Keyboard"
# Specifies whether this controller is 'plugged in' to the simulated N64
plugged = True
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 4=Transfer pak, 5=Rumble pak
plugin = 2
# If True, then mouse buttons may be used with this controller
mouse = False
# Scaling factor for mouse movements.  For X, Y axes.
MouseSensitivity = "2.00,2.00"
# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0.  For X, Y axes.
AnalogDeadzone = "4096,4096"
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80).  For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
AnalogPeak = "32768,32768"
# Digital button configuration mappings
DPad R = "key(100)"
DPad L = "key(97)"
DPad D = "key(115)"
DPad U = "key(119)"
Start = "key(13)"
Z Trig = "key(122)"
B Button = "key(306)"
A Button = "key(304)"
C Button R = "key(108)"
C Button L = "key(106)"
C Button D = "key(107)"
C Button U = "key(105)"
R Trig = "key(99)"
L Trig = "key(120)"
Mempak switch = "key(44)"
Rumblepak switch = "key(46)"
# Analog axis configuration mappings
X Axis = "key(276,275)"
Y Axis = "key(273,274)"


[Input-SDL-Control2]

# Mupen64Plus SDL Input Plugin config parameter version number.  Please don't change this version number.
version = "2.000000"
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
mode = 2
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
device = -1
# SDL joystick name (or Keyboard)
name = ""
# Specifies whether this controller is 'plugged in' to the simulated N64
plugged = False
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 4=Transfer pak, 5=Rumble pak
plugin = 2
# If True, then mouse buttons may be used with this controller
mouse = False
# Scaling factor for mouse movements.  For X, Y axes.
MouseSensitivity = "2.00,2.00"
# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0.  For X, Y axes.
AnalogDeadzone = "4096,4096"
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80).  For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
AnalogPeak = "32768,32768"
# Digital button configuration mappings
DPad R = ""
DPad L = ""
DPad D = ""
DPad U = ""
Start = ""
Z Trig = ""
B Button = ""
A Button = ""
C Button R = ""
C Button L = ""
C Button D = ""
C Button U = ""
R Trig = ""
L Trig = ""
Mempak switch = ""
Rumblepak switch = ""
# Analog axis configuration mappings
X Axis = ""
Y Axis = ""


[Input-SDL-Control3]

# Mupen64Plus SDL Input Plugin config parameter version number.  Please don't change this version number.
version = "2.000000"
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
mode = 2
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
device = -1
# SDL joystick name (or Keyboard)
name = ""
# Specifies whether this controller is 'plugged in' to the simulated N64
plugged = False
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 4=Transfer pak, 5=Rumble pak
plugin = 2
# If True, then mouse buttons may be used with this controller
mouse = False
# Scaling factor for mouse movements.  For X, Y axes.
MouseSensitivity = "2.00,2.00"
# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0.  For X, Y axes.
AnalogDeadzone = "4096,4096"
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80).  For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
AnalogPeak = "32768,32768"
# Digital button configuration mappings
DPad R = ""
DPad L = ""
DPad D = ""
DPad U = ""
Start = ""
Z Trig = ""
B Button = ""
A Button = ""
C Button R = ""
C Button L = ""
C Button D = ""
C Button U = ""
R Trig = ""
L Trig = ""
Mempak switch = ""
Rumblepak switch = ""
# Analog axis configuration mappings
X Axis = ""
Y Axis = ""


[Input-SDL-Control4]

# Mupen64Plus SDL Input Plugin config parameter version number.  Please don't change this version number.
version = "2.000000"
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
mode = 2
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
device = -1
# SDL joystick name (or Keyboard)
name = ""
# Specifies whether this controller is 'plugged in' to the simulated N64
plugged = False
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 4=Transfer pak, 5=Rumble pak
plugin = 2
# If True, then mouse buttons may be used with this controller
mouse = False
# Scaling factor for mouse movements.  For X, Y axes.
MouseSensitivity = "2.00,2.00"
# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0.  For X, Y axes.
AnalogDeadzone = "4096,4096"
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80).  For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
AnalogPeak = "32768,32768"
# Digital button configuration mappings
DPad R = ""
DPad L = ""
DPad D = ""
DPad U = ""
Start = ""
Z Trig = ""
B Button = ""
A Button = ""
C Button R = ""
C Button L = ""
C Button D = ""
C Button U = ""
R Trig = ""
L Trig = ""
Mempak switch = ""
Rumblepak switch = ""
# Analog axis configuration mappings
X Axis = ""
Y Axis = ""


[rsp-cxd4]

# Mupen64Plus cxd4 RSP Plugin config parameter version number
Version = "1.000000"
# Send display lists to the graphics plugin
DisplayListToGraphicsPlugin = True
# Send audio lists to the audio plugin
AudioListToAudioPlugin = False
# Force CPU-RSP signals synchronization
WaitForCPUHost = False
# Support CPU-RSP semaphore lock
SupportCPUSemaphoreLock = False


[Rsp-HLE]

# Mupen64Plus RSP HLE Plugin config parameter version number
Version = "1.000000"
# Path to a RSP plugin which will be used when encountering an unknown ucode.You can disable this by letting an empty string.
RspFallback = ""
# Send display lists to the graphics plugin
DisplayListToGraphicsPlugin = True
# Send audio lists to the audio plugin
AudioListToAudioPlugin = False


[Transferpak]

# Filename of the GB ROM to load into transferpak 1
GB-rom-1 = ""
# Filename of the GB RAM to load into transferpak 1
GB-ram-1 = ""
# Filename of the GB ROM to load into transferpak 2
GB-rom-2 = ""
# Filename of the GB RAM to load into transferpak 2
GB-ram-2 = ""
# Filename of the GB ROM to load into transferpak 3
GB-rom-3 = ""
# Filename of the GB RAM to load into transferpak 3
GB-ram-3 = ""
# Filename of the GB ROM to load into transferpak 4
GB-rom-4 = ""
# Filename of the GB RAM to load into transferpak 4
GB-ram-4 = ""


[UI-Console]

# Mupen64Plus UI-Console config parameter set version number.  Please don't change this version number.
Version = "1.000000"
# Directory in which to search for plugins
PluginDir = "/media/Compartido/Videojuegos/Linux/Emulador/mupen64plus/64Bits/plugin"
# Filename of video plugin
VideoPlugin = "mupen64plus-video-rice"
# Filename of audio plugin
AudioPlugin = "mupen64plus-audio-sdl"
# Filename of input plugin
InputPlugin = "mupen64plus-input-sdl"
# Filename of RSP plugin
RspPlugin = "mupen64plus-rsp-cxd4-sse2"


[Video-Arachnoid]

# Color bit-depth in fullscreen mode
ColorDepth = 32
# Screen refresh-rate in fullscreen mode
RefreshRate = 60
# Size of texture cache used to store textures
TextureCacheSize = 15728640
# Render in wireframe?
Wireframe = False
# Render fog?
Fog = False
# Use MultiSampling? 0=no 2,4,8,16=quality
MultiSampling = 0
# Use Mipmapping? 0=no, 1=nearest, 2=bilinear, 3=trilinear
Mipmapping = 0
# When to update the screen: 1 - on VI, 2 - on first CI
ScreenUpdateSetting = 1


[Video-General]

# Use fullscreen mode if True, or windowed mode if False
Fullscreen = False
# Width of output window or fullscreen width
ScreenWidth = 320
# Height of output window or fullscreen height
ScreenHeight = 240
# If true, activate the SDL_GL_SWAP_CONTROL attribute
VerticalSync = False
# Rotate screen contents: 0=0 degree, 1=90 degree, 2 = 180 degree, 3=270 degree
Rotate = 0


[Video-Glide64]

# Card ID
card_id = 0
# Depth bias level
depth_bias = 0
# Auto-detect microcode
autodetect_ucode = True
# Force microcode
ucode = 2
# Wireframe display
wireframe = False
# Wireframe mode: 0=Normal colors, 1=Vertex colors, 2=Red only
wfmode = 1
# Filtering mode: 0=None, 1=Force bilinear, 2=Force point-sampled
filtering = 1
# Fog enabled
fog = True
# Buffer clear on every frame
buff_clear = True
# Vertical sync
vsync = False
# Fast CRC
fast_crc = False
# Buffer swapping method: 0=Old, 1=New, 2=Hybrid
swapmode = 1
# LOD calculation: 0=Off, 1=Fast, 2=Precise
lodmode = 0
# Logging
logging = False
log_clear = False
elogging = False
# Filter cache
filter_cache = False
# Detect CPU writes
detect_cpu_write = False
# Display unknown combines as red
unk_as_red = False
# Log unknown combines
log_unk = False
unk_clear = False
# Wrap textures too big for tmem
wrap_big_tex = False
# Zelda corona fix
flame_corona = False
# Display performance stats (add together desired flags): 1=FPS counter, 2=VI/s counter, 4=% speed, 8=FPS transparent
show_fps = 0
# Clock enabled
clock = False
# Clock is 24-hour
clock_24_hr = False
# Framebuffer read every frame
fb_read_always = False
# Framebuffer read alpha
fb_read_alpha = False
# Smart framebuffer
fb_smart = False
# Motion blur
motionblur = False
# Hi-res framebuffer
fb_hires = True
# Get framebuffer info
fb_get_info = False
# Clear framebuffer
fb_clear = False
# Depth buffer render
fb_render = False
# Use custom INI settings
custom_ini = False
# Texture filter: 0=None, 1=Blur edges, 2=Super 2xSai, 3=Hq2x, 4=Hq4x
tex_filter = 0
# Disable dithered alpha
noditheredalpha = True
# Disable GLSL combiners
noglsl = True
# Use framebuffer objects
fbo = False
# Disable aux buffer
disable_auxbuf = False


[Video-Glide64mk2]

# Enable full-scene anti-aliasing by setting this to a value greater than 1
wrpAntiAliasing = 0
# Card ID
card_id = 0
# If true, use polygon offset values specified below
force_polygon_offset = False
# Specifies a scale factor that is used to create a variable depth offset for each polygon
polygon_offset_factor = "0.000000"
# Is multiplied by an implementation-specific value to create a constant depth offset
polygon_offset_units = "0.000000"
# Vertical sync
vsync = True
# TODO:ssformat
ssformat = False
# Display performance stats (add together desired flags): 1=FPS counter, 2=VI/s counter, 4=% speed, 8=FPS transparent
show_fps = 0
# Clock enabled
clock = True
# Clock is 24-hour
clock_24_hr = False
# Wrapper resolution
wrpResolution = 0
# Wrapper VRAM
wrpVRAM = 0
# Wrapper FBO
wrpFBO = True
# Wrapper Anisotropic Filtering
wrpAnisotropic = True
# Texture Enhancement: Smooth/Sharpen Filters
ghq_fltr = 0
# Texture Compression: 0 for S3TC, 1 for FXT1
ghq_cmpr = 0
# Texture Enhancement: More filters
ghq_enht = 0
# Hi-res texture pack format (0 for none, 1 for Rice)
ghq_hirs = 0
# Compress texture cache with S3TC or FXT1
ghq_enht_cmpr = False
# Tile textures (saves memory but could cause issues)
ghq_enht_tile = 0
# Force 16bpp textures (saves ram but lower quality)
ghq_enht_f16bpp = False
# Compress texture cache
ghq_enht_gz = True
# Don't enhance textures for backgrounds
ghq_enht_nobg = False
# Enable S3TC and FXT1 compression
ghq_hirs_cmpr = False
# Tile hi-res textures (saves memory but could cause issues)
ghq_hirs_tile = False
# Force 16bpp hi-res textures (saves ram but lower quality)
ghq_hirs_f16bpp = False
# Compress hi-res texture cache
ghq_hirs_gz = True
# Alternative CRC calculation -- emulates Rice bug
ghq_hirs_altcrc = True
# Save tex cache to disk
ghq_cache_save = True
# Texture Cache Size (MB)
ghq_cache_size = 128
# Use full alpha channel -- could cause issues for some tex packs
ghq_hirs_let_texartists_fly = False
# Dump textures
ghq_hirs_dump = False
# Alternate texture size method: -1=Game default, 0=disable. 1=enable
alt_tex_size = -1
# Use first SETTILESIZE only: -1=Game default, 0=disable. 1=enable
use_sts1_only = -1
# Use spheric mapping only: -1=Game default, 0=disable. 1=enable
force_calc_sphere = -1
# Force positive viewport: -1=Game default, 0=disable. 1=enable
correct_viewport = -1
# Force texrect size to integral value: -1=Game default, 0=disable. 1=enable
increase_texrect_edge = -1
# Reduce fillrect size by 1: -1=Game default, 0=disable. 1=enable
decrease_fillrect_edge = -1
# Enable perspective texture correction emulation: -1=Game default, 0=disable. 1=enable
texture_correction = -1
# Set special scale for PAL games: -1=Game default, 0=disable. 1=enable
pal230 = -1
# 3DFX Dithered alpha emulation mode: -1=Game default, >=0=dithered alpha emulation mode
stipple_mode = -1
# 3DFX Dithered alpha pattern: -1=Game default, >=0=pattern used for dithered alpha emulation
stipple_pattern = -1
# Check microcode each frame: -1=Game default, 0=disable. 1=enable
force_microcheck = -1
# Force 0xb5 command to be quad, not line 3D: -1=Game default, 0=disable. 1=enable
force_quad3d = -1
# Enable near z clipping: -1=Game default, 0=disable. 1=enable
clip_zmin = -1
# Enable far plane clipping: -1=Game default, 0=disable. 1=enable
clip_zmax = -1
# Use fast CRC algorithm: -1=Game default, 0=disable. 1=enable
fast_crc = -1
# Adjust screen aspect for wide screen mode: -1=Game default, 0=disable. 1=enable
adjust_aspect = -1
# Force strict check in Depth buffer test: -1=Game default, 0=disable. 1=enable
zmode_compare_less = -1
# Apply alpha dither regardless of alpha_dither_mode: -1=Game default, 0=disable. 1=enable
old_style_adither = -1
# Scale vertex z value before writing to depth buffer: -1=Game default, 0=disable. 1=enable
n64_z_scale = -1
# Fast texrect rendering with hwfbe: -1=Game default, 0=disable. 1=enable
optimize_texrect = -1
# Do not copy auxiliary frame buffers: -1=Game default, 0=disable. 1=enable
ignore_aux_copy = -1
# Clear auxiliary texture frame buffers: -1=Game default, 0=disable. 1=enable
hires_buf_clear = -1
# Read alpha from framebuffer: -1=Game default, 0=disable. 1=enable
fb_read_alpha = -1
# Handle unchanged fb: -1=Game default, 0=disable. 1=enable
useless_is_useless = -1
# Set frambuffer CRC mode: -1=Game default, 0=disable CRC, 1=fast CRC, 2=safe CRC
fb_crc_mode = -1
# Filtering mode: -1=Game default, 0=automatic, 1=force bilinear, 2=force point sampled
filtering = 2
# Fog: -1=Game default, 0=disable. 1=enable
fog = -1
# Buffer clear on every frame: -1=Game default, 0=disable. 1=enable
buff_clear = -1
# Buffer swapping method: -1=Game default, 0=swap buffers when vertical interrupt has occurred, 1=swap buffers when set of conditions is satisfied. Prevents flicker on some games, 2=mix of first two methods
swapmode = -1
# Aspect ratio: -1=Game default, 0=Force 4:3, 1=Force 16:9, 2=Stretch, 3=Original
aspect = -1
# LOD calculation: -1=Game default, 0=disable. 1=fast, 2=precise
lodmode = -1
# Smart framebuffer: -1=Game default, 0=disable. 1=enable
fb_smart = -1
# Hardware frame buffer emulation: -1=Game default, 0=disable. 1=enable
fb_hires = -1
# Read framebuffer every frame (may be slow use only for effects that need it e.g. Banjo Kazooie, DK64 transitions): -1=Game default, 0=disable. 1=enable
fb_read_always = -1
# Render N64 frame buffer as texture: -1=Game default, 0=disable, 1=mode1, 2=mode2
read_back_to_screen = -1
# Show images written directly by CPU: -1=Game default, 0=disable. 1=enable
detect_cpu_write = -1
# Get frame buffer info: -1=Game default, 0=disable. 1=enable
fb_get_info = -1
# Enable software depth render: -1=Game default, 0=disable. 1=enable
fb_render = -1


[Video-GLideN64]

# Settings version. Don't touch it.
configVersion = 29
# Enable threaded video backend
ThreadedVideo = True
# Enable/Disable MultiSampling (0=off, 2,4,8,16=quality)
MultiSampling = 0
# Enable/Disable Fast Approximate Anti-Aliasing FXAA
FXAA = False
# Screen aspect ratio (0=stretch, 1=force 4:3, 2=force 16:9, 3=adjust)
AspectRatio = 1
# Swap frame buffers (0=On VI update call, 1=On VI origin change, 2=On buffer update)
BufferSwapMode = 0
# Frame buffer size is the factor of N64 native resolution.
UseNativeResolutionFactor = 0
# Bilinear filtering mode (0=N64 3point, 1=standard)
bilinearMode = True
# Remove halos around filtered textures.
enableHalosRemoval = False
# Max level of Anisotropic Filtering, 0 for off
MaxAnisotropy = 0
# Enable dithering pattern on output image.
EnableDitheringPattern = False
# Enable hi-res noise dithering.
EnableHiresNoiseDithering = False
# Dither with color quantization.
DitheringQuantization = True
# Dithering mode for image in RDRAM. (0=disable, 1=bayer, 2=magic square, 3=blue noise)
RDRAMImageDitheringMode = 3
# Enable LOD emulation.
EnableLOD = True
# Enable hardware per-pixel lighting.
EnableHWLighting = False
# Use persistent storage for compiled shaders.
EnableShadersStorage = True
# Do not use shaders to emulate N64 blending modes. Works faster on slow GPU. Can cause glitches.
EnableLegacyBlending = False
# Enable hybrid integer scaling filter, this can be slow with low-end GPUs
EnableHybridFilter = True
# Enable writing of fragment depth. Some mobile GPUs do not support it, thus it made optional. Leave enabled.
EnableFragmentDepthWrite = True
# Use GLideN64 per-game settings.
EnableCustomSettings = True
# Make texrect coordinates continuous to avoid black lines between them. (0=Off, 1=Auto, 2=Force)
CorrectTexrectCoords = 0
# Render 2D texrects in native resolution to fix misalignment between parts of 2D image. (0=Off, 1=Optimized, 2=Unoptimized)
EnableNativeResTexrects = 0
# Render backgrounds mode (HLE only). (0=One piece (fast), 1=Stripped (precise))
BackgroundsMode = 1
# Enable frame and|or depth buffer emulation.
EnableFBEmulation = True
# Copy auxiliary buffers to RDRAM
EnableCopyAuxiliaryToRDRAM = False
# Enable N64 depth compare instead of OpenGL standard one. Experimental. (0=Off, 1=Fast, 2=Compatible)
EnableN64DepthCompare = 0
# Force depth buffer clear. Hack. Needed for Eikou no Saint Andrews.
ForceDepthBufferClear = False
# Disable buffers read/write with FBInfo. Use for games, which do not work with FBInfo.
DisableFBInfo = True
# Read color buffer by 4kb chunks (strict follow to FBRead specification)
FBInfoReadColorChunk = False
# Read depth buffer by 4kb chunks (strict follow to FBRead specification)
FBInfoReadDepthChunk = True
# Enable color buffer copy to RDRAM (0=do not copy, 1=copy in sync mode, 2=Double Buffer, 3=Triple Buffer)
EnableCopyColorToRDRAM = 2
# Enable depth buffer copy to RDRAM  (0=do not copy, 1=copy from video memory, 2=use software render)
EnableCopyDepthToRDRAM = 2
# Enable color buffer copy from RDRAM.
EnableCopyColorFromRDRAM = False
# Enable resulted image crop by Overscan.
EnableOverscan = False
# PAL mode. Left bound of Overscan
OverscanPalLeft = 0
# PAL mode. Right bound of Overscan
OverscanPalRight = 0
# PAL mode. Top bound of Overscan
OverscanPalTop = 0
# PAL mode. Bottom bound of Overscan
OverscanPalBottom = 0
# NTSC mode. Left bound of Overscan
OverscanNtscLeft = 0
# NTSC mode. Right bound of Overscan
OverscanNtscRight = 0
# NTSC mode. Top bound of Overscan
OverscanNtscTop = 0
# NTSC mode. Bottom bound of Overscan
OverscanNtscBottom = 0
# Texture filter (0=none, 1=Smooth filtering 1, 2=Smooth filtering 2, 3=Smooth filtering 3, 4=Smooth filtering 4, 5=Sharp filtering 1, 6=Sharp filtering 2)
txFilterMode = 0
# Texture Enhancement (0=none, 1=store as is, 2=X2, 3=X2SAI, 4=HQ2X, 5=HQ2XS, 6=LQ2X, 7=LQ2XS, 8=HQ4X, 9=2xBRZ, 10=3xBRZ, 11=4xBRZ, 12=5xBRZ), 13=6xBRZ
txEnhancementMode = 0
# Deposterize texture before enhancement.
txDeposterize = False
# Don't filter background textures.
txFilterIgnoreBG = False
# Size of memory cache for enhanced textures in megabytes.
txCacheSize = 100
# Use high-resolution texture packs if available.
txHiresEnable = False
# Allow to use alpha channel of high-res texture fully.
txHiresFullAlphaChannel = True
# Use alternative method of paletted textures CRC calculation.
txHresAltCRC = False
# Enable dump of loaded N64 textures.
txDump = False
# Zip textures cache.
txCacheCompression = True
# Force use 16bit texture formats for HD textures.
txForce16bpp = False
# Save texture cache to hard disk.
txSaveCache = True
# Use file storage instead of memory cache for enhanced textures.
txEnhancedTextureFileStorage = False
# Use file storage instead of memory cache for HD textures.
txHiresTextureFileStorage = False
# Path to folder with hi-res texture packs.
txPath = "/home/inukaze/.local/share/mupen64plus/hires_texture"
# Path to folder where plugin saves texture cache files.
txCachePath = "/home/inukaze/.cache/mupen64plus/cache"
# Path to folder where plugin saves dumped textures.
txDumpPath = "/home/inukaze/.cache/mupen64plus/texture_dump"
# File name of True Type Font for text messages.
fontName = "FreeSans.ttf"
# Font size.
fontSize = 18
# Font color in RGB format.
fontColor = "B5E61D"
# Force gamma correction.
ForceGammaCorrection = False
# Gamma correction level.
GammaCorrectionLevel = "2.000000"
# Show FPS counter.
ShowFPS = False
# Show VI/S counter.
ShowVIS = False
# Show percent counter.
ShowPercent = False
# Show internal resolution.
ShowInternalResolution = False
# Show rendering resolution.
ShowRenderingResolution = False
# Counters position (1=top left, 2=top center, 4=top right, 8=bottom left, 16=bottom center, 32=bottom right)
CountersPos = 8


[Video-Rice]

# Mupen64Plus Rice Video Plugin config parameter version number
Version = 1
# Frame Buffer Emulation (0=ROM default, 1=disable)
FrameBufferSetting = 0
# Frequency to write back the frame buffer (0=every frame, 1=every other frame, etc)
FrameBufferWriteBackControl = 0
# Render-to-texture emulation (0=none, 1=ignore, 2=normal, 3=write back, 4=write back and reload)
RenderToTexture = 0
# Control when the screen will be updated (0=ROM default, 1=VI origin update, 2=VI origin change, 3=CI change, 4=first CI change, 5=first primitive draw, 6=before screen clear, 7=after screen drawn)
ScreenUpdateSetting = 4
# Force to use normal alpha blender
NormalAlphaBlender = False
# Use a faster algorithm to speed up texture loading and CRC computation
FastTextureLoading = False
# Use different texture coordinate clamping code
AccurateTextureMapping = True
# Force emulated frame buffers to be in N64 native resolution
InN64Resolution = False
# Try to reduce Video RAM usage (should never be used)
SaveVRAM = False
# Enable this option to have better render-to-texture quality
DoubleSizeForSmallTxtrBuf = False
# Force to use normal color combiner
DefaultCombinerDisable = False
# Enable game-specific settings from INI file
EnableHacks = True
# If enabled, graphics will be drawn in WinFrame mode instead of solid and texture mode
WinFrameMode = False
# N64 Texture Memory Full Emulation (may fix some games, may break others)
FullTMEMEmulation = False
# Enable vertex clipper for fog operations
OpenGLVertexClipper = False
# Enable/Disable SSE optimizations for capable CPUs
EnableSSE = True
# If this option is enabled, the plugin will skip every other frame
SkipFrame = False
# If enabled, texture enhancement will be done only for TxtRect ucode
TexRectOnly = False
# If enabled, texture enhancement will be done only for textures width+height<=128
SmallTextureOnly = False
# Select hi-resolution textures based only on the CRC and ignore format+size information (Glide64 compatibility)
LoadHiResCRCOnly = True
# Enable hi-resolution texture file loading
LoadHiResTextures = False
# Enable texture dumping
DumpTexturesToFiles = False
# Display On-screen FPS
ShowFPS = False
# Use Mipmapping? 0=no, 1=nearest, 2=bilinear, 3=trilinear
Mipmapping = 2
# Enable, Disable fog generation (0=Disable, 1=Enable)
FogMethod = 1
# Force to use texture filtering or not (0=auto: n64 choose, 1=force no filtering, 2=force filtering)
ForceTextureFilter = 0
# Primary texture enhancement filter (0=None, 1=2X, 2=2XSAI, 3=HQ2X, 4=LQ2X, 5=HQ4X, 6=Sharpen, 7=Sharpen More, 8=External, 9=Mirrored)
TextureEnhancement = 0
# Secondary texture enhancement filter (0 = none, 1-4 = filtered)
TextureEnhancementControl = 0
# Color bit depth to use for textures (0=default, 1=32 bits, 2=16 bits)
TextureQuality = 0
# Z-buffer depth (only 16 or 32)
OpenGLDepthBufferSetting = 16
# Enable/Disable MultiSampling (0=off, 2,4,8,16=quality)
MultiSampling = 0
# Color bit depth for rendering window (0=32 bits, 1=16 bits)
ColorQuality = 0
# OpenGL level to support (0=auto, 1=OGL_FRAGMENT_PROGRAM)
OpenGLRenderSetting = 0
# Enable/Disable Anisotropic Filtering for Mipmapping (0=no filtering, 2-16=quality). This is uneffective if Mipmapping is 0. If the given value is to high to be supported by your graphic card, the value will be the highest value your graphic card can support. Better result with Trilinear filtering
AnisotropicFiltering = 0
# If true, use polygon offset values specified below
ForcePolygonOffset = False
# Specifies a scale factor that is used to create a variable depth offset for each polygon
PolygonOffsetFactor = "0.000000"
# Is multiplied by an implementation-specific value to create a constant depth offset
PolygonOffsetUnits = "0.000000"


[Video-Z64]

# High resolution framebuffer
HiResFB = True
# Use framebuffer info
FBInfo = True
# Run RDP on thread
Threaded = False
# Run RDP asynchronously
Async = False
# Don't use NPOT FBOs (may be needed for older graphics cards)
NoNpotFbos = False

New Default config file (Just i move the crasing file to let mp64+ create a new one) :

# Mupen64Plus Configuration File
# This file is automatically read and written by the Mupen64Plus Core library

[64DD]

# Filename of the 64DD IPL ROM
IPL-ROM = ""
# Filename of the disk to load into Disk Drive
Disk = ""


[Audio-SDL]

# Mupen64Plus SDL Audio Plugin config parameter version number
Version = 1.000000
# Frequency which is used if rom doesn't want to change it
DEFAULT_FREQUENCY = 33600
# Swaps left and right channels
SWAP_CHANNELS = False
# Size of primary buffer in output samples. This is where audio is loaded after it's extracted from n64's memory.
PRIMARY_BUFFER_SIZE = 16384
# Fullness level target for Primary audio buffer, in equivalent output samples. This value must be larger than the SECONDARY_BUFFER_SIZE. Decreasing this value will reduce audio latency but requires a faster PC to avoid choppiness. Increasing this will increase audio latency but reduce the chance of drop-outs.
PRIMARY_BUFFER_TARGET = 2048
# Size of secondary buffer in output samples. This is SDL's hardware buffer. The SDL documentation states that this should be a power of two between 512 and 8192.
SECONDARY_BUFFER_SIZE = 1024
# Audio resampling algorithm. src-sinc-best-quality, src-sinc-medium-quality, src-sinc-fastest, src-zero-order-hold, src-linear, speex-fixed-{10-0}, trivial
RESAMPLE = "speex-fixed-4"
# Volume control type: 1 = SDL (only affects Mupen64Plus output)  2 = OSS mixer (adjusts master PC volume)
VOLUME_CONTROL_TYPE = 1
# Percentage change each time the volume is increased or decreased
VOLUME_ADJUST = 5
# Default volume when a game is started.  Only used if VOLUME_CONTROL_TYPE is 1
VOLUME_DEFAULT = 80
# Synchronize Video/Audio
AUDIO_SYNC = True


[Core]

# Mupen64Plus Core config parameter set version number.  Please don't change this version number.
Version = 1.010000
# Draw on-screen display if True, otherwise don't draw OSD
OnScreenDisplay = True
# Use Pure Interpreter if 0, Cached Interpreter if 1, or Dynamic Recompiler if 2 or more
R4300Emulator = 2
# Disable compiled jump commands in dynamic recompiler (should be set to False) 
NoCompiledJump = False
# Disable 4MB expansion RAM pack. May be necessary for some games
DisableExtraMem = False
# Increment the save state slot after each save operation
AutoStateSlotIncrement = False
# Activate the R4300 debugger when ROM execution begins, if core was built with Debugger support
EnableDebugger = False
# Save state slot (0-9) to use when saving/loading the emulator state
CurrentStateSlot = 0
# Path to directory where screenshots are saved. If this is blank, the default value of ${UserDataPath}/screenshot will be used
ScreenshotPath = ""
# Path to directory where emulator save states (snapshots) are saved. If this is blank, the default value of ${UserDataPath}/save will be used
SaveStatePath = ""
# Path to directory where SRAM/EEPROM data (in-game saves) are stored. If this is blank, the default value of ${UserDataPath}/save will be used
SaveSRAMPath = ""
# Path to a directory to search when looking for shared data files
SharedDataPath = "/tmp/mupen64plus/"
# Force number of cycles per emulated instruction
CountPerOp = 0
# Randomize PI/SI Interrupt Timing
RandomizeInterrupt = True
# Duration of SI DMA (-1: use per game settings)
SiDmaDuration = -1
# Gameboy Camera Video Capture backend
GbCameraVideoCaptureBackend1 = ""


[CoreEvents]

# Mupen64Plus CoreEvents config parameter set version number.  Please don't change this version number.
Version = 1.000000
# SDL keysym for stopping the emulator
Kbd Mapping Stop = 27
# SDL keysym for switching between fullscreen/windowed modes
Kbd Mapping Fullscreen = 0
# SDL keysym for saving the emulator state
Kbd Mapping Save State = 286
# SDL keysym for loading the emulator state
Kbd Mapping Load State = 288
# SDL keysym for advancing the save state slot
Kbd Mapping Increment Slot = 0
# SDL keysym for resetting the emulator
Kbd Mapping Reset = 290
# SDL keysym for slowing down the emulator
Kbd Mapping Speed Down = 291
# SDL keysym for speeding up the emulator
Kbd Mapping Speed Up = 292
# SDL keysym for taking a screenshot
Kbd Mapping Screenshot = 293
# SDL keysym for pausing the emulator
Kbd Mapping Pause = 112
# SDL keysym for muting/unmuting the sound
Kbd Mapping Mute = 109
# SDL keysym for increasing the volume
Kbd Mapping Increase Volume = 93
# SDL keysym for decreasing the volume
Kbd Mapping Decrease Volume = 91
# SDL keysym for temporarily going really fast
Kbd Mapping Fast Forward = 102
# SDL keysym for advancing by one frame when paused
Kbd Mapping Frame Advance = 47
# SDL keysym for pressing the game shark button
Kbd Mapping Gameshark = 103
# Joystick event string for stopping the emulator
Joy Mapping Stop = ""
# Joystick event string for switching between fullscreen/windowed modes
Joy Mapping Fullscreen = ""
# Joystick event string for saving the emulator state
Joy Mapping Save State = ""
# Joystick event string for loading the emulator state
Joy Mapping Load State = ""
# Joystick event string for advancing the save state slot
Joy Mapping Increment Slot = ""
# Joystick event string for resetting the emulator
Joy Mapping Reset = ""
# Joystick event string for slowing down the emulator
Joy Mapping Speed Down = ""
# Joystick event string for speeding up the emulator
Joy Mapping Speed Up = ""
# Joystick event string for taking a screenshot
Joy Mapping Screenshot = ""
# Joystick event string for pausing the emulator
Joy Mapping Pause = ""
# Joystick event string for muting/unmuting the sound
Joy Mapping Mute = ""
# Joystick event string for increasing the volume
Joy Mapping Increase Volume = ""
# Joystick event string for decreasing the volume
Joy Mapping Decrease Volume = ""
# Joystick event string for fast-forward
Joy Mapping Fast Forward = ""
# Joystick event string for advancing by one frame when paused
Joy Mapping Frame Advance = ""
# Joystick event string for pressing the game shark button
Joy Mapping Gameshark = ""


[Input-SDL-Control1]

# Mupen64Plus SDL Input Plugin config parameter version number.  Please don't change this version number.
version = 2.000000
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
mode = 2
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
device = -1
# SDL joystick name (or Keyboard)
name = "Keyboard"
# Specifies whether this controller is 'plugged in' to the simulated N64
plugged = True
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 4=Transfer pak, 5=Rumble pak
plugin = 2
# If True, then mouse buttons may be used with this controller
mouse = False
# Scaling factor for mouse movements.  For X, Y axes.
MouseSensitivity = "2.00,2.00"
# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0.  For X, Y axes.
AnalogDeadzone = "4096,4096"
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80).  For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
AnalogPeak = "32768,32768"
# Digital button configuration mappings
DPad R = "key(100)"
DPad L = "key(97)"
DPad D = "key(115)"
DPad U = "key(119)"
Start = "key(13)"
Z Trig = "key(122)"
B Button = "key(306)"
A Button = "key(304)"
C Button R = "key(108)"
C Button L = "key(106)"
C Button D = "key(107)"
C Button U = "key(105)"
R Trig = "key(99)"
L Trig = "key(120)"
Mempak switch = "key(44)"
Rumblepak switch = "key(46)"
# Analog axis configuration mappings
X Axis = "key(276,275)"
Y Axis = "key(273,274)"


[Input-SDL-Control2]

# Mupen64Plus SDL Input Plugin config parameter version number.  Please don't change this version number.
version = 2.000000
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
mode = 2
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
device = -1
# SDL joystick name (or Keyboard)
name = ""
# Specifies whether this controller is 'plugged in' to the simulated N64
plugged = False
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 4=Transfer pak, 5=Rumble pak
plugin = 2
# If True, then mouse buttons may be used with this controller
mouse = False
# Scaling factor for mouse movements.  For X, Y axes.
MouseSensitivity = "2.00,2.00"
# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0.  For X, Y axes.
AnalogDeadzone = "4096,4096"
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80).  For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
AnalogPeak = "32768,32768"
# Digital button configuration mappings
DPad R = ""
DPad L = ""
DPad D = ""
DPad U = ""
Start = ""
Z Trig = ""
B Button = ""
A Button = ""
C Button R = ""
C Button L = ""
C Button D = ""
C Button U = ""
R Trig = ""
L Trig = ""
Mempak switch = ""
Rumblepak switch = ""
# Analog axis configuration mappings
X Axis = ""
Y Axis = ""


[Input-SDL-Control3]

# Mupen64Plus SDL Input Plugin config parameter version number.  Please don't change this version number.
version = 2.000000
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
mode = 2
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
device = -1
# SDL joystick name (or Keyboard)
name = ""
# Specifies whether this controller is 'plugged in' to the simulated N64
plugged = False
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 4=Transfer pak, 5=Rumble pak
plugin = 2
# If True, then mouse buttons may be used with this controller
mouse = False
# Scaling factor for mouse movements.  For X, Y axes.
MouseSensitivity = "2.00,2.00"
# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0.  For X, Y axes.
AnalogDeadzone = "4096,4096"
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80).  For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
AnalogPeak = "32768,32768"
# Digital button configuration mappings
DPad R = ""
DPad L = ""
DPad D = ""
DPad U = ""
Start = ""
Z Trig = ""
B Button = ""
A Button = ""
C Button R = ""
C Button L = ""
C Button D = ""
C Button U = ""
R Trig = ""
L Trig = ""
Mempak switch = ""
Rumblepak switch = ""
# Analog axis configuration mappings
X Axis = ""
Y Axis = ""


[Input-SDL-Control4]

# Mupen64Plus SDL Input Plugin config parameter version number.  Please don't change this version number.
version = 2.000000
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
mode = 2
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
device = -1
# SDL joystick name (or Keyboard)
name = ""
# Specifies whether this controller is 'plugged in' to the simulated N64
plugged = False
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 4=Transfer pak, 5=Rumble pak
plugin = 2
# If True, then mouse buttons may be used with this controller
mouse = False
# Scaling factor for mouse movements.  For X, Y axes.
MouseSensitivity = "2.00,2.00"
# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0.  For X, Y axes.
AnalogDeadzone = "4096,4096"
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80).  For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
AnalogPeak = "32768,32768"
# Digital button configuration mappings
DPad R = ""
DPad L = ""
DPad D = ""
DPad U = ""
Start = ""
Z Trig = ""
B Button = ""
A Button = ""
C Button R = ""
C Button L = ""
C Button D = ""
C Button U = ""
R Trig = ""
L Trig = ""
Mempak switch = ""
Rumblepak switch = ""
# Analog axis configuration mappings
X Axis = ""
Y Axis = ""


[Rsp-HLE]

# Mupen64Plus RSP HLE Plugin config parameter version number
Version = 1.000000
# Path to a RSP plugin which will be used when encountering an unknown ucode.You can disable this by letting an empty string.
RspFallback = ""
# Send display lists to the graphics plugin
DisplayListToGraphicsPlugin = True
# Send audio lists to the audio plugin
AudioListToAudioPlugin = False


[Transferpak]

# Filename of the GB ROM to load into transferpak 1
GB-rom-1 = ""
# Filename of the GB RAM to load into transferpak 1
GB-ram-1 = ""
# Filename of the GB ROM to load into transferpak 2
GB-rom-2 = ""
# Filename of the GB RAM to load into transferpak 2
GB-ram-2 = ""
# Filename of the GB ROM to load into transferpak 3
GB-rom-3 = ""
# Filename of the GB RAM to load into transferpak 3
GB-ram-3 = ""
# Filename of the GB ROM to load into transferpak 4
GB-rom-4 = ""
# Filename of the GB RAM to load into transferpak 4
GB-ram-4 = ""


[UI-Console]

# Mupen64Plus UI-Console config parameter set version number.  Please don't change this version number.
Version = 1.000000
# Directory in which to search for plugins
PluginDir = "./"
# Filename of video plugin
VideoPlugin = "mupen64plus-video-rice.so"
# Filename of audio plugin
AudioPlugin = "mupen64plus-audio-sdl.so"
# Filename of input plugin
InputPlugin = "mupen64plus-input-sdl.so"
# Filename of RSP plugin
RspPlugin = "mupen64plus-rsp-hle.so"


[Video-General]

# Use fullscreen mode if True, or windowed mode if False
Fullscreen = False
# Width of output window or fullscreen width
ScreenWidth = 640
# Height of output window or fullscreen height
ScreenHeight = 480
# If true, activate the SDL_GL_SWAP_CONTROL attribute
VerticalSync = False


[Video-Rice]

# Mupen64Plus Rice Video Plugin config parameter version number
Version = 1
# Frame Buffer Emulation (0=ROM default, 1=disable)
FrameBufferSetting = 0
# Frequency to write back the frame buffer (0=every frame, 1=every other frame, etc)
FrameBufferWriteBackControl = 0
# Render-to-texture emulation (0=none, 1=ignore, 2=normal, 3=write back, 4=write back and reload)
RenderToTexture = 0
# Control when the screen will be updated (0=ROM default, 1=VI origin update, 2=VI origin change, 3=CI change, 4=first CI change, 5=first primitive draw, 6=before screen clear, 7=after screen drawn)
ScreenUpdateSetting = 4
# Force to use normal alpha blender
NormalAlphaBlender = False
# Use a faster algorithm to speed up texture loading and CRC computation
FastTextureLoading = False
# Use different texture coordinate clamping code
AccurateTextureMapping = True
# Force emulated frame buffers to be in N64 native resolution
InN64Resolution = False
# Try to reduce Video RAM usage (should never be used)
SaveVRAM = False
# Enable this option to have better render-to-texture quality
DoubleSizeForSmallTxtrBuf = False
# Force to use normal color combiner
DefaultCombinerDisable = False
# Enable game-specific settings from INI file
EnableHacks = True
# If enabled, graphics will be drawn in WinFrame mode instead of solid and texture mode
WinFrameMode = False
# N64 Texture Memory Full Emulation (may fix some games, may break others)
FullTMEMEmulation = False
# Enable vertex clipper for fog operations
OpenGLVertexClipper = False
# Enable/Disable SSE optimizations for capable CPUs
EnableSSE = True
# If this option is enabled, the plugin will skip every other frame
SkipFrame = False
# If enabled, texture enhancement will be done only for TxtRect ucode
TexRectOnly = False
# If enabled, texture enhancement will be done only for textures width+height<=128
SmallTextureOnly = False
# Select hi-resolution textures based only on the CRC and ignore format+size information (Glide64 compatibility)
LoadHiResCRCOnly = True
# Enable hi-resolution texture file loading
LoadHiResTextures = False
# Enable texture dumping
DumpTexturesToFiles = False
# Display On-screen FPS
ShowFPS = False
# Use Mipmapping? 0=no, 1=nearest, 2=bilinear, 3=trilinear
Mipmapping = 2
# Enable, Disable fog generation (0=Disable, 1=Enable)
FogMethod = 1
# Force to use texture filtering or not (0=auto: n64 choose, 1=force no filtering, 2=force filtering)
ForceTextureFilter = 0
# Primary texture enhancement filter (0=None, 1=2X, 2=2XSAI, 3=HQ2X, 4=LQ2X, 5=HQ4X, 6=Sharpen, 7=Sharpen More, 8=External, 9=Mirrored)
TextureEnhancement = 0
# Secondary texture enhancement filter (0 = none, 1-4 = filtered)
TextureEnhancementControl = 0
# Color bit depth to use for textures (0=default, 1=32 bits, 2=16 bits)
TextureQuality = 0
# Z-buffer depth (only 16 or 32)
OpenGLDepthBufferSetting = 16
# Enable/Disable MultiSampling (0=off, 2,4,8,16=quality)
MultiSampling = 0
# Color bit depth for rendering window (0=32 bits, 1=16 bits)
ColorQuality = 0
# OpenGL level to support (0=auto, 1=OGL_FRAGMENT_PROGRAM)
OpenGLRenderSetting = 0
# Enable/Disable Anisotropic Filtering for Mipmapping (0=no filtering, 2-16=quality). This is uneffective if Mipmapping is 0. If the given value is to high to be supported by your graphic card, the value will be the highest value your graphic card can support. Better result with Trilinear filtering
AnisotropicFiltering = 0
# If true, use polygon offset values specified below
ForcePolygonOffset = False
# Specifies a scale factor that is used to create a variable depth offset for each polygon
PolygonOffsetFactor = 0.000000
# Is multiplied by an implementation-specific value to create a constant depth offset
PolygonOffsetUnits = 0.000000

@Narann
Copy link
Member

Narann commented Aug 26, 2020

Just so it's easier for others to see. Here are the weird differences I noticed:

Old (line 4):

[]

Not in new. This is weird.

Old (line 10, 81):

Version = "1.000000"

New (line 15, 77):

Version = 1.000000

So there is double quotes.

Old (line 45):

Version = 1,010000

New (line 41):

Version = 1.010000

I suspect this is the problematic one. It use a comma instead of a point. It's the only place where it do so. Looks like a C local problem.

One test you could do is take you crashing config, replace the comma by a point and see if that works. I would also try to remove the double quotes.

@inukaze
Copy link
Author

inukaze commented Sep 2, 2020

After test, i notice the problem was be the line 4
when i delete it the emulator's run normally.

Sorry for take too long to response, i had making this SVG file :
http://www.mediafire.com/file/9r54magxqcudg51/Teclado_Mupen64Plus_Inukaze.svg/file

I put on mediafire because github don't allow attach svg files ¬¬

I made it because on internet is very hard to me to find which keycodes are useful with mupen64plus based on sdl2. and well i am from venezuela and i have a spanish keyboard becuase of that, have a various differences between my keboard and the keyboard on the image of the site.

i had two things i want to mention about controls

  1. When the mouse is assigned how i can make don't be the analog ?
    Because the first thing i try was set the Y axis to C buttons Up & Down, but when i assign mouse, this don't have sense because automatically took the analog in the 3DStick. and well i just test with style control 1.2 in golden eye & perfect dark.

  2. Someone knows if exist method for prevent the "AIM" go to the center when i try to set the target on games like "GoldenEye 007", "Perfect Dark" ? GameShark or something

Or someone know about plugin like NRage but native for GNU/Linux because i try "mupen64plus-input-raphnetraw" and set keyboard but do nothing.

i try the plugins "angrylion-rdp-plus" & old plugin -> this but none works for me

Here an example should be included in the docs or default configuration file
This are my controls for play things like Perfect Dark / Golden Eye 007, the follow information is on spanish because when i create that i use my native language.

#Controles de Inukaze

Emulador : Solo puedes asignarle una tecla a cada función.

Nombre de la Función Tecla Valor SDL
Kbd Mapping Stop ESC "key(27)"
Kbd Mapping Fullscreen F6 "key(287)"
Kbd Mapping Save State F5 "key(286)"
Kbd Mapping Load State 288 "key(F7)"
Kbd Mapping Increment Slot ¡ "key(161)"
Kbd Mapping Reset F9 "key(290)"
Kbd Mapping Speed Down F10 "key(291)"
Kbd Mapping Speed Up F11 "key(292)"
Kbd Mapping Screenshot F12 "key(293)"
Kbd Mapping Pause P "key(112)"
Kbd Mapping Mute M "key(109)"
Kbd Mapping Increase Volume + "key(43)"
Kbd Mapping Decrease Volume - "key(45)"
Kbd Mapping Fast Forward F "key(102)"
Kbd Mapping Frame Advance TAB "key(9)"
Kbd Mapping Gameshark G "key(103)"

Control de N64 - Jugador 1 :

Nombre de la Función Tecla Valor SDL
DPad R D "key(100)"
DPad L A "key(97)"
DPad D S "key(115)"
DPad U W "key(119)"
Start ENTRAR "key(13)"
Z Trig Z / Ratón Botón Izquierdo ""key(122)", mouse(1)"
B Button CTRL IZQ / Ratón Botón Derecho ""key(306)", mouse(3)"
A Button MAYUS DER "key(304)"
C Button R L "key(108)"
C Button L J "key(106)"
C Button D K "key(107)"
C Button U I "key(105)"
R Trig C "key(99)"
L Trig X "key(120)"
Mempak switch , (COMA) "key(44)"
Rumblepak switch . (PUNTO) "key(46)"
X Axis IZQUIERDA & DERECHA Analogos ""key(276,275)", axis(0-,0+)"
Y Axis ARRIBA & ABAJO Análogos ""key(273,274)", axis(1-,1+)"

@richard42
Copy link
Member

Thank you for writing up this documentation. I have added it to our wiki here:
https://mupen64plus.org/wiki/index.php?title=KeyboardSetup
Currently, the mouse can only be used as the analog X/Y joystick axes. There is no way to map it to other joystick controls such as the C-buttons.

@inukaze
Copy link
Author

inukaze commented Sep 11, 2020

Hi again, LOL i don't spec that go to the documentation, well i not had answer until right now because i has working on the SVG file with InkScape, you can download the latest version from here -> http://www.mediafire.com/file/esra4wrogdkykwx/000-Teclado_Mupen64Plus-Final.svg/file

Well i don't have sure about "Enter", "X"/"C" (Because i can't remember if X is L or R and the same with C.

In that table had a inverted info in
Kbd Mapping Load State 288 "key(F7)"

Is
Kbd Mapping Load State F7 "key(288)"

Dunno : The emulator can't use key combinations like ?
Alt + H
Ctrl + K
Ctrl + Alt + L
Ctrl + Shift + Z
Ctrl + Alt + Shift + J

Or if possible how i should write it on the config file ?

@richard42
Copy link
Member

richard42 commented Sep 17, 2020 via email

@inukaze
Copy link
Author

inukaze commented Sep 17, 2020

Thank you very much. i don't know that about toggle mouse grab, that is very useful information because when i use games like Perfect Dark using Mouse, the mouse is automatically retain inside the window.

Well, that mean mupen64plus can not use key combination defined by user, in that case, i think is better just put the first value of the key on the keyboard because is the unique can be used when the user set it.

Well after i edit the svg file again i update the download link xD

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants