Views: 8,303,299 Homepage | Main | Rules/FAQ | Memberlist | Active users | Last posts | Calendar | Stats | Online users | Search 07-18-24 06:16 PM

0 users reading melonDS 0.1 | 1 bot

Main - Releases - melonDS 0.1 Hide post layouts | New reply

Pages: 1 2
Posted on 03-30-17 02:24 AM (rev. 2 of 03-30-17 02:44 AM) Link | #2
There's a new DS emulator in the town, and it's finally seeing its first public release!

melonDS is part of a second wave of DS emulators. There are a few other emulator projects that are part of it, which you might have already heard of. Either way, check them out!

Why start this project? Mostly for the sake of the challenge, but also because I believe the DS emulation scene needs some fresh air. The NO$GBA author is working hard to reverse-engineer, document and emulate the DSi, but aside from that, there isn't a lot of progress regarding the DS, and I feel that there are still things to be done.

So, without further ado, let's relive 2007! :P

melonDS 0.1

[image] [image] [image]


* almost-complete 2D graphics
* 3D graphics (software renderer) with texturing, alphablending, lighting
* input: keyboard and joystick, touchscreen
* backup memory
* booting from the BIOS
* resizable video output window, preserving aspect ratio of individual screens

How to use

melonDS requires BIOS/firmware dumps from a DS. You can dump them with the following dumper.

The files must be placed in the same directory as the melonDS executable, as follows:

* bios7.bin -- ARM7 BIOS, 16KB
* bios9.bin -- ARM9 BIOS, 4KB
* firmware.bin -- firmware, 256KB or 512KB

Note: the DS-mode firmware in the 3DS isn't bootable. It only contains the bare minimum required to run DS games. Be sure to enable direct game boot when using a firmware dump from a 3DS.


Emulation: settings related to emulation. For now it lets you enable direct game boot (directly runs the game instead of going through the firmware).

Input: allows you to configure keyboard and joystick input. You can change a mapping by clicking the corresponding entry, then pressing a keyboard key or joystick button. For now, joystick input uses the first joystick available if multiple joysticks are plugged.


* Windows 64-bit
* Linux 64-bit

Have fun! :D


Posted on 03-30-17 03:12 AM Link | #5
Hey, congrats on the first release! Just downloaded and will be playing around with some random games to see how it performs.

I'm wondering, from your perspective, if there is anything you'd like tested in particular? Are you looking for bug reports or is it too early for that? Just interested in helping development if I'm able :)

Posted on 03-30-17 03:13 AM Link | #7
Any feedback is welcome! Just test whatever you like and let me know.


Posted on 03-30-17 03:25 AM Link | #8
Splendid! congrats on your first release!

I am going to give this a try if you don't mind :)

Although, if I detect any problems on melonds, I'll let you know. Other than that, keep up the good work :)

Posted on 03-30-17 03:47 AM Link | #9
Alrighty, first feedback incoming.

  • Sonic Rush - Playable. Didn't notice any problems except the framerate doesn't seem 100% stable. Part of that is the lack of vsync though. It's too early to really rate performance/smoothness without vsync I think. There needs to be a 'gap' setting between the 2 screens or they don't line up correctly.
  • Meteos - Playable.
  • Megaman ZX - Loads, shows developer logos then hangs on black screen
  • Metroid Prime Pinball - Playable. Needs screen gap as I mentioned above.
  • Kirby Canvas Curse - Playable
  • Trace Memory - Playable.
  • Front Mission 1 - Playable. Shows 50 fps, most other games show near 60fps. Can't verify if performance is actually bad because the game doesn't really have fast scrolling.
  • Zelda Phantom Hourglass - Playable
  • Castlevania Dawn of Sorrow - Playable. Text corruption during intro. Runs very slow (30-40fps)

Generally speaking, it would be nice to have .zip support. I loaded up my zip files in the file browser (though it might work?) and MelonDS just crashes without letting you know it can't accept zips.

When you pause, it stretches the game windows to the entire window size regardless of DS aspect ratio.

Testing on Win 7 64-bit, i5-3570k + R9 290.

Posted on 03-30-17 05:26 AM Link | #10
On (a very heavily hacked-up) Ubuntu 14.04, I got the following error when running the binary:

./melonDS: relocation error: ./melonDS: symbol _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_createERmm, version GLIBCXX_3.4.21 not defined in file with link time reference

This sort of thing is easily solved if I were to just build the program from source myself, but I'm not going to bother with CodeBlocks today at least (I think something about potentially adopting CMake was mentioned? That would be very nice...)

At any rate, congrats on the first release! Looking forward to further development.

Posted on 03-30-17 06:07 AM (rev. 2 of 03-30-17 06:08 AM) Link | #11
Ah shoot, I cannot setup it up because it requires the Micro SD card. I already possess a 64GB one, but it's not compatible at all.

Fuck. :/

Posted on 03-30-17 06:11 AM Link | #12
...What would you need a microSD card for?

Posted on 03-30-17 08:48 AM (rev. 4 of 03-30-17 08:50 AM) Link | #13
Ok just did a few games on this. Outside of all games having no sound cause i'm guessing that's not implemented yet, here's the results from the games i got:

101 in 1 - Explosive Megamix: Playable. All games seem to run fine.
LEGO Harry Potter Years 5-7: Doesn't work. White screen. I'll be calling it the "WSOD" for the emulator, since this is usually a sign that the game 100% doesn't want to run for me.
Nanashi no Game ME: Playable. There's some missing graphics and without a flip ability, playing the walking parts sideways is a pain.
Super Scribblenauts: Doesn't work. WSOD.
Tony Hawk's Motion: Now this one is weird. It doesn't work too, but usually i get a WSOD if it doesn't work. I also usually get 60fps to 45fps on all games. However, Tony Hawk's Motion is dead-on 35fps. It also dies on a black screen and shows a HUGE mess of unknown BIO and CPU stuff, among other things. Might be to do with no Motion Pack installed with it, but it's definitely not working either way.
Twilight Syndrome: Outside of a small few graphical glitches, this is playable.

Posted on 03-30-17 10:41 AM (rev. 3 of 03-31-17 11:06 AM) Link | #14
ran the emulator on an Intel Celeron N2940 & BayTrail graphics, here we go.

Age of Empires - Age of Kings (US) - Playable
Are You Smarter than a 5th Grader (US) - Too Slow, Unplayable.
Bejeweled 3 (US) - White Screen
Cars (US) - Black Screen
Jump! Ultimate Stars (JP) - The FMV opening definitely slowed down the emulation, In-Game, it's playable.
Elite Beat Agents (US) - Menus are smooth, but gameplay slow. Without any sound, this game is imperfect.
Taiko no Tatsujin DS - Touch de Dokodon! (JP) - Menus Slow, In-Game runs okay-ish. Same status as Elite Beat Agents.

Posted on 03-30-17 11:46 AM Link | #16
Posted by Dawn
On (a very heavily hacked-up) Ubuntu 14.04, I got the following error when running the binary:

./melonDS: relocation error: ./melonDS: symbol _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_createERmm, version GLIBCXX_3.4.21 not defined in file with link time reference

This sort of thing is easily solved if I were to just build the program from source myself, but I'm not going to bother with CodeBlocks today at least (I think something about potentially adopting CMake was mentioned? That would be very nice...)

At any rate, congrats on the first release! Looking forward to further development.

Actually, you don't use CodeBlocks under Linux. See this thread.

I tried setting up the CodeBlocks project to also work under Linux, but didn't finish. CodeBlocks is flaky as hell under Ubuntu. Toolbars fail to redraw after a while, the build options dialog just completely freezes if there's an option it doesn't like...

Regardless, thank you guys for the feedback!


Posted on 03-30-17 01:27 PM Link | #17
Hello! Good job on this emulator so far! I've tried a couple of my games on an i5 460M + ATI Mobility RadeonHD 5470:

Beat City: Needs sound to play, but the graphics are better than DeSmuMe. A black, diagonal line shows up between scene transitions.
Big Brain Academy: Works well, but the menu and timer countdown seem to be a bit slow.
Custom Robo Arena: Works well, but the startup is definently slower.
Daniel X The Ultimate Power: White screen.
Indiana Jones and The Staff of Kings: Says "The data could not be written. Turn power OFF and remove and reinsert the DS Card." at strartup.
Super Scribblenauts: White screen.

Hope this helps, and best of luck to you! :)

Posted on 03-30-17 07:13 PM Link | #18
OK, tweaking the compile command you gave a bit I got melonDS building on my system.

It's worth noting that SDL_PIXELFORMAT_RGBA32 (found in src/wx/main.cpp) only exists on SDL 2.0.5 (which is the latest version at this time), so you will need to update your SDL2 installation to the latest version if it isn't already when building melonDS.

When the ARM7/ARM9 BIOS files aren't found, the program segfaults.
As a bare minimum, I would call exit(EXIT_FAILURE) after printing the error about not finding the files rather than just letting the program truck along until it inevitably crashes into a wall. In the long term, you'll want to provide a GUI message for people who aren't running their programs from a terminal window, of course...

Tried playing Pokemon Platinum (US) for kicks, got a ton of "unknown arm7 read32" messages followed by a few "undefined ARM7 instruction"s and finally Halt() and "bad MRC opcode p14,2,15,7 on ARM7".
Also tried playing Jump Ultimate Stars (J), but also got a ton of "unknown arm7 read32" msgs followed by some "undefined ARM7 instruction"s and a Halt() (but no "bad MRC opcode" whatnot)

Those are the only two games I've backed up using my 3DS at the moment, I should back up some more so I can test some more games (and at least get something to actually run lol)

Input configuration works excellently thanks to your use of SDL2!
Many emulators have really crummy input configuration so I'm very glad to see you using SDL2 here.
It's worth noting that on Linux, there are two systems for joystick configuration- "joydev" and "evdev".
SDL1 supported using both systems under the hood, but SDL2 exclusively uses the newer system, "evdev" (which should be perfectly fine).
SDL2 has a GameController API that is built on top of the more raw Joystick API, and the Joystick API is what abstracts away evdev from you when targetting Linux as a platform.
I haven't poked my head in your code to see what you're doing for input yet, but it's probably worth taking some time to look at the SDL2 wiki to learn more about its input API (because when used effectively, it's the best cross-platform input API there is out there).

It's also worth noting that Dolphin (which one might consider a shining example for other emulators to follow), uses evdev directly when running on Linux, if I recall correctly.
Honestly though, your use of SDL2's input API will do just as well, if not better.

Finally, for the context menus or whatever they're called (File, System, Settings), it's a bit annoying when you can't use a shortcut like "Alt+F" to select one of those menus.
There ought to be some way of configuring those shortcuts in wxWidgets, but I haven't used the library myself so I don't know exactly how you'd go about it.
Something around here, maybe...

OK, that's all I've got for now.

Posted on 03-30-17 07:49 PM (rev. 4 of 03-30-17 07:56 PM) Link | #19
I had made a simple SDL frontend for melonDS before the wxWidgets UI where I used the SDL2 GasmeController API for controller input.

The GameController API is a good idea but it does have some problems that would make it a bad idea to use for something like melonDS, or at least without a way to manually map the controller too.

- The mappings generally have the A button as the bottom one instead of the right like on the DS, just swapping the mappings works most of the time, but for some controllers (like the Wii U Pro controller), you'll end up with BAYX mapped incorrectly
- Some controllers are not supported, like the DualShock 4 v2 when on Linux 4.10 with the proper driver for it
- Making custom mappings is a pain and I have no idea how to actually make them work

Another thing that could be nice in the UI would be to swap the positions of the OK/Cancel buttons in dialog boxes when using GTK so the buttons are where the user would expect.

Posted on 03-30-17 08:09 PM Link | #20
Second batch of compatibility feedback:
  • Advance Wars Dual Strike - Playable. Poor framerate during overhead map sections. Battle sections have good framerate.
  • Metroid Prime Hunters - Unplayable. Game loads ok but after choosing a save slot, the game hangs with the in-game error "The data could not be read. Please turn off the power and reinsert the game card". So some problem with save files I guess?
  • Yoshi's Island DS - Playable
  • Castlevania Portrait of Ruin - Playable. Framerate seems very dependent on background content (simple backgrounds = 60fps)
  • Diddy Kong Racing - Playable
  • Hotel Dusk Room 215: Playable. Obviously needs screen rotation to play comfortably. Weird green flashing during intro.
  • Lunar Knights - Playable. Overhead map doesn't look correct, is lacking background. Dialogs in town lack character sprites. Actual isometric gameplay looks and runs ok though.

Posted on 03-31-17 05:37 AM (rev. 3 of 04-01-17 04:55 PM) Link | #21
You've done really nice on this emulator so far, especially for a v0.1 release.

Obviously, there are a number of errors that need to be fixed for a v1.0 release, and some additions to get a better base for a DS Emulator, which, most notable, would be sound.

Anyway, I've attempted to play two games on melonDS, and here are some of my results:
  • Kirby Super Star Ultra (US): Playable. The framerate is very low (average around 10 frames per second) during the startup, (where the game checks for save data), but other than that, the game runs relatively fine.
  • Super Mario 64 DS (US): Playable. There are a few graphical issues (i.e. shadows, textboxes, etc.), but other than that, the game runs at around 45 fps.

Regardless, I will try out more games on v0.1, and I wish you well for the rest of your project.

Posted on 03-31-17 11:26 AM (rev. 2 of 03-31-17 11:26 AM) Link | #22
yet another compatibility update

Clubhouse Games (US) - Playable, but slow. (15fps menus, 20fps ingame)
Contact (EU) - It's slow, but looks like it can be playable (15fps all round)
Guilty Gear Dust Strikers (US) - Playable. (40fps menus, 30fps ingame)
Space Invaders Revolution (US) - Playable on both versions. (30fps menus, 30fps Classic ver., 38fps New Age ver.)

Posted on 04-01-17 04:53 PM (rev. 4 of 04-02-17 10:51 PM) Link | #25
Compatibility update.

I tried out some puzzle games to see if they worked out well.

  • Tetris DS: The game seems to run flawlessly. Almost a constant 60fps, and I haven't seen any graphical errors whatsoever.
  • Picross 3D: Playable. At first, the game seems to run flawlessly, until you get into the actual game. There are models that should normally be white, or another colour, however, they appear transparent in melonDS. It runs almost at a constant 60fps like Tetris DS, so, thumbs up for that. However, anti-aliasing, and sprites do not work either.
  • Soul Bubbles: Unplayable. The game does not display any sort of 3D model, texture, or sprite. If you click where the bottom screen should be displayed, the game's framerate drops from a near constant 60fps, to around 30fps.

Next time, I might try testing some sprite heavy games. I'll most likely test out and give feedback on the Ace Attorney series.


Posted on 04-01-17 10:37 PM (rev. 3 of 04-01-17 10:59 PM) Link | #26
Ace Attorney Compatibility Test:

As promised, I tested the Ace Attorney series on melonDS. Here are my observations:
  • Phoenix Wright: Ace Attorney: Flawless. I see no points of failure. The game runs at an almost solid 60fps, all the time. No graphical errors, nothing. Even the intro to Case 5 has no flaws, and I'm certain it uses 3d models.
  • Phoenix Wright: Ace Attorney: Justice for All: Flawless. All the same as PW:AA, this game has no graphical errors, and stays at a near 60fps all the time.
  • Phoenix Wright: Ace Attorney: Trials & Tribulations: Once again, flawless. Like the previous two games, there are no graphical errors, and is at a near 60fps all the time.
  • Apollo Justice: Ace Attorney: Yet again, flawless. Everything is the exact same in terms of compatibility, as the previous three games.
  • Ace Attorney Investigations: Miles Edgeworth: ANOTHER flawless. Nothing wrong. Almost solid 60fps at all times, no graphical errors, nothin'.

This is probably the biggest flawless streak you're gonna see for melonDS.

Anyway, I might do one more testing session for the day, and find out more compatible & non-compatible games.

What would my next genre/series be? I'm unsure. I think I might do more platformers next.

'Till next time.

Posted on 04-03-17 09:15 AM Link | #34
Oh boy I just read the release update.

here's a quick test run of Chrono Trigger:

- average ~55fps, totally unnoticeable in a low-res sprite game, feels silky smooth

- controls are tight and responsive, no discernible delay at all.

- white flash on both screens when fading into character naming menu

- Crono lingers on the floor a little too long after colliding with Marle in cutscene at the millennial fair.

- Marle spins around on the teleporter for way too long during cutscene at the teleporter.

- The "gates" fail to show during the same cutscene, Crono flashes instead of having a gradient-like effect. This is the only thing that seemed starkly wrong.

- Mode7 renders correctly during time travel scene.


- Enemies successfully disintegrate when killed

- Correct outline on characters when given status effects (or at least, white for slow).

- Saving worked, nothing seemed wrong after loading.

If it wasn't for the Gate and I didn't know this game through and through, this would have seemed flawless. Already better than the PS1 version of this game.

Pages: 1 2

Main - Releases - melonDS 0.1 Hide post layouts | New reply

Page rendered in 0.074 seconds. (2048KB of memory used)
MySQL - queries: 30, rows: 117/117, time: 0.029 seconds.
[powered by Acmlm] Acmlmboard 2.064 (2018-07-20)
© 2005-2008 Acmlm, Xkeeper, blackhole89 et al.