Skip to content

A new version of GBVideoPlayer with higher resolution, 3-bit stereo PCM audio and video compression

License

Notifications You must be signed in to change notification settings

LIJI32/GBVideoPlayer2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GBVideoPlayer2

A new version of GBVideoPlayer with higher resolution, 3-bit stereo PCM audio and video compression.

Version 2 increases the horizontal resolution by up to 4, replaces the chiptune music with ~9KHz, 3-bit PCM audio, introduces simple video compression with configurable quality settings, and uses a faster and easier to use encoding routines that can directly re-encode FFMPEG-compatible video to GBVP2 format.

Examples

You can grab compiled example ROMs from the releases page or watch a video

Requirements

For playing a GBVP2 video ROM on hardware, an MBC5-compatible flash cart is required. Remember that your cartridge's capacity must be big enough for your ROM – if your ROM is over 4MBs, you will need a cartridge that can store a 8MB ROM. (Note: the common EMS 64M flash carts can only store two 4MB (32 megabits) ROMs, not a single 8MB (64 megabits) ROM)

For playing a GBVP2 video ROM on an emulator, you must use an accurate Game Boy Color emulator, such as recent versions of SameBoy or BGB. GBVP2 will not work on inaccurate emulators, such as VisualBoyAdvance or GameBoy Online.

For encoding and building a video ROM, you will need a Make, a C compiler (Clang recommended), rgbds, and a recent version of FFMPEG.

Format Specifications

  • Irregular horizontal resolution, from effectively 120 pixels to 160 pixels wide, stretched to fill the 160 pixels wide Game Boy screen
  • Vertical resolution of 144 pixels, same as the Game Boy screen
  • Effectively up to 528 different colors per frame
  • Stereo PCM audio at 9198 Hz and 3-bits per channel
  • A frame rate of 29.86 frames per second
  • In-frame compression of successive similar rows of pixels, customizable compression quality
  • Can repeat a frame up to 255 times to avoid re-encoding highly similar frames

Building a ROM

You can encode and build a ROM simply by running make:

make SOURCE=/path/to/my_video.mp4

SOURCE may be any file compatible with your copy of FFMPEG. Your output will be at output/my_video/my_video.gbc.

Optionally, you may specify QUALITY to reduce the file size or, alternatively, improve video quality:

make SOURCE=/path/to/my_video.mp4 QUALITY=8

QUALITY can be any non-negative integer. The higher the value, the more aggressive the compression. A value of 0 performs no lossy compression after converting a frame to the player's format. The default value is 4.