Skip to content

Releases: ricowp81/SalsaDS

SalsaDS v0.0.4 (preview)

Choose a tag to compare

@ricowp81 ricowp81 released this 25 Oct 19:14

Experimental preview. SalsaDS is not at full speed in every game yet, and you will see graphics and audio glitches. Tested on a real PS3 with HEN; CFW is untested.

What's new in v0.0.4

  • Mario Kart DS no longer hangs in the Grand Prix. The screen capture could overwrite code that the sound CPU (ARM7) runs from video memory, which froze the game around the third race. Captures now only write where the real hardware allows, and ARM7 code in video memory is translated and refreshed when it changes. A full cup now finishes on a real PS3.
  • Faster 3D geometry: polygon assembly on the geometry SPE reads vertices four at a time and reuses projections. In heavy Mario Kart DS races it drops from about 4.6 to 2.6 ms per frame, and the races hold 60 fps where they used to fall to 30.
  • Metroid Prime Hunters: the screen capture it uses for its menus and HUD is composed directly, from about 21 ms to about 2 ms per frame, and its saves use the right chip (256 KB Flash). An old 512-byte save file is kept untouched and a new one is used.
  • 3D textures: cells with indexed palettes are reused, roughly halving texture decoding time in heavy scenes.

Files you can create in /dev_hdd0/salsads/ to go back to the previous behavior if a game misbehaves: geometria-lectura-escalar (old vertex reading), geometria-sin-reuso (old projection path), arm7-vram-nojit (old ARM7 handling of code in video memory), and the ones from v0.0.3 (texturas-bloques, r3d-sin-aplazar, reparto-sin-historia, gx-lento).

Known issues

  • Scenes with a lot of 3D in Metroid Prime Hunters and Super Mario 64 DS can still drop to 30 fps: the limit there is now the main DS CPU (ARM9), not the 3D.
  • Saving in Pokémon takes longer than on a real DS (around 15 seconds).
  • Pokémon HeartGold shows small black dots between 3D tiles of the map.

How to use

  1. Install salsads-v0.0.4-preview.pkg (it replaces the previous version; it shows up as «SalsaDS»).
  2. Copy your own decrypted .nds dumps, with any name, to /dev_hdd0/salsads/.
  3. Open SalsaDS: pick a game with the D-pad or left stick (L1/R1 change page), X opens it, O quits SalsaDS.
  4. In game, hold SELECT + START for one second to return to the game list.

If something fails, please open an issue with your firmware (HEN or CFW and version) and the file /dev_hdd0/salsads/nucleo.log.

SHA-256 of the package: b220d6b4e363659cc31cbd96cb5c3b9ca3e962361a507fda65f17ebc9d201041


Resumen en español: Mario Kart DS ya no se cuelga en el Grand Prix (la captura de pantalla pisaba código del ARM7 en la memoria de video); el armado de la geometría en el SPE es más rápido (MKDS pesado sostiene 60 cuadros); Metroid Prime Hunters compone su captura directo (~21 → ~2 ms) y guarda en el chip correcto; las texturas 3D reutilizan paletas. Problemas conocidos: escenas con mucho 3D en Metroid y SM64DS aún bajan a 30 por la CPU (ARM9); guardar en Pokémon tarda ~15 s; puntos negros en el mapa de HeartGold.

SalsaDS v0.0.3 (experimental preview)

Pre-release

Choose a tag to compare

@ricowp81 ricowp81 released this 20 Oct 04:07

Experimental preview. SalsaDS is not at full speed in every game yet, and you will see graphics and audio glitches. Tested on a real PS3 with HEN; CFW is untested.

What's new in v0.0.3

  • Correct save memory for each game. Games now get the right save chip (EEPROM, FRAM or Flash, with its size) from a built-in table or by detecting it from the game's first commands. The Pokémon games (Diamond/Pearl/Platinum, HeartGold/SoulSilver, Black/White, Black 2/White 2) now save instead of showing a save-memory error. If a game still gets it wrong, you can force it in /dev_hdd0/salsads/guardado.cfg with a line such as IPK=flash512k. Existing saves keep working.
  • Big ROMs read in chunks: ROMs larger than 64 MB (up to 512 MB tested) are read from the disk on demand, with no errors on real hardware.
  • 3D: a new texture cache (4×4 cells, chosen automatically) and better balancing of the 3D work between the two SPEs.
  • Geometry commands (including the DMA that feeds them) take a shorter path to the 3D engine: about 1 ms less per frame in Mario Kart DS races.

