- Este tutorial está enfocado para usuarios de la WSL2 que hayan seguido mi tutorial en https://whackahack.com/foro/threads/configura-la-wsl2-y-rompe-las-posibilidades-del-decomp-desde-0.67138/ y quieran tener un Porymap muchísimo más rápido. (Cuando lo ejecutamos desde windows y queremos abrir archivos que están en el WSL2 tarda bastante, lo que disminuye la experiencia de usuario).
- También está enfocado para usuarios de Linux que quieran instalar el Porymap de forma nativa y tengan problemas con el Qt 5.14.2 , el cual ya no está para Ubuntu 21.04.
INSTALACIÓN DEL PORYMAP EN UBUNTU Y EL WSL2
En la documentación de Porymap (https://github.com/huderlem/porymap/blob/master/INSTALL.md) los pasos para Ubuntu no son muy claros y asumen que puedes instalar el Qt5
Bash:
sudo apt-get install qt5-default qtdeclarative5-dev
Package 'qt5-default' has no installation candidate
Gracias a este post entiendo que han removido el paquete qt5-default de Ubuntu 21.04 (el mismo de mi WSL).
Dado que lo que queremos es simplemente instalar un paquete de terceros (Porymap) que requiere el paquete qt5-default en Ubuntu 21.04 (o más reciente), entonces simplemente vamos a un paquete falso usando los comandos siguientes:
Bash:
sudo apt-get update
sudo apt-get install equivs
Bash:
cd ~/Downloads
cat <<EOF > qt5-default-control
Package: qt5-default
Source: qtbase-opensource-src
Version: 5.99.99+fake-13ubuntu37
Architecture: all
Depends: qtbase5-dev, qtchooser
Suggests: qt5-qmake, qtbase5-dev-tools
Conflicts: qt4-default
Section: libdevel
Priority: optional
Homepage: http://qt-project.org/
Description: Qt 5 development defaults fake package
EOF
equivs-build qt5-default-control
sudo apt-get install ./qt5-default_5.99.99+fake-13ubuntu37_all.deb
Ve a alguna carpeta donde quieras instalar Porymap (como hack/tools) y clona el repositorio
Bash:
git clone https://github.com/huderlem/porymap.git
Bash:
sudo apt-get install qt5-default qtdeclarative5-dev
qmake
make
./porymap
Puedes configurar las preferencias para que te abra los archivos de script directmante en el VSCode de tu proyectos
code -r --goto %F:%L
En WSL2, si usas Windows 11 en teoría debería abrirse la ventana sin ningún problemas (Además que tiene un loguito de Linux muy bello)
Con esto deberías ser capaces de cargar tus proyectos en menos de dos segundos (vs los minutos que tardaría abriendolo directamante en Windows)
Si no estás en Windows 11 y al ejecutar Porymap te genera errores de aplicación gráfica de la WSL, te recomiendo que sigas mi anterior tutorial https://whackahack.com/foro/threads/win10-usar-aplicaciones-graficas-desde-wsl.67148/
Recuerda, siempre que quieras ejecutar Porymap simplemente ejecuta en la terminal
Bash:
./path/to/porymap/porymap
Ejecuta Porymap directamente desde VSCode!
Para hacer esto ve a el `task.json` que se encuentra dentro de la carpeta /.vscode de tu proyecto y añade la task así
JSON:
{
"label": "Porymap",
"type": "shell",
"command": "~/path/to/porymap/porymap",
"args": [],
"problemMatcher": []
},
Si no tienes un task.json te dejo el mío para que mires un ejemplo
Adicionalmente tengo un script llamado run.sh en el root del proyecto
Dejo esto como ejemplos nada más!
JSON:
// task.json
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "make",
"args": [
"DINFO=1",
"modern",
"-j$(nproc)"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
]
},
{
"label": "run GBA project",
"type": "shell",
"command": "${workspaceFolder}/run.sh",
"args": [],
"problemMatcher": []
},
{
"label": "Porymap",
"type": "shell",
"command": "~/hack/decomp/tools/porymap/porymap",
"args": [],
"problemMatcher": []
},
{
"label": "Compile and run",
"type": "shell",
"command": "make -j$(nproc) && ./run.sh",
"args": [],
"problemMatcher": []
}
]
}
Bash:
#!/bin/bash
/mnt/c/Program\ Files/mGBA/mGBA.exe pkm_apocalipsis.gba
Para ejecutar la tarea simplemente presiona F1 en VSCode y escribe "Tasks: Run Task", te debería aparecer la opción de ejecutar Porymap
Así ahorrarás tiempo abriendo directamente Porymap desde Visual Studio Code. (Como verás, también tengo tareas para compilar, compilar y correr el juego y correr el juego, lo cual ahorra muchísimo tiempo!
Saludos!!