Giter VIP home page Giter VIP logo

melonds's Introduction

melonDS


DS emulator, sorta

The goal is to do things right and fast, akin to blargSNES (but hopefully better). But also to, you know, have a fun challenge :)


How to use

Firmware boot (not direct boot) requires a BIOS/firmware dump from an original DS or DS Lite. 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.

Possible firmware sizes

  • 128KB: DSi/3DS DS-mode firmware (reduced size due to lacking bootcode)
  • 256KB: regular DS firmware
  • 512KB: iQue DS firmware

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.

As for the rest, the interface should be pretty straightforward. If you have a question, don't hesitate to ask, though!

How to build

Linux

  1. Install dependencies:

    • 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 libzstd-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 libzstd-dev
    • Arch Linux: sudo pacman -S base-devel cmake extra-cmake-modules git libpcap sdl2 qt5-base qt5-multimedia libslirp libarchive zstd
  2. Download the melonDS repository and prepare:

    git clone https://github.com/melonDS-emu/melonDS
    cd melonDS
  3. Compile:

    cmake -B build
    cmake --build build -j$(nproc --all)

Windows

  1. Install MSYS2
  2. Open the MSYS2 MinGW 64-bit terminal
  3. Update the packages using pacman -Syu and reopen the terminal if it asks you to
  4. Install git to clone the repository
    pacman -S git
  5. Download the melonDS repository and prepare:
    git clone https://github.com/melonDS-emu/melonDS
    cd melonDS

Dynamic builds (with DLLs)

  1. Install dependencies: pacman -S mingw-w64-x86_64-{cmake,SDL2,toolchain,qt5-base,qt5-svg,qt5-multimedia,qt5-tools,libslirp,libarchive,zstd}
  2. Compile:
    cmake -B build
    cmake --build build
    cd build
    ../tools/msys-dist.sh

If everything went well, melonDS and the libraries it needs should now be in the dist folder.

Static builds (without DLLs, standalone executable)

  1. Install dependencies: pacman -S mingw-w64-x86_64-{cmake,SDL2,toolchain,qt5-static,libslirp,libarchive,zstd}
  2. Compile:
    cmake -B build -DBUILD_STATIC=ON -DCMAKE_PREFIX_PATH=/mingw64/qt5-static
    cmake --build build

If everything went well, melonDS should now be in the build folder.

macOS

  1. Install the Homebrew Package Manager
  2. Install dependencies: brew install git pkg-config cmake sdl2 qt@6 libslirp libarchive zstd
  3. Download the melonDS repository and prepare:
    git clone https://github.com/melonDS-emu/melonDS
    cd melonDS
  4. Compile:
    cmake -B build -DCMAKE_PREFIX_PATH="$(brew --prefix qt@6);$(brew --prefix libarchive)" -DUSE_QT6=ON
    cmake --build build -j$(sysctl -n hw.logicalcpu)

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.

TODO LIST

  • better DSi emulation
  • better OpenGL rendering
  • netplay
  • the impossible quest of pixel-perfect 3D graphics
  • support for rendering screens to separate windows
  • emulating some fancy addons
  • other non-core shit (debugger, graphics viewers, etc)

TODO LIST FOR LATER (low priority)

  • big-endian compatibility (Wii, etc)
  • LCD refresh time (used by some games for blending effects)
  • any feature you can eventually ask for that isn't outright stupid

Credits

  • Martin for GBAtek, a good piece of documentation
  • Cydrak for the extra 3D GPU research
  • limittox for the icon
  • All of you comrades who have been testing melonDS, reporting issues, suggesting shit, etc

Licenses

GNU GPLv3 Image

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 (at your option) any later version.

External

  • Images used in the Input Config Dialog - see src/frontend/qt_sdl/InputConfig/resources/LICENSE.md

melonds's People

Contributors

2jun0 avatar abcdjdj avatar ace4896 avatar aqueminivan avatar arisotura avatar asiekierka avatar bentley avatar desperateprogrammer avatar dirbaio avatar flipflop97 avatar fuel-pcbox avatar gal20 avatar i404788 avatar jaklyy avatar jessetg avatar nadia-h avatar nadiaholmquist avatar orbea avatar patataofcourse avatar pedrovelho avatar porocyon avatar rayyanansari avatar rsduck avatar rzumer avatar superusercode avatar suuperw avatar swordfish90 avatar v1993 avatar zapeth avatar zettymaster avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

