Release DraStic Nintendo DS emulator


Well awesome work Exo - Not been able to figure out my "Cannot erase data" (At work so can't spend extensive time looking into it)

I have a few suggesions - some of which you may have already thought of.

  • Is it possible to add a "Nub Mode" for the touchscreen for games like Mario 64 DS? Obviously activated on a per game or button oggle basis - but basically when the Nub is moved it would place the centre point on the touchsceen and further movement would work like the touchscreen "analog stick" I hope my explanation makes some sense.
  • Possibility to edit firmware settings would be handy.
  • Possibiliy to import RAW NDS save files from standard carts and backup cards(I tried renaming a save to *.dsv but didn't have any luck - will test some more when I'm at home)
But again, love this even though the 3D is unoptimised! :D
 
Can anyone trying out games already share which ones work really playable? Might be handy for others as well as for a compatibility list!

Not sure if there is any point at this early stage making an 'official' compatibility list.


But on my 256Mb CC Pandora @ 950 Mhz the following have been given a quick try and seem to work well :


NSMB


Loopop Cube (awesome game, but Japanese, if you know how to play sokoban you'll be fine)


Slitherlink (awesome game, but Japanese, 10/10 eurogamer review here)

Korg DS 10 (slight popping with sound but very good overall)

Amazing work, after playing NSMB on my Nexus 7 using this emulator and finding it to be more or less a slideshow, even in game, then trying NSMB with Drastic and seeing vastly improved performance on a CC Pandora, mind = blown  :blink:   :D
 
New Zealand Story Revolution and Phoenix Wright series work nicely !

I'm amazed :) .
 
Last edited by a moderator:
This is really great work, Exophase!

It's best not to make a compatibility list yet at this point, at least not a list of games that don't work, because that list could become outdated pretty fast in this stage. Nothing's wrong with listing games that do work though.

So far, I've briefly tried these and found them to work (not necessarily full-speed, but playable and without obvious glitches):

- WarioWare Touched

- Super Mario 64 DS (too slow though)

- Trauma Center - Under the Knife (maybe something wrong with some textures though, not sure)

- Mario Kart DS

- Mario and Luigi - Partners in Time

- Battles of Prince of Persia

- Super Monkey Ball - Touch & Roll

- Worms Open Warfare

- New Super Mario Bros.

- Harvest Moon DS

- Kirby - Squeak Squad

- Wario - Master of Disguise
 
Yep, Bubble Bobble Revolution, the Professor Layton Games, Izuna (Legend of the unemployed Ninja), Magical Starsign, Runaway 2, Fighting Fantasy, Rainbow Island Revolutions all work fine :)

Interestingly, Sherlock Holmes - Mystery of the Mummy runs fullspeed, even though it uses 3D :eek:

Already had some ideas (no idea if those are planned already :) )

Maybe touch-emulation with buttons would be possible?

A lot of RPGs, for example, use the touch only for navigating through the menu.

Instead of touching "Map" it would be neat to be able to configure that to some button, i.e. M makes a click on the Map button.

With a simple but fast config UI: touch the screen where you want to click, press the button. Once you defined all clicks and buttons, press ESC :)

That would rock, playing all those classic RPGs without fiddling on the screen :D
 
Last edited by a moderator:
In the read me, it has:

You can dump these files from a DS if you own a flashcart. You can use this

homebrew program to do it:
However a program is not listed (or doesn't show up for me)? I thought more people would have mentioned this as Exophase asked everyone to read the read me before playing :)

Steve
 
probably going to be a little late for work today...

EDIT:

Managed to get Sonic Rush working nicely on my CC256MB.

Many games were "failing to erase data", however.
What games? It could be errors in game_database.xml, I've found it has some mistakes.

I thought I updated the readme with the errors and stuff.. bleh :/ The warning in the PND itself should be right though. I just updated the one I linked to in the first post since I did forget that one.
 
Last edited by a moderator:
Exophase: Playing some games (such as Tales of Hearts), results in a messed up display. Here's a few lines from its .out where the errors occurred:

Code:
DS screen top is at (0 90) to (399 389)
DS screen bottom is at (400 90) to (799 389)
Calling recompiler event update handler (@ 0x80d6234).
Remapping ITCM limit from 2000000 to 2000000
Remapping DTCM from 27e0000, 4000 to 27e0000, 4000
Warning: block at 21ff6ec exceeded maximum length (0 branch targets)
Warning: block at 21ff8f4 exceeded maximum length (0 branch targets)
Warning: block at 21ffac0 exceeded maximum length (0 branch targets)
DMA from gamecard modified code.
Code flush, pc 206dfb8 (0 in) (alt cpu state 1, pc 11c0, address 21fface (pt 101d5000) (fine ptr @ 0xa32f528: ff))
Code flush, pc 20730ec (0 in) (alt cpu state 1, pc 11c0, address 213a684 (pt 10205000) (fine ptr @ 0xa322fe4: 3fc))
Warning: block at 215a37c exceeded maximum length (0 branch targets)
0 mini hash hits out of 0 accesses (nan%)
Saving directory config to file named /mnt/utmp/DraStic/config/drastic.cf2
Saving backup data file.
 
Last edited by a moderator:
Giving stdouts isn't really helpful. There's rarely useful information in it.

Are you running a zipped game that's > 64MB or > 256MB (possibly > 128MB, I haven't tested it) on a 256MB or 512MB Pandora respectively? That's the only time I got glitches where the display got messed up, because there were memory problems.
 
