Plugin Nintendo Switch para Portal 1 e 2 que permite carregar arquivos fora do game.zip, então chega de reembalar e enviar arquivos enormes toda vez que você quiser mudar alguma coisa.
Você deve ter a versão 1.0.3 do Portal 2 e a versão 1.0.2 ou 1.0.3 do Portal
Do download dos lançamentos:
Portal-NXSideLoader.zip
Sem patches de rede (não impedirá você de usar a rede):
- Portal2-NXSideLoader.zip
Com patches de rede (para pessoas que bloqueiam servidores Nintendo, ele bloqueará a conexão do jogo à rede para evitar travamentos + ajuda na depuração):
- Portal2-NoWeb-NXSideLoader.zip
Coloque a pasta atmosphere
na raiz do sdcard (sim, seu CFW não será deletado...)
Renomeie a pasta principal do mod (por exemplo, no caso do Portal Reloaded é "portalreloaded") para, dependendo do jogo:
portal
portal2_dlc3
e coloque esta pasta em:
atmosphere/contents/01007BB017812000/romfs/nxcontent/
atmosphere/contents/0100ABD01785C000/romfs/nxcontent/
Todos os nomes de pastas e arquivos dentro da pasta romfs DEVEM estar em letras minúsculas!
Some mods are overwriting menu options, so you can lose access to Switch controller settings.
If after installing mod you can't save anything in options, try to delete `gameinfo.txt` from mod folder. You may also delete custom options menu.
They are stored either freely somewhere inside mod folder OR they are packed to some vpk file.
Os mods precisam ter o código da CPU devidamente otimizado, caso contrário o Switch ficará engasgado.
Exemplos de mods devidamente otimizados:
Exemplos de mods mal otimizados:
Poucos arquivos no nxcontent
podem não ser suportados, pois são pré-carregados com funções separadas. Eu precisava adicionar suporte específico para uma função para que rom_boot_params.txt
pudesse ser carregado. Se houver algum arquivo que não esteja funcionando e você queira que funcione, escreva um problema.
O jogo suporta vscripts.
A modificação do código-fonte não é compatível com este mod. Você precisaria fazer seus próprios ganchos manualmente.
Os desenvolvedores de jogos redesenharam todo o cstdio para usar game.zip como sistema de arquivos. Os jogos do portal para abrir a maioria dos arquivos usam uma função chamada fopen_nx()
. Para ler este arquivo - fread_nx()
, etc. Todas as funções são compatíveis com cstdio, então a solução foi bem fácil:
fopen_nx()
fopen()
com o caminho correto começando com rom:/
Houve 2 problemas com esta solução:
rom_boot_params.txt
, então conectei a função de leitura deste arquivo e o redesenhei para carregar o arquivo do cartão SD. Posteriormente descobriu-se que a mesma função é responsável por carregar arquivos de som e texturas de arquivos bsp.fopen_nx()
está ignorando case + tem prioridade para verificar primeiro se o arquivo está dentro da pasta nxcontent
e, caso contrário, verifica a raiz do zip. Dentro do gancho, reimplementei esta verificação + usei tolower()
para o caminho do arquivo, já que o carregamento do arquivo HOS romfs diferencia maiúsculas de minúsculas e todos os arquivos originais estão em minúsculas.Você precisa da instalação padrão do devkitpro com Switch-dev.
Corrija main.npdm
de exefs com isso, caso contrário, o plugin irá travar: https://github.com/skyline-dev/skyline/blob/master/scripts/patchNpdm.py
Para compilá-lo para o Portal 1 use o comando
make PORTAL="-DPORTAL"
para Portal 2
make PORTAL="-DPORTAL2"
com patches de internet para permitir depuração via rede que bloqueou o acesso aos servidores Nintendo
make PORTAL="-DPORTAL2 -DPDEBUG"