Homebrew [SNEmulDS] Rebirth the project and update it for the last DKP

Coto

-
Member
Joined
Jun 4, 2010
Messages
2,979
Trophies
2
XP
2,564
Country
Chile
I fixed some DMA sound issues that were introduced on the past source codes. Also I believe it's stable enough for a github repo:

https://github.com/cotodevel/SnemulDS

Code:
SnemulDS 0.6 [Revival]

extract all four linker files (linker_files.zip) on this directory:

\devkitARM\arm-none-eabi\lib

then create a new folder, copy source code like you would on any DS project open MSYS and MAKE.

then copy snemul.cfg and snemulds.nds to root of your SD, bootup cart, and enjoy.

btw, use cycle hacks if you want decent speed.

-changes:

- SPC Playback is using ARM7 DMAs

- Moved from thumb to arm code (-marm)

-re-fixed some arm7 sound code (hopefully fixes allocation problems)

-more cleanup (itcm/dtcm relocated data)

-using nds dma 3 for pixel copy to vram bank

-up to date devkitpro (as of 07/09/2015) , and no more old libfat compiled libs

to do:

-replace fifo commands from libnds to hardware nds fifo ipc

-fix memory leaks when running sfx games

thanks to:

Archeide : emulator & source code
bubble2k : CPU 
gladius  : Sound

Coto.
 

Dax_Fame

Annoying Member
Member
Joined
Jan 16, 2015
Messages
494
Trophies
0
Age
33
Location
Mom's house
XP
1,259
Country
United States
Ummm SNEmulDS caught my eye and I was for a moment in disbelief.

I wonder what happened to the original developer... last I saw on his webpage a looooong time ago was SNEmulDS wasn't dead, just sleeping.
 

ipwndeveloper

Well-Known Member
Member
Joined
Jun 3, 2013
Messages
276
Trophies
0
Age
34
Location
San Fransisco, CA
Website
gb4iphone.x10.mx
XP
179
Country
United States
Amazing work! Can someone release a .nds for this? ^^

Here is the latest untested binary(works kinda in DeSmuME).
Best of luck and enjoy. note: I did not write anypart of the software, just compiled it.
 

Attachments

  • SnemulDS-master.zip
    1 MB · Views: 541
  • Like
Reactions: Boriar and VinsCool

ipwndeveloper

Well-Known Member
Member
Joined
Jun 3, 2013
Messages
276
Trophies
0
Age
34
Location
San Fransisco, CA
Website
gb4iphone.x10.mx
XP
179
Country
United States
Ok, I have tested the binary on an acekard 2i in DSi Mode. Compatibility appears to be the same as the original version 6, tested Super Mario World and it runs. some part of the fifo appears to wreck compatibility on GRTPWN in DSi mode, but ill look into it.
 

Coto

-
Member
Joined
Jun 4, 2010
Messages
2,979
Trophies
2
XP
2,564
Country
Chile
mode 7 is working too. I remember it was broken before. Also, i'm looking to use the ARM9 MPU to cache some ewram (speedup), so if this works, it's highly likely snemulds won't work on emus anymore. edit: or I could just detect NDS hardware or emu.

edit2: also instead of distributing various source codes and before it becomes a mess, I believe it should be better to add ds / dsi mode sources to the github repo I have
 
Last edited by Coto,

Fishaman P

Speedrunner
Member
Joined
Jan 2, 2010
Messages
3,321
Trophies
1
Location
Wisconsin
Website
twitch.tv
XP
2,166
Country
United States
mode 7 is working too. I remember it was broken before. Also, i'm looking to use the ARM9 MPU to cache some ewram (speedup), so if this works, it's highly likely snemulds won't work on emus anymore. edit: or I could just detect NDS hardware or emu.

edit2: also instead of distributing various source codes and before it becomes a mess, I believe it should be better to add ds / dsi mode sources to the github repo I have
Historically, this has been a terrible idea for coding. If a program doesn't work in an emulator, but it does on hardware, only code for real hardware unless you have an urgent need for emulator support, e.g. debugging.
Otherwise you get messes like the Super Mario World ROM hacking scene, where most hacks don't work on the real thing because they were coded for bad emulators.

If the emulator needs to be fixed, get the emulator fixed, don't change your program. This is especially true since DeSmuME has resumed active development, by some members of the Dolphin team and others.
 
  • Like
Reactions: VinsCool

ipwndeveloper

Well-Known Member
Member
Joined
Jun 3, 2013
Messages
276
Trophies
0
Age
34
Location
San Fransisco, CA
Website
gb4iphone.x10.mx
XP
179
Country
United States
mode 7 is working too. I remember it was broken before. Also, i'm looking to use the ARM9 MPU to cache some ewram (speedup), so if this works, it's highly likely snemulds won't work on emus anymore. edit: or I could just detect NDS hardware or emu.

edit2: also instead of distributing various source codes and before it becomes a mess, I believe it should be better to add ds / dsi mode sources to the github repo I have
aye aye captian. Any source changes I make will get PM'ed to you, also if you'd like I can remove the DL link with the source and just re-upload the binary. The reason i did that, was I didnt know the license and didnt want to interfere with GPL.