Files you can create in /dev_hdd0/salsads/ to go back to the previous behavior if a game misbehaves: texturas-bloques (old texture cache), r3d-sin-aplazar (old wait for the 3D), reparto-sin-historia (old 3D balancing), gx-lento (old geometry path).

Known issues

  • Saving in Pokémon takes longer than on a real DS (around 15 seconds).
  • Pokémon HeartGold shows small black dots between 3D tiles of the map.
  • Mario Kart DS can still drop frames in races with a lot of 3D.
  • Metroid Prime Hunters runs at 30 fps in its menus (the screen capture is composed on the PPE).

How to use

  1. Install salsads-v0.0.3-preview.pkg (it replaces the previous version; it shows up as «SalsaDS»).
  2. Copy your own decrypted .nds dumps, with any name, to /dev_hdd0/salsads/.
  3. Open SalsaDS: pick a game with the D-pad or left stick (L1/R1 change page), X opens it, O quits SalsaDS.
  4. In game, hold SELECT + START for one second to return to the game list.

If something fails, please open an issue with your firmware (HEN or CFW and version) and the file /dev_hdd0/salsads/nucleo.log.

SHA-256 of the package: db06674abbe733be67af5866c2256a50dd6a00ef94a2e772168d7e52bb202a43


Resumen en español: cada juego recibe ya su memoria de guardado correcta (los Pokémon guardan; guardado.cfg para forzarla), las ROMs de más de 64 MB se leen por partes, caché nueva de texturas del 3D y un camino más corto para la geometría. Problemas conocidos: guardar en Pokémon tarda ~15 s, puntos negros en el mapa de HeartGold, MKDS aún pierde cuadros con mucho 3D, Metroid Hunters a 30 fps en menús.

SalsaDS v0.0.2 (experimental preview)

Pre-release

Choose a tag to compare

@ricowp81 ricowp81 released this 19 Oct 22:56

Experimental preview. SalsaDS is not at full speed in every game yet; there is still optimization and many improvements to do, and you will see graphics and audio glitches. Tested on a real PS3 with HEN; CFW is untested.

What's new in v0.0.2: a much faster CPU

  • ARM7 recompiler (JIT). The ARM7 now runs on the same ARM → PowerPC recompiler as the ARM9, with its own code cache.
  • Faster ARM9 recompiler. Flags kept in registers, hot and cold code laid out apart, idle and polling loops skipped, and shorter code for common instructions.

Measured on a real PS3 (time to emulate one frame; 16.7 ms is full speed at 60 fps):

Game v0.0.1 v0.0.2 Frames slower than 60 fps
New Super Mario Bros. (level) 16.7 ms 8.6 ms 37 % → 2 %
Mario Kart DS (race) 20–21 ms 12.2 ms most → 7 %
Super Mario 64 DS — 8.4 ms 9 %

Loading screens are roughly twice as fast. Heavy 3D scenes can still drop frames.

Files you can create in /dev_hdd0/salsads/ to go back to the old behavior if a game misbehaves: arm7-nojit (ARM7 on the interpreter), and jit-sin-esperas, jit-sin-ventanas, jit-sin-pistas, jit-banderas-memoria, jit-salidas-copiadas (each turns off one ARM9 improvement).

How to use

  1. Install salsads-v0.0.2-preview.pkg (it replaces v0.0.1; it shows up as «SalsaDS»).
  2. Copy your own decrypted .nds dumps, with any name, to /dev_hdd0/salsads/.
  3. Open SalsaDS: pick a game with the D-pad or left stick (L1/R1 change page), X opens it, O quits SalsaDS.
  4. In game, hold SELECT + START for one second to return to the game list.

If something fails, please open an issue with your firmware (HEN or CFW and version) and the file /dev_hdd0/salsads/nucleo.log.

SHA-256 of the package: 56eec57c96b954724dfedf9f00d7e8a9fd91df743881940526f7bc6fc1f095dc


Resumen en español: versión experimental mucho más rápida: el ARM7 también usa el recompilador y el del ARM9 se optimizó. En la PS3 real, NSMB pasa de 16,7 a 8,6 ms por cuadro (casi siempre a 60 fps), Mario Kart DS de 20–21 a 12,2 ms y las pantallas de carga tardan cerca de la mitad. Uso: instala el .pkg, copia tus .nds desencriptados a /dev_hdd0/salsads/, X abre, O sale, SELECT+START un segundo vuelve a la lista.

SalsaDS v0.0.1 (experimental preview)

Pre-release

Choose a tag to compare

@ricowp81 ricowp81 released this 19 Oct 18:08

SalsaDS v0.0.1 (experimental preview)

Pre-release. Experimental. This is the first public build of SalsaDS, a
Nintendo DS emulator for the PlayStation 3 built around the Cell processor
(PPE runs the ARM CPUs with a recompiler, SPEs do 2D, 3D and sound, RSX shows
the two screens).

Read this first

  • It does not reach full speed in most games yet. Much optimization and
    many improvements are still missing.
  • Expect graphical and audio glitches.
  • Tested on a real PS3 with HEN. CFW has not been tested.
  • Games seen running on the PS3: New Super Mario Bros., Mario Kart DS and
    Super Mario 64 DS. No speed is promised for any of them, and other games
    are untested.
  • No ROMs, BIOS, firmware or keys are included or will ever be. Use only
    dumps of games you own.

What is in the package

  • salsads-v0.0.1-preview.pkg: installs the program "SalsaDS"
    (ARM9 and ARM7 interpreters plus the ARM to PPC64 recompiler, 2D engines A and
    B and sound on SPEs, 3D geometry and rasterizer, two-screen output).
  • SHA-256: 1162b198f8937489bba9a14cda863e88ffcca9abfb9f4a38f0961affc534fe66

How to use

  1. Install the .pkg on a PS3 with HEN.
  2. Copy dumps of games you own (decrypted .nds images; the cartridge
    encryption is not emulated) to /dev_hdd0/salsads/, with any file name
    ending in .nds.
  3. Start the program. A list of your .nds files appears: d-pad or left stick
    to move, L1/R1 to jump a page, X to open a game, O to leave SalsaDS. The
    last game opened is remembered. With no .nds file it offers a built-in
    load test.
  4. Inside a game, hold SELECT + START for 1 second to return to the list.
    Controls use a DualShock 3: d-pad or left stick, face buttons mapped to
    A/B/X/Y, L1/R1, Start and Select; right stick moves the touch pointer and
    R2 touches; L2 changes the screen layout.
  5. Saves go to /dev_hdd0/salsads/saves/<game code>.sav; the log is
    /dev_hdd0/salsads/nucleo.log.

Optional files in /dev_hdd0/salsads/: controles.cfg (button remapping),
rom-paged (empty file: read the ROM in pages; automatic above 64 MB),
audio.cfg (original = si for 10-bit output like the original console).

Known limitations

  • Speed: most games run below full speed; no performance claims.
  • Graphics and audio inaccuracies, especially in 3D.
  • Features beyond the basics (Wi-Fi, for example) are not a goal at this stage.
  • CFW is untested; JIT behavior there is unknown.

Source code (GPL-2.0-or-later; lib/rsxkit and lib/spukit are MIT) is in
this repository.

SalsaDS is an AI-assisted project. The emulator itself is tested on real PS3
hardware.


Resumen en español

Primera versión pública de SalsaDS (emulador de DS para PS3), experimental.
Aún no llega a velocidad completa en la mayoría de los juegos, falta mucha
optimización y hay fallos gráficos y de audio. Probado en una PS3 real con HEN
(CFW sin probar). Se han visto funcionando New Super Mario Bros., Mario Kart DS
y Super Mario 64 DS, sin prometer velocidad. Instalar el .pkg y copiar los
respaldos propios (imágenes .nds desencriptadas, con cualquier nombre) a /dev_hdd0/salsads/;
al abrir el programa sale una lista para elegir (en el juego, SELECT + START durante 1 s vuelve a ella).
Las partidas se guardan en /dev_hdd0/salsads/saves/. SHA-256 del paquete:
1162b198f8937489bba9a14cda863e88ffcca9abfb9f4a38f0961affc534fe66.