nimbus icon indicating copy to clipboard operation
nimbus copied to clipboard

[Bug]:Error installing a Custom Cia from a GB game of the virtual console with translation patch when I Pretendo is enabled

Open Sebaister opened this issue 7 months ago • 3 comments

Checked Existing

  • [x] I have checked the repository for duplicate issues.

What happened?

hello, greetings everyone, I have caught a small problem that seems not to have been reported, I have an American New2DS and I tried to install some customs CIAS (a hack rom with a translation patch for a GameBoy game for the virtual console) and for some reason when installing the CIA from the FBI when I wanted to start the game, the game crashes on the Nintendo 3DS logo, but if I leave Pretendo and Select Nintendo from the Nimbus app and reinstall the CIAs are installed without problems and can be played, then I can return to Pretendo without problems and continue playing.

In short, if I install the cia with Pretendo activated, they do not install well causing a crash

Game: https://drive.google.com/file/d/1NmoDhPPw4pToYbbo_fTsoVd7ewXdMqUC/view?usp=sharing

What did you expect to happen?

that the game is installed and started normally without having to leave Pretendo

Steps to reproduce?

install Cutom CIA Virtual Console with translation patch for Pokemon (red, blue, yellow) with pretend enabled from Nimbus and then run the game

Other relevant information. (OPTIONAL)

The translation patches were made by me so that the games are in Latin American Spanish, I installed the CIA on two consoles, one did not have pretend and I have been playing for at least 1 month and now I wanted to play on my second console to start a game to later trade pokemon and I discovered the problem since this second console had "pretendo" activated

Note: Apparently it only happens the first time you want to open the game with pretendo activated since I wanted to replicate the error by uninstalling and reinstalling the game with Pretendo activated to be able to get the log and the problem no longer occurred, all this after having reinstalled the CIA with pretendo Disabled after the error

Sebaister avatar Apr 24 '25 05:04 Sebaister

TLDR:

This is because we do not have any eShop servers and to get this to work on our servers we would arguably have to commit piracy. The solution is to use Nintendo Network when installing titles that are not 100% homebrew

Long answer:

To be clear, I am only responding since this is about a rom hack. The reason why I suspect this is failing is somewhat strongly linked to piracy, so you are only going to get limited support here

Some titles require a "seed" to be installed correctly. When doing normal title installation through the eShop, the console will download this seed from the eShop servers if the title needs one

Part of the way our patches work is by patching the http sysmodule such that requests to nintendowifi.net and nintendo.net are replaced with pretendo.cc https://github.com/PretendoNetwork/nimbus/blob/e96f363ebbd6db27fc615af6206f002c50cfd7e2/patches/http/src/main.s

A (somewhat intended) side effect of this is that the eShop is effectively disabled when you switch to your Pretendo Network profile, since we do not have any eShop servers and possibly never will (there are some technical concerns with it that make it somewhat dangerous). We HAVE debated providing eShop servers, as a way to distribute homebrew applications and since system transfers/factory resets rely on the eShop, but we have no current plans to support this

This means that any requests to the eShop (including to download seeds) will NOT work

When installing a CIA through FBI, if that title needs a seed then FBI will also attempt to download said seed https://github.com/nh-server/FBI-NH/blob/a65971aec5c6e9b78daf955c53324de98f500fce/source/core/http.c#L455-L502

This means that if you are trying to install a title which requires a seed through FBI, but are using your Pretendo Network profile, the seeds download will fail and the title will not be properly installed

I'm not really sure there's a way for us to fix this? Both technically and legally speaking, there's a number of issues

Some notes:

  1. One solution would be to dump the seed locally once it's installed correctly/legitimately and then put it on your SD card. FBI can use seeds on the SD card if they exist. This should prevent the issue moving forward for future installations on your 3DS and would be the most legitimate way to do so (since you need to legitimately install the title/seed beforehand and dump it yourself)
  2. Another solution would be for FBI to no longer download seeds from the eShop at all, either getting them from another source or hosting the seeds themselves. But that introduce legal issues for them, and is not a REAL solution imo
  3. We're kinda limited in what we can do with our assembly patches. Dynamically deciding whether or not to replace a URL based on whether it's for the eShop or not may not be trivial, if possible at all, with our current setup. @ZeroSkill1 was working on a decomp/reimplementation of some of the 3DS sysmodules a while ago iirc, which would make this easier, but there's some legal concerns with doing so (see the next point)
  4. Proper title installation while using our profiles was NEVER going to work. Even if we did dynamically decide to not patch eShop URLs, the 3DS eShop would reject most of our requests since the 3DS eShop has extra security implemented into it that the Wii U eShop does not have. The request for downloading seeds, however, does not have said protections, so yes it is TECHNICALLY possible to only not patch seed requests, but since the only use case for that would be installing eShop titles through FBI (these rom hacks still use real eShop titles as bases) there is a STRONG case for arguing that we would be facilitating piracy. Nintendo could easily make an argument argument along the lines of "Pretendo is intentionally accommodating piracy while people use their services by allowing users to still download title installation seeds"
  5. Even if we did implement our own eShop servers, we could not provide the seeds ourselves because again that would be a STRONG case for arguing that we would be facilitating piracy

The solution is to switch to Nintendo Network when dealing with any title installations that are not 10000% pure homebrew. I've known about this "issue" for a while now, and debated putting a notice on our website about it, but again since the only use case for this is installing eShop titles through FBI that could easily look to Nintendo as us directly telling people how to continue to commit piracy. We have to walk on legal eggshells with Nintendo at all times, regardless of personal opinions or morals or anything like that

I'm going to tag @DaniElectra and @shutterbug2000 for thoughts, but I don't think there's a way forward here. I don't think there's really anything for us to do

jonbarrow avatar Apr 30 '25 17:04 jonbarrow

