To build BadApple.nds, you must have devkitPro with libnds installed. Then just go into the NDS directory and run make.
To build the encoder run these commands in the PC directory:
mkdir build
cd build
cmake .. -G "MSYS Makefiles"
make
To run the encoder, you must have ffmpeg installed. Then simply run these commands in the directory where BadAppleEncoder.exe is:
mkdir imgs
ffmpeg -i input.mp4 -vf scale=256:192 -r 60/1 imgs\%05d.png -acodec pcm_s16le -f s16le -ar 48000 audio.raw
BadAppleEncode.exe
Now my program should be generating a video file that you can play on your NDS.
If you are running the homebrew through Unlaunch or no$gba, put BadApple.kpv onto the root directory of your SD card. Otherwise put it into the same directory as BadApple.nds. Now just run BadApple.nds in DSi mode with SD card access.
I didn't do all of this myself. I got a lot of help from Gericom, who also made the original version 4 years ago, which this version is heavily inspired by. I sadly wasn't able to get my own LZSS compressor to work, so I had to use CUE's. For loading the images I chose stb_image.h
If the video is too long, the audio will start to desynch. Bad Apple isn't long enough though. It may get fixed in a later release, but currently I don't have the time