melonds's Issues

MelonDS crashes immediately

Hello! When I run melonDS, it gets as far as
"melonDS 0.1
http://melonds.kuribo64.net/"
before it crashes. The VS2017 debugger says "Unhandled exception at 0x0000000068136764 (wxmsw310u_core_gcc510TDM_x64.dll) in melonDS.exe: 0xC00000FD: Stack overflow (parameters: 0x0000000000000001, 0x0000000000033FF8)."
I am using Windows 7 x64, Codeblocks, wxWidgets 3.1.0, and MinGW64 from MSYS2. I am a novice so there is a very good chance that I messed something up somewhere along the way. Any help would be appreciated! :)

[feature request] Auto-region patching

Basically, automatically patching 0x1D in the cart header to 0x00. This means that iQue DS games (0x80) get past the "Only for iQue DS" screen.
Note that while Korean games have this set to 0x40, no region-locking seems to be present,

Moero! Nekketsu Rhythm Damashii - Osu! Tatakae! Ouendan 2 - Map Screen Broken

On MelonDS 0.3 (testing on Arch Linux x64), the map screen in "Moero! Nekketsu Rhythm Damashii - Osu! Tatakae! Ouendan 2" is heavily broken with only parts of what should be being displayed, including missing 3D elements and sprites.

Correct Map
(taken from Desmume due to an inability to capture from actual DS):
ouendan 2 - correct map

MelonDS 0.3's Broken Map (different top screen is due to slightly more save progress in MelonDS):
ouendan 2 - melonds 0 3 incorrect map 1
ouendan 2 - melonds 0 3 incorrect map 2

Offering free hardware for development

Since I could not find an email address I am just posting here.

I have a working ds wifi module, broken supercard lite and ds slot1 slot that I cant use and am wondering if you want them, they are free but you would have to pay for shipping.
I also have a ds lite top and bottom screen that I am willing to send if you want them.

I would like to use these part but dont have the tools or patience to and would rather have them not go to waste.

If you would like to respond privately my email is [email protected]
Replace the flea with a g.(to protect against scraper bots)

Petz Catz Clan (USA)

In Petz Catz Clan (USA) the cats don't always know where the ground starts. They can sink so far down that they're completly invisible, other times they just don't seem to have legs.

ndscatz

Pokemon Mystery Dungeon - Explorers of Time/Darkness/Sky (U) - black screen after the opening cutscene

First of all: thank you for making a really good DS emulator!

And second: Pokemon Mystery Dungeon - Explorers series (all 3 of them) produce a black screen after the opening cutscene / movie on MelonDS 0.3. Everything before that appears perfect (no video, sound glitches). The game is unplayable because of this. Getting a save file also doesn't help.

I've attached a log file for you to check out.
log.txt

Mario Kart

So is wifi going to be searched automatic or need manual setup :O

libretro port

Not what you're thinking!
Are you ok with us attempting a libretro core early on?
I have it working already

screenshot 2017-02-07 23 06 05

It's my first attempt at a core but I figure having it early would be good if it suits your future plans

melonDS Cannot Map D-Pad on Controllers where it is registered as an "Axis"

When trying out melonDS (v0.1, on Arch Linux 64-bit, using the precompiled binaries on the site), my preferred controller for this kind of system, the iBuffalo USB Classic (a replica SNES controller) cannot have its d-pad mapped as melonDS doesn't detect it. My DualShock 3 does work for this. The difference seems to be the D-Pad on the Dual Shock shows up as buttons to the program, while going by the configuration in other emulators the iBuffalo shows up as "Axis 1 +/-" and "Axis 0 +/-" for the D-Pad.

For macOS ??

Good job on this new emulator but what about macOS ? Is there source to compile it for macOS ? I would like to test it, thanks.

MelonDS with a hi-res 3D rendering

Is it possible for MelonDS top get a high-res 3D rendering option in the future, kinda like DraStic's own high resolution rendering?

I know what you're thinking: the images in here are subpar, considering that these images were posted a year ago. For all I know, this is still a WIP, but I'm pretty sure it has improved over time.

But again, is it still possible for you to make this option in the far future?