Did any nds emulator emulate flashcards? most of my stuff wont run in emulators(white screens), but on the actual system it runs AOK.
 

Coto

-
Member
Joined
Jun 4, 2010
Messages
2,979
Trophies
2
XP
2,564
Country
Chile
aye aye captian. Any source changes I make will get PM'ed to you, also if you'd like I can remove the DL link with the source and just re-upload the binary. The reason i did that, was I didnt know the license and didnt want to interfere with GPL.

For me it's more because of the duplicate source codes lying around that would make reproducing a bug impossible, other than that to have stuff focused at one place

Did any nds emulator emulate flashcards? most of my stuff wont run in emulators(white screens), but on the actual system it runs AOK.

DeSMuME allow some dldi read/write functionality through slot 1 I believe.

Well if you can/want , you can submit dsi mode releases, and test debugging :P , because I know this emu relies on IPC of any kind to do SPC playback / cpu cycling. Also i'm currently trying the new IRQ method, that should prevent syncing issues, save some battery life and keep overall better syncing.

btw if you have non-responsive touchscreen for DSi, it's IPC that has failed to deliver messages between both ARM cores. (the source you compiled has the default fifo overlayer from libnds)

Historically, this has been a terrible idea for coding. If a program doesn't work in an emulator, but it does on hardware, only code for real hardware unless you have an urgent need for emulator support, e.g. debugging.
Otherwise you get messes like the Super Mario World ROM hacking scene, where most hacks don't work on the real thing because they were coded for bad emulators.

If the emulator needs to be fixed, get the emulator fixed, don't change your program. This is especially true since DeSmuME has resumed active development, by some members of the Dolphin team and others.

well in this case I can detect if this is running from emus and disable MPU setup accordingly, that way compatibility should be kept for both parts. This is far the preferred method imho
 
Last edited by Coto,
D

Deleted User

Guest
Thanky you coto for continuing to improve the Snemulds!^_^
Games like Super Metroid, Super Mario World and Zelda a Link to the Past benevit from the improved Speed.
Unfortunatly, Donkey Kong Country and F-Zero are broken in this Version.
Donkey Kong Country freezes in the Title Screen. F-Zero won´t show the Racetrack.
 

Coto

-
Member
Joined
Jun 4, 2010
Messages
2,979
Trophies
2
XP
2,564
Country
Chile
master branch 7d51a39

is older than

experimental branch 4622b68

try the release and test again. I am aware of the bug between no cycle stealing and cycle stealing (cycle stealing causes mode7 to render properly)
 
  • Like
Reactions: Ricken
D

Deleted User

Guest
Thank you Coto for replying.

I compiled and tested the experimental Branch with Donkey Kong Country and F-Zero.

F Zero and the Emulator freeze after selecting a Car.

Donkey Kong Country and the Emulator freeze during the Intro.

Both Games worked in the SnemulDs Version 0.6 WIP-2.
 

puszcza

Well-Known Member
Newcomer
Joined
Feb 10, 2015
Messages
56
Trophies
0
Age
32
XP
183
Country
Poland
Hello,
Its possible to add scale mode to full fit the screen without cuting any parts of the image and stretching it? There will stay black stripes on the sides, but I`ve be glad if you can add this option.
 

Coto

-
Member
Joined
Jun 4, 2010
Messages
2,979
Trophies
2
XP
2,564
Country
Chile
Thank you Coto for replying.

I compiled and tested the experimental Branch with Donkey Kong Country and F-Zero.

F Zero and the Emulator freeze after selecting a Car.

Donkey Kong Country and the Emulator freeze during the Intro.

Both Games worked in the SnemulDs Version 0.6 WIP-2.

expect games to work / to not work for now, NDS IRQs cause SNES APU Cycle desyncing problems (black screens). That will be fixed if I have available time.
Also, please post the branch you are compiling and testing against the next time.

edit: more on the reasons as why they have stopped working here:
https://github.com/cotodevel/SnemulDS/issues/3


Hello,
Its possible to add scale mode to full fit the screen without cuting any parts of the image and stretching it? There will stay black stripes on the sides, but I`ve be glad if you can add this option.

Could be done but other stuff have priority now.
 
Last edited by Coto,
  • Like
Reactions: zfreeman
D

Deleted User

Guest
expect games to work / to not work for now, NDS IRQs cause SNES APU Cycle desyncing problems (black screens). That will be fixed if I have available time.
Also, please post the branch you are compiling and testing against the next time.

Sorry Coto. From now on will add the Versions of SnemulDS i´m using.

I tested BS-F-Zero (J), Donkey Kong Country (U) (V1.1)

SnemulDS Versions used:


snemuldsv6 (experimental).zip

000SNEmulDS06-WIP2.7z
 

Attachments

  • 000SNEmulDS06-WIP2.7z
    108.5 KB · Views: 251
  • snemuldsv6 (experimental).zip
    237.3 KB · Views: 229

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Sorry for accidentally bending over