I understand, thank you very much for your answer, in other words the solution is the one I gave, leave Pretendo, install the CIA so that it installs correctly and then return to Pretendo quietly

Resumen:

Esto se debe a que no tenemos servidores de la eShop y, para que funcione en nuestros servidores, probablemente tendríamos que piratear. La solución es usar Nintendo Network al instalar títulos que no sean 100 % homebrew.

Respuesta larga:

Para que quede claro, solo respondo porque se trata de un hack de ROM. Sospecho que el fallo está muy relacionado con la piratería, así que aquí solo recibirás soporte limitado.

Algunos títulos requieren una "semilla" para su correcta instalación. Al instalar un título de forma normal a través de la eShop, la consola descargará esta semilla de los servidores de la eShop si el título la necesita.

Parte de la manera en que funcionan nuestros parches es parchando el módulo del sistema http de modo que las solicitudes a nintendowifi.net y nintendo.netson reemplazados por pretendo.cc https://github.com/PretendoNetwork/nimbus/blob/e96f363ebbd6db27fc615af6206f002c50cfd7e2/patches/http/src/main.s

Un efecto secundario (algo intencionado) es que la eShop se desactiva al cambiar a tu perfil de Pretendo Network, ya que no tenemos servidores de la eShop y posiblemente nunca los tengamos (existen algunos problemas técnicos que la hacen algo peligrosa). Hemos debatido la posibilidad de proporcionar servidores de la eShop para distribuir aplicaciones homebrew, y dado que las transferencias del sistema y los restablecimientos de fábrica dependen de la eShop, pero por el momento no tenemos planes para ofrecer esta opción.

Esto significa que cualquier solicitud a la eShop (incluida la descarga de semillas) _ NO _ funcionará.

Al instalar una CIA a través del FBI, si ese título necesita una semilla, entonces el FBI _ también _ intentará descargar dicha semilla https://github.com/nh-server/FBI-NH/blob/a65971aec5c6e9b78daf955c53324de98f500fce/source/core/http.c#L455-L502

Esto significa que si estás intentando instalar un título que requiere una semilla a través del FBI, pero estás usando tu perfil de Pretendo Network, la descarga de semillas fallará y el título no se instalará correctamente.

No estoy seguro de si hay alguna manera de solucionar esto. Tanto técnica como legalmente, hay varios problemas.

Algunas notas:

1. Una solución sería volcar la semilla localmente una vez instalada correctamente y luego guardarla en la tarjeta SD. FBI puede usar las semillas de la tarjeta SD si existen. Esto _ debería _ evitar que el problema se repita en futuras instalaciones en la 3DS y sería la forma más legítima de hacerlo (ya que es necesario instalar el título o la semilla previamente y volcarla usted mismo).

2. Otra solución sería que el FBI dejara de descargar semillas de la tienda online, ya sea de otra fuente o alojando las semillas ellos mismos. Pero eso les genera problemas legales y, en mi opinión, no es una solución real.

3. Tenemos algunas limitaciones con respecto a lo que podemos hacer con nuestros parches de ensamblaje. Decidir dinámicamente si reemplazar una URL según si es para la eShop o no puede ser complicado, si es que es posible, con nuestra configuración actual. [@ZeroSkill1](https://github.com/ZeroSkill1)Hace un tiempo estuve trabajando en una descompresión/reimplementación de algunos de los módulos del sistema 3DS, si no recuerdo mal, lo que haría esto más fácil, pero hay algunas preocupaciones legales al hacerlo (ver el siguiente punto)

4. Instalar correctamente los títulos usando nuestros perfiles nunca iba a funcionar. Incluso si decidiéramos dinámicamente no parchear las URL de la eShop, la eShop de 3DS rechazaría la mayoría de nuestras solicitudes, ya que cuenta con seguridad adicional que la eShop de Wii U no tiene. Sin embargo, la solicitud de descarga de semillas no cuenta con dichas protecciones, así que sí, técnicamente es posible _ no _ parchear las solicitudes de semillas, pero dado que el _ único caso práctico _ sería instalar títulos de la eShop a través del FBI (estos hackeos de ROM aún usan títulos reales de la eShop como base), hay sólidos argumentos para argumentar que estaríamos facilitando la piratería. Nintendo podría argumentar fácilmente que "Pretendo está facilitando la piratería intencionalmente mientras la gente usa sus servicios al permitir que los usuarios sigan descargando semillas de instalación de títulos".

5. Incluso si implementáramos nuestros propios servidores de eShop, no podríamos proporcionar las semillas nosotros mismos porque nuevamente eso sería un caso FUERTE para argumentar que estaríamos facilitando la piratería.

La solución es cambiar a Nintendo Network al instalar cualquier juego que no sea 10 000 % homebrew. Conozco este problema desde hace tiempo y pensé en publicar un aviso en nuestra página web, pero, como el único caso práctico es instalar juegos de la eShop a través del FBI, Nintendo podría interpretarse como si _ le dijéramos _ directamente a la gente cómo seguir pirateando. Tenemos que andar con pies de plomo con Nintendo en todo momento, independientemente de nuestras opiniones personales, moral o cualquier otra cosa.

Voy a etiquetar @DaniElectra y @shutterbug2000para reflexionar, pero no creo que haya una salida. No creo que realmente podamos hacer nada.

Sebaister avatar May 01 '25 02:05 Sebaister

I understand, thank you very much for your answer, in other words the solution is the one I gave, leave Pretendooo, install the CIA so that it installs correctly and then return to Pretendoooo quietly

I had set up this CIA using the official Nintendo CIA only by creating the internal game boy rom since it was the only way to make the wireless exchange work in this rom that are translated into Latin American Spanish

Sebaister avatar May 01 '25 02:05 Sebaister