Homebrew RELEASE melonDS for Switch — continuation

Danethos86

Well-Known Member
Newcomer
Joined
Jan 5, 2019
Messages
82
Trophies
0
Age
38
XP
157
Country
United States
Hi guys
Do pokemon/pokemon romhack work well with this emulator?
Wanted to play nds romhack with the announce of pokemon remakes
Thanks
Well i played hack of soul silver and worked fine for me dunno about other hacks.
one flaw is the app shows name game id name ans not file name.

I put each hack in their own sub folders and shows name hack i want to play.
 
Last edited by Danethos86,

Juanaugusto

Member
Newcomer
Joined
Feb 18, 2021
Messages
14
Trophies
0
Age
39
XP
129
Country
Peru
when i enable jit recompiler the app closes and a message appears that says an error has ocurred, i´m playing with sxos, please check the compatibility with sxos, thank you so much
 

Zukov

Dinosaur
Member
Joined
Oct 2, 2016
Messages
324
Trophies
0
Age
38
XP
908
Country
Chile
when i enable jit recompiler the app closes and a message appears that says an error has ocurred, i´m playing with sxos, please check the compatibility with sxos, thank you so much
On the first page it says: Atmosphere title replacement to launch the hbmenu is the only supported method of running melonDS!
If you don't know what that means: press R while starting any game from the Switch's main menu to enter the hbmenu, don't use the album!
 
  • Like
Reactions: pinbi7 and bonoboy

notimp

Well-Known Member
Member
Joined
Sep 18, 2007
Messages
5,779
Trophies
1
XP
4,420
Country
Laos
Feedback on two points.

I'm on an older version of atmosphere/an older switch firmware, and launching takes 80+ seconds on a black screen. Melonds still launches and then works as expected though. (Just for people that might benefit from someone stating this in here -) edit: Rebooted and deleted the melonds folder in root (left over from the old version), and now it launches instantly. Issue solved.

In single screen mode (top screen only), the mouse pointer icon (hand) does not vanish when switching to the top screen, and can not be moved on the top screen (moving it on the second screen is possible). Also it can not be moved 'out of screen' - so it stays on screen always.

Other screen modes dont have that issue.
 
Last edited by notimp,

catlover007

Developer
OP
Developer
Joined
Oct 23, 2015
Messages
721
Trophies
1
XP
3,925
Country
Germany
In single screen mode (top screen only), the mouse pointer icon (hand) does not vanish when switching to the top screen, and can not be moved on the top screen (moving it on the second screen is possible). Also it can not be moved 'out of screen' - so it stays on screen always.
I thought I fixed that issue with release 5 fix 1
EDIT: nevermind, that was a similar but different issue
 
Last edited by catlover007,

Danethos86

Well-Known Member
Newcomer
Joined
Jan 5, 2019
Messages
82
Trophies
0
Age
38
XP
157
Country
United States
perfect melon ds gameplay im astounded.
all left is the menu tweaks in future.
there a few suggestions that melon ds could benefit from.

major stuff people may want.
1.cheats menu this would be beneficial one day soon.
2.save states one day i hope.
3. bit more or better touch screen support joycon.
minor stuff that preference tweaks.
1. hotkey for limit frame rate on off maybe l joypad l3?
2. files name option instead id.
(if using hack of a games it shows multiple same id so cant see which hack is which.)
3. split even full screen left right option. for people who wanna make full use of the switch screen. or bit more screen option support.
4 maybe some future menu tweaks for those who wanna try other stuff.
 
Last edited by Danethos86,

blinky87

Well-Known Member
Newcomer
Joined
Jan 15, 2014
Messages
62
Trophies
0
Age
52
XP
192
Country
United States
Trying to play Contra 4. I got to one point on the 1st level and had to jump up to the 'second' ds screen and couldn't get anywhere.

Is there something I am missing? First time trying this emulator.

Using Global Rotation option and Flip Grip.


*Edit* Lol, figured it out. Pro Tip - Don't try a new game after beer. :grog:

Nice emulator!
 
Last edited by blinky87,
  • Like
Reactions: sorabora

The Official GMan

Well-Known Member
Newcomer
Joined
Jan 16, 2016
Messages
48
Trophies
0
XP
339
Country
United States
@catlover007 I've been messing around with the various forks and version of MelonDS.
I've found that your fork RSDuck/melonDS switch-new branch has broken openGL renderer (distorted image and colors)

