Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

NesDS: Difference between revisions

From GameBrew
No edit summary
No edit summary
 
(30 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Infobox DS Homebrews
{{Infobox DS Homebrews
| title       = NesDS
|title=NesDS
| image       = nesds.png
|image=Nesds2.png
| type        = Console Emulator
|description=Nintendo Entertainment System Emulator.
| version    = 1.3a & 2014
|author=huiminghao, Coto
| lastupdated = 2014/08/09
|lastupdated=2023/10/28
| license    = Mixed
|type=Console
| author      = huiminghao
|version=1.3d+
| website    = http://sourceforge.net/projects/nesds
|license=Public Domain
| download    = [https://dlhb.gamebrew.org/dshomebrew/nesds.7z 1.2, 1.3a and 2014]
|downloadraw=[https://dlhb.gamebrew.org/dshomebrew2/nesds.7z?k33p0fil35 v1.3a 2011] - [https://dlhb.gamebrew.org/dshomebrew2/nesdscot.7z v1.3c 2018] - [https://github.com/DS-Homebrew/NesDS/releases Latest]
| source      = http://sourceforge.net/projects/nesds
|website=http://sourceforge.net/projects/nesds
|source=https://github.com/DS-Homebrew/NesDS
}}
}}
 
An open-source Nintendo Entertainment System/NES emulator for the Nintendo DS. It can be compiled with GCC (devkitPRO/devkitARM, the version supported) or ADS (the original version, no update).
NesDS, using toolchain devkitARM, is a Nintendo Entertainment System Emulation.


==Features==
==Features==
* Basic emulation (with sound) of NES roms.
* FDS supported, with FDS sound.
* Fast forward/rewind.
* .ini supported.
* Multi-players supported
* DPCM added. The sound is nearly perfect.
* Short-cuts added.
* Almost no graphic mess on a lot of games.
* Cheat added.
* .gz .zip supported.
* Double Screen Show.
* VCR6 added.
* NSF supported.
* NiFi supported.


==Installation==
==Installation==
Download nesDS.nds.
Patch nesDS.nds with [[DLDI|DLDI]] if your card needs it.
Patch nesDS.nds with [[DLDI|DLDI]] if your card needs it.


Copy nesDS.nds to the apps folder of your card.
Copy nesDS.nds to the apps folder of your card. (TWLMenu++: sd:/_nds/TWiLightMenu/emulators/)


Create a folder called nes in the root of your card.
Create a folder called nes in the root of your card.


Put your legaly held .NES files in that folder.
Put your legally held .NES files in that folder.


==User guide==
==User guide==
Line 35: Line 43:
'''Q. What can I do if some pics had been crashed?'''
'''Q. What can I do if some pics had been crashed?'''


You can try the sprite per-line type under the Display menu bar.  
You can try the sprite per-line type under the Display menu bar.


==Controls==
==Controls==
Line 47: Line 55:


==Known issues==
==Known issues==
Run the nesDS EX Edition on ideas may cause a crush, because ideas does not support swi.
Run the nesDS EX Edition on iDeaS may cause a crash, because iDeaS does not support swi.


'''Notes:''' All other functionality should be identical to the original. nesDS inputs now work properly on emulators. You can run the nesDS on ideas by DLDI patching it with the R4 dldi patch usingdlditool. You must then enable DLDI support for R4 under File->Properties. You can also run nesDS on desmume but you will need to create a filesystem image from some files and embed the files to the emulator (you need to use fcsr for this).
'''Notes:''' All other functionality should be identical to the original. nesDS inputs now work properly on emulators. You can run the nesDS on ideas by DLDI patching it with the R4 dldi patch usingdlditool. You must then enable DLDI support for R4 under File->Properties. You can also run nesDS on desmume but you will need to create a filesystem image from some files and embed the files to the emulator (you need to use fcsr for this).


==Changelog==
==Changelog==
'''v1.3d+ 2023/10/28''' - By RocketRobz
*Changes by @nibbles27
**Different from 1.3c:
***Added Screen selection presets, 14 different Palettes, and Restored Gamma selection (5 levels)
***Restored old Debug menu so as to not break Mapper 4 games and others to a crash (like Dragon Warrior 1)
***Restored bad Punch Out hack from PNES-9.98 (Mapper 9/10) - Made not so bad!
**Added in support for mappers:
***mapper 42
***mapper 119
***mapper 140
***mapper 249
**Some of these use existing mappers just added in support for them in cart.s and added/modified some mapper files to add support for these!
**Also updated to include map 159 for DBZ 2 and 3 translations, please set to 159 for these two titles with iNES Header Editor - https://www.romhacking.net/utilities/1352/
* @nadiaholmquist: The FDS BIOS is now separate from the emulator, due to copyright reasons. To re-add it, place disksys.rom on the SD root.
* @NightScript370: The key combo to exit the emulator is now L+R+Down+B to be consistent with nds-bootstrap.
* @ds-sloth: Changes to save / save loading code (#6)
** unified load from menu and load from argv
** create nesDS.ini if it does not exist; allow it to be stored in _nds
** added internal support code for separate save context
** added menu option for saves subdir, polished menu
* Plus Other improvements
'''v1.3c+ 2023/09/09''' - By RocketRobz
* @nadiaholmquist: The FDS BIOS is now separate from the emulator, due to copyright reasons. To re-add it, place disksys.rom on the SD root.
* nibbles27: Added new different palettes to choose from and gamma section as well as screen scale presets.
* @NightScript370: The key combo to exit the emulator is now L+R+Down+B to be consistent with nds-bootstrap.
* @ds-sloth: Changes to save / save loading code (#6)
** unified load from menu and load from argv
** create nesDS.ini if it does not exist; allow it to be stored in _nds
** added internal support code for separate save context
** added menu option for saves subdir, polished menu
* nibbles27: Fixed some screen presets (All Scaled now properly scales the entire area), added a new lower default scale setting, reworded palette selection like "Wii NES VC"
* Other improvements
'''1.3c 2018/08/14''' (by Coto)
* Nifi, sound, touchscreen works in NTR mode as of devkitARM r43.
* Fixed exception due to buffer overflow in Rom Database.
'''2014/08/09'''
'''2014/08/09'''
* Mapper5 update.
* Mapper5 update.
Line 57: Line 102:
* Sprite0y is updated in sp-pertile mode.
* Sprite0y is updated in sp-pertile mode.


'''1.3a'''
'''1.3a 2012/09/21'''
* Alpha blend fixed.
* Alpha blend fixed.
* Touch the current menu item to hide menu.
* Touch the current menu item to hide menu.
Line 254: Line 299:
* You guys can try 'Start+Select+R+L' to exit your nesDS and return to the main menu of flash-card. On mine, it just shotdown my DS(R4SDHC with kernel1.34, no help with moonshell2 either).
* You guys can try 'Start+Select+R+L' to exit your nesDS and return to the main menu of flash-card. On mine, it just shotdown my DS(R4SDHC with kernel1.34, no help with moonshell2 either).
* Since this version, the mem region cannot be accessed freely, be careful if anyone wants to write a patch.
* Since this version, the mem region cannot be accessed freely, be careful if anyone wants to write a patch.
* The libnds and libfat are too big... 128k around. Shit that!
* The libnds and libfat are too big... 128k around.
'''0.44a'''
'''0.44a'''
* A bug of cartflags was fixed, which will definitely make the game unable to save..
* A bug of cartflags was fixed, which will definitely make the game unable to save..
Line 312: Line 357:


==External links==
==External links==
* GitHub - https://github.com/DS-Homebrew/NesDS
* GitHub - https://github.com/suzsuzuki/NesDS
* SourceForge - http://sourceforge.net/projects/nesds
* SourceForge - http://sourceforge.net/projects/nesds
[[Category:DS homebrew emulators]]
[[Category:Homebrew console emulators on DS]]

Latest revision as of 11:18, 16 August 2024

NesDS
Nesds2.png
General
Authorhuiminghao, Coto
TypeConsole
Version1.3d+
LicensePublic Domain
Last Updated2023/10/28
Links
v1.3a 2011 - v1.3c 2018 - Latest
Website
Source

An open-source Nintendo Entertainment System/NES emulator for the Nintendo DS. It can be compiled with GCC (devkitPRO/devkitARM, the version supported) or ADS (the original version, no update).

Features

  • FDS supported, with FDS sound.
  • .ini supported.
  • Multi-players supported
  • DPCM added. The sound is nearly perfect.
  • Short-cuts added.
  • Almost no graphic mess on a lot of games.
  • Cheat added.
  • .gz .zip supported.
  • Double Screen Show.
  • VCR6 added.
  • NSF supported.
  • NiFi supported.

Installation

Patch nesDS.nds with DLDI if your card needs it.

Copy nesDS.nds to the apps folder of your card. (TWLMenu++: sd:/_nds/TWiLightMenu/emulators/)

Create a folder called nes in the root of your card.

Put your legally held .NES files in that folder.

User guide

Run nesDS from the Apps menu of your card, then select which nes rom you would like to run.

FAQ

Q. What can I do if some pics had been crashed?

You can try the sprite per-line type under the Display menu bar.

Controls

X/A - Autofire for Y/B

L/R - Can be mapped

Screenshots

nesds2.png nesds3.png

Known issues

Run the nesDS EX Edition on iDeaS may cause a crash, because iDeaS does not support swi.

Notes: All other functionality should be identical to the original. nesDS inputs now work properly on emulators. You can run the nesDS on ideas by DLDI patching it with the R4 dldi patch usingdlditool. You must then enable DLDI support for R4 under File->Properties. You can also run nesDS on desmume but you will need to create a filesystem image from some files and embed the files to the emulator (you need to use fcsr for this).

Changelog

v1.3d+ 2023/10/28 - By RocketRobz

  • Changes by @nibbles27
    • Different from 1.3c:
      • Added Screen selection presets, 14 different Palettes, and Restored Gamma selection (5 levels)
      • Restored old Debug menu so as to not break Mapper 4 games and others to a crash (like Dragon Warrior 1)
      • Restored bad Punch Out hack from PNES-9.98 (Mapper 9/10) - Made not so bad!
    • Added in support for mappers:
      • mapper 42
      • mapper 119
      • mapper 140
      • mapper 249
    • Some of these use existing mappers just added in support for them in cart.s and added/modified some mapper files to add support for these!
    • Also updated to include map 159 for DBZ 2 and 3 translations, please set to 159 for these two titles with iNES Header Editor - https://www.romhacking.net/utilities/1352/
  • @nadiaholmquist: The FDS BIOS is now separate from the emulator, due to copyright reasons. To re-add it, place disksys.rom on the SD root.
  • @NightScript370: The key combo to exit the emulator is now L+R+Down+B to be consistent with nds-bootstrap.
  • @ds-sloth: Changes to save / save loading code (#6)
    • unified load from menu and load from argv
    • create nesDS.ini if it does not exist; allow it to be stored in _nds
    • added internal support code for separate save context
    • added menu option for saves subdir, polished menu
  • Plus Other improvements

v1.3c+ 2023/09/09 - By RocketRobz

  • @nadiaholmquist: The FDS BIOS is now separate from the emulator, due to copyright reasons. To re-add it, place disksys.rom on the SD root.
  • nibbles27: Added new different palettes to choose from and gamma section as well as screen scale presets.
  • @NightScript370: The key combo to exit the emulator is now L+R+Down+B to be consistent with nds-bootstrap.
  • @ds-sloth: Changes to save / save loading code (#6)
    • unified load from menu and load from argv
    • create nesDS.ini if it does not exist; allow it to be stored in _nds
    • added internal support code for separate save context
    • added menu option for saves subdir, polished menu
  • nibbles27: Fixed some screen presets (All Scaled now properly scales the entire area), added a new lower default scale setting, reworded palette selection like "Wii NES VC"
  • Other improvements

1.3c 2018/08/14 (by Coto)

  • Nifi, sound, touchscreen works in NTR mode as of devkitARM r43.
  • Fixed exception due to buffer overflow in Rom Database.

2014/08/09

  • Mapper5 update.
  • FDS and vcr6 sound are enabled in NSF mode.
  • Sprite0y is updated in sp-pertile mode.

1.3a 2012/09/21

  • Alpha blend fixed.
  • Touch the current menu item to hide menu.
  • Cheat list bug fixed. fix the flicking of cheat list.
  • All saving flushed.
  • Sound update, the volume = sin(original * pi / 2) ^ 0.7, like a linear to log conversion.
  • Load and save slot number merged to one.
  • NSF play supported, use <left/right> to select song, use <up/down> to play/stop, use 'debug' menu to see the details.

1.2b

  • VCR6 sound channel for mapper24 and mapper26 is added.
  • A sound reset button is added to menu>settings>config, which is used when the sound goes bad.
  • When close and open the DS, this is probly needed.
  • Mapper253 is added.
  • FDS saving is disabled when the game is not a fds.
  • CRITICAL NOTE: the sound rendering has almost reached the ability of arm7, so the arm7 will auto detect the IF, by which to fix the mess of sound.

1.1b2

  • Every apu channel mirrored to a nds sound channel.

1.1b

  • Sound update, fds sound works fine.
  • AutoFire config can be saved.
  • Game is more stable & sound goes bad.
  • Binary files converted to .c/.h, can be compiled by devkitARM r39.

1.1b

  • Sound update, fds sound works fine.
  • AutoFire config can be saved.
  • Game is more stable & sound goes bad?
  • Binary files converted to .c/.h, can be compiled by devkitARM r39

1.1a

  • Fds sound added, just works.
  • Mapper198 added, SRAM saving not supported.
  • Sound update.
  • Gesture update.

1.0

  • Rom patch database added, which can select a PAL/NTSC timing or fix the header of rom.
  • Nifi fixed.
  • 'About' flicking fixed.
  • Better flicker when PALTIMING is enabled.
  • dswifix(which is for nifi) src is added.

1.0b

  • Mapper240 added.
  • Fixed the tmpfile.
  • DPCM weakened, sounds better?
  • A bug with ppustat fixed. e.g.'teenage mutant ninja turtles'
  • A bug with palette fixed.
  • Patch update. Battleloads (Europe) <Double Dragons> added.
  • SRAM can be saved whatever a game supports.

1.0a

  • Code of .gz replaced with a new one, still works.
  • .zip supported. NOTE: Only one file is allowed in the .zip archive.
  • Code of ips been re-written.
  • 'Double Screen Show' is supported to show all the pixels at the same time. *Check 'About' for more info.
  • Sprites with SP-perframe updated.
  • Some bugs related to 'Scaling' are fixed.
  • Some other changes.
  • Thanks to avenir.

0.56a

  • Short-Cuts updated. Fast forward & rewind can be changed.
  • Screen scaling can be saved to nesDS.ini
  • gzip file supported. only .gz could work. Thanks to dszip. The decompression of large files would take a while.
  • Compiled with latest libnds(as required).

0.55b

  • Sound update.
  • Sprites update.
  • A bug of Memory fixed.
  • Palette sync added, click Menu > Game > Display > OnOrOff to change. More info, see the 'About'.
  • Pal sync needed:Fantastic Adventures of Dizzy, Micro Machines, Wizards & Warriors, Feng Shen Bang.

0.55a

  • A bug with nesDS.ini fixed, works with latest devkitARM-r34
  • Saving for FDS added. Menu > Game > Extra > Save FDS.
  • Shows time on the top menu.
  • Mapper 216 189 added. e.g. Magic Jewelry 2, Master Fight 2, Street Fighter 4...
  • Some others..

0.54a

  • Big nose freak out update.
  • Mapper225 226 227 229 230 231 255 added.
  • Sound enhanced.
  • Raw PCM update, nearly perfect.
  • Sprite0y update.
  • Nifi update.
  • NOTE: unstable with devkitARM r33, using r32 instead.

0.53b

  • Mapper1 updated.
  • Auto-fire adjusting added.
  • Swap-Screens disabled if LIGHTGUN active.
  • Sprite0y for SP-pertile fixed.
  • Careful to use Swap-Screens, which may shutdown DS.

0.53a

  • IPS supported. First, load a .ips file, then load the rom to start a patched game. The rom file won't be changed. The ips file should be smaller than 512kB.
  • Barcode supported. Click Menu>Game>Extra>Barcode
  • Gesture supported. Click Menu>Config>Short-Cuts to configure. When the menu is hidden or the LIGHTGUN is enabled, you can touch the sub-screen to draw a gesture.
  • Mapper245 added.
  • Mapper16 updated.
  • Raw PCM updated.
  • 'SP-Pertile' updated. E.g. The issue with Super Mario 3 is fixed.
  • Some others.

0.52a

  • The 'menu' is re-designed.
  • Raw PCM supported, not perfect, can be switched off in menu>Settings>Config.
  • Settings of nesDS can be written to 'nesDS.ini' at runtime, done in menu>Settings.
  • Short-Cuts can be configured in menu>Settings.
  • 'LightGun' is placed in menu>Game>Extra, 'Micphone' and 'FDS disk' are also added there. 'Micphone' is not tested.
  • Nothing more.

0.51a

  • Roll back some updates in 0.50b.
  • Mapper90 added. It works fine. You need to reload the nes rom to get a 'Soft-Reset'.
  • Light-Gun added. Under the 'Input' bar, click 'No LightGun' to active *Light-Gun. When shooting, hold L-button and touch the sub-screen. 'Swap screens' is recommended. R-button can be used to rewind game play.
  • Sprite0y calculation for SP-pertile corrected, better.
  • V-flip for SP-pertile corrected, better.
  • A patch file added, used to correct the header of rom or modify the settings of nesDS.
  • Below shows the games patched (PRGCRC - Name):
    • 0x33AA - Akumajou Densetsu
    • 0x0A62 - Joe & Mac
    • 0x49B3 - TMNT 1
    • 0xE91E - Duck Hunt(JUE)
    • 0x15CF - Wild Gunman
    • 0x15CF - Gum Shoe
    • 0x9F65 - Hogan's Alley (JU)
    • 0xB2B5 - Three Eyed ONE/Mitsume Ga Tooru
    • 0x8A35 - Feng Shen Bang(Chinese)
    • 0xD796 - Alien Syndrome (J)

0.50b

  • nesDS.ini commented.
  • nesDS.ini: ScreenSwap added. If your DS' top-screen did not work well, set this value to 1.
  • Mapper 19, 71, 118 updated.
  • NES cycles-per-scanline modified to 121, to make the graphic more smooth. *E.g. tmnt, Akumajou Densetsu.... Also makes Joe&Mac work fine.
  • A sound bug fixed, which may cause a panic....
  • Sub-screen will be closed if there is a NES_RESET.
  • Cheat list can be loaded/saved from/to a file. EXTENTION:.cht
  • FrameSkip for Pure-Soft rendering can be adjusted. If you have a DSi, frameskip 1 would be OK; For DS/DSL, frameskip 2 is recommended.
    • Frameskip 1 means that the graphic is updated at 30fps. 2 for 20fps. On the older nesDS, frameskip 2 equals to 30fps.
    • Sprite0y changed, which makes the graphic better. e.g. Super Mario.
  • CRAM added.

0.50a2

  • All memory needed is pre-allocated, and all malloc() are deleted.. This is done for those who cannot run nesDS well.
  • The average length of roms' names MUST be lower than 64bytes, for saving memory.
  • MAX_ROM_SIZE is set to 3M.
  • Delay for multi-player is slightly lower.
  • Mapper4 is updated. e.g. tmnt3 works well now.
  • Path for nesDS.ini is updated. Available paths now are:"/","/_dstwoplug/","/ismartplug/","/moonshl2/extlink/","/_iMenu/_ini/","/_plugin_/"

0.50a

  • Nifi/Multi-players supported.
  • Cheat re-added.
  • About/Help tip added.
  • NTSC/PAL timing supported.
  • Roms menu cached, which will speed up the rom menu when start another game.
  • Some bugs fixed.

0.48b

  • Mapper68 updated. e.g. After Burner(U)
  • Some bugs fixed.
  • nesDS.ini updated.

0.48a

  • Software-render re-added, to deal with the mappers 9, 10, 19, etc.

0.47b

  • Sound update.
  • L+UP to show NES on top screen when playing.
  • L+DOWN for bottom screen.

0.47a

  • Sound enhanced. MAX VOL x2.
  • Fds supported. Do NOT use realtime saving and loading.("save state" and "load state"). Safe to use KEY_R and KEY_L.
    • R+UP = disk A
    • R+LEFT = disk B
    • R+DOWN = disk C
    • R+RIGHT = disk D

0.46a

  • Mapper163 added..
  • Sound updated.
  • MAX FILES enlarged.

0.45b

  • The memory region of "NES" is relocated from 0x23f0000 to 0x23ec000. advised by avenir. Now the nesDS on my DS could return to the homebrew menu.
  • A software for sprite-scaling is added. Select 'Per-scanline' to active it.
  • Mid-frame BG pal refresh is supported. Some games like 'Wizards Warriors' work fine.
  • Some others not important.

0.45a_v2

  • Sound fixed.

0.45a

  • avenir write a patch to nesDS, what's new? He said:
    • Extended the reset to "If not loaded from hbmenu/xenofile, returns DSi/3DS menu on DSi/3DS".
    • stringsort() is now a wrapper for qsort().
    • extlink now accepts multibyte filename thanks to Unicode support.
    • Directory listing is shown the same way as WinNT(8.3 lower case). <- If you name a file all lower case in 8.3...
    • /nesDS.ini is used for configuration(minIni).
  • Updates:
    • Add the shout-cuts for configuration.
    • Sound fixed.. better than 0.44b. Almost no noise(not the noise channel).
    • Sprite0y of 'per-scanline' fixed.
    • H-blank interrupt handler added, which was removed since 0.44b.
    • Some other chanegs.. No update for mappers.

0.44b

  • Since the nesDS file is larger, this version is NOT recommended for those who just want to play nes games.
  • Port the whole project to devkitPro, using libnds, libfat....
  • Almost no update, but some figures may be worse. e.g. sound with the games that read reg4015. Some games' sounds work better... - -!
  • You guys can try 'Start+Select+R+L' to exit your nesDS and return to the main menu of flash-card. On mine, it just shotdown my DS(R4SDHC with kernel1.34, no help with moonshell2 either).
  • Since this version, the mem region cannot be accessed freely, be careful if anyone wants to write a patch.
  • The libnds and libfat are too big... 128k around.

0.44a

  • A bug of cartflags was fixed, which will definitely make the game unable to save..
  • something about 'fetch_c' was changed, which may cause some problem. the bug logged in 0.43 was related to this.
  • Set the nes ram reset value to 0x0, not 0xFFFFFFFF, which will cause the 'Super Mario' starting from world 0-1.
  • Supprised that karateka(j) works now.

0.43

  • Warning: A bug of SRAM was fixed. It may cause the games that use SRAM crashed.

0.43b

  • DPCM/DMC suppoted. Should say that this is just for testing. DPCM causes a lot of sound crashes, busy fixing them. well, Mario 3 works fine, also 'Chan'.
  • No other updates.
  • Need to slow down this project.

0.42b

  • No sound updates.
  • Short-cuts added.
  • extlink supported.
  • Some unused files of sound are removed. It is much clear now...
  • No more..

0.41b

  • Mapper 9, 10, 118, 228 updated/fixed. Punch-Out, Action 52 IN 1, and some others games play well now.
  • The 'Flicker' function was slightly fixed. Our eyes will not be that hurt now.
  • A new bg render method was added, but not actived in this version, there are still alot work to do.

0.40

  • 'Roll back' fixed. Did not release this version because there is no need to.

0.40b

  • Named as 'nesDS 0.40', not 'nesDS EX 0.40', because the two versions had been merged into one.
  • Some bugs fixed.

0.31

  • Mapper 23, 25 supported.
  • Rendering method changed.
  • Scaling supported.

0.30beta

  • All the rendering sections has been re-written. Uses the NDS hardware to emu the NES graphic.
  • Much better speed and sound.

0.22

  • Uses software to cal the CRC, same as Virtuanes.
  • Mapper074 updataed, supporting some special games.
  • Mapper0, 1, 4 updated.
  • Fixed some bugs.

0.22b

  • Mappers supported: 0, 1, 2, 3, 4, 10, 16, 19, 74, 246 (EX's mapper files is very different from the original).
  • Function added: cheat.

Credits

Original nesDS team:

  • Coding - loopy, FluBBa.
  • More code - Dwedit, tepples, kuwanger, chishm.
  • Sound - Mamiya.

Ported to gcc by minitroopa.

EX Edition made by huiminghao.

0.4x Edition made by huiminghao.

Thanks to avenir.

External links

Advertising: