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

Discussion in 'NDS - Emulation and Homebrew' started by Mbmax, Sep 26, 2011.

  1. Coto

    Coto GBAtemp Addict

    Member
    2,353
    403
    Jun 4, 2010
    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.
    
     
    urbanman2004, Mbmax, zfreeman and 3 others like this.


  2. Dax_Fame

    Dax_Fame GBAtemp Regular

    Member
    188
    55
    Jan 16, 2015
    United States
    Mom's house
    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.
     
  3. Ryuzaki_MrL

    Ryuzaki_MrL Furry Addict

    Member
    744
    719
    Jun 23, 2015
    Brazil
    Amazing work! Can someone release a .nds for this? ^^
     
  4. ipwndeveloper

    ipwndeveloper GBAtemp Regular

    Member
    276
    68
    Jun 3, 2013
    United States
    San Fransisco, CA
    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.
     

    Attached Files:

    Boriar and VinsCool like this.
  5. Ryuzaki_MrL

    Ryuzaki_MrL Furry Addict

    Member
    744
    719
    Jun 23, 2015
    Brazil
    Thanks :D
     
  6. ipwndeveloper

    ipwndeveloper GBAtemp Regular

    Member
    276
    68
    Jun 3, 2013
    United States
    San Fransisco, CA
    no problem! lemmie know if it works on actual hardware haha.
     
  7. Ryuzaki_MrL

    Ryuzaki_MrL Furry Addict

    Member
    744
    719
    Jun 23, 2015
    Brazil
    My DS Lite is broken, i'll test it with my 3DS using a R4 2015
     
    ipwndeveloper likes this.
  8. ipwndeveloper

    ipwndeveloper GBAtemp Regular

    Member
    276
    68
    Jun 3, 2013
    United States
    San Fransisco, CA
    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.
     
  9. Coto

    Coto GBAtemp Addict

    Member
    2,353
    403
    Jun 4, 2010
    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, Jul 25, 2015
    ipwndeveloper and VinsCool like this.
  10. Fishaman P

    Fishaman P Speedrunner

    Member
    3,239
    505
    Jan 2, 2010
    United States
    Wisconsin
    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.
     
    VinsCool likes this.
  11. ipwndeveloper

    ipwndeveloper GBAtemp Regular

    Member
    276
    68
    Jun 3, 2013
    United States
    San Fransisco, CA
    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.
     
  12. Coto

    Coto GBAtemp Addict

    Member
    2,353
    403
    Jun 4, 2010
    Chile
    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

    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)

    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, Jul 25, 2015
  13. Mbmax
    OP

    Mbmax Homebrew addicted

    Member
    2,274
    47
    Nov 7, 2006
    First post edited. Thanks to coto for the new revival version.
     
    Lycanroc likes this.
  14. Dodain47

    Dodain47 GBAtemp Fan

    Member
    491
    100
    Jan 1, 2017
    Austria
    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.
     
  15. Coto

    Coto GBAtemp Addict

    Member
    2,353
    403
    Jun 4, 2010
    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)
     
    Ricken likes this.
  16. Dodain47

    Dodain47 GBAtemp Fan

    Member
    491
    100
    Jan 1, 2017
    Austria
    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.
     
  17. puszcza

    puszcza Advanced Member

    Newcomer
    54
    0
    Feb 10, 2015
    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.
     
  18. Coto

    Coto GBAtemp Addict

    Member
    2,353
    403
    Jun 4, 2010
    Chile
    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


    Could be done but other stuff have priority now.
     
    Last edited by Coto, Jan 14, 2017
    zfreeman likes this.
  19. Dodain47

    Dodain47 GBAtemp Fan

    Member
    491
    100
    Jan 1, 2017
    Austria
    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
     

    Attached Files:

  20. urbanman2004

    urbanman2004 GBAtemp Regular

    Member
    136
    16
    Jan 10, 2013
    United States
    Thanks for your interest in reviving the emu, much appreciated