the master branch of Arisotura/melonDS works fine for me. any ideas?

I'm running on nintendo switch with ubuntu.
(builds made with gcc and g++ 10 to get the latest arm_neon.h)
 
Last edited by The Official GMan,

The Official GMan

Well-Known Member
Newcomer
Joined
Jan 16, 2016
Messages
48
Trophies
0
XP
339
Country
United States
alright I found the bugs in GPU3D.cpp and GPU.cpp

GPU3D.cpp should read like this at line 695

#ifdef NEONSOFTGPU_ENABLED
void MatrixMult4x4(s32* m, s32* s);
void MatrixMult4x3(s32* m, s32* s);
void MatrixMult3x3(s32* m, s32* s);
void MatrixScale(s32* m, s32* s);
void MatrixTranslate(s32* m, s32* s);
#else
void MatrixMult4x4(s32* m, s32* s)

GPU.cpp should read like this at line 153

#ifdef NEONSOFTGPU_ENABLED
GPU2D_A = std::make_unique<GPU2D_NeonSoft>(0);
GPU2D_B = std::make_unique<GPU2D_NeonSoft>(1);
#else
GPU2D_A = std::make_unique<GPU2D_Soft>(0);
GPU2D_B = std::make_unique<GPU2D_Soft>(1);
#endif

this fixes being able compile with and without neon enabled
but it seems that with neon enabled, the opengl renderer bug is present and without neon, the opnegl renderer bug is not present

software rendering for the 3d renderer works fine on both
 
Last edited by The Official GMan,

catlover007

Developer
OP
Developer
Joined
Oct 23, 2015
Messages
721
Trophies
1
XP
3,925
Country
Germany
alright I found the bugs in GPU3D.cpp and GPU.cpp

GPU3D.cpp should read like this at line 695

#ifdef NEONSOFTGPU_ENABLED
void MatrixMult4x4(s32* m, s32* s);
void MatrixMult4x3(s32* m, s32* s);
void MatrixMult3x3(s32* m, s32* s);
void MatrixScale(s32* m, s32* s);
void MatrixTranslate(s32* m, s32* s);
#else
void MatrixMult4x4(s32* m, s32* s)

GPU.cpp should read like this at line 153

#ifdef NEONSOFTGPU_ENABLED
GPU2D_A = std::make_unique<GPU2D_NeonSoft>(0);
GPU2D_B = std::make_unique<GPU2D_NeonSoft>(1);
#else
GPU2D_A = std::make_unique<GPU2D_Soft>(0);
GPU2D_B = std::make_unique<GPU2D_Soft>(1);
#endif

this fixes being able compile with and without neon enabled
but it seems that with neon enabled, the opengl renderer bug is present and without neon, the opnegl renderer bug is not present

software rendering for the 3d renderer works fine on both
don't mess with my WIP stuff, what's currently on Github is a snapshot from ages ago. Also the OpenGL branch intentionally doesn't work (Switch isn't fit for it).
 
  • Like
Reactions: HinaNaru Cutie

The Official GMan

Well-Known Member
Newcomer
Joined
Jan 16, 2016
Messages
48
Trophies
0
XP
339
Country
United States
don't mess with my WIP stuff, what's currently on Github is a snapshot from ages ago. Also the OpenGL branch intentionally doesn't work (Switch isn't fit for it).
oh my bad
sorry thought it was relatively up to date since it was last pushed Feb 12th

anyway, it works great otherwise once neon actually gets enabled properly
 

Juicex3

Active Member
Newcomer
Joined
Mar 9, 2021
Messages
27
Trophies
0
Age
27
XP
56
Country
Germany
This emulator is awesome . I get stable framerates at 1000mhz!

features that me must added is:

show fps on display
Fast forward function trough button
 
Last edited by Juicex3,

SeongGino

The Average One
Member
Joined
May 20, 2015
Messages
939
Trophies
0
Age
25
Location
Jersey, Jersey
Website
www.twitter.com
XP
1,932
Country
United States
Looks like Rockman.EXE Operate Shooting Star (and likely MMBN5 DS) has a small error on Switch. Sprites that are meant to fade-in instead pop into existence.

