Game Boy/Advance/Multimedia

A question often asked is can I run music/video/pictures or view text on my GBA or my DS?

The answer is of course yes.

There exists multiple solutions for both consoles and this article will endeavour to explain them.

Audio and video are generally complex by nature and are the subject of numerous websites, forums, books....., to this end it is going to be impossible to answer all questions regarding them, however should another site have more detail/good explanations they will be linked to. Images and text are fairly simple though in relation to video.

There are two consoles this wiki deals with: the GBA and the DS so the following article will be split into multiple sections for video, audio, text and images with those section being broken down further into the GBA and DS methods.

Before continuing though it is worth noting that the GBA methods will also work with the DS and any DS methods will require you being able to run code on the DS I.E. you have a Passme ,DS with Flashme or are able to run Flashme with Wifime.

= Video =

Video on electronic devices is done by showing you lots of pictures taken very closely together very quickly thus creating the illusion of movement. It is for this reason decoding video (especially of the highly compressed variety) places high demand of a systems resources (it was one of the main reasons for the introduction of MMX - or MultiMedia eXtensions - technology on your PC), the GBA lacks much in the way of speed and memory and the DS is not that much further ahead in terms of hardware specifications, never the less it is still quite possible to get video to play in quite a reasonable quality on your GBA or your DS hardware. Due to hardware limitations on your GBA you will be lucky to get any video to play back in reasonable quality if it lasts longer than about 10 minutes with the solutions available that require no new hardware. The DS however especially one using an EZ4 and moonshell can easily have a full length film in perfectly watchable quality.

Introduction to video
You will probably find the following things useful during video conversion:

Video editing shopping list

Virtual Dub It would be suggested that you use and learn the original version initially before experimenting with the modified versions. Video in containers such as Ogg media (.OGM) and Matroska video (.mkv) will not work with Virtual dub and due to a lawsuit threat from Microsoft ASF/WMV support has been removed from it. Other files using Real Video containers and Apple's QuickTime format will also cause troubles with conversion, requiring conversion to an MPEG or AVI format before being converted by Meteo (this was the main reason for linking AVIsynth).

Some of you may be aware there exists a modified version of virtual dub which supports .MKV and .OGM as well as Mpeg-2 (DVD) formats called virtualdubmod which is now effectively discontinued. This may cause difficulties in the future if .MKV or .OGM files change not to mention having to learn a new GUI, it should be able open all .mkv files but newer subtitle methods for instance will not work correctly.

You can grab a copy of AVIsynth and use it in conjunction with virtual dub to open these sorts of files, AVIsynth while a fantastic program which is used by most of the professional and enthusiast video world (or at least programs of a similar vein) is script based and quite difficult to learn (although more than well worth taking the time to learn). While not really necessary for most things it is an incredibly powerful tool that enables you to do nearly everything you will ever want to do with video.

G-Spot: codec infomation appliance Want to convert a file?, you will need to know what you are converting from.

The Combined Community Codec pack Probably the best way to enable you to play multimedia files.

Xvid windows binary Simply put a useful codec you will likely use all the time. CCCP above comes bundled with FFDShow which is capable of encoding files using XVID but this can save some hassle.

These things should give you a basic grounding in video editing although it is geared more towards AVI files (AVIsynth is there so you can open most other types), there are hundreds upon hundreds of video editing programs but these will help you start out.

Introduction As mentioned above video is often a very complex area of computing, a few terms will have to be defined before going any further:


 * container

What your video (and normally audio and occasionally subtitles) comes in. The ones you will frequently meet are Audio Video Interleave (files with a .AVI extension, one of the oldest and most popular containers), Matroska video (.mkv extension), Ogg video (.ogm extension), Moving Pictures Experts Group format (.mpg or .mpeg extension), Quicktime video (.mov extension), Real networks format (various extensions normally with RM in them), Windows media (.asf or .wmv) and DVD format (.vob extension).


 * codec

What is used to compress (called encoding) and decode your video and audio. There are hundreds of different codecs available for both video and audio which may or may not fit fall under certain specifications and so be able to at least decode one another. Nowadays the most popular specification is MPEG4 (or more accurately MPEG-4 Part 2) with codecs like the open source Xvid (windows binary here) and commercial DIVX (pre 6 series) being the most popular implementations, DIVX 6.0 and beyond have been more focused upon providing a video solution (package) for people. These codecs are slowly being superseded by H264 codecs (H264 is the same thing as MPEG-4 Part 10 and is sometimes called AVC) or which can achieve far better compression at the cost of the increased CPU power needed to decode them. Places like Gametrailers are now using H264 codecs for high definition video. There are quite a few H264 compliant codecs with a nice list being here. Many find codec packs which contain many codecs in them a desirable thing to install however this is not such a good idea. Common codec packs such as ACE and K-Lite (and most others) are also not a wise thing to install on your system so if you are looking for something to decode/playback video the Combined Community Codec pack aka CCCP is made by some very talented people and should suit your needs.


 * Player

This one should be fairly obvious but it is what is used to play back your multimedia files, most people reading this will be using a Windows based operating system (Flash carts and most video tools are windows only) and so will need a decent player. The one bundled with windows is called Windows Media Player and is not held in high regard: it is bloated with poorly thought out features and is slow as a consequence, does not support many containers, crashes frequently and is generally a pain to use. Suggestions for good players are media player classic and Zoomplayer (both are suggested players for The Combined Community Codec pack and come with it, VLC is a good multiplatform player.


 * encoding and transcoding

This is the process of turning your sequence of images into a file that has the data from them. You will hear there are two overall types of codec/encoding: lossy and lossless. Lossy is as it sounds you lose data compared to the original sequence of images, the benefit to this is you save a large amount of space compared to your image sequence and lossless codecs. You will see errors in the picture known as compression artifacts, the two most common are quilting (the image you see appears to be made up of squares which gives it a quilt like appearance) and banding (banding is where the amount of colours available to be used to represent pixels in an image is not large enough; the result is the pixels change in colour more drastically across in the image as pixels are forced to hop between colours that are different enough for you to visually). You can expect to see both these errors fairly frequently while playing with video on your handheld. Lossless codecs are maninly used for capturing video and originally for conversion from one codec to another (nowadays programs called framesevers such as AVIsynth are used to help convert video) and can end up quite large. Transcoding is where files are converted from one codec to another or where files have their compression increased, this is probably what you will be doing most of time when playing around with video.

G-Spot: codec infomation appliance should be able to tell you with a minimum of fuss what your video files use for a codec thus allowing you to track down a website/cd with the required codec on it.

Introduction continued As has been mentioned multiple times already there exists hundreds of video editing software packages some free, some not which may accomplish the necessary tasks.

You may also want to convert sections from DVD's which is another task in and of itself.

99 times out of 100 the DVD's will need to be decrypted and some of the more recent DVDs will likely need to have their structure fixed (a few "new" forms of encryption corrupt the DVD files which can cause errors in playback as well as some decryption software) and as well as this the files themselves will need to be re-encoded.

A fantastic website from which to learn all this is Doom9.org and the forums there, it is also available in multiple languages should English not be your first/desired language.

Video on the GBA
The GBA (and emulation thereof) has been around for quite a few years and as such some effective solutions to multimedia have come about:

It is also worth noting that video playback quality on your Gameboy Player will be very bad in terms of picture quality.

There exists a few extra pieces of hardware, some offcial, some third party that work with the GBA to enable you to watch video and listen to music but as this wiki deals with flash carts they shall likely not be mentioned further. The official solution that was used in the GBA video carts was never released but there does however exist a perfectly viable alternative:

It is called Meteo (or on occasion you may see it called AVI -2- GBA): the homepage (Japanese language) is located here, an English translation is available here.

Meteo requires that you have at least Direct X 8.21 installed for it to function.

Compared to video on the PC and such Meteo is rather primitive but it is still a very nice method of getting video working on your GBA hardware.

It is only able to convert video in the MPEG container and the AVI container, as it appears to use its own video conversion code tools such as AVIsynth do not function with it, you can however use AVIsynth with other programs to get a working source for Meteo. It also lacks support for software implemented subtitles (soft-subs), hard subs (subtitles integrated within the picture) work but due to the re-sizing and so forth that occurs it is likely the any such subtitles will become less readable during the process.

The Meteo program as mentioned above can transcode video without the need of external programs, this however can be problematic with certain codecs and some of the more exotic codecs as well as if your AVI files do not correspond very closely to standards or if your video contains errors: frozen frames, corrupt frames etc.

Normally however if the files play in Windows media player should work with meteo, it must be said that Windows Media Player is a poor player for use at all and you would do well to be installing something such as media player classic or zoomplayer. Codec packs such as ACE and K-Lite (and most others) are also not a wise thing to install on your system so if you are looking for something to decode/playback video the Combined Community Codec pack is made by some very talented people and should suit your needs.

That said most of the files you will want to encode will probably be encoded with some form of MPEG4-part2 compliant codec (aka DIVX, DIVX3 (low/high motion), XVID, MS-MPEG4) thus requiring an MPEG4 codec with which to be able to open (decode) the video in a program such as Virtual Dub, XVID should be able to sort you out with regards to this.

Even if you have a “good” video source Meteo can still have issues with converting it, to this end if you re-encode your video as a AVI file using "full frames uncompressed" as your codec and PCM wave as your audio track (any file made this way will be HUGE: up in the gigabytes range for only a few minutes of video) you should not experience too many difficulties with Meteo.

Here is a picture of Meteo's GUI:

http://ezflash.sosuke.com/wiki/images/multimedia-meteo.JPG

As with most video there exists a "sweet spot", infact there exists multiple "sweet spots", which has video being small in size while retaining quality.

The rate you see and will be able to set in meteo's GUI will include audio so there is little need to worry about that. As with most video programs the bitrate (amount of space used per second of video: bigger number here -> better quality and bigger file made) you choose may not equate to what comes out, so you may want to allow for this or be prepared for multiple encoding sessions, a few seconds with a calculator should serve to give you reasonable numbers for this.

You are not likely to get a good quality video file (unless it is 30 odd seconds long) if you do not aim for 32 megabytes/ 256mbits in total file size, you may want to keep a calculator handy so as to get the best file you can.

You will also another see two other boxes in which wou can enter some values:

GBA ROM file: The name of the rom file on your computer. Any name you like is ok (Unicode characters may cause trouble though), just make sure it ends with .gba.

ROM Name: In EZClient this will be the name you see in the "rom english name" box or with the EZ3 this is the 8 letter name of your file you will see in EZPDA.

The rest of the GUI is deals with re-sizing and cropping: you would do well to set the aspect ratio the same and cropping as little as possible (unless you have black bars at the side of your video (say from a widescreen source), in which case crop away).

GBA controls: all buttons reset playback to start (be careful).

Tips:


 * if re-encoding with virtual dub and ultimately aiming to use a GBA SP (or ay other GBA hardware) an increase in brightness and contrast can make the resultant video look better.


 * here contains a list of some of the better rates and numbers to use with meteo for the best output files.


 * remember more compression = lower quality (true for all video)

Nintendo DS and video
Running these programs on a slot 2 card requires a Passme Variant or a DS with Flashme

Generic video player for use on all cards: French Language: Playeradvance forum post link

EZ5 and Video
Users of the EZ FLash 5 can use video right of their flash card. This is because the kernel is based off moonshell. All you need to do is place a dpg file on your card, navigate to it, and run it.

EZ4 and video
EZFlash IV users you have the ability to play video off of the cart. To do this you first you must convert it using Moonshell DPG tools, the user interface is in just about every language going so that is of little worry (not to mention the language files are similar to the EZFlash programs in being simple text documents (which you can edit) mapped to areas of the UI).

What you do to convert it is have your file you want to convert ready beforehand, it can be in .mpg/.avi or .wmv containers.

Open the file in dpgenc.exe and press encode, it will take probably take less than an hour depending on your computer speed and length of video.

Then burn the special moonshell.ds.gba file located in the root directory of EZ4 Client to your miniSD. See EZFlash 4 for ways to compile your own version.

As dpgenc.exe just out sources the work to other programs AVIsynth does not work with it, it uses some of the most respected video programs in the video community so it should be fairly bullet-proof in terms of bad input files you can get while still maintaining functionality.

Hard subtitled video will not be comfortable to read unless it takes up about the bottom 3rd of the frame per line.

It does not deal so well with high action scenes but otherwise is an effective solution and the files generated are perfectly watchable.

Here is a picture of the user interface:

http://ezflash.sosuke.com/wiki/images/multimedia%20-dpgencUI.JPG

You may see another program around called BatchDPG with some promising features (something resembling AVIsynth support, better subtitles..) but while it functions and you can get a usable video from it you will likely get better results with the tools already linked.


 * To be updated with in depth usage after more extensive testing, the above settings will generate a decent quality file for most video at reasonable size however.

= Music =

Should you be looking for some audio conversion software there exists many very good solutions see the downloads section of doom9 for some good programs.

EZ5 Audio
Like video the EZ FLash 5 can play audio files right from the card. Since it is built off of moonshel it can only run .mp3 and .ogg audio files at the moment. Simply place files with these types anywhere on the card and select it.

EZ4 audio
Like video the EZ4 can play it directly from the cart, you will once again need to copy and run the moonshell.ds.gba from the EZ4 Client base directory to the miniSD card. You can copy and then playback MP3 files of various bitrates (it would be advisable to put the MP3’s in a separate directory

It supports MP3’s of various bitrates (up to 320kbps CBR tested thus far) and reads ID3 tags, if you want a decent tag editor MP3 tag is good.

It also supports .OGG container files but thus far they do not work.

GBA
TheGBA is too slow to use MP3 format audio and decode it in real time, there does however exist a few methods of playing back audio which are very good.

GSM player:

Homepage

A nice little player that posseses reasonable quality:compression ratio, worth a look none the less.

Music Player Advance:

Music Player Advance

Will not replace your solid state player but good none the less. Requires that you convert your audio files (MP3, FLAC, OGG, wave whatever) to 16-Bit intel, stereo or mono with samplerates of 16000,11025 or 8000. Then rename this file .pcm

A guide is on the link although it is worth noting you can use windows sound recorder, nero sound recoder and many other programs too (there are a load in the downloads section of doom9.org)

It has a nice GUI with support for multiple songs.

Provided you can do that this will likely be your player of choice.

Buttons are as folows:

A = Play

B = Stop

Select = Shuffle/Repeat ON or OFF

Start = Pause

Left = Select Repeat (repeats song over and over)

Right = Select Shuffle (random track order)

L = Lock mode (will not respond to keys until unlocked: useful if you put it in a bag/pocket)

R = Sleep mode

To select a song, press up or down, then B followed by A.

GBA aplha walkman

A third contender is called GBA aplha walkman, in chinese language only but still quite good:

GBA aplha walkman

= Pictures =

Nintendo DS
The EZ Flash 5 can view jpg, gif, bmp, and png picture types

GBA
EZPDA supports some picture formats however you may not be using an EZ3:

A (good) picture viewer true but it does support audio playback:

GBA Jpeg Viewer

Two other good viewers are here

= Text =

GBA
EZPDA supports text viewers and also some inbuilt html functionality.

However a bundled feature is rarely as good as a custom one and others do not have EZ3's:

EBook Advance

EBook Advance

A nice bit of freeware includes the ability to save the last read position

Bookreader

Not freeware (a decent demo is available) but very good none the less

Bookreader

Nintendo DS
The Nintendo DS with a touch screen can do text editors far easier than the GBA can so they exist here too.

telefragged's site

Still in beta but a text editor:

dragonminded