Giving stdouts isn't really helpful. There's rarely useful information in it.

Are you running a zipped game that's > 64MB or > 256MB (possibly > 128MB, I haven't tested it) on a 256MB or 512MB Pandora respectively? That's the only time I got glitches where the display got messed up, because there were memory problems.
Tales of Hearts - Anime Movie Verion is 200 MB when zipped. I am playing it on a 512 MB Pandora.
 
Giving stdouts isn't really helpful. There's rarely useful information in it.

Are you running a zipped game that's > 64MB or > 256MB (possibly > 128MB, I haven't tested it) on a 256MB or 512MB Pandora respectively? That's the only time I got glitches where the display got messed up, because there were memory problems.
Kingdom Hearts 358/2 Days also has heavy graphical glitches. It's about 190 MB in size (zipped). Tried it on the 1GHz unit.

Interestingly, when I go into the menu, the two small screens are shown correctly, only when running the game (not being in the menu) messes up everything completely.
 
Last edited by a moderator:
The size of the zip doesn't matter, the size of the ROM inside the zip is what's important. That ROM file has to be extracted into memory for the emulator to use it. There it has to fit into memory. The alternative will be to make the zip extract to a temporary file, but it's tricky determining when you do and don't have enough memory.

Support for 256MB zipped ROMs on 512MB units was just a guess since it's untested. You'd expect it since they have 256MB more memory but who knows. Of course it'll depend on what other stuff you have taking up RAM. Or there could be a bug in the zip loader..

Try running the unzipped ROM. Or maybe try running with a swap partition and tell me if that can fix it.

Also, I lied about the stdout not being useful :p (well, in this case, maybe) But Zero3K's didn't have it.. look for where it says the address it got for the screen buffers. A screen error could mean that some of the mmaps to /dev/fd1 failed.
 
Last edited by a moderator:
just wanted to say thanks for this can't wait to get it on my pandora and run some tests
 
The size of the zip doesn't matter, the size of the ROM inside the zip is what's important. That ROM file has to be extracted into memory for the emulator to use it. There it has to fit into memory. The alternative will be to make the zip extract to a temporary file, but it's tricky determining when you do and don't have enough memory.

Support for 256MB zipped ROMs on 512MB units was just a guess since it's untested. You'd expect it since they have 256MB more memory but who knows. Of course it'll depend on what other stuff you have taking up RAM. Or there could be a bug in the zip loader..

Try running the unzipped ROM. Or maybe try running with a swap partition and tell me if that can fix it.

Also, I lied about the stdout not being useful :p (well, in this case, maybe) But Zero3K's didn't have it.. look for where it says the address it got for the screen buffers. A screen error could mean that some of the mmaps to /dev/fd1 failed.
Extracting the ROM from the ZIP fixed the graphical issue.
 
splinter cell is 3d and works very well. although it crashed when i switched to heat vision.
 
good work but as someone else said here dsi games are still being sold. I don't emulate stuff thats still being sold.

Still im sure this will be a great emu, with time.
 
I don't emulate stuff thats still being sold.
Why not? If you play the game directly from a card reader (retrode sort of thing) you aren't infringing anyone's copyright.


(Disclaimer: I am not, in any way, an authority on legal matters. I suggest that you consult someone who is before following any advice I give. Thank you)
 
Last edited by a moderator:
I run my Rebirth edition Pandora at 850 Mhz. So far I've found these titles to be playable:

Journey To The Center Of The Earth

Dr Kawashima's Brain Training - How Old Is Your Brain

Rayman Raving Rabbids 2

The Settlers (This one was almost consistantly full speed!)

I had less luck with Mario Kart DS. It ran at a playable speed but kept crashing.

I created a script that lets me choose to run an input-recording session when I start the PND.

I'm including it here. If you call it drastic.sh, and drop it in the DraStic appdata folder it will replace the default run script and execute when you start drastic from the desktop or menu.

Keep in mind that having this in appdata will also override any future changes Exophase makes to the run script, if you keep it there after an upgrade.

#!/bin/sh

#change the following line to to point to the folder where you keep your ROMS.
ROMPATH=/media/PND-DATA/Other/nds/

if ! zenity --question\
--title="Record Input?"\
--text="Would you like to run a specific game with --record-input enabled?"\
--ok-label="Yes" --cancel-label="No"; then

op_runfbapp ./drastic
ofbset -fb /dev/fb1 -pos 0 0 -size 0 0 -mem 0 -en 0
else
if ROM=$(zenity --file-selection\
--title="Choose NDS ROM"\
--filename=$ROMPATH --file-filter="*.nds *.zip"\
--height=300); then

IRFILE="DraStic.ir.$(date +%s)"
echo "Selected Rom: $ROM"
echo "input record filename: $IRFILE"
op_runfbapp ./drastic "$ROM" --input-record /tmp/$IRFILE
ofbset -fb /dev/fb1 -pos 0 0 -size 0 0 -mem 0 -en 0
fi
fi

I've created a tarball with my results for Mario Kart DS (and one for Final Fantasy IV which crashed consistently) which I shall attach to this post.

- Neelix

DraStcInputRecords1.tar.gz
 

Attachments

  • DraStcInputRecords1.tar.gz
    15.7 KB · Views: 284
Back
Top