Fighting Fantasy: The Warlock of Firetop Mountain

This game has some issues where parts of the level don't render when looking at them at certain angles. I don't know how to describe it well. For example, load up the game and get into the corner by the stairs then look around. This doesn't happen on real hardware.
untitled

Tested on melonDS 0.2, compared against real hardware.

Homie Rollerz (USA) missing 3d model on character select screen

using MelonDS 0.2
On the racer selection screen, the top screen should show the selected racer (3d model)
but there is nothing
homiez

I must also say i am very impress with the emulator at this stage
it is emulating games like
Army Men - Soldiers of Misfortune (USA)
Winter Sports 2009 - The Next Challenge (Europe) (En,Fr,De,Es,It)
My Puppy Shop (Europe) (En,Fr,De,Es,It,Nl,Sv,Da)
New Touch Party Game (Europe)
which no other emulator can run properly yet
good work

What about macOS?

I will be happy to compile it and share it with your download for macOS user. Where can I download it and compile it ? Thanks.

Orcs & Elves

  1. Most objects aren't visible when they should be. They'll appear and disappear as you move around. The game uses box tests to determine whether to show objects, so it may be an issue with your box test code.
  2. The health remaining number is behind the health meter(heart on lower right side of the top screen) when it should be on top
  3. Some text renders incorrectly, see:
    untitled

Tested on melonDS 0.2, compared against real hardware.

Dancing With The Stars: We Dance - Unknown EEPROM save command

Dancing With The Stars: We Dance, is being detected as EEPROM 64k and then giving an unknown EEPROM save command 0B. This save type basically corresponds to ADVANsCEne's offline list (Eeprom - 4 kbit). This was earlier reported in the comments in #29.

Full log:

ARM9 BIOS loaded
ARM7 BIOS loaded
FW: WIFI CRC16 = GOOD
FW: AP1 CRC16 = GOOD
FW: AP2 CRC16 = GOOD
FW: AP3 CRC16 = GOOD
FW: USER0 CRC16 = GOOD
FW: USER1 CRC16 = GOOD
ARM9: offset=00004000 entry=02000800 RAM=02000000 size=00091838
ARM7: offset=00095A00 entry=02380000 RAM=02380000 size=00026F28
DTCM disabled
ITCM disabled
DTCM [0300000A] enabled at 03000000, size 4000
ITCM [00000020] enabled at 00000000, size 2000000
Re-encrypting cart secure area
Save file: 3159 - Dancing with the Stars - We Dance! (U)(Sir VG).sav
DTCM disabled
ITCM disabled
unknown CP15 write op 600 04000033
unknown CP15 write op 610 0200002D
unknown CP15 write op 620 027E0021
unknown CP15 write op 630 08000035
unknown CP15 write op 640 027E001B
unknown CP15 write op 650 0100002F
unknown CP15 write op 660 FFFF001D
unknown CP15 write op 670 027FF017
ITCM disabled
DTCM disabled
unknown CP15 write op 201 00000042
unknown CP15 write op 200 00000042
unknown CP15 write op 300 00000002
unknown CP15 write op 503 05100011
unknown CP15 write op 502 15111011
DTCM [027E000A] enabled at 027E0000, size 4000
ITCM [00000020] enabled at 00000000, size 2000000
unknown CP15 write op 610 0200002B
unknown CP15 write op 620 023E0021
unknown arm7 read16 08000004 038063C4
unknown CP15 read op 502
unknown CP15 write op 502 00005000
unknown ARM7 IO write16 04000206 0030
WIFI IE=0000
unknown ARM9 IO write32 04001060 00000000
unknown ARM9 IO write32 04001064 00000000
unknown ARM9 IO write32 04001068 00000000
unknown ARM9 IO write32 0400106C 00000000
unknown save SPI command 01 00000000
discover: type=2 likeliness=2
Save memory type: EEPROM 64k
unknown EEPROM save command 0B

Zubo (EUR) can't move around at all

You can't move in Zubo (EUR). The character is supposed to move to where the touchscreen is clicked, but it just turns in that direction and doesn't actually move. The console is spammed with "!! PROJ MATRIX STACK UNDERFLOW" followed by "unknown GPU read16 04001010" and "unknown GPU read16 04001012".

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.