Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Rocket Video Player: Difference between revisions

From GameBrew
Created page with "{{Infobox DS Homebrews |title=Rocket Video Player |image=Rocketvideoplayer.png |description=A video player for Nintendo DS and DSi. |lastupdated=2019/05/29 |type=Media players..."
 
2.3.0
 
(25 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Infobox DS Homebrews
{{Infobox DS Homebrews
|title=Rocket Video Player
|title=Rocket Video Player
|image=Rocketvideoplayer.png
|image=rvp2.png
|description=A video player for Nintendo DS and DSi.
|description=A video player for Nintendo DS and DSi.
|lastupdated=2019/05/29
|author=RocketRobz
|type=Media players
|lastupdated=2026/01/30
|version=1.1
|type=Media Players
|version=2.3.0
|license=MIT
|license=MIT
|download=https://dlhb.gamebrew.org/dshomebrew/rocketvideoplayer.7z
|download=https://dlhb.gamebrew.org/dshomebrew2/rocketvideoplayer.7z
|website=https://gbatemp.net/threads/release-rocket-video-player-play-videos-with-the-ultimate-in-picture-quality.539163
|website=https://gbatemp.net/threads/release-rocket-video-player-play-videos-with-the-ultimate-in-picture-quality.539163
|source=https://github.com/RocketRobz/RocketVideoPlayer
|source=https://github.com/RocketRobz/RocketVideoPlayer
|donation=https://ko-fi.com/rocketrobz
}}
}}
Rocket Video Player is a video player for the NDS. It plays video files with an extension called .rvid, bringing you the ultimate in picture quality, thanks to it's lossless frame data.
<!--Rocketvideoplayer02.png-->
Rocket Video Player is a video player for the NDS and Game Boy Advance. It plays video files with an extension called .rvid, bringing you the ultimate in picture quality, thanks to it's lossless frame data.


'''Note from developer:'''
To play videos, you'll need to convert them to the Rocket Video (.rvid) format using [https://github.com/RocketRobz/Vid2RVID/releases Vid2RVID].


