[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-105332":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":16,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":17,"compositeScore":18,"rankGlobal":9,"rankLanguage":9,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":20,"hasPages":20,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":9,"trendingCount":15,"starSnapshotCount":15,"syncStatus":12,"lastSyncTime":25,"discoverSource":26},105332,"Salsa64","ricowp81\u002FSalsa64","ricowp81","Nintendo 64 emulator for PlayStation 3 (homebrew), built around the Cell: PPE recompiler, RSP and audio HLE on SPEs, RSX rendering",null,"C",56,2,6,38,0,3,9,45.23,"GNU General Public License v2.0",false,"main",[],"2026-11-01 00:14:28","# Salsa64\n\nA Nintendo 64 emulator for the PlayStation 3 (homebrew, runs on HEN or CFW),\ndesigned around the Cell processor: the PPE runs the VR4300 CPU with a\ndynamic recompiler, the SPEs do the vector work (RSP graphics and audio\nHLE), and the RSX draws.\n\nWhy another one: RetroArch on the PS3 has no working N64 core (the existing\ncores need OpenGL, which the PS3 does not offer), and no N64 emulator for the\nPS3 uses the SPEs. Both machines are big-endian, so emulated RAM needs no\nbyte swapping, and the N64's RSP (MIPS + vector unit + local memory with DMA)\nmaps naturally onto an SPE.\n\n> Most project documentation (`docs\u002F`) is written in Spanish. This README and\n> [CONTRIBUTING.md](CONTRIBUTING.md) are in English.\n\n## Status\n\nWork in progress, but already playable on a real PS3:\n\n- **Playable on real hardware:** Zelda: Ocarina of Time and\n  Majora's Mask, Super Mario 64, Mario Kart 64, Donkey Kong 64, Paper Mario,\n  Mario Party and Super Smash Bros. (also Smash Remix) at full speed; Perfect\n  Dark, GoldenEye 007, Conker, Star Fox 64, Banjo-Kazooie, Banjo-Tooie,\n  F-Zero X, Kirby 64, Pokémon Snap and Pokémon Stadium 2 playable (GoldenEye\n  45–60 fps in the Dam). New in 0.2.6: Banjo-Tooie and F-Zero X, experimental\n  frame interpolation, and a safety net so a stuck GPU can no longer freeze\n  the console. Full list (Spanish):\n  [docs\u002Fcompatibilidad.md](docs\u002Fcompatibilidad.md); release notes:\n  [CHANGELOG.md](CHANGELOG.md).\n- **CPU:** VR4300 interpreter and a MIPS → PPC64 dynamic recompiler on the\n  PPE (with TLB-mapped code, FPU and idle-loop detection).\n- **RSP:** high-level emulation of graphics microcodes (Fast3D, F3DEX 0.95\u002F1.x,\n  F3DEX2 and F3DZEX2, Rare's variants for Perfect Dark and Conker, S2DEX\n  backgrounds, the JPEG task of Zelda) on SPE 0, and of audio microcodes (ABI1,\n  nead, naudio with MP3, MusyX) on SPE 1. An experimental low-level RSP interpreter\n  (real microcode on an SPE) exists for microcodes without HLE.\n- **RDP on the RSX:** combiners translated to RSX fragment programs generated\n  at run time (there is no Cg compiler on the console).\n- **Frontend:** XMB-style ROM menu, DualShock 3 → N64 controller mapping,\n  EEPROM, SRAM and FlashRAM saves.\n- **Video:** 720p or 1080p output with internal render scale 1× to 5×;\n  framebuffer effects (render to texture, copies back to N64 memory, motion\n  blur read from the RSX); save states, FPS counter, PS button pause.\n- **Filters:** five CRT filters made for this project (shadow mask, a small\n  Trinitron TV over RGB, S-Video or composite, and a big Trinitron), still\n  experimental; on a real PS3 all five fit in the frame time at 1080p.\n- **Accessories:** Controller Pak, Rumble Pak (DualShock 3 vibration) and an\n  experimental Transfer Pak (a Game Boy backup next to the ROM), chosen globally,\n  per game or per controller.\n- **Not yet:** large SRAM saves (768 Kbit, 1 Mbit; recognized but not\n  emulated).\n\nPerformance numbers are logged in [docs\u002Fperf-log.md](docs\u002Fperf-log.md). Only\nmeasurements on a real PS3 count; RPCS3 is used for functional tests.\n\n## Using it on a PS3\n\nFull guide (in Spanish): [docs\u002Fuso-ps3.md](docs\u002Fuso-ps3.md).\n\n1. Download the latest `salsa64.pkg`\n   ([direct link](https:\u002F\u002Fgithub.com\u002Fricowp81\u002FSalsa64\u002Freleases\u002Flatest\u002Fdownload\u002Fsalsa64.pkg),\n   always the newest version) and install it with the XMB Package Manager\n   (HEN or CFW). It shows up as \"Salsa64\" under Games.\n2. Copy your own ROM dumps (`.z64`, `.v64` or `.n64`, any byte order; ROMs\n   over 64 MB, such as hacks, are read from the disk in pages) or standard `.zip` archives containing one of those formats to\n   `\u002Fdev_hdd0\u002Fsalsa64` (for example over webMAN MOD's FTP) or to a `salsa64`\n   folder at the root of a FAT32 USB stick.\n3. Start Salsa64 and pick a game from the menu.\n\n| N64 | DualShock 3 |\n|---|---|\n| Analog stick | Left stick |\n| C buttons | Right stick |\n| D-pad | D-pad |\n| A \u002F B | × \u002F □ |\n| Z | L2 |\n| L \u002F R | L1 \u002F R1 |\n| Start | START |\n\n- **START + SELECT** opens the pause menu: resume, save or load a state,\n  cheats, «Imagen» (filter, aspect, overscan and internal scale of the\n  running game, saved per game if you want), FPS counter and quit. Quitting asks first; the question can be\n  turned off in Options («Confirmar al salir»).\n- In the game list, **□** opens the cheats of the selected ROM (Project64 or\n  RetroArch `.cht` files in `\u002Fdev_hdd0\u002Fsalsa64\u002Fcheats`) and **SELECT** its\n  own settings (aspect, filter, overscan). PNG box art in\n  `\u002Fdev_hdd0\u002Fsalsa64\u002Fcovers` shows next to the game info.\n- Options also set the aspect (4:3 or 16:9), the image filter (smooth,\n  sharp, scanlines, or one of the five experimental CRT filters) and the menu\n  language: 18 languages (Spanish, English, French, German, Italian,\n  Portuguese, Dutch, Swedish, Danish, Norwegian, Finnish, Polish, Turkish,\n  Russian, Japanese, Korean, Traditional and Simplified Chinese) or\n  \"Automatic\", which follows the console. Menus use the PS3 system font; the\n  Asian languages need it to load.\n- The **PS button** pauses emulation and sound while the system menu is open;\n  the game resumes where it was when the menu closes.\n- Saves go to `\u002Fdev_hdd0\u002Fsalsa64\u002Fsaves`, one file per game.\n- Optional text files in `\u002Fdev_hdd0\u002Fsalsa64` change the button mapping\n  (`controles.cfg`), the save type per game (`guardado.cfg`), audio\n  (`audio.cfg`) and overscan cropping (`overscan.cfg`); see the guide.\n- **RetroAchievements** (off by default, Options). Regular achievements work.\n  Salsa64's Hardcore mode is **not yet approved by RetroAchievements**: approval\n  requires 6 public months and will be requested in April 2027.\n  See `docs\u002Fretroachievements.md`.\n\n## Reporting problems and compatibility\n\n- **A bug in a game** (black screen, freeze, wrong graphics): open an\n  [issue](https:\u002F\u002Fgithub.com\u002Fricowp81\u002FSalsa64\u002Fissues\u002Fnew\u002Fchoose) with the\n  form; attach `\u002Fdev_hdd0\u002Fsalsa64\u002Fsalsa64.log` copied right after quitting\n  (it's rewritten every time Salsa64 starts).\n- **How a game runs on your PS3**: post it in the\n  [compatibility thread](https:\u002F\u002Fgithub.com\u002Fricowp81\u002FSalsa64\u002Fdiscussions\u002F1).\n- **Questions**: [Discussions → Q&A](https:\u002F\u002Fgithub.com\u002Fricowp81\u002FSalsa64\u002Fdiscussions\u002Fcategories\u002Fq-a).\n\nPlease don't share ROMs or links to them.\n\n## Building\n\nEverything builds inside a Docker image with\n[ps3toolchain](https:\u002F\u002Fgithub.com\u002Fps3dev\u002Fps3toolchain) and\n[PSL1GHT](https:\u002F\u002Fgithub.com\u002Fps3dev\u002FPSL1GHT); nothing from Sony's official SDK\nis used. Requirements:\n\n- Docker (or a compatible engine) with several GB free. On arm64 hosts\n  (Apple Silicon) the engine must also be able to run `linux\u002Famd64`\n  containers (Docker Desktop does; with colima, enable Rosetta or binfmt),\n  because NVIDIA's Cg Toolkit, used by `cgcomp`, only exists for x86_64.\n- Python 3 for the helper scripts on the host.\n\n```sh\ntools\u002Fdocker-image.sh                  # once: builds salsa64-toolchain:dev (GCC for PPU\u002FSPU; 15–60 min)\ntools\u002Fbuild.sh                         # all PS3 programs: test programs and the emulator\ntools\u002Fbuild.sh -C src\u002Ffrontend pkg     # build\u002Fsalsa64\u002Fsalsa64.pkg\ntools\u002Fbuild.sh test-host               # core unit tests with the native gcc (ASan\u002FUBSan)\ntools\u002Fbuild.sh host                    # build\u002Fhost\u002Fsalsa64-run: run a ROM on the host\ntools\u002Ftest-roms.sh                     # homebrew ROM suites on the host, against the baseline\ntools\u002Fbuild.sh -C tests\u002Ffuzz run       # short fuzzing of the PNG and .cht readers\n```\n\nOutputs go to `build\u002F\u003Cprogram>\u002F`: `.elf` (RPCS3, ps3load), `.self`,\n`.fake.self` and, with `pkg`, `.pkg`. Tests in RPCS3, deploying to a PS3 and\nthe other test scripts are described in [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## Repository layout\n\n```\nsrc\u002Fcore\u002F      N64 core: memory, interfaces (PI, SI, VI, AI), PIF, boot HLE\nsrc\u002Fcpu\u002F       VR4300 interpreter and MIPS → PPC64 recompiler\nsrc\u002Frsp\u002F       RSP graphics, audio and JPEG HLE; low-level RSP interpreter\nsrc\u002Fspu\u002F       SPE programs (graphics HLE on SPE 0, audio on SPE 1, LLE)\nsrc\u002Frdp\u002F       N64 RDP and combiners on top of lib\u002Frsxkit\nsrc\u002Ffrontend\u002F  PS3 application: menu, input, audio output, saves\nsrc\u002Fhost\u002F      salsa64-run, the host-side runner used for tests\nlib\u002Frsxkit\u002F    generic RSX graphics layer, no N64 code (MIT; also github.com\u002Fricowp81\u002Frsxkit)\nlib\u002Fspukit\u002F    batched SPE jobs: queue + mailbox doorbell (MIT; also github.com\u002Fricowp81\u002Fspukit)\ntests\u002F         unit tests, fuzzing, PS3 test programs, homebrew test ROMs\ntools\u002F         build, test and deploy scripts\ndocs\u002F          design notes, measurements, third-party sources (Spanish)\n```\n\nGoals, architecture and roadmap: [docs\u002Fproyecto.md](docs\u002Fproyecto.md).\n\n## Support\n\nIf you enjoy Salsa64, you can buy me a coffee at\n[buymeacoffee.com\u002Fricowp81](https:\u002F\u002Fbuymeacoffee.com\u002Fricowp81). Thanks!\n\n## AI disclosure\n\nSalsa64 is an AI-assisted project. The emulator itself is tested on real PS3 hardware.\n\n## Credits\n\n- **VIDEOGAMES SCZ** contributed the pause menu, cheats, box art, the 16:9\n  aspect option, the simple image filters (Smooth, Sharp, Scanlines),\n  per-game settings, the first six menu languages and the experimental downloader.\n- The cartridge icon in the game list is a render of **\"Stylized N64\" by\n  AlessandroFortuna** (Sketchfab), licensed under CC BY 4.0, modified to remove\n  Nintendo artwork.\n- The button icons in the menus (DualShock 3 prompts and the N64 buttons on\n  the controls page, drawn with GameCube icons) are from **Kenney** \"Input\n  Prompts\" 1.5A ([kenney.nl](https:\u002F\u002Fkenney.nl)), CC0.\n\n## License\n\nCopyright (C) 2026 ricowp81.\n\nSalsa64 is free software under the **GNU General Public License, version 2 or\n(at your option) any later version** ([LICENSE](LICENSE)). Files that adapt\ncode from other projects keep their original copyright notices (see\n[docs\u002FTHIRD_PARTY.md](docs\u002FTHIRD_PARTY.md)).\n\n**The combined binary is distributed under GPLv2.** `src\u002Frsp\u002Fgfx\u002Ff5rogue.c`\n(the graphics microcode HLE for Star Wars: Rogue Squadron),\n`src\u002Frsp\u002Fgfx\u002Ff5indy.c` (the one for Indiana Jones and the Infernal Machine and\nBattle for Naboo) and `src\u002Frsp\u002Fgfx\u002Ff3dex2acclaim.c` are translated from\n[GLideN64](https:\u002F\u002Fgithub.com\u002Fgonetz\u002FGLideN64), which is GPL version 2\nonly (no \"or later\"), and keep that license\n(`SPDX-License-Identifier: GPL-2.0-only`). Everything else in the tree stays\nGPL-2.0-or-later, so you can still reuse those files under either version\non their own, but a build that links either file (the host runner, the PS3\nprogram and its SPU images) is GPLv2. Code under GPLv3 (gopher64, simple64,\nRMG) can no longer be mixed in. `lib\u002Frsxkit\u002F` and `lib\u002Fspukit\u002F` do not\ncontain or link any of it.\n\n`lib\u002Frsxkit\u002F` and `lib\u002Fspukit\u002F` are under the **MIT license** (their own\n`LICENSE` files) so that other emulators and homebrew, including projects\nwhose licenses cannot link GPL code, can reuse them. Third-party sources and\nreferences are listed in [docs\u002FTHIRD_PARTY.md](docs\u002FTHIRD_PARTY.md).\n\n## Libraries for other projects\n\nThe two MIT libraries also live in their own repositories, so that other PS3\nhomebrew can use them without taking the emulator:\n\n- **[rsxkit](https:\u002F\u002Fgithub.com\u002Fricowp81\u002Frsxkit):** RSX graphics layer\n  (video setup, double-buffered frames, 2D and 3D drawing, a run-time\n  fragment program generator, a post-processing chain).\n- **[spukit](https:\u002F\u002Fgithub.com\u002Fricowp81\u002Fspukit):** batch jobs on the SPEs\n  (work queue with a mailbox doorbell, persistent workers, LZ block\n  compression on the PPE, the host and an SPE).\n\nSalsa64 keeps them in `lib\u002F` with `git subtree`, so building Salsa64 needs\nnothing extra. How changes go back and forth: [docs\u002Fbibliotecas.md](docs\u002Fbibliotecas.md)\n(Spanish).\n\n## Legal notice\n\nSalsa64 is not affiliated with, endorsed or sponsored by Nintendo or Sony.\n\"Nintendo 64\" and \"PlayStation\" are trademarks of their respective owners.\n\nThis repository does not contain, and will not accept, commercial ROMs,\nBIOS or PIF ROM images, IPL3 boot code from Nintendo, encryption keys, or any\nother material copyrighted by Nintendo or Sony, nor any part of Sony's\nofficial PS3 SDK. The emulator boots games without a PIF ROM (high-level\nemulation of the boot process). Use it only with dumps of games you own.\nThe test ROMs in `tests\u002Froms\u002Fhomebrew\u002F` are freely licensed homebrew built\nfrom source (see their README).\n","2026-10-31 04:26:27","CREATED_QUERY"]