Main Weblog Projects Downloads Contact Links
Wiki Gallery

Weblog

DSFlash (SWF Player)

I made a quick port of GPLflash to DS.

Sound is disabled, BTW. Overall, this could be probably used for simple animations.

Here is a NDS with a sample movie: sbemail58_swf.nds
(Credit for the movie goes to: http://www.homestarrunner.com)

DSFlash Sample Movie 

Source code is in the ZIP file:

 firmwaredumper.zip dsflash-0.1.zip

72 Responses to “DSFlash (SWF Player)”

  1. Vegetable Says:

    Holy crap, YES. Thankyou! I’ve been waiting so long for a Flash player!

  2. Dudu.exe Says:

    Impressive.. if it suport touchscreen.. it may be a very nice way to grow homebrew scene..

    how is the Action Script?? and suport to sound??

    Greeeeat Work !!!

  3. Xgame Says:

    Good Job!!
    How can i put mine flash video into it?
    Thank!

  4. Dualscreenman Says:

    Is it supposed to have sound? I have none. Maybe it’s because I’m using a flash cart.

  5. Vegetable Says:

    Dude, it says sound is DISABLED right in the blog post.

    Sound is disabled, BTW.

  6. Öhr GmbH Says:

    Uhm i cant put my flashs with the sourcecode on my DS, because i dont know anything about programming for DS(cpp), so how about adding a file-system to load the *.swf?
    please add sound-support!

    Overall: the best homebrew program(after Scumm VM :) )

  7. Dualscreenman Says:

    Sorry, I feel like a complete idiot. I guess I was a bit excited.

  8. Öhr GmbH Says:

    lol
    dont read blogs like children’s books. looking only at the pictures xD

  9. Warlord698 Says:

    Sweet, cant wait to get sound on it, Great work man. Keep on rockin

  10. wangtang32000 Says:

    umm.. how do we supposed to watch our flash movies? do you have a read me that tells you how or something,.. i needs to know. cause all i have been doing is converting my flash movies to avi, and mpeg format, and i dont like that (sometimes triple-double-quadriple the size limit, ex: 3 mb = 207 mb+) but take your time, i can wait, do it when your redy.

  11. HtheB Says:

    COOOOOL!!! :)

    well.. maybe there will be an upgrade for the player.. (with sound support? ) :)

    we are counting on you Natrium42! 😀 (hope he is going to do it :P)

  12. joshbuhler.com » Blog Archive » Flash on your DS Says:

    […] F player for the DS. Natrium42 has put together DSFlash, which is a basic Flash Player based on GPLflash. There’s no sound, and no in […]

  13. pass Says:

    What is the simplest way to compile it with our own flash movies?

  14. Hexagone Says:

    Why don’t use the flash 7 SDK ?

  15. nanolib Says:

    Is something goes wrong with the makefiles? It cannot be compiled! sometimes it tries to access the Folder c:\Projects\NDS\GameSWF\

  16. Koba Says:

    To compile your own video into this, simply grab your swf movie, rename it to swf.bin, and copy it into the arm9/data/ folder, then compile.

  17. enables Flash Users to quickly browse the SWF files Says:

    Quick Flash Player is a stand-alone flash player that enables Flash Users to quickly browse the SWF files. Quick Flash Player offers a variety of playback capabilities including full screen mode. A seek bar has been provided to navigate SWF files very easily.

  18. josh Says:

    how do you put this on the nintendo ds

  19. josh Says:

    how do you put this on the nintendo ds

  20. [OWA]Leon Says:

    I cant put my flash on this… can some1 help me??!?!?!?!

  21. Kurt Granroth Says:

    thanks for your link about the simple movie, and i just want to know how do you make the quick port of GPLflash to DS?

  22. TreLantana Says:

    This looks pretty dang cool, but you should add some sound capabilities, along with FLV support. I’m not sure if this supports FLV files or not, as I haven’t actually tested this, but that would be a great idea, because FLV files can be a huge amount smaller than the full MPG file, thus making for an easier portability of lengthy video files.

    Once again, sound AND FLV support would be really freakin’ cool.

  23. Max Says:

    I can’t get the source code to compile on devkitpro v19! What’s wrong?

  24. Max Says:

    Lots of undefined references to Unwind_sjlj_Register/UnRegister/Resume. Is it because I have v19 instead of v18, or am I missing a library?

    And TreLantana, flv is an entirely different thing from Flash, I believe. It takes a whole lot of processing power to decode. Not saying it’s not impossible, but until then just use Moonshell, Mediacoder and BatchDPG.

  25. natrium42 Says:

    @Max
    You probably need to compile the libraries before you compile the main program. As far as I remember, I didn’t set up the makefiles to do that automatically.

  26. Max Says:

    XD! Works great now! libflash had a few little problems, but I used the help provided here:

    http://www.fourmilab.ch/fourmilog/archives/2006-05/000699.html

    The Demented Cartoon Movie didn’t fit, so I used the shapemorph thing you included. Why is it called shapemorph when it just flashes a triangle?

    Now time to brush up on my programming skills and give this baby sound and FAT loading.

  27. Shejken Says:

    Is there any readme file for this? I would really like to know how to compile and play .swf files on my ds!

  28. rawrz Says:

    What do i compile, and what libraries do i need?

  29. eblup Says:

    hey ummmmmm it dosent work. i have a datel max 4gb on my dsl and when i open it it comes up with a weard fuzzy orange black thing can you tell me what is wrong plz and thank you

  30. Thomas Scott Says:

    Software is big work . We need flexibility

    in s/w developement .

    ———————–

    Put 144 pin ARM7 on GBA cart + 2MB SRAM and SD card …

    And OTG-FS-USB .

    ————————

    Now we have 2 ways to do anything .

    I can develope s/w on both NDS and external
    144 pin ARM .
    ——————
    Pass thru to I.D.E. HDD , allowing both to access
    100 MB HDD and SD card .

    Its nice to be able to do things more than one
    way .

  31. soulanger Says:

    Doesnt anyone wants to pick this up and continue it? Its open source so i hope someone would :(

  32. Peter Boné Says:

    hhm.. I’ve compiled libjpeg, and libzlib, but when compiling libflash i get the following error (using devkitpro 1.4.2):

    libflash/matrix.h:36: error: extra qualification ‘Matrix::’ on member ‘getX’
    libflash/matrix.h:42: error: extra qualification ‘Matrix::’ on member ‘getY’
    make[1]: *** [adpcm.o] Error 1
    make: *** [build] Error 2

    ….any clues?

  33. Peter Boné Says:

    Ah, sorry for not researching properly before wanking about the error :) Max actually provided some of the solution above.

    To get it to compile with devkitpro 1.4.2, do the following:

    libflash/matrix.h:36: remove ‘Matrix::’
    libflash/matrix.h:42: remove ‘Matrix::’
    libflash/graphic16.h:27: remove ‘GraphicDevice16::’
    libflash/graphic24.h:27: remove ‘GraphicDevice24::’
    libflash/graphic32.h:27: remove ‘GraphicDevice32::’
    arm9/source/dsflash.cpp:65: change POWER_CR to REG_POWERCNT

  34. Homebrew disciple Says:

    I tried your precompiled version with both swf.bin and a normal swf file it didn’t show anything but blurry motionless lines

  35. aznalex007 Says:

    how do you even get it onto your ds

  36. andrew Says:

    ok, I was wondering so you can instal flash on your ds? is this somewhat like adobe flash player? I’m confused or something.

  37. emily Says:

    wow y doesnt the ds have sound? i think that that’s retarded!

  38. randy Says:

    i got the Moonshell operating system for my DS.
    where do I put the Flash?
    do i put it with the DS games or make a separate folder?

  39. hangoo99 Says:

    I’ve tryed what Peter Boné said, with PALib from 060917 and DevkitARM release 19b (on intel os x) and it comiples fine but the video isn’t playing right, it just flashes the triangle really quick. Please, what could be wrong?

    Tnx

  40. Joee Says:

    How do u put it on your ds?

  41. WarSong Says:

    there are several flash games on the homestar runner site. with a bit of touch screen support and a way to map the pc keyboard to the ds’s control buttons it would be possible to play these games. i don’t know if gplflash supports the scripting tho. stinkoman would be a fun game to port over tho.

  42. timothyb89 Says:

    It’s a start- I was able to get as far as getting an image to display.
    Even so, my devkit install didn’t play so nicely with this.
    gcc kept fussing about IPC->curtime. I grepped around my devkit sources and found it was now IPC->time.curtime.
    It would also seem that the IPC->heartbeat is now gone. I got it to compile by simply commenting out line 84 in template.c, but I think this prevents the movie from playing. (some sort of progress meter, maybe?)

    I also noticed the sound code from the sources. If that works, that’s a nice improvment :)
    Now the only problem is adding fat support so you don’t have to recompile every time you want to watch a different video. There may have to be a size limit on the swf file, though…

    Overall, great work! However, some updates to the code to support more modern devkits would certainly be welcomed :)

  43. www.GameLaw.ORG Says:

    natrium42, are you planning on teaching your player to access .SWF files external to the .NDS ROM executable?

    I’m assuming GPLFlash is compatible with only the older Flash, maybe Flash 4 (full screen)?

    Have you interacted with the DragonMinded.com folks? This would be a great helper app to their DSOrganize browser.

    http://www.GameLaw.ORG

  44. Steven Says:

    Does it work for Nintendo DS Browser?

  45. Rob Says:

    ..I Dont rly understand soo,what can i do differently w/ this?..play flash games online on me DS,youtube vid?? i dont rly know 😛

  46. Tom Says:

    ok its on my CycloDS. just the whole folder in the root directory. what the hell do i do now? lol a readme wud b gr8, all i can do is get a flashing triangle

  47. pang Says:

    How do you compile videos??????

  48. Snoopy Says:

    [root@localhost lib]# make
    make[1]: Entering directory `/home/kudo/nxp/PR9.0/swf/libflash-0.4.10/lib’
    /bin/sh ../libtool –mode=compile mipsel-linux-g++ -DPACKAGE=\”libflash\” -DVERSION=\”0.4.10\” -I. -I. -I/opt/gtkdfb-mipsel/include -I../lib -O3 -Wall -fno-rtti -fno-exceptions -g3 -c flash.cc
    mipsel-linux-g++ -DPACKAGE=\”libflash\” -DVERSION=\”0.4.10\” -I. -I. -I/opt/gtkdfb-mipsel/include -I../lib -O3 -Wall -fno-rtti -fno-exceptions -g3 -c flash.cc -fPIC -DPIC -o flash.lo
    swf.h:199: error: previous declaration of ‘int shape_size’ with ‘C++’ linkage
    flash.cc:266: error: conflicts with new declaration with ‘C’ linkage
    swf.h:199: error: previous declaration of ‘int shape_nb’ with ‘C++’ linkage
    flash.cc:266: error: conflicts with new declaration with ‘C’ linkage
    swf.h:199: error: previous declaration of ‘int shaperecord_size’ with ‘C++’ linkage
    flash.cc:266: error: conflicts with new declaration with ‘C’ linkage
    swf.h:199: error: previous declaration of ‘int shaperecord_nb’ with ‘C++’ linkage
    flash.cc:266: error: conflicts with new declaration with ‘C’ linkage
    swf.h:199: error: previous declaration of ‘int style_size’ with ‘C++’ linkage
    flash.cc:266: error: conflicts with new declaration with ‘C’ linkage
    swf.h:199: error: previous declaration of ‘int style_nb’ with ‘C++’ linkage
    flash.cc:266: error: conflicts with new declaration with ‘C’ linkage
    make[1]: *** [flash.lo] Error 1
    make[1]: Leaving directory `/home/kudo/nxp/PR9.0/swf/libflash-0.4.10/lib’

  49. trunip190 Says:

    it would be very useful to know whether to put the whole, uncompressed archive on the flash cartridge, only some files, some files in certain folders or what.
    there is NO documentation, and i do not plan on spending days trying every copmbination under the sun.
    Lots of people have already asked this, and it would remove a lot of posts from your blog.
    please upload some instructions.

  50. natrium42 Says:

    Why should I make any instructions? It’s for developers *only* and they can read the source code just fine. This is nowhere near a state where it would be useful to users at this point. Sorry to disappoint…

  51. Erick94 Says:

    Like other here i understand it and we want to know how much time w need to wait until next version self-compil of this sorry but i dont talk to much english, tougth i undestand wath you say..
    I understand the code bu i dont like the idea to work in a program that much

  52. Sirnight Says:

    HOLY SH1T O_o A FLASHPLAYER ? Wait , that was only in my dreamzz … 2006 ? AND I NEVER SEARCHED THIS B4 !! When I gat my M3 Linker that was my first Idea !!! OMG I never searched about thizz … Wowie

  53. RobertLee Says:

    I’m not able to open or see any of my flash files. I see only a triangle who’s flashing. What can I do?

  54. dwsf Says:

    ok i have no idea about this flash thing, i put it on my ds and… yeah all i saw was like some triangle that was blury, any ideas on how i can actually play flash or at least select a flash file on this program?

  55. dwsf Says:

    i just noticed the time it was released lol its been like 3 years no im wondering if theres an updated version of this yet?

  56. maoooojjjj Says:

    ok i have no idea about this flash thing, i put it on my ds and… yeah all i saw was like some triangle that was blury, any ideas on how i can actually play flash or at least select a flash file on this program?

  57. Harry jones Says:

    Do i have to compile it or can I just use the .nds file????

  58. wtf Says:

    sigh…. another useless ds homebrew project that has potential but falls WAY short. Too bad there’s (insert sarcasm here) NOT TOO MANY OF THESE!

  59. lolbroek Says:

    i just see a triangle??
    how is this possible?
    and how to solve it?

  60. SifJar Says:

    @dwsf No i dont think there is an updated version yet

    BTW, can anyone tell me exactly what to do to add my own flash movies to it? i tried to compile but got the error mentioned half a dozen times above. There was something mentioned about compiling libraries first, what libraries, and how do i do that?

  61. jpoopdog Says:

    since you say that only developers know how to read the source code and program swf files into the flash player why not save us people who dont know how to the disapointment of not being able to do it by making a screen recording of how to make the swf file play on the program to the point where it goes on the ds post it on youtube or make it an animated gif or something
    show what needs to be done so you can have it ready to play the file , it would be a big help for that and understanding devkit ,

  62. natrium42 Says:

    I have no idea what you said since I ran out of breath reading your comment.

  63. jpoopdog Says:

    make a screen recording of you turning a swf file into a nds file to show other people how to do it as well

  64. brandon Says:

    how do you get the flash player onto your ds

  65. Jamie Says:

    Can this play flash games?
    Sorry if im being dumb. xD

  66. Marlon Says:

    I’ve got an error when i compile it (Lastest Devkitpro, palib) :
    c:/DSFlash/arm7/source/template.c: In function ‘startSound':
    c:/DSFlash/arm7/source/template.c:27: error: ‘SOUND_8BIT’ undeclared (first use
    in this function)
    c:/DSFlash/arm7/source/template.c:27: error: (Each undeclared identifier is repo
    rted only once
    c:/DSFlash/arm7/source/template.c:27: error: for each function it appears in.)
    c:/DSFlash/arm7/source/template.c:27: error: ‘SOUND_16BIT’ undeclared (first use
    in this function)
    c:/DSFlash/arm7/source/template.c: In function ‘VblankHandler':
    c:/DSFlash/arm7/source/template.c:49: warning: ‘getIPC’ is deprecated (declared
    at c:/devkitPro/libnds/include/nds/ipc.h:64)
    c:/DSFlash/arm7/source/template.c:49: error: ‘TransferRegion’ has no member name
    d ‘curtime’
    c:/DSFlash/arm7/source/template.c:61: error: too few arguments to function ‘touc
    hReadXY’
    c:/DSFlash/arm7/source/template.c:63: error: ‘touchPosition’ has no member named
    ‘x’
    c:/DSFlash/arm7/source/template.c:64: error: ‘touchPosition’ has no member named
    ‘y’
    c:/DSFlash/arm7/source/template.c:84: warning: ‘getIPC’ is deprecated (declared
    at c:/devkitPro/libnds/include/nds/ipc.h:64)
    c:/DSFlash/arm7/source/template.c:84: error: ‘TransferRegion’ has no member name
    d ‘heartbeat’
    c:/DSFlash/arm7/source/template.c:85: warning: ‘getIPC’ is deprecated (declared
    at c:/devkitPro/libnds/include/nds/ipc.h:64)
    c:/DSFlash/arm7/source/template.c:86: warning: ‘getIPC’ is deprecated (declared
    at c:/devkitPro/libnds/include/nds/ipc.h:64)
    c:/DSFlash/arm7/source/template.c:87: warning: ‘getIPC’ is deprecated (declared
    at c:/devkitPro/libnds/include/nds/ipc.h:64)
    c:/DSFlash/arm7/source/template.c:88: warning: ‘getIPC’ is deprecated (declared
    at c:/devkitPro/libnds/include/nds/ipc.h:64)
    c:/DSFlash/arm7/source/template.c:89: warning: ‘getIPC’ is deprecated (declared
    at c:/devkitPro/libnds/include/nds/ipc.h:64)
    c:/DSFlash/arm7/source/template.c:90: warning: ‘getIPC’ is deprecated (declared
    at c:/devkitPro/libnds/include/nds/ipc.h:64)
    c:/DSFlash/arm7/source/template.c:91: warning: ‘getIPC’ is deprecated (declared
    at c:/devkitPro/libnds/include/nds/ipc.h:64)
    c:/DSFlash/arm7/source/template.c:92: warning: ‘getIPC’ is deprecated (declared
    at c:/devkitPro/libnds/include/nds/ipc.h:64)
    c:/DSFlash/arm7/source/template.c:92: error: ‘TransferRegion’ has no member name
    d ‘battery’
    c:/DSFlash/arm7/source/template.c:93: warning: ‘getIPC’ is deprecated (declared
    at c:/devkitPro/libnds/include/nds/ipc.h:64)
    c:/DSFlash/arm7/source/template.c:93: error: ‘TransferRegion’ has no member name
    d ‘aux’
    c:/DSFlash/arm7/source/template.c:96: warning: ‘getIPC’ is deprecated (declared
    at c:/devkitPro/libnds/include/nds/ipc.h:64)
    c:/DSFlash/arm7/source/template.c:96: error: ‘TransferRegion’ has no member name
    d ‘curtime’
    c:/DSFlash/arm7/source/template.c:99: warning: ‘getIPC’ is deprecated (declared
    at c:/devkitPro/libnds/include/nds/ipc.h:64)
    c:/DSFlash/arm7/source/template.c:99: error: ‘TransferRegion’ has no member name
    d ‘temperature’
    c:/DSFlash/arm7/source/template.c:100: warning: ‘getIPC’ is deprecated (declared
    at c:/devkitPro/libnds/include/nds/ipc.h:64)
    c:/DSFlash/arm7/source/template.c:100: error: ‘TransferRegion’ has no member nam
    ed ‘tdiode1′
    c:/DSFlash/arm7/source/template.c:101: warning: ‘getIPC’ is deprecated (declared
    at c:/devkitPro/libnds/include/nds/ipc.h:64)
    c:/DSFlash/arm7/source/template.c:101: error: ‘TransferRegion’ has no member nam
    ed ‘tdiode2′
    c:/DSFlash/arm7/source/template.c:105: error: ‘TransferSound’ undeclared (first
    use in this function)
    c:/DSFlash/arm7/source/template.c:105: error: ‘snd’ undeclared (first use in thi
    s function)
    c:/DSFlash/arm7/source/template.c:105: warning: ‘getIPC’ is deprecated (declared
    at c:/devkitPro/libnds/include/nds/ipc.h:64)
    c:/DSFlash/arm7/source/template.c:105: error: ‘TransferRegion’ has no member nam
    ed ‘soundData’
    c:/DSFlash/arm7/source/template.c:106: warning: ‘getIPC’ is deprecated (declared
    at c:/devkitPro/libnds/include/nds/ipc.h:64)
    c:/DSFlash/arm7/source/template.c:106: error: ‘TransferRegion’ has no member nam
    ed ‘soundData’
    c:/DSFlash/arm7/source/template.c:49: warning: unused variable ‘ct’
    c:/DSFlash/arm7/source/template.c: In function ‘main':
    c:/DSFlash/arm7/source/template.c:129: warning: implicit declaration of function
    ‘powerON’
    c:/DSFlash/arm7/source/template.c:130: error: ‘SOUND_CR’ undeclared (first use i
    n this function)
    c:/DSFlash/arm7/source/template.c:131: warning: ‘getIPC’ is deprecated (declared
    at c:/devkitPro/libnds/include/nds/ipc.h:64)
    c:/DSFlash/arm7/source/template.c:131: error: ‘TransferRegion’ has no member nam
    ed ‘soundData’
    make[2]: *** [template.o] Error 1
    make[1]: *** [build] Error 2
    make[1]: Leaving directory `/c/DSFlash/arm7′
    make: *** [arm7/DSFlash.elf] Error 2

  67. natrium42 Says:

    > Lastest Devkitpro, palib

    There’s your problem

  68. b0nesaw Says:

    wo kann ich den flash player downloaden?

  69. Marlon Says:

    But what must i download, if i cannot use the lastest devkit and palib?

  70. Marlon Says:

    I’ve got a good suggestion:
    There is a new Flash card, iPlayer, with a extra 16MB RAM, and a few others.
    Maybe you can run it perfectly on this?

  71. Conner Says:

    Stop your whinging of “no sound” and “it doesn’t work” IF it doesn’t do the things you want it to do, fix it yourself, add things, fix stuff, remove stuff. stop depending on other people to do stuff for you.

  72. jpoopdog Says:

    remember that you can use the palib function play sound to play the audio of the swf file when the video starts, simply convert it to an mp3 with a converter

Leave a Reply

For spam filtering purposes, please copy the number 4335 to the field below:


 
© 2010 Alexei Karpenko (natrium42)