There are no plans on updating this. Please use the [[MPEG4 Player by Gericom]] instead (included in TWiLight Menu++).
[https://wiki.ds-homebrew.com/ds-index/rocketvideo Read this guide] for how to convert a video to the .rvid format.


==Features==
==Features==
* The same, but improved Rocket Video technology from [[TWiLight Menu++]].
* DS(i) version:
* Console-based file browser to search for your .rvid file.
** Support for videos up to 72FPS!
* The video UI from the DSi+Internet app.
** Both 8 BPP (256 colors) and 16 BPP (RGB555/RGB565) videos are supported.
* Support for videos up to 60FPS (25-60FPS video requires the DS Memory Expansion Pak, or a DSi or 3DS with the app on the SD card).
*** Screen color filters are not supported for 16 BPP videos.
* .rvid size for those FPS is limited to 11MB (DSi) or 16MB (DSi) (not counting header and sound data, so if it has sound, it may still play).
** Support for dual-screen videos!
* Both progressive and interlaced video.
** Support for audio up to 32khz Stereo.
* Audio up to 16khz.  
** The video UI from the &quot;Nintendo DSi + Internet&quot; app, with the title bar now containing the console's set color.
** Console-based file browser to search for your <code>.rvid</code> file.
* GBA version:
** Support for videos up to 60FPS!
** Both 8 BPP (256 colors) and 16 BPP (RGB555/RGB565) videos are supported.
** Support for audio up to 32khz Mono.


==User guide==
==Controls==
===Converting video to .rvid==
A or Play/Pause button - Play/Pause video
You will need:
* [https://github.com/RocketRobz/Vid2RVID/releases Vid2RVID].
* An earlier build of [https://sourceforge.net/projects/vdfiltermod/files/VirtualDub%20pack/version%2020/VirtualDub2_42671.zip/download VirtualDub2].
* [https://www.audacityteam.org/download/ Audacity] installed.
* On PC, create a folder called rvidFrames in the same directory as Vid2RVID.exe.
* On DS/DSi, create a folder called rvidFrames on the SD root.


'''Converting the sound (If your video has audio):'''
L or The left tip of the play bar - Stop video
* Open Audacity.
* Click File > Open...
* Search for the video file, and open it.
* Click Tracks > Stereo Track to Mono.
* Set Project Rate to 8000hz, 11025hz, or 16000hz.
* Click File > Export Audio...
* Go to the rvidFrames folder.
* Set filename to sound.raw.pcm.
* Set Save as type to Other uncompressed files.
* Under Format Options, set header to RAW (header-less), and encoding to Signed 16-bit PCM.
* Click OK on the remaining windows. If there is metadata visible, click Clear.
* Since Audacity has added .aiff or whatever the extension is, to the end of sound.raw.pcm, you'll need to remove that.
* If you only see sound.raw.pcm, make sure that file extensions are set to be shown.


'''Extracting the video frames:'''
D-Pad Left/Right - Jump 5 seconds (30 seconds with R shoulder held)
* Open VirtualDub2.
* Click File > Open video file...
* Search for the video file, and open it.
* Click Video > Filters...
* Click Add...
* Search for resize, and click on it.
* Click OK.
* Under New size, change the top-left number to 256.
* Under Codec-friendly sizing, click Multiples of 2.
* (Optional) If you still notice any blockiness after resizing, then download and use a de-blocking filter. If you want interlaced video (a way of increasing the frame rate), add the interlaced filter, and set it to Even fields first.
* Click Video > Frame Rate...
* If the frame rate is shown as current: 23.????, then under Frame rate conversion, click Convert to fps, and type in 24.
* If the frame rate is above 24.????, or if the resulting .rvid lags, then under Frame rate conversion, click Convert to fps, and type in 24, 15, or 10.
* Click File > Export > Image sequence...
* Set the exact following in this screenshot:
https://dlhb.gamebrew.org/dshomebrew/rocketvideoplayer3.png


and click ... to find the rvidFrames folder.
D-Pad Down/Up - Jump 10 seconds (1 minute with R shoulder held)
* Click OK to export the frames.


'''Making the .rvid file:'''
D-Pad Left+Down/Up+Right - Jump 15 seconds (2 minutes with R shoulder held)
* Open a text editor.
* Type in [RVID], then press Enter.
* Type in the following:
FRAMES = (Number shown on .png of last frame) (Example result: FRAMES = 1000)
FPS = (The frame rate number you're using) (Example result: FPS = 24) (NOTE: FPS will be doubled by the player, if video is interlaced)
V_RES = (The vertical resolution of the .png) (Example result: V_RES = 144)
* Save as info.ini in the rvidFrames folder.
* Open Vid2RVID.exe, or if on the DS console, Vid2RVID.nds.
* Press A to start the conversion.
* If sound.raw.pcm is found in rvidFrames, you'll be asked what sample rate the sound is.
* Go for the project rate you used in Audacity.
* You're done. Rename new.rvid to a new filename with .rvid at the end, then copy it to your SD card to play in the Rocket Video Player.


==Controls==
Select (DS(i) version) - Turn off/on bottom screen backlight (only applies to single-screen videos)
'''Video UI:'''


A - Play/Pause
B or Return button - Exit video


B - Exit video
B (GBA version) - Stop video
 
Left - Jump back to beginning


==Screenshots==
==Screenshots==
https://dlhb.gamebrew.org/dshomebrew/rocketvideoplayer4.png
https://dlhb.gamebrew.org/dshomebrew/rocketvideoplayer4.png


==Known issues==
==Changelog==
Audio will desync after a few minutes. Likely due to the player processing the videos at 24 FPS, instead of 23.976 FPS.
'''v2.3.0 2026/01/30'''
* What's new?
** Rocket Video Player has been ported over to the GameBoy Advance, bringing over the uncompressed video quality and the existing button controls as a result!
*** To use the GBA version, place <code>rvid.gba</code> in the same place as <code>Vid2RVID.exe</code>, then convert a video to get a new <code>.gba</code> file containing the video. Running the <code>rvid.gba</code> file by itself will only display a red/orange screen.
*** Only 8-bit mono audio is supported.
*** Colors will display differently due to how the GBA screens display colors (see the above mGBA screenshot as a reference).
*** As the GBA version does not have a menu for browsing videos, pressing <code>B</code> will stop the video instead.
*** Refresh rate adjustment is not available.
** '''DS(i):''' If the bottom screen is turned off after pressing <code>SELECT</code>, touching the screen will turn it back on.
** '''DS(i):''' FIFO is now used instead of IPC Sync for playing sound.
* Bug fixes
** '''Re-release, DS(i):''' Fixed where opening a video would cause a crash.
** Fixed a possible bug which caused the top/bottom fields to be swapped in 25/50FPS videos when jumping forwards/backwards.


The video will freeze from time to time. You'll have to close the lid and open it again, to resume playback.
'''v2.2.0 2026/01/17'''
*What's new?
** Longer videos are now supported by reading video files split into a maximum of 4 parts!
** Added stereo audio support.
** Videos up to 72 FPS are now supported!
*** Achieved by modifying the frame/refresh rate adjustment code to support past 60hz, and moving every 3D-rendered UI graphic to be drawn directly on the bottom screen image (with both the play bar slider and video timestamp rendered by OAM).
*** Not playable on 3DS due to frameskips when going above 60hz, or DSi in DS mode due to detection of DSi/3DS in DS mode not being possible.
** 12 FPS &amp; 24 FPS videos are now played with the screen refresh rate at 72hz in order to remove the horizontal line artifacts (and possibly reduced eyestrain).
*** Does not affect 3DS (or DSi in DS mode), where 48hz will continue to be used, and no such artifacts exist on 3DS.
** Reduced memory usage in DS mode by only loading needed 512-byte sectors of the frame offset and compressed frame size tables.
** Increased 16BPP frame buffer count (16 -&gt; 32) for DS mode. (DSi mode has always used 32.)
** Added single-screen/GBMacro support. Activated when the top screen is turned off and the bottom screen remains turned on.
*** Macro Mode can be activated in the TWLMenu++ Settings menu.
*Bug fixes
** For playing 16BPP RGB565 videos in DSi mode, NDMA is now used instead of regular DMA in order to fix possible HBlank scanline skips.
** Audio is now played after the frame is DMA-copied to the screen instead of before, fixing a possible sync issue.
** Fixed a possible bug where loading 256-color frame palettes may overwrite other data.
** Fixed crashing when closing a video which does not contain audio.
'''v2.1.2 2026/01/03'''
* Fixed a BlocksDS bug where holding the DSi POWER button after being booted from a homebrew menu (such as TWLMenu++) would cause the console to boot into boot.nds instead of turning off the DSi.
* Fixed last vertical line being shown on the top of the screen when playing interlaced dual-screen 16BPP RGB565 videos in 4:3.
'''v2.1.1 2025/12/30'''
* What's new?
** The screen refresh rate is now adjusted based on the video's frame rate (using code from [https://github.com/Gericom/FastVideoDSPlayer FastVideoDSPlayer]) to remove judder! (Tested with 24 FPS and 25 FPS videos.)
** Added support for videos which play in the native DS refresh/frame rate! (Tested with the first 11 minutes of a ''Sonic Rush'' gameplay video from WorldOfLongplays.)
* Bug fixes
** Fixed 25 FPS &amp; 50 FPS videos playing at the wrong speed.
** Fixed last vertical line being shown on the top of the screen when playing 16BPP RGB565 videos in 4:3.
** Fixed brief glitched sound playing when unpausing videos containing 8-bit audio stream.
 
'''v2.1.0 2025/12/25'''
* What's new?
** Switched over from devkitARM/libnds to BlocksDS!
*** Load speeds have doubled.
*** Progressive scan 8BPP 60FPS videos, interlaced 16BPP 60FPS videos, and dual-screen (but interlaced) 60FPS videos are now playable (without issues)!
*** Filesize has been reduced slightly (combined with switching to THUMB code).
** '''Untested:''' Re-added support for old Rocket Video files.
*** Support for old compressed Rocket Video files is still disabled.
* Bug fixes
** Fixed interlaced 16BPP RGB565 videos not playing properly.
** Fixed filling of top/bottom borders of non-4:3 interlaced videos being a pixel off.
** As a result of switching to BlocksDS:
*** Videos should no longer freeze randomly when playing back from the DSi/3DS SD card slot.
*** 16BPP RGB565 videos no longer have vertical shaking pixels on the right-side of the screen when playing back from the DSi/3DS SD card slot.
'''v2.0.0'''
* What's new?
** Videos up to 60 FPS can now be played on DS &amp; DS Lite systems (all without memory expansion)!
** This has been achieved by allowing the <code>.rvid</code> format to support 256 (8 bits-per-pixel) on-screen colors (combined with dithering for reduced color banding).
** Dual-screen videos are now supported (at half the supported FPS)!
** Added support for playing 16 BPP videos with the RGB565 color mode!
** Added support for 8-bit audio playback.
** The bottom screen backlight can now be turned off by pressing the <code>SELECT</code> button.
** <code>.rvid</code> is no longer shown as part of the video's title.
** The video's title is now centered if it fits within the screen.
** The bar where the video title is shown now contains your set color in the system settings!
** The full play bar is now visible (complete with the slider)!
** Videos can now be jumped towards some seconds or minutes! (Scroll down to <code>Video UI Controls</code> for how to jump.)
** NitroFS has been removed, allowing a <code>.cia</code> build of this application to be made available for 3DS users!
** The logo for Rocket Video Player has a brand new look!
** Due to the many changes within the <code>.rvid</code> format, old versions are no longer supported.
* Bug fixes:
** Fixed an overlooked bug in libfat where files larger than 2GB would not be read properly.
** Fixed video/audio desync issues by removing the MaxMod library and reading the correct amount of samples per-second.
* Known issues
** 16 BPP RGB565 videos will have the horizontal lines on the right-side of the screen shimmer when playing back from the DSi or 3DS SD card slot. This does not occur when playing back from flashcards.
** Since prior versions, when playing back from the DSi or 3DS SD card slot, there's a rare chance of freezing (with corrupted colors for 8 BPP videos). Closing the console's lid and opening it back up (or pressing <code>HOME</code> twice on 3DS systems) will un-freeze the video.


==Credits==
==Credits==
* chyyran - Sound streaming code used in TWiLight Menu++.
DS(i) version:
* devkitPro, WinterMute - nds-hb-menu's file browsing code, and the use of devkitPro, devkitARM, libnds, and libfat.
* [https://github.com/AntonioND AntonioND]: [https://github.com/blocksds/sdk BlocksDS]
* Drenn - GameYob's .bmp renderer.
* [https://github.com/devkitPro devkitPro]: nds-hb-menu's file browsing code
* Gericom - LZ77 decompressor code from EFE/EveryFileExplorer.
* [https://github.com/Gericom Gericom]:
** Frame rate + play bar adjustment code from [https://github.com/Gericom/FastVideoDSPlayer FastVideoDSPlayer]
** NDMA code from [https://github.com/Gericom/libtwl libtwl]
 
GBA version:
* [https://github.com/devkitPro devkitPro]: libgba and sound frequency code from libnds
* [https://github.com/pinobatch pinobatch] Sound sample playback code from [https://github.com/pinobatch/gsmplayer-gba gsmplayer-gba]


==External links==
==External links==
Line 112: Line 152:
* GBAtemp - https://gbatemp.net/threads/release-rocket-video-player-play-videos-with-the-ultimate-in-picture-quality.539163
* GBAtemp - https://gbatemp.net/threads/release-rocket-video-player-play-videos-with-the-ultimate-in-picture-quality.539163


[[Category:DS homebrew applications]]
[[Category:Support the author]]
[[Category:Media players on DS]]

Latest revision as of 07:07, 30 January 2026

Rocket Video Player
General
AuthorRocketRobz
TypeMedia Players
Version2.3.0
LicenseMIT License
Last Updated2026/01/30
Links
Download
Website
Source
Support Author

Rocket Video Player is a video player for the NDS and Game Boy Advance. It plays video files with an extension called .rvid, bringing you the ultimate in picture quality, thanks to it's lossless frame data.

To play videos, you'll need to convert them to the Rocket Video (.rvid) format using Vid2RVID.

Read this guide for how to convert a video to the .rvid format.

Features

  • DS(i) version:
    • Support for videos up to 72FPS!
    • Both 8 BPP (256 colors) and 16 BPP (RGB555/RGB565) videos are supported.
      • Screen color filters are not supported for 16 BPP videos.
    • Support for dual-screen videos!
    • Support for audio up to 32khz Stereo.
    • The video UI from the "Nintendo DSi + Internet" app, with the title bar now containing the console's set color.
    • Console-based file browser to search for your .rvid file.
  • GBA version:
    • Support for videos up to 60FPS!
    • Both 8 BPP (256 colors) and 16 BPP (RGB555/RGB565) videos are supported.
    • Support for audio up to 32khz Mono.

Controls

A or Play/Pause button - Play/Pause video

L or The left tip of the play bar - Stop video

D-Pad Left/Right - Jump 5 seconds (30 seconds with R shoulder held)

D-Pad Down/Up - Jump 10 seconds (1 minute with R shoulder held)

D-Pad Left+Down/Up+Right - Jump 15 seconds (2 minutes with R shoulder held)

Select (DS(i) version) - Turn off/on bottom screen backlight (only applies to single-screen videos)

B or Return button - Exit video

B (GBA version) - Stop video

Screenshots

rocketvideoplayer4.png

Changelog

v2.3.0 2026/01/30

  • What's new?
    • Rocket Video Player has been ported over to the GameBoy Advance, bringing over the uncompressed video quality and the existing button controls as a result!
      • To use the GBA version, place rvid.gba in the same place as Vid2RVID.exe, then convert a video to get a new .gba file containing the video. Running the rvid.gba file by itself will only display a red/orange screen.
      • Only 8-bit mono audio is supported.
      • Colors will display differently due to how the GBA screens display colors (see the above mGBA screenshot as a reference).
      • As the GBA version does not have a menu for browsing videos, pressing B will stop the video instead.
      • Refresh rate adjustment is not available.
    • DS(i): If the bottom screen is turned off after pressing SELECT, touching the screen will turn it back on.
    • DS(i): FIFO is now used instead of IPC Sync for playing sound.
  • Bug fixes
    • Re-release, DS(i): Fixed where opening a video would cause a crash.
    • Fixed a possible bug which caused the top/bottom fields to be swapped in 25/50FPS videos when jumping forwards/backwards.

v2.2.0 2026/01/17

  • What's new?
    • Longer videos are now supported by reading video files split into a maximum of 4 parts!
    • Added stereo audio support.
    • Videos up to 72 FPS are now supported!
      • Achieved by modifying the frame/refresh rate adjustment code to support past 60hz, and moving every 3D-rendered UI graphic to be drawn directly on the bottom screen image (with both the play bar slider and video timestamp rendered by OAM).
      • Not playable on 3DS due to frameskips when going above 60hz, or DSi in DS mode due to detection of DSi/3DS in DS mode not being possible.
    • 12 FPS & 24 FPS videos are now played with the screen refresh rate at 72hz in order to remove the horizontal line artifacts (and possibly reduced eyestrain).
      • Does not affect 3DS (or DSi in DS mode), where 48hz will continue to be used, and no such artifacts exist on 3DS.
    • Reduced memory usage in DS mode by only loading needed 512-byte sectors of the frame offset and compressed frame size tables.
    • Increased 16BPP frame buffer count (16 -> 32) for DS mode. (DSi mode has always used 32.)
    • Added single-screen/GBMacro support. Activated when the top screen is turned off and the bottom screen remains turned on.
      • Macro Mode can be activated in the TWLMenu++ Settings menu.
  • Bug fixes
    • For playing 16BPP RGB565 videos in DSi mode, NDMA is now used instead of regular DMA in order to fix possible HBlank scanline skips.
    • Audio is now played after the frame is DMA-copied to the screen instead of before, fixing a possible sync issue.
    • Fixed a possible bug where loading 256-color frame palettes may overwrite other data.
    • Fixed crashing when closing a video which does not contain audio.

v2.1.2 2026/01/03

  • Fixed a BlocksDS bug where holding the DSi POWER button after being booted from a homebrew menu (such as TWLMenu++) would cause the console to boot into boot.nds instead of turning off the DSi.
  • Fixed last vertical line being shown on the top of the screen when playing interlaced dual-screen 16BPP RGB565 videos in 4:3.

v2.1.1 2025/12/30

  • What's new?
    • The screen refresh rate is now adjusted based on the video's frame rate (using code from FastVideoDSPlayer) to remove judder! (Tested with 24 FPS and 25 FPS videos.)
    • Added support for videos which play in the native DS refresh/frame rate! (Tested with the first 11 minutes of a Sonic Rush gameplay video from WorldOfLongplays.)
  • Bug fixes
    • Fixed 25 FPS & 50 FPS videos playing at the wrong speed.
    • Fixed last vertical line being shown on the top of the screen when playing 16BPP RGB565 videos in 4:3.
    • Fixed brief glitched sound playing when unpausing videos containing 8-bit audio stream.

v2.1.0 2025/12/25

  • What's new?
    • Switched over from devkitARM/libnds to BlocksDS!
      • Load speeds have doubled.
      • Progressive scan 8BPP 60FPS videos, interlaced 16BPP 60FPS videos, and dual-screen (but interlaced) 60FPS videos are now playable (without issues)!
      • Filesize has been reduced slightly (combined with switching to THUMB code).
    • Untested: Re-added support for old Rocket Video files.
      • Support for old compressed Rocket Video files is still disabled.
  • Bug fixes
    • Fixed interlaced 16BPP RGB565 videos not playing properly.
    • Fixed filling of top/bottom borders of non-4:3 interlaced videos being a pixel off.
    • As a result of switching to BlocksDS:
      • Videos should no longer freeze randomly when playing back from the DSi/3DS SD card slot.
      • 16BPP RGB565 videos no longer have vertical shaking pixels on the right-side of the screen when playing back from the DSi/3DS SD card slot.

v2.0.0

  • What's new?
    • Videos up to 60 FPS can now be played on DS & DS Lite systems (all without memory expansion)!
    • This has been achieved by allowing the .rvid format to support 256 (8 bits-per-pixel) on-screen colors (combined with dithering for reduced color banding).
    • Dual-screen videos are now supported (at half the supported FPS)!
    • Added support for playing 16 BPP videos with the RGB565 color mode!
    • Added support for 8-bit audio playback.
    • The bottom screen backlight can now be turned off by pressing the SELECT button.
    • .rvid is no longer shown as part of the video's title.
    • The video's title is now centered if it fits within the screen.
    • The bar where the video title is shown now contains your set color in the system settings!
    • The full play bar is now visible (complete with the slider)!
    • Videos can now be jumped towards some seconds or minutes! (Scroll down to Video UI Controls for how to jump.)
    • NitroFS has been removed, allowing a .cia build of this application to be made available for 3DS users!
    • The logo for Rocket Video Player has a brand new look!
    • Due to the many changes within the .rvid format, old versions are no longer supported.
  • Bug fixes:
    • Fixed an overlooked bug in libfat where files larger than 2GB would not be read properly.
    • Fixed video/audio desync issues by removing the MaxMod library and reading the correct amount of samples per-second.
  • Known issues
    • 16 BPP RGB565 videos will have the horizontal lines on the right-side of the screen shimmer when playing back from the DSi or 3DS SD card slot. This does not occur when playing back from flashcards.
    • Since prior versions, when playing back from the DSi or 3DS SD card slot, there's a rare chance of freezing (with corrupted colors for 8 BPP videos). Closing the console's lid and opening it back up (or pressing HOME twice on 3DS systems) will un-freeze the video.

Credits

DS(i) version:

GBA version:

External links

Advertising: