2022-09-14 11:02:22 -06:00
< p align = "center" > < img src = "https://raw.githubusercontent.com/melonDS-emu/melonDS/master/res/icon/melon_128x128.png" > < / p >
2018-11-01 00:11:11 -06:00
< h2 align = "center" > < b > melonDS< / b > < / h2 >
< p align = "center" >
< a href = "http://melonds.kuribo64.net/" alt = "melonDS website" > < img src = "https://img.shields.io/badge/website-melonds.kuribo64.net-%2331352e.svg" > < / a >
2022-11-03 13:35:21 -06:00
< a href = "http://melonds.kuribo64.net/downloads.php" alt = "Release: 0.9.5" > < img src = "https://img.shields.io/badge/release-0.9.5-%235c913b.svg" > < / a >
2018-11-01 00:11:11 -06:00
< a href = "https://www.gnu.org/licenses/gpl-3.0" alt = "License: GPLv3" > < img src = "https://img.shields.io/badge/License-GPL%20v3-%23ff554d.svg" > < / a >
< a href = "https://kiwiirc.com/client/irc.badnik.net/?nick=IRC-Source_?#melonds" alt = "IRC channel: #melonds " >< img src = "https://img.shields.io/badge/IRC%20chat-%23melonds-%23dd2e44.svg" ></ a >
2021-02-04 03:10:49 -07:00
< br >
2023-01-19 07:10:27 -07:00
< a href = "https://github.com/melonDS-emu/melonDS/actions?query=workflow%3A%22CMake+Build+%28Windows+x86-64%29%22+event%3Apush" > < img src = "https://img.shields.io/github/actions/workflow/status/melonDS-emu/melonDS/build-windows.yml?label=Windows%20x86-64&logo=GitHub&branch=master" > < / img > < / a >
< a href = "https://github.com/melonDS-emu/melonDS/actions?query=workflow%3A%22CMake+Build+%28Ubuntu+x86-64%29%22+event%3Apush" > < img src = "https://img.shields.io/github/actions/workflow/status/melonDS-emu/melonDS/build-ubuntu.yml?label=Linux%20x86-64&logo=GitHub" > < / img > < / a >
< a href = "https://github.com/melonDS-emu/melonDS/actions?query=workflow%3A%22CMake+Build+%28Ubuntu+aarch64%29%22+event%3Apush" > < img src = "https://img.shields.io/github/actions/workflow/status/melonDS-emu/melonDS/build-ubuntu-aarch64.yml?label=Linux%20ARM64&logo=GitHub" > < / img > < / a >
< a href = "https://github.com/melonDS-emu/melonDS/actions/workflows/build-macos-universal.yml?query=event%3Apush" > < img src = "https://img.shields.io/github/actions/workflow/status/melonDS-emu/melonDS/build-macos-universal.yml?label=macOS%20Universal&logo=GitHub" > < / img > < / a >
2018-11-01 00:11:11 -06:00
< / p >
2017-10-21 21:58:02 -06:00
DS emulator, sorta
2016-05-15 19:40:11 -06:00
2017-03-29 14:56:30 -06:00
The goal is to do things right and fast, akin to blargSNES (but hopefully better). But also to, you know, have a fun challenge :)
2018-11-01 00:11:11 -06:00
< hr >
2018-11-01 14:10:34 -06:00
2017-10-21 21:58:02 -06:00
## How to use
2017-02-07 14:23:46 -07:00
2022-03-08 04:03:16 -07:00
Firmware boot (not direct boot) requires a BIOS/firmware dump from an original DS or DS Lite.
2017-06-15 13:41:18 -06:00
DS firmwares dumped from a DSi or 3DS aren't bootable and only contain configuration data, thus they are only suitable when booting games directly.
2017-10-21 21:58:02 -06:00
### Possible firmware sizes
2017-08-05 11:13:55 -06:00
* 128KB: DSi/3DS DS-mode firmware (reduced size due to lacking bootcode)
* 256KB: regular DS firmware
* 512KB: iQue DS firmware
2018-10-26 13:06:46 -06:00
DS BIOS dumps from a DSi or 3DS can be used with no compatibility issues. DSi BIOS dumps (in DSi mode) are not compatible. Or maybe they are. I don't know.
2017-02-07 14:23:46 -07:00
2017-03-29 14:56:30 -06:00
As for the rest, the interface should be pretty straightforward. If you have a question, don't hesitate to ask, though!
2016-12-05 09:08:24 -07:00
2017-10-21 21:58:02 -06:00
## How to build
2017-04-29 19:46:27 -06:00
2022-05-21 11:54:55 -06:00
### Linux
1. Install dependencies:
2022-10-17 14:55:11 -06:00
* Ubuntu 22.04: `sudo apt install cmake extra-cmake-modules libcurl4-gnutls-dev libpcap0.8-dev libsdl2-dev qtbase5-dev qtbase5-private-dev qtmultimedia5-dev libslirp-dev libarchive-dev`
* Older Ubuntu: `sudo apt install cmake extra-cmake-modules libcurl4-gnutls-dev libpcap0.8-dev libsdl2-dev qt5-default qtbase5-private-dev qtmultimedia5-dev libslirp-dev libarchive-dev`
* Arch Linux: `sudo pacman -S base-devel cmake extra-cmake-modules git libpcap sdl2 qt5-base qt5-multimedia libslirp libarchive`
2022-05-21 11:54:55 -06:00
3. Download the melonDS repository and prepare:
```bash
2022-09-14 11:02:22 -06:00
git clone https://github.com/melonDS-emu/melonDS
2022-05-21 11:54:55 -06:00
cd melonDS
```
2017-10-21 21:58:02 -06:00
2022-05-21 11:54:55 -06:00
3. Compile:
```bash
cmake -B build
cmake --build build -j$(nproc --all)
```
2017-04-02 01:33:01 -06:00
2022-05-21 11:54:55 -06:00
### Windows
2019-04-30 22:08:00 -06:00
1. Install [MSYS2 ](https://www.msys2.org/ )
2019-05-04 07:28:58 -06:00
2. Open the **MSYS2 MinGW 64-bit** terminal
2019-04-30 22:08:00 -06:00
3. Update the packages using `pacman -Syu` and reopen the terminal if it asks you to
2022-05-21 11:54:55 -06:00
4. Install git to clone the repository
```bash
pacman -S git
```
5. Download the melonDS repository and prepare:
```bash
2022-09-14 11:02:22 -06:00
git clone https://github.com/melonDS-emu/melonDS
2022-05-21 11:54:55 -06:00
cd melonDS
```
2020-08-16 08:11:28 -06:00
#### Dynamic builds (with DLLs)
2022-11-09 11:54:35 -07:00
5. Install dependencies: `pacman -S mingw-w64-x86_64-{cmake,SDL2,toolchain,qt5-base,qt5-svg,qt5-multimedia,libslirp,libarchive}`
2021-02-17 14:45:17 -07:00
6. Compile:
2019-04-30 22:08:00 -06:00
```bash
2022-11-09 11:54:35 -07:00
cmake -B build
cmake --build build
2022-05-21 11:54:55 -06:00
cd build
2021-04-21 15:50:32 -06:00
../tools/msys-dist.sh
2019-04-30 22:08:00 -06:00
```
If everything went well, melonDS and the libraries it needs should now be in the `dist` folder.
2017-04-29 19:46:27 -06:00
2020-08-16 08:11:28 -06:00
#### Static builds (without DLLs, standalone executable)
2022-11-09 11:54:35 -07:00
5. Install dependencies: `pacman -S mingw-w64-x86_64-{cmake,SDL2,toolchain,qt5-static,libslirp,libarchive}`
2021-02-17 14:45:17 -07:00
6. Compile:
2020-08-16 08:11:28 -06:00
```bash
2022-11-09 11:54:35 -07:00
cmake -B build -DBUILD_STATIC=ON -DCMAKE_PREFIX_PATH=/mingw64/qt5-static
cmake --build build
2020-08-16 08:11:28 -06:00
```
2022-05-21 11:54:55 -06:00
If everything went well, melonDS should now be in the `build` folder.
2020-08-16 08:11:28 -06:00
2022-05-21 11:54:55 -06:00
### macOS
2020-11-29 09:11:33 -07:00
1. Install the [Homebrew Package Manager ](https://brew.sh )
2022-10-17 14:55:11 -06:00
2. Install dependencies: `brew install git pkg-config cmake sdl2 qt@6 libslirp libarchive`
2021-02-17 14:45:17 -07:00
3. Download the melonDS repository and prepare:
2022-05-21 11:54:55 -06:00
```zsh
2022-09-14 11:02:22 -06:00
git clone https://github.com/melonDS-emu/melonDS
2022-05-21 11:54:55 -06:00
cd melonDS
```
2021-02-17 14:45:17 -07:00
4. Compile:
2020-11-29 09:11:33 -07:00
```zsh
2022-05-21 11:54:55 -06:00
cmake -B build -DCMAKE_PREFIX_PATH="$(brew --prefix qt@6);$(brew --prefix libarchive)" -DUSE_QT6=ON
cmake --build build -j$(sysctl -n hw.logicalcpu)
2020-11-29 09:11:33 -07:00
```
2022-05-21 11:54:55 -06:00
If everything went well, melonDS.app should now be in the `build` directory.
#### Self-contained app bundle
If you want an app bundle that can be distributed to other computers without needing to install dependencies through Homebrew, you can additionally run `
../tools/mac-bundle.rb melonDS.app` after the build is completed, or add `-DMACOS_BUNDLE_LIBS=ON` to the first CMake command.
2020-11-29 09:11:33 -07:00
2017-10-21 21:58:02 -06:00
## TODO LIST
2016-12-05 09:08:24 -07:00
2022-03-06 12:16:58 -07:00
* better DSi emulation
* better OpenGL rendering
2022-11-03 13:35:21 -06:00
* netplay
2019-06-12 06:03:06 -06:00
* the impossible quest of pixel-perfect 3D graphics
2018-10-26 13:06:46 -06:00
* support for rendering screens to separate windows
2017-08-29 10:17:44 -06:00
* emulating some fancy addons
2022-03-06 12:16:58 -07:00
* other non-core shit (debugger, graphics viewers, etc)
2018-11-01 00:11:11 -06:00
2022-03-06 12:16:58 -07:00
### TODO LIST FOR LATER (low priority)
2017-02-12 18:07:54 -07:00
2017-03-12 17:45:26 -06:00
* big-endian compatibility (Wii, etc)
* LCD refresh time (used by some games for blending effects)
2017-03-29 14:56:30 -06:00
* any feature you can eventually ask for that isn't outright stupid
2018-11-01 00:11:11 -06:00
2017-10-21 21:58:02 -06:00
## Credits
2017-08-29 10:17:44 -06:00
* Martin for GBAtek, a good piece of documentation
* Cydrak for the extra 3D GPU research
2020-04-14 15:32:47 -06:00
* limittox for the icon
2017-08-29 10:17:44 -06:00
* All of you comrades who have been testing melonDS, reporting issues, suggesting shit, etc
2018-11-01 00:11:11 -06:00
2021-09-30 11:23:25 -06:00
## Licenses
2018-11-01 00:11:11 -06:00
[![GNU GPLv3 Image ](https://www.gnu.org/graphics/gplv3-127x51.png )](http://www.gnu.org/licenses/gpl-3.0.en.html)
melonDS is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
2021-01-26 06:19:32 -07:00
(at your option) any later version.
2021-09-30 11:23:25 -06:00
### External
* Images used in the Input Config Dialog - see `src/frontend/qt_sdl/InputConfig/resources/LICENSE.md`