Tutorial
Updated
Guide to making a video player using LPP-3ds (no lua knowledge required)
Average time required:
Depends on the length and size of your mp4 video. All other steps take ~15 minutes to complete.
Before asking about bugs, make sure to check the issues section first!
Requirements:
Step 1: Prepare your video.
lpp-3ds uses the JPGV video format. At the time of writing this guide, the most recent tool available is JPGVthon.
1. Download JPGVthon and extract it to a place where you can find it. (Note, JPGVthon has all it's important files at the root of the .zip file. Make sure to never extract to current directory, unless you want to mess up your downloads folder).
2 Move the mp4 of the file you're trying to convert in the same folder you extract it to.
3. Double click on jpgvthon.exe (you might need python here...)
3.5. If you are on Windows 10, SmartScreen will block it. Click on more info and then "Run Anyway".
4. In the CMD window that opens, enter the name of your input file '''including the .mp4 part!'''
5. Next enter the name of your output file '''including the .jpgv part!''' (By default lpp-3ds looks for output.jpgv in the same directory as the 3dsx.)
6. Next enter the framerate of your file. (See section 1.5 for details)
7. If your video is smaller than 400x240 (unlikely), enter the correct resolution here. Otherwise, just press enter.
8. If you didn't enter the resolution in the previous step you need to select the scaling (see section 1.5 for more details)
9. Now enter the quality. 0 is for low-quality and 1 is for high quality. (see section 1.5 for more details)
10. Now on the audio part of your video. First select wether you want mono or stereo. Mono is smaller in size. To select mono choose 1, and to select stereo choose 2.
11. Now comes the samplerate. Just press enter here.
12. Finally comes the codec. Enter 2 here and press enter.
13. Wait until it's finished
Step 1.5: Choice explanation
Scaling
If you enter 1, the video will be 'raw-scaled' meaning that the video will be stretched to fit if needed.
If you enter 2, the video will keep it's aspect ratio. This may result in black bars around the screen, but will keep your video at a user friendly size.
Quality
The quality difference does matter! I converted a 10.6mb, 5:24 length, 25 fps, video to both high and low quality. These were the outcomes:
High quality: 158mb
Low quality: 49.9mb
So yeah... think about the size for a second.
Step 2: lpp-3ds (or: putting your video in the player.)
1. Download the latest version of lpp-3ds and extract it somewhere where you can find it. (Note, lpp-3ds has all it's important files at the root of the .zip file. Make sure to never extract to current directory, unless you want to mess up your downloads folder).
2. Go to lpp-3ds/Builds/Normal (unstable has no error reporting)
3. Head over to this pastebin.
4. Download the pastebin for index.lua and save it to the folder where lpp-3ds.3dsx and lpp-3ds.elf are located.
5. Copy your JPGV from Step 1 to this folder.
6. Now open up index.lua with a good texteditor (Anyone using MS Word for this step will be shot. Use MS Notepad if you absolutely have to. Notepad++ is even better)
6.5. If your file isn't named output.jpgv, change it on line two. Do not remove any code before or after it!
7. Also, download the pastebin for lpp-3ds.xml and save it to the folder where lpp-3ds.3dsx and lpp-3ds.elf are located.
For HBC
8. Create a SMDH file (or copy the existing SDMH file located in builds)
9. Finally move your entire 'Normal' folder with the lpp-3ds.3dsx, index.lua, lpp-3ds.xml, lpp-3ds.smdh and your JPGV file to your SD card in the /3ds/ folder. You don't need to copy 3ds.elf.
10. Rename your copied Normal folder to lpp-3ds to wrap it up.
Step 3: Testing/Playing your videos
1. Launch the HBC using whatever way you have. It can be anyway you prefer. Themehax or browserhax, it isn't important.
2. If you used the existing SDMH file, it will be named Lua Player Plus. Otherwise it will be named to whatever you put in your SMDH file.
3. Launch that app. Wait a few seconds... and... your video will start playing. Look at the controls appendix to figure those out.
Appendix: Controls
The default controls for when in the video player are:
Appendix: Issues
You forgot lpp-3ds.xml or named it lpp-3ds.xml.xml
Windows hides known file extensions. Note that if you changed the folder name, you must change all the lpp-3ds files as well. That's just the way HBC works.
This should not happen anymore. If it happens, make sure that JPGV is configured to draw from the top screen, and not the bottom.
You uncommented the (currently non-functional) code for the Progress Bar. Comment it back. (comments are two dashes, like so -- .)
Use a lower samplerate.
By default the script looks for output.jpgv
If you are on Windows, make sure that you didn't accidentically name it output.jpgv.jpgv. Windows hides known file extensions. Otherwise, open up index.lua and look for the name on line 2.
Appendix: Reducing File Size
If your file is too large, try to look at these things:
Todo list
Step 4: Customizing the player
If you noticed any spelling/grammar errors, please tell me so I can fix them.
Depends on the length and size of your mp4 video. All other steps take ~15 minutes to complete.
Before asking about bugs, make sure to check the issues section first!
Requirements:
Step 1: Prepare your video.
lpp-3ds uses the JPGV video format. At the time of writing this guide, the most recent tool available is JPGVthon.
1. Download JPGVthon and extract it to a place where you can find it. (Note, JPGVthon has all it's important files at the root of the .zip file. Make sure to never extract to current directory, unless you want to mess up your downloads folder).
2 Move the mp4 of the file you're trying to convert in the same folder you extract it to.
3. Double click on jpgvthon.exe (you might need python here...)
3.5. If you are on Windows 10, SmartScreen will block it. Click on more info and then "Run Anyway".
4. In the CMD window that opens, enter the name of your input file '''including the .mp4 part!'''
5. Next enter the name of your output file '''including the .jpgv part!''' (By default lpp-3ds looks for output.jpgv in the same directory as the 3dsx.)
6. Next enter the framerate of your file. (See section 1.5 for details)
7. If your video is smaller than 400x240 (unlikely), enter the correct resolution here. Otherwise, just press enter.
8. If you didn't enter the resolution in the previous step you need to select the scaling (see section 1.5 for more details)
9. Now enter the quality. 0 is for low-quality and 1 is for high quality. (see section 1.5 for more details)
10. Now on the audio part of your video. First select wether you want mono or stereo. Mono is smaller in size. To select mono choose 1, and to select stereo choose 2.
11. Now comes the samplerate. Just press enter here.
12. Finally comes the codec. Enter 2 here and press enter.
13. Wait until it's finished
Step 1.5: Choice explanation
Scaling
If you enter 1, the video will be 'raw-scaled' meaning that the video will be stretched to fit if needed.
If you enter 2, the video will keep it's aspect ratio. This may result in black bars around the screen, but will keep your video at a user friendly size.
Quality
The quality difference does matter! I converted a 10.6mb, 5:24 length, 25 fps, video to both high and low quality. These were the outcomes:
High quality: 158mb
Low quality: 49.9mb
So yeah... think about the size for a second.
Step 2: lpp-3ds (or: putting your video in the player.)
1. Download the latest version of lpp-3ds and extract it somewhere where you can find it. (Note, lpp-3ds has all it's important files at the root of the .zip file. Make sure to never extract to current directory, unless you want to mess up your downloads folder).
2. Go to lpp-3ds/Builds/Normal (unstable has no error reporting)
3. Head over to this pastebin.
4. Download the pastebin for index.lua and save it to the folder where lpp-3ds.3dsx and lpp-3ds.elf are located.
5. Copy your JPGV from Step 1 to this folder.
6. Now open up index.lua with a good texteditor (Anyone using MS Word for this step will be shot. Use MS Notepad if you absolutely have to. Notepad++ is even better)
6.5. If your file isn't named output.jpgv, change it on line two. Do not remove any code before or after it!
7. Also, download the pastebin for lpp-3ds.xml and save it to the folder where lpp-3ds.3dsx and lpp-3ds.elf are located.
For HBC
8. Create a SMDH file (or copy the existing SDMH file located in builds)
9. Finally move your entire 'Normal' folder with the lpp-3ds.3dsx, index.lua, lpp-3ds.xml, lpp-3ds.smdh and your JPGV file to your SD card in the /3ds/ folder. You don't need to copy 3ds.elf.
10. Rename your copied Normal folder to lpp-3ds to wrap it up.
Step 3: Testing/Playing your videos
1. Launch the HBC using whatever way you have. It can be anyway you prefer. Themehax or browserhax, it isn't important.
2. If you used the existing SDMH file, it will be named Lua Player Plus. Otherwise it will be named to whatever you put in your SMDH file.
3. Launch that app. Wait a few seconds... and... your video will start playing. Look at the controls appendix to figure those out.
Appendix: Controls
The default controls for when in the video player are:
- A to exit
- B to pause
Appendix: Issues
I get an error with the DSP, what do I do?
You forgot lpp-3ds.xml or named it lpp-3ds.xml.xml
Windows hides known file extensions. Note that if you changed the folder name, you must change all the lpp-3ds files as well. That's just the way HBC works.
I get an 'out of bounds' error.
This should not happen anymore. If it happens, make sure that JPGV is configured to draw from the top screen, and not the bottom.
I get a 'value not in range' error.
You uncommented the (currently non-functional) code for the Progress Bar. Comment it back. (comments are two dashes, like so -- .)
The audio is desynced.
Use a lower samplerate.
I get a 'file not found' error.
By default the script looks for output.jpgv
Have a look at http://gbatemp.net/threads/release-...-cia-videos-for-everyone.415708/#post-6095051. This guide only helps with creating it as a 3dsx.I want this as a cia
If you are on Windows, make sure that you didn't accidentically name it output.jpgv.jpgv. Windows hides known file extensions. Otherwise, open up index.lua and look for the name on line 2.
Appendix: Reducing File Size
If your file is too large, try to look at these things:
- FPS is the big one. It's no use making a 30fps JPGV out of a 23fps MP4. Just set the FPS to 23 instead.
- The quality is also important. For more, see step 1.5
- Reduce the audio channels to mono instead of stereo.
- Use a lower samplerate.
Todo list
Step 4: Customizing the player
- Remap controls
- Hiding elements
If you noticed any spelling/grammar errors, please tell me so I can fix them.
Last edited by Ev1l0rd,