Jump to content


3DS Homebrew Menu 2.4.2


¿Quieres enterarte al momento de las nuevas descargas? Síguenos en Twitter o Mastodon!
Ayúdanos con el mantenimiento de la web con una donación vía Paypal.

3DS Homebrew Menu (new-hbmenu) es un simple y atractivo menú que muestra una lista las aplicaciones homebrew en formato .3DSX y nos permite ejecutarlas desde ahí mismo. Puede ser usado con los siguientes puntos de entrada:

  • Luma3DS Rosalina (recomendado): Funciona en todos los sistemas desde 4.0 en adelante. OFrece un acceso sin restricciones a los recursos del sistema de 3DS, además de ofrecer algunas características adicionales como depuración remote (GDB).
  • hax 2.x, el sucesor de ninjhax. Sistema de carga de homebrew ya obsoleto que solo ofrece un acceso limitado a los recursos del sistema de Nintendo 3DS, y solo ataca a un nivel bajo de privilegios. El soporte para hax será eliminado próximamente.

El homebrew de Nintendo 3DS es construido y distribuido en ejecutables con la extensión .3dsx. Puede que te encuentres algunos archivos con la extensión .cia. Estos no son ejecutables utilizando hbmenu.

file-list.png

Uso

Para instalar hbmenu, simplemente copia el archivo boot.3dsx al directorio raíz de tu tarjeta SD. Si estás usando una versión reciente de Luma3DS posiblemente ya tengas una copia de hbmenu isntalada, ya que viene incluído con esta aplicación.

Use the D-Pad, Circle Pad or the touchscreen to select an application, and press A or touch it again to start it. Use the C-Stick alternatively on New 3DS to scroll the list of applications.

On certain entrypoints (ninjhax 1.x and hax 2.x), it is not possible to go back to the 3DS HOME menu using the HOME button. As an alternative, you can press the START button where you can reboot your console or (in the case of hax 2.x) relaunch HOME menu.

hbmenu starts in the sdmc:/3ds/ directory for applications and it will look for 3dsx files inside it. You can navigate the directory tree and open/browse folders as you would expect. Old style application bundle folders are also detected, however this functionality may be removed in the future.

Here is an example directory structure that hbmenu will have no trouble recognizing:

  • sdmc:/
    • 3ds/
      • games/
        • Hermes.3dsx
        • cubemadness.3dsx
      • 3dscraft.3dsx
      • blargSNES.3dsx
      • gameyob.3dsx
      • 3dnes.3dsx
      • ftpd.3dsx
      • Themely.3dsx

If hbmenu does not find an icon file (either embedded in the executable or provided separately) to associate with a given 3dsx, it will display a default icon and the path to the executable as a fallback.

hbmenu also allows you to create "shortcuts" which are xml files containing a path to a 3dsx file and optional arguments to pass to the .3dsx. This file can also include a path to icon data as well as name, description and author text using tags as follows:

<shortcut>
    <executable>The path to the 3dsx file goes here.</executable>
    <icon>path to smdh icon data</icon>
    <arg>Place arguments to be passed to 3dsx here.</arg>
    <name>Name to display</name>
    <description>Description of homebrew app</description>
    <author>Name of the author</author>
</shortcut>

Arguments are space or tab separated but can use single or double quotes to contain whitespace.

Name, description and author will be read from the .3dsx if it has embedded SMDH data or from the supplied icon path. The fields in the xml file will then override their respective entries.

You should not hotswap the SD card while hbmenu is running since it compromises the 3DS OS's stability amongst other things. It is recommended that you instead use a file transfer homebrew application such as ftpd to transfer files without rebooting.

Technical notes

hbmenu does all its rendering in hardware thanks to the citro3d library. The 3DS system font is also used to render all text.

hbmenu uses some funky mechanisms to launch 3dsx files. If you're interested in launching 3dsx files from your own application, you should look here; although these mechanisms may change in the future.

Netloader

hbmenu contains support for the 3dslink protocol, which allows you to remotely load applications. Press Y to activate as usual then run 3dslink <3dsxfile> if your network can cope with UDP broadcast messages. If 3dslink says 3DS not found then you can use -a <ip address> to tell it where to send the file.

All the other arguments you give 3dslink will be passed as arguments to the launched 3dsx file. You can also specify argv[0] with -0 <argument> which is useful for setting the current working directory if you already have data files in a particular place, i.e. 3dslink myfile.3dsx -0 sdmc:/3ds/mydata/

3dslink is provided with devkitARM.

Credits

  • smea: code & original hbmenu version
  • fincs: code & rewrite
  • GEMISIS: code
  • mtheall: code
  • WinterMute: netloader code
  • Fluto: graphics
  • Arkhandar: graphics
  • dotjasp: graphics (regionfree icon)
  • gruetzkopf, TuxSH, AuroraWright, Soph1a7, SentientTurtle, Yami-chan, d3m3vilurr, daedreth, JixunMoe, yy-codes, MCPE-PC: translations

Que novedades incluye la versión 2.4.2

Released

  • Reconstruido con las últimas librerías
  • Establececida ruta de configuración a config/3ds-hbmenu
  • Empaquetado con config/ssl/cacert.pem para libcurl

No te pierdas nada, síguenos en Twitter o Mastodon!
Preguntas, aportes y peticiones en el foro.
Si te sirve lo que hacemos, ayúdanos con el mantenimiento de la web con una donación vía Paypal.

  • Contenido similar

    • Por Dekuwa
      Lime3DS es un proyecto que pretende revivir y continuar trabajando en Citra, un popular emulador de Nintendo 3DS de código abierto que cesó su desarrollo.
      El emulador cuenta con versiones para Windows, macOS, Linux y Android.
    • Por Dekuwa
      3DSident es una sencilla aplicación para Nintendo 3DS que nos permite checkear el firmware actual y la versión del sistema operativo de la consola de una forma simple y cómoda, de forma similar a lo que hace  PSPident con PSP.
      Funciones:
      Detección de la versión actual del kernel, FIRM y sistema. Visualización de la versión inicial del sistema. Detección de modelo con nombre de código e información de hardware (Retail/Devboard/Debugger/Unidad de captura). Muestra el tipo de pantalla (TN/IPS). Muestra la región. Muestra el idioma. Muestra la dirección MAC. Muestra la serie. Muestra SDMC y NAND CID. Muestra el nombre de usuario NNID, el ID principal, el ID persistente, el ID de base transferible, el país y la zona horaria. Muestra el ID del dispositivo. Muestra el ID del jabón. Estado de carga de la batería. Estado de conexión del adaptador de CA. Porcentaje de la batería (porcentaje real de la batería mediante mcu::HWC). Muestra el voltaje de la batería (estimado) y el formato desconocido. Muestra el firmware de la MCU. Detección de SD. Muestra la capacidad de almacenamiento total y libre de la SD. Muestra la capacidad de almacenamiento total y libre de CTR. Muestra la capacidad de almacenamiento total y libre de TWL. (Exclusivo GUI) Muestra la capacidad de almacenamiento total y libre de TWL photo. (GUI exclusivo) Muestra el número de títulos instalados en SD y NAND. Muestra el número de tickets instalados. (Exclusivo de GUI) Muestra el estado y el porcentaje del deslizador de volumen. Muestra el estado y porcentaje del deslizador 3D. Muestra la intensidad de la señal Wifi. Muestra la dirección IP. Muestra el brillo actual. Muestra el estado del brillo automático. (Exclusivo GUI) Muestra el modo de ahorro de energía. (Exclusivo GUI) Muestra el modo de salida de sonido. (Exclusivo GUI) Muestra si la consola es una unidad de depuración. (Exclusivo GUI) Muestra el estado de la toma de auriculares/audio. (Exclusivo GUI) Estado de la ranura de la tarjeta y tipo de tarjeta insertada (CTR/NAND). Muestra el pin de control parental, la dirección de correo electrónico y la respuesta secreta. (Exclusivo GUI) Muestra el ID del menú de inicio. Muestra información de la ranura Wifi (SSID, contraseña y dirección MAC). Muestra la semilla de código amigo local original/NAND. 3DSident es una aplicación creada por  joel16.
    • Por Dekuwa
      Citra es un emulador experimental de código abierto de Nintendo 3DS escrito en C++ para Windows, macOS y Linux. También cuenta con una versión para Android.

      Citra emula un subconjunto de hardware 3DS y, por lo tanto, es útil para ejecutar/depurar aplicaciones caseras, ¡y también puede ejecutar muchos juegos comerciales!
      Citra está creado por PabloMK7.
    • Por Dekuwa
      Port para Android de Citra, emulador de Nintendo 3DS basado en el frontend de Dolphin.
      Citra emula un subconjunto de hardware 3DS y, por lo tanto, es útil para ejecutar/depurar aplicaciones caseras, ¡y también puede ejecutar muchos juegos comerciales!
      Citra para Android está creado por PabloMK7.
    • Por Dekuwa
      MSET9 es un exploit primario ARM9 para 3DS que puede ser lanzado con sólo datos de nombre de archivo añadidos a la tarjeta SD insertada.
      Cómo funciona
      En la implementación de FSPXI:EnumerateExtSaveData (llamada por MSET para analizar los ID de extdata de 3DS para la gestión de datos), no se comprobaba el valor de retorno de la llamada a la función interna P9 para abrir un directorio (al enumerar el contenido del directorio extdata). Por lo tanto, si la llamada falla, se utilizará un puntero no inicializado en la pila para una llamada vtable.
      Como tal, un archivo que comienza con 8 dígitos hexadecimales puede bloquear process9 si se coloca directamente dentro del directorio extdata. Puede bloquearse de varias formas basadas en sutiles diferencias en la forma en que el usuario desencadena el evento de bloqueo.
      Mientras que en la mayoría de los casos conduce a referencias nulas, en un contexto específico, process9 salta directamente a una cadena ID1 que se mantiene en la memoria ARM9. Sorprendentemente, la 3DS no discierne qué caracteres se utilizan para el nombre del directorio ID1 en la SD, sólo requiere exactamente 32 caracteres. Esto permite al atacante insertar instrucciones arm en el nombre de directorio ID1 unicode y tomar el control del ARM9, y por lo tanto, el control total de la 3DS.
      ¿Puedo hacerlo?
      Necesitas una 3ds 11.4-11.17, de cualquier región (probablemente, no las he probado todas) Un lector USB a SD PC Windows/Linux (esto podría ampliarse a MAC y/o Android en algún momento, si es posible) PREGUNTAS FRECUENTES
      P: ¿Esto instala boot9strap y escribe en la NAND?
      R: ¡Sí! ¿Qué más vas a hacer con el control de ARM9, a9lh? pastaCFW? sketchy tetris clones" 😛
      P: ¡Eso suena peligroso, Zoogie!
      R: Sí, lo es, pero la escena lleva años haciendo estas cosas peligrosas. Si te preocupa, no pases de la fase beta.
      P: ¿Qué pasa si no desinstalo el exploit cuando termine?
      R: Tendrás problemas para ejecutar los títulos instalados anteriormente, además de fallos aleatorios en el FBI y en la configuración del sistema. ¡Así que asegúrate de limpiar el exploit! (la opción 4 en el menú mset9.py hace esto)
      P: El archivo que activa el exploit (002F003A.txt) ... parece ... una dirección virtual, ¿no?
      R: Son los caracteres ":/", algo que no podemos mostrar en un nombre típico de archivo/carpeta. Un hecho conveniente de ese archivo (además de desencadenar la caída general) es que los primeros 8 caracteres de ese nombre de archivo hexadecimal se convierten a un u32 que resulta existir 0x44 pasado SP, por lo que puedo usarlo para rellenar los caracteres que faltan en la ruta de archivo de carga útil "sdmc??b9", y mantener feliz al sistema operativo del PC.
      P: Sugieres en la explicación del hack anterior que FS_EnumerateExtData es la función responsable de permitir el crash en MSET/ARM9, ¿podría ser llamada en userland homebrew para hacerse cargo de ARM9?
      R: ¿Quizás? Jugué brevemente con esta misma idea, pero no pude encontrar un contexto de crash que pudiera controlar, a diferencia del método pre-userland que es MSET9. Tal vez esto podría ser un ejercicio para que el usuario dedicado explore y desarrolle esta variante potencial de MSET9. Podría ser útil más adelante.
      Dato curioso: El archivo hexadecimal de 8 dígitos, si se deja en extdata, también bloqueará FBI al seleccionar la opción "Ext Save Data" en su menú principal. Es el único homebrew que conozco que llama a FS_EnumerateExtData.
      P: Acortaste SafeB9SInstaller.bin a SafeB9S.bin, ¿por qué?
      R: Mantiene el estándar de nombre de archivo 8.3 de FAT que evita Nombres de Archivo Largos, y por lo tanto permite un ahorro significativo de espacio en la biblioteca FatFs. "B9" también se utiliza por el mismo motivo, aunque no está relacionado con FatFs. En este exploit es de vital importancia que el código ocupe poco espacio.
      P: ¿Por qué no funciona en MAC?
      R: Porque se niega a renderizar la siguiente locura unicode: �﫿餑䠇䚅敩ꄈ∁䬅䞘䙨䙙꫿ᰗ䙃䰃䞠䞸退ࠊꁱࠅ캙ࠄsdmc退ࠊb9
      ( ͡° ͜ʖ ͡°)
      MSET9 es una aplicación creada por Zoogie.
×
×
  • Crear nuevo...