{"id":20330123,"url":"https://github.com/jessetg/melonds-ds","last_synced_at":"2025-04-13T00:45:09.813Z","repository":{"id":145477787,"uuid":"608384232","full_name":"JesseTG/melonds-ds","owner":"JesseTG","description":"A remake of the libretro melonDS core that prioritizes standalone parity, reliability, and usability.","archived":false,"fork":false,"pushed_at":"2025-02-19T15:51:31.000Z","size":2647,"stargazers_count":217,"open_issues_count":74,"forks_count":24,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-04-13T00:44:59.526Z","etag":null,"topics":["ds","ds-homebrew","dsi","emulation","emulator","libretro","libretro-cores","melonds","nds","nintendo","nintendo-ds","nintendo-ds-emulator","nintendo-ds-homebrew","nintendo-dsi","retro","retroarch","retrocomputing","retrogaming"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JesseTG.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"JesseTG"}},"created_at":"2023-03-01T22:49:14.000Z","updated_at":"2025-04-11T15:48:09.000Z","dependencies_parsed_at":"2024-01-30T16:51:40.986Z","dependency_job_id":"58b80ff6-604d-4720-bdb4-fca064d15cf3","html_url":"https://github.com/JesseTG/melonds-ds","commit_stats":null,"previous_names":[],"tags_count":47,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JesseTG%2Fmelonds-ds","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JesseTG%2Fmelonds-ds/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JesseTG%2Fmelonds-ds/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JesseTG%2Fmelonds-ds/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JesseTG","download_url":"https://codeload.github.com/JesseTG/melonds-ds/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248650420,"owners_count":21139672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ds","ds-homebrew","dsi","emulation","emulator","libretro","libretro-cores","melonds","nds","nintendo","nintendo-ds","nintendo-ds-emulator","nintendo-ds-homebrew","nintendo-dsi","retro","retroarch","retrocomputing","retrogaming"],"created_at":"2024-11-14T20:15:03.746Z","updated_at":"2025-04-13T00:45:09.792Z","avatar_url":"https://github.com/JesseTG.png","language":"C++","funding_links":["https://github.com/sponsors/JesseTG"],"categories":[],"sub_categories":[],"readme":"# melonDS DS\n\nAn enhanced remake of the [melonDS][melonds] [core][melonds-libretro] for [libretro][libretro]\nthat prioritizes standalone parity, reliability, and usability.\n\n[![melonDS DS Latest Release][melondsds-release-badge]][melondsds-latest-release]\n[![melonDS DS GitHub Actions Workflow Status][melondsds-github-pipeline-badge]][melondsds-github-pipeline]\n[![melonDS DS Gitlab Pipeline Status][melondsds-gitlab-pipeline-badge]][melondsds-gitlab-pipeline]\n\n# Getting melonDS DS\n\nYou can download and install melonDS DS through RetroArch's built-in core downloader where supported.\nIf you'd like to try a development build or can't use the core downloader,\nyou can get the latest release of melonDS DS\nfrom [this repo's Releases][melondsds-latest-release],\nor the raw build artifacts from [here][workflows].\n\n# Installation\n\nInstallation instructions may vary depending on your chosen libretro frontend.\n\n## RetroArch\n\nYou can install melonDS DS through the built-in core downloader where supported.\nIf your build of RetroArch doesn't include it (e.g. Steam)\nor if you want to use a development build,\nyou can install it [RetroArch][retroarch] manually like so:\n\n1. Place `melondsds_libretro.dll` (or `.so` or `.dylib`, depending on the platform) in RetroArch's `cores` directory.\n2. Place `melondsds_libretro.info` in the same directory as the other `.info` files,\n   which is usually `cores` or `info` depending on the platform.\n\n# Using melonDS DS\n\nUsage instructions may vary depending on your chosen libretro frontend.\n\n## RetroArch\n\n### Playing Nintendo DS Games\n\n1. Start RetroArch.\n2. Scan your Nintendo DS game library with the \u003ckbd\u003eImport Content\u003c/kbd\u003e menu \n   to build a playlist if you haven't already.\n3. Load a Nintendo DS game from the playlist.\n   If you have the legacy melonDS core installed,\n   you may need to select melonDS DS explicitly.\n\n\u003e [!IMPORTANT]\n\u003e If you have ROM hacks or homebrew,\n\u003e you may need to manually add them to the playlist\n\u003e with the \u003ckbd\u003eManual Scan\u003c/kbd\u003e submenu.\n\n### Installing Nintendo DS BIOS\n\nmelonDS includes built-in BIOS and firmware replacements that work with most games.\nHowever, additional system files may be required\nfor certain features or games to work properly.\n\nYou can place your system files in RetroArch's `system` directory\nor in a subdirectory named `melonDS DS`.\nName the system files as follows:\n\n- DS ARM7 BIOS: `bios7.bin`\\*\n- DS ARM9 BIOS: `bios9.bin`\\*\n- DS Firmware: Anything, pick an image in the core options\n- DSi ARM7 BIOS: `dsi_bios7.bin`\\*\n- DSi ARM9 BIOS: `dsi_bios9.bin`\\*\n- DSi Firmware: Anything, pick an image in the core options\\*\n- DSi System NAND: Anything, pick an image in the core options\\*\n\n\u003csmall\u003e*Required for DSi mode.\u003c/small\u003e\n\n### Game Boy Advance Connectivity\n\nThe steps for loading a Game Boy Advance ROM are a little more involved.\nNative BIOS files are not required.\n\n1. Load the melonDS DS core using the \u003ckbd\u003eLoad Core\u003c/kbd\u003e menu.\n2. Enter the \u003ckbd\u003eSubsystems\u003c/kbd\u003e menu and select \u003ckbd\u003eLoad Slot 1 \u0026 2 Boot\u003c/kbd\u003e.\n3. Select a Nintendo DS ROM, a Game Boy Advance ROM, and optionally a Game Boy Advance save file (in that order).\n4. Start the game.\n\nThis combination of ROMs will appear in your History playlist,\nso you won't have to repeat this process every time you want to play.\n\n\u003e [!NOTE]\n\u003e melonDS can load Game Boy Advance ROMs and save data\n\u003e for the purpose of Slot-2 connectivity,\n\u003e but it cannot actually play GBA games.\n\u003e Use a GBA core instead.\n\n# New Features\n\nEnhancements over the [legacy melonDS core][melonds-libretro] include:\n\n## Standalone Parity\n\nUnlike most other libretro cores,\nmelonDS DS is not a fork of an existing code base.\nIt uses standalone melonDS as a statically-linked dependency,\nwhich means that large changes and merge conflicts are less of an issue.\nAs a result, improvements to standalone melonDS\nare much easier to integrate!\n\n## Wi-Fi Support\n\nWi-Fi is fully emulated on all platforms!\n\nFor your convenience, you can choose from\none of several preconfigured servers in the core options menu,\nwith [Kaeru WFC][kaeru] being the default.\n\nIf there's another server you'd like to use,\nyou can set its DNS address\nfrom within the emulated console's Wi-Fi settings menu.\n\n\u003e [!NOTE]\n\u003e Do not confuse this with local multiplayer,\n\u003e which does not require access to the Internet\n\u003e and is implemented using libretro's netplay API.\n\n## Homebrew Save Data\n\nThe legacy core does not support save data for homebrew games.\nHowever, melonDS DS does!\n\nmelonDS DS looks in the `system/melonDS DS` directory (i.e. alongside the BIOS files)\nfor a homebrew SD card image named `dldi_sd_card.bin`.\nIf one doesn't exist, a virtual 4GB SD card will be created if necessary.\nSee the core options for more information.\n\n\u003e [!NOTE]\n\u003e melonDS DS does not support savestates for homebrew games.\n\n## Microphone Support\n\nmelonDS DS supports libretro's new microphone API,\nallowing you to use your device's microphone for Nintendo DS games!\n\n\u003e [!NOTE]\n\u003e This feature requires support from the frontend.\n\u003e The latest stable release of RetroArch\n\u003e includes microphone support on several platforms.\n\n## Screen Rotation\n\nmelonDS DS fully supports rotating the emulated DS left, right, and upside-down!\nNow you can play games that were meant to be played sideways,\nsuch as Brain Age.\n\n## Enhanced Screen Layout Options\n\nThe legacy melonDS core supports multiple screen layouts,\nbut they can only be switched out through the core options menu.\nThis is inconvenient for games that use different layouts.\n\nmelonDS DS allows you to cycle through up to 8 screen layouts ([including rotations](#screen-rotation))\nat the push of a button!\n\n## Streamlined DSiWare Installation\n\nmelonDS DS streamlines the installation of DSiWare games on your NAND\nby automating the process for you,\neven when booting directly!\n\n- When you select a DSiWare ROM,\n  it's temporarily installed on the NAND\n  and removed when you exit the core.\n- Title metadata is automatically downloaded from Nintendo's servers\n  and cached locally for later.\n- When a DSi game is loaded,\n  the DSi menu will boot with the temp-installed game selected.\n\n## Other Niceties\n\n- **Battery Support:**\n  melonDS DS uses libretro's new power state API\n  to reflect your device's power status (battery level, charging status, etc.)\n  in the emulated console!\n  Requires support by the frontend.\n- **Selectable NAND and Firmware Images:**\n  You don't need to hard-code a specific name for your firmware or NAND images!\n  Just place them in `system/melonDS DS` (or local equivalent)\n  and pick them from the core options.\n- **Slot-2 Accessories:**\n  melonDS DS currently supports the\n  [solar sensor][solar-sensor], [Memory Expansion Pak][memory-pak], and [Rumble Pak][rumble-pak].\n\n# Missing Features\n\nThese features have not yet been implemented in standalone [melonDS][melonds],\nor they haven't been integrated into melonDS DS.\nIf you want to see them, ask how you can get involved!\n\n- **Homebrew Savestates:**\n  melonDS has limited support for taking savestates of homebrew games,\n  as the virtual SD card is not included in savestate data.\n- **DSi Savestates:**\n  Nintendo DSi mode does not support savestates.\n  This implies that rewinding and runahead are not supported in DSi mode.\n- **Game Boy Advance Emulation:**\n  melonDS can load Game Boy Advance ROMs and save data\n  for use by compatible Nintendo DS games,\n  but it cannot actually emulate the GBA.\n  GBA emulation is not within the scope of melonDS;\n  use a GBA emulator instead.\n- **GDB Stub Support:**\n  melonDS recently gained support\n  for debugging emulated DS games with GDB.\n  This is a low priority for melonDS DS,\n  since libretro frontends are typically used for playing games.\n  However, I may integrate it if there's enough demand.\n- **DSi Camera Support:**\n  Standalone melonDS supports emulating the DSi's cameras.\n  Support in melonDS DS is planned,\n  but has not yet been integrated.\n- **OpenGL Compute Shader Renderer:**\n  melonDS introduced a new renderer that uses OpenGL compute shaders,\n  enabling the accuracy of the software renderer\n  with the upscaling of the legacy OpenGL renderer.\n  Support has not yet been integrated into melonDS DS.\n\n# Compatibility\n\n## Games\n\nmelonDS DS is compatible with all games that melonDS supports,\nunless otherwise noted in the [Missing Features section](#missing-features).\nIf this is not the case, please [report it][issue-tracker].\n\n## Frontends\n\nmelonDS DS primarily targets RetroArch,\nbut you can use it with most libretro frontends.\nIf you encounter problems using this core with other frontends,\nplease [report them][issue-tracker]!\nSupport is not guaranteed, but I'll do the best I can.\n\n## Platforms\n\nmelonDS DS will run on the following platforms,\nassuming it's used with a frontend that also supports them:\n\n- Windows (x86_64)\n- macOS (x86_64 and arm64)\n- Linux (x86_64 and arm64)\n- Android (arm64)\n- iOS (arm64)\n\nAvailable features may vary depending on the platform and frontend.\n\nThe legacy melonDS core has builds for the Nintendo Switch\nand for 32-bit versions of the above platforms,\n_but melonDS DS will not support these platforms unless there's enough demand_.\n\n# Building\n\nSee the [contributor's guide](CONTRIBUTING.md) for instructions on building melonDS DS.\n\n# About the Name\n\nVarious games received enhanced remakes or ports to the Nintendo DS, including such gems as:\n\n- [Super Mario 64 DS](https://www.mobygames.com/game/31024/super-mario-64-ds)\n- [Ridge Racer DS](https://www.mobygames.com/game/16054/ridge-racer-ds)\n- [Brothers in Arms DS](https://www.mobygames.com/game/29865/brothers-in-arms-ds)\n- [Mega Man Battle Network 5: Double Team DS](https://www.mobygames.com/game/23356/mega-man-battle-network-5-double-team-ds)\n- [Diddy Kong Racing DS](https://www.mobygames.com/game/26746/diddy-kong-racing-ds)\n\nWhat do these games have in common?\n**They're all remakes or enhanced ports with a suffix of \"DS\"!**\n\nI see this core as an enhanced remake of the [legacy melonDS core][melonds-libretro],\nso I wanted to embody that in the name.\nPut differently,\nif I had given [the DeSmuME core](https://github.com/libretro/desmume) a similar treatment\nthen I would've named it \"DeSmuME DS\"!\n\n# Special Thanks\n\n- The [melonDS team][melonds-github] for making a great emulator\n  and for their help on Discord.\n- The [libretro team][libretro] for making a great app,\n  for their help on Discord,\n  and for fixing RetroArch bugs that affected melonDS DS.\n- Everyone who's ever reported a bug,\n  for their role in ensuring a polished product.\n- Nintendo, for all the memories.\n\n# Disclaimers\n\nThis project is not affiliated with, developed by, or endorsed by the melonDS team or by Nintendo.\n\n[kaeru]: https://kaeru.world/projects/wfc\n[libretro]: https://www.libretro.com\n[retroarch]: https://www.retroarch.com\n[melonds]: https://melonds.kuribo64.net\n[melonds-github]: https://github.com/melonDS-emu\n[melonds-libretro]: https://github.com/libretro/melonDS\n[melondsds-github-pipeline]: https://github.com/JesseTG/melonds-ds/actions\n[melondsds-github-pipeline-badge]: https://img.shields.io/github/actions/workflow/status/JesseTG/melonds-ds/main.yaml?style=for-the-badge\u0026logo=githubactions\u0026logoColor=white\u0026label=Personal%20Build\n[melondsds-gitlab-pipeline]: https://git.libretro.com/libretro/melonds-ds/-/pipelines\n[melondsds-gitlab-pipeline-badge]: https://img.shields.io/gitlab/pipeline-status/jessetg%2Fmelonds-ds?gitlab_url=https%3A%2F%2Fgit.libretro.com\u0026style=for-the-badge\u0026logo=gitlab\u0026label=Libretro%20Build\n[melondsds-release-badge]: https://img.shields.io/github/v/release/JesseTG/melonds-ds?style=for-the-badge\u0026\u0026logo=github\u0026label=melonDS%20DS\u0026link=https%3A%2F%2Fgithub.com%2FJesseTG%2Fmelonds-ds%2Freleases%2Flatest\n[melondsds-latest-release]: https://github.com/JesseTG/melonds-ds/releases/latest\n[issue-tracker]: https://github.com/JesseTG/melonds-ds/issues\n[memory-pak]: https://en.wikipedia.org/wiki/List_of_Nintendo_DS_accessories#Memory_Expansion_Pak\n[rumble-pak]: https://en.wikipedia.org/wiki/List_of_Nintendo_DS_accessories#Rumble_Pak\n[solar-sensor]: https://en.wikipedia.org/wiki/List_of_Nintendo_DS_accessories#Solar_Sensors\n[workflows]: https://nightly.link/JesseTG/melonds-ds/workflows/main.yaml/dev","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjessetg%2Fmelonds-ds","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjessetg%2Fmelonds-ds","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjessetg%2Fmelonds-ds/lists"}