Skip to content

PanMenel/melonDS-Menel-Forks

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2,686 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

melonDS Menel Forks


These are my forks of melonds adding features I thought should be there already

๐Ÿชš Ultimate branch link to branch

A branch containing all my features for easy access to all of them.

๐Ÿ“บ WindowBorderToggle Fork link to branch

Implemented a hotkey to hide the Windows Border (goes well with menubartoggle).

๐Ÿ“บ MenuBarToggle Fork link to branch

Implemented a hotkey to hide the Menu Bar.

I created this because I recently got a vertical grip for my Nintendo Switch, which is perfect for DS games. When streaming melonDS from my PC via Moonlight, the Menu Bar was the last thing cluttering the screen.

Note

Full Disclosure: I am still learning programming. This feature was developed using "vibecoding" (with AI assistance from Grok). While it might not be a 100% professional implementation, it works exactly as intended. Enjoy!


๐Ÿ† RetroAchievements Implementation link to branch

Bringing RetroAchievements (RA) support to melonDS.

I saw that the community really wanted RA support, so I decided to take on the challenge. This is a rough, beta implementation that Iโ€™ve tested extensively over the last week. I am a huge fan of RetroAchievements and very proud of this progress.

Important: This is currently unofficial, so Hardcore mode does not yet provide official Hardcore points.

โœ… Current Features

  • Full backend integration.
  • Core frontend implementation.
  • Basic connectivity and achievement unlocking.
  • Achievements and their info is shown on getting them.
  • Basic Login in Config under new tab.
  • Multi instance separate logins
  • Leaderboards implemented but not submitted yet.
  • Fully functional Overlay that shows achievements and their progress
  • Progress Indicators and Challenge Indicators fully implemented
  • Info on losing an Internet connection and restoring it are implemented
  • Fully working Hardcore blocks that stop you from cheating.(may have overlooked some more advanced but main easy access cheats are blocked)

๐Ÿ› ๏ธ Known Issues & Planned Features

  • Performance Concerns?, maybe fixed but needs more testing.
  • Badly Written AI code (Will be improved massively).
  • Hardcore Approval to get rid of that achievment and allow users to earn hardcore achievements.

Note

Full Disclosure: This feature also was developed using "vibecoding" (this time mainly ChatGpt and Gemini). I really put my heart into that implementation, and I hope people will actually think of it as nice thing, so I don't consider my time as wasted.


How to build

See BUILD.md for build instructions. this works for menubar fork

Note

For RA Implementation you need to install additional dependencies. Also building may not fully work, but feedback is appreciated

  • Dependencies
  • Curl : pacman -S -{toolchain,cmake,SDL2,libarchive,enet,zstd,faad2,curl}

  • here are intructions for building your own RA build
  • git clone -b Retro-Achievements-Implementation https://github.com/PanMenel/melonDS-Menel-Forks.git
  • cd melonDS-Menel-Forks
  • for static use: cmake -B build -G Ninja -DENABLE_RETROACHIEVEMENTS=ON -DBUILD_STATIC=ON -DUSE_QT6=OFF -DCMAKE_PREFIX_PATH=$MSYSTEM_PREFIX/qt5-static / for dynamic use: cmake -B build -DENABLE_RETROACHIEVEMENTS=ON
  • cmake --build build

๐Ÿ’œ Support My Work

๐ŸŽฎ Twitch

Catch me live on My Twitch Channel! I stream my development process and some gameplay. Feel free to drop by, and say hi!

๐Ÿ’ฌ Discord

Join the community on My Discord Server! It's the best place to get updates on my projects, ask for help, or just hang out.

โ˜• Donate

If you find my forks useful and want to support further development, you can buy me a coffee here: There is no better way to thank me for my work ;D

Your support helps me keep learning and adding more features!

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!

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

Privacy policy

This emulator does not collect, store, or transmit any personal data on its own servers.

If the RetroAchievements feature is enabled, the emulator communicates directly with the RetroAchievements service. This includes authentication, achievement unlocks, and related gameplay data. All such data is processed according to the RetroAchievements privacy policy.

No additional analytics, telemetry, or tracking is performed by this emulator.

All configuration data is stored locally on the user's device and can be removed at any time by deleting the configuration files.

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

About

DS emulator, sorta

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C++ 54.1%
  • C 43.4%
  • CMake 0.8%
  • Assembly 0.7%
  • GLSL 0.6%
  • Ruby 0.1%
  • Other 0.3%