Left/Top is MelonDS Switch, Right/Bottom is MelonDS Windows
ZghwT8u.gif
AA9yPdM.gif




Also affects MegaMan Battle Network 5 DS, albeit harder to spot. The mosaic effect is emulated fine, but the accompanying fade-in isn't. Operation Star Force is just easier to notice.

Left/Top is MelonDS Switch, Right/Bottom is MelonDS Windows
hjJBlC9.gif
bYmNgAZ.gif


Sidenote: MMBN5's intro also shows some performance drops at stock (1GHz) clocks - it even starts crashing six seconds in at a transition point with JIT enabled! That is, at the default/maximum block size; JIT block size of 16 not only runs fine, but seems to drop less frames in the same sequence when compared to sizes of 18 or 24.
 
Last edited by SeongGino,
  • Like
Reactions: sorabora

Juanaugusto

Member
Newcomer
Joined
Feb 18, 2021
Messages
14
Trophies
0
Age
39
XP
129
Country
Peru
On the first page it says: Atmosphere title replacement to launch the hbmenu is the only supported method of running melonDS!
If you don't know what that means: press R while starting any game from the Switch's main menu to enter the hbmenu, don't use the album!
Muchas gracias amigo por tu respuesta, yo nunca habro el melonds desde el album, hice un forwarder nsp justamente para abrir el emulador con toda la potencia de la switch y cuando activo jit recompiler causa error me parece que es porque no es compatible con sxos porque si no pongo el overclock los juego funcionan lagueadisimos o sino simplemente no funciona
 

HinaNaru Cutie

Well-Known Member
Member
Joined
Aug 29, 2014
Messages
728
Trophies
1
Age
33
Location
idk anymore..I feel like traveling lol
XP
1,768
Country
Australia
melonDS is a Nintendo DS emulator mainly developed by Arisotura (@StapleButter). It was first ported to the Switch by @Hydr8gon. I'm responsible for several optimisations and the current port. Depending mostly on whether a game utilises the 3D hardware of the DS a lot of games already reach fullspeed without overclocking.

The last few releases of my continuation where done in Hydr8gon's thread which quickly resulted in a lot of confusion.

Setup


For those coming from older versions of my port, using the /melonds directory located at the sd card root is still possible.

Atmosphere title replacement to launch the hbmenu is the only supported method of running melonDS!
If you don't know what that means: press R while starting any game from the Switch's main menu to enter the hbmenu, don't use the album!

  • Download the latest release from here: https://github.com/RSDuck/melonDS/releases
  • Extract the release onto your sd card, so that there's /switch/melonds folder melonds.nro and some other files inside it.
  • NAND, BIOS and firmware files go into /switch/melonds as well
  • ROM files can be placed anywhere on the sd card
For DS mode the following files are necessary (in parantheses is how they should be named for melonDS to recognises them):
  • ARM9 BIOS (bios9.bin)
  • ARM7 BIOS (bios7.bin)
  • DS mode firmware (firmware.bin)
For DSi mode the following files are necessary (in parantheses is how they should be named for melonDS to recognises them):
  • DSi ARM9 BIOS (biosdsi9.rom)
  • DSi ARM7 BIOS (biosdsi7.rom)
  • DSi mode firmware (firmware_dsi.bin)
  • NAND dump (nand.bin)
For information on how to dump those files from your own DS or DSi see here: http://melonds.kuribo64.net/faq.php
Release notes


Release 5, fix 1:

Bug fixes, also the overclocking option was readded.

Release 5:
It's been a long while since the last release, but we're finally here! It has a completely new GUI, DSi support and of course a bunch of bug fixes and smaller additions. Since a lot of work went into the GUI there aren't many new optimisations in this release, but this will change for the next one! The controls have been changed, pausing is now done by pressing ZL and ZR at the same time.

For older versions look inside the spoiler.
Release 4:
I wanted to make this release already multiple months ago, though always something came into my way, whether it was some feature I wanted to finish or later me loosing seeing it as pointless when a Drastic port will happen sooner or later. Thus a lot of smaller things have been accumulating:

  • Fast memory emulation by mirroring virtual memory so that it has the same layout as on the DS. This also should resolve all previous issues with Literal Optimisations
  • Start at making geometry submission faster
  • The GUI is now rendered using deko3d instead of OpenGL (using mesa). Deko3d not only has less overhead, but this also reduced the binary size significantly. Special thanks go to fincs and where we're at it also to the the other devkitpro and libnx people like yellows8 and Wintermute!
  • Misc improvements to the GUI (the rom directory isn't hardcoded anymore, a melony color scheme, ...)
  • Better screen layout options
  • Alternative ways to give touchscreen inputs, including my (unironically besides using the real touchscreen) favourite mode: motion control. See the FAQ for more info
  • This isn't really that noteworthy, but in 30 FPS games every second (3D) frame is now skipped automatically
  • A bunch of fixes, optimisations and features I can't remember because I'm too unorganised
As I've already described in the old thread, sooner or later DSi and wifi support will be added to this port (the first was recently merged into master, the latter is thanks to the improved indirect wifi mode now possible on switch as well). Optimisations to make 3D rendering faster are together with a new GUI on my list as well, but one step at at time.

FAQ?


How can the emulation be paused?

Press ZL and ZR at the same time.

What do the Block Size, Branch Optimisations, Literal Optimisations and Fast Memory settings do?

Ideally they can stay enabled/at maximum all the time because they enable optimisations beneficial for the performance. But if there's an issue with the JIT recompiler it can be tracked down faster. Only touch them if something unexpected happens and mention which (if any) setting makes a difference in bug reports.

I want to play with a Flip Grip. Which settings should I use?

Use the Global Rotation option which rotates the entire GUI. Shout-out here to @uzimakiuchiha who got me a Flip Grip!

I want to play a game where the DS is held side ways (like e.g. Dr Kawashima's Brain Training), which should I do?

For this case it's the best to use the Screen rotation in the Display settings, once a game is launched (it rotates the buttons as well, as if you're holding the DS that way).

How can I quickly switch the focussed screen?

Press down the right stick. There's also an automatic mode where we the main screen is guessed in the display settings.

How can I only display one screen at a time (and for some reason I want it to be stretched across the whole screen ruining all proportions)?

Go into the Display settings. Set Top aspect ratio and Bottom aspect ratio to 16:9 and then set Screen sizing to either Top only or Bottom only.

How do I use gyro control?

First enable it in the Input settings. Press ZL or ZR (depending on whether you enabled Left handed mode in the Input Settings) to calibrate the rotation. Since this utilises the gyroscopes (and not IR like the Wiimote, which gives an absolute position) it's only based on it's rotation, so it needs recentering if you change the way you hold the Switch/Joy-Con.

How can I change the access the DS menu (e.g. for changing the system language)?

Press Boot Firmware or disable the setting Direct boot in the Emulation settings.

Starting a DSiWare dumped as a NDS file doesn't work, what is wrong?

To run DSiWare it needs to be installed on the NAND. If you start it from the filebrowser it will be started as a cartridge and thus fail to load.

excuse me, hopefully someone is active here but i was wondering is it possible to add cheat codes on melonds? I downloaded the latest update and I was wondering how to add them if that is even possible? Another thing; thank you so much for updating this wonderful emulator
q u q..I was super happy to see it being patched up, and I love the new menu layout it's so much easier to search for things- the other one I didn't have a problem with, it's just I didn't want to use the touch screen at the time lol and I was having some trouble finding all my games ^^;; so this update seriously helped..
 

JerryUSA

New Member
Newbie
Joined
Apr 7, 2021
Messages
4
Trophies
0
Age
34
XP
81
Country
United States
hi all! quick question - I have the .nro installed, the bios installed, and a rom on my switch (pokemon platinum) but it's running at about half speed/not really playable. are there like, 'typical' issues or settings that I might need to change to get it running full speed? would appreciate any help, thanks!
 

catlover007

Developer
OP
Developer
Joined
Oct 23, 2015
Messages
721
Trophies
1
XP
3,925
Country
Germany
hi all! quick question - I have the .nro installed, the bios installed, and a rom on my switch (pokemon platinum) but it's running at about half speed/not really playable. are there like, 'typical' issues or settings that I might need to change to get it running full speed? would appreciate any help, thanks!
have you enabled the JIT recompiler? Also cpu overclocking helps.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    BETA215 @ BETA215: Fighting downhill is proper of traitors, sometimes you do what you have to do...