KinoAMP Icon  KinoAMP
# KinoAMP

KinoAmp 32-bit is an MPEG1/2 movie player with sound. It is based on Kino v0.3 from eQ R&D, and this version has been produced to provide improved operation on StrongArm machines. It does not however contain any StrongArm specific code. The AMPlayer or DiskSample modules are used to decode and play the soundtrack. Playback can be on the desktop or full screen and controls are provided with an On Screen Display for brightness, contrast, colour, and volume. When using the desktop, and multitasking, variable zoom and aspect ratio is provided. Multitasking operation supports a simple control panel with basic player controls and a selectable skin.

Download the latest version and its source code.

Additional Requirements:

To use DiskSample as audio codec, the following module is required:
DiskSample module version 0.33 or later.

To use AMPlayer as audio codec, the following modules are required:
SharedSound module version 0.24 or later.
AMPlayer module version 1.36 or later.

To use Thomas Milius accelerated display on the Iyonix, the following application/module is required:
IntelDMA module version 0.01 or later.

Version 0.48, 2018-08-26


  • Add support for NV12, NV21, UYVY, YUY2, YV12, YV16, (A | T) (RGB | BGR) (12 | 15 | 16 | 32) overlays.
  • Add support for screen modes with alpha channel (A (RGB | BGR ) (12 | 15 | 32) ).
  • Fix for using the first configuration (i.e. non-alpha one) when more than one is possible for a given screen resolution.
  • Slight improvement of bilinear scaler for 16M modes by inverting scaling order.
  • Improved linear scaler speed.
  • Fix incorrect required video memory size.
  • Restore current desktop mode on exit instead of configured wimp mode.

Version 0.47, 2018-03-03


  • Replaced blend deinterlacing algorythm with a better one.
  • Added aspect ratio alteration with pan & scan or stretching.
  • Improved fullscreen performance: old code was to switch banks and wait for VSync just after plotting the screen as it is not safe to write to the screen againt before a VSync occurs. Now instead of waiting for the VSync we save the VSync counter (OS_Byte 176) and just before plotting the next image we wait for the VSync counter to change, which likely already occured while decoding the next image.
  • Refresh buttons state in control panel when switching to multitasking mode.
  • Added time spent waiting for VSync to logged statistics.
  • Update TimerMod to version 4.17 for compatibility with latest machines.
  • Increased circular input buffer from 1MB to 1.75MB otherwise audio packets are read to late for HDTV.
  • Fixed crash caused by alignment issue in (bi)linear scalers for 16-bit colour modes.
  • Fixed redraw issues when menu displayed over part of the image when bi(linear) scaler is used with vertical scaling = 100%.
  • Fixed flashing while zooming in full screen, previous image was not cleared in all screen banks.
  • Fixed flashing in full screen with IntelDMA active (DMA transfer list changes with screen bank).
  • Fixed long standing scrolling issues.
  • Fixed banner not displayed in full screen due to screen banking.

Version 0.46, 2017-03-09


  • Fix issues with selection of RGB screen modes.

Version 0.45, 2017-03-02


  • Fix issues with selection of RGB screen modes.
  • Rewrote deinterlacing with 4 methods: None, Blend, Blend (x2), Fields (x2).
  • Added new scaler methods: Linear and Bilinear.
  • Use tripple-buffering (memory permitting) and VSync screen updates in full-screen modes, which is a little bit slower but eliminate tearing effets (if rendering is not too slow).
  • Improved speed of internal scaler in 4K, 32K, 64K on post RISC-PC machines.

Version 0.44, 2016-05-29


  • Read in chunks of 128K instead of 64K as it seems to make playing over LanManFS less jerky.
  • Sound could become out of sync by several seconds when large delays occured and sound buffer became empty.
  • When fitting to full screen and a 1:1 pixel aspect ratio, if AnyMode is present, instead of zooming use image size as screen mode size and let the hardware do the resizing for us.
  • Fix aspect pixel ratio in multitasking mode when size is not locked to window size.
  • Activated and bug fixed stacking of decoded frames.
  • Reorganize player.h to work around a bug in C compiler 5.61.
  • Improved speed of internal scaler.
  • Added deinterlacing by doubling frame rate (update odd lines, then even lines, ...).
  • Updated defaults to be more appropriate for newer machines.

Version 0.43, 2015-12-04


  • Support for 4K colour modes.
  • Automatic detection of inverted colour order (RISC OS 5.21+).
  • Sprites with inverted colour order are now save using the appropriate RISC OS 5.21+ mode words.
  • Fixes crashes in mono 32K fast zoom x4.
  • Fixes for incorrect initial pane position.
  • Fixes null pointer dereference on startup.
  • Invert RGB and BGR in doc (!Paint signals RISC PC compatible sprites as BGR).

Version 0.42, 2010-12-19

Main Changes:

  • Front-end rewritten into multiple panes.
  • Now offers 4 replay modes (Multitasking, Desktop, Full-Screen, Manual) with individual settings.
  • Fit to screen doesn't any more force the use of a scaler but selects the most appropriate fast display routine (50%, 100%, 200%, 300% or 400%).
  • When the scaler is used:
    • zoom changes are in steps of 1%.
    • pixel aspect can be taken into account to resize the image.
  • You can use F5 to F8 to switch directly to a given replay mode.
  • Output can be made as BGR instead of RGB to cope with new hardware.
  • Fixed rendering of YUV444 in 64K colour modes.
  • Revert to the use of system scaler for unsupported screen modes such as mode with less than 256 colours.
  • Internal code cleanup: common config.c/.h between front-end and player, reorganisation and commenting of display_setup() and player_displayLastFrame().

Version 0.40, 2009-01-18

Main Changes:

  • Added support for 64K colour modes.
  • Fixed crash when switching from colour to monochrome with OSD volume bar visible.
  • Fixed sound become muted when looping (AMPlayer only).
  • Ensure logging is off by default to allow multiple windows.

Version 0.39, 2008-06-07

Main Changes:

  • Fixed bug truncating skin names introduced in previous version.
  • Alter behaviour of Previous/Next in Random mode.

Version 0.38, 2008-05-25

Main Changes:

  • Fixed directory scanning related bugs (long pathnames or filenames).
    You can also no double-click on the main window to switch between full-screen and windowed mode.

Version 0.37, 2008-02-25

Main Changes:

  • Rewrite of frame skipping process. Fixes some rare instances of attempting to decode frames where the reference frames were skipped, and fixes small pauses seen on some systems.

Version 0.36, 2008-01-26

Main Changes:

  • Better sound stability and refined frame skipping process.
  • Added dynamic start/stop of audio saving (key Ctrl+A).
  • Added dynamic colour/monochrome switching option (key C).
  • Added frame rate to OSD timing info.
  • Fix to avoid infinite waits due to corrupted stream timing info.

Version 0.35, 2007-03-11

Main Changes:

  • Support for the very rare MPEG-2 YUV444 format.
  • Extra checks on MPEG stream corruption.
  • Fixed bug sometime causing the non-decoding of the last block in slice.
  • Modified handling of corrupted streams to avoid the error "Decoding waiting indefinitely after audio/video".

Version 0.34, 2006-02-10

Main Changes:

  • General
    • AC3 and PCM audio supported with the help of DiskSample 0.35.
    • Audio stream selection from the player window menu.
    • Added 'Scaler' and 'Force use of scaler' options to be able to benefit from the hardware acceleration of sprite plotting.
    • Iyonix specific code for accelerated display at 100% zoom with the help of IntelDMA module.
    • Workaround for A9Home (see help file).
    • New 'Fit to screen' option.
  • Colour conversion
    • Set palette to 256 greys in full screen 8bpp when Monochrome option is set.
    • Added monochrome colour conversion routines for 8bpp and 8bpp-grey.
    • Added support for brightness and contrast in all monochrome color conversions.
    • Modified 8bpp and 8bpp-grey colour conversions for best fit of palette in YUV space instead of in RGB space (build switch).
  • MPEG decoding
    • Libmpeg2 now totally ignore chroma blocks when Monochrome options is set to give a large performance boost.
    • Libmpeg2 API rewritten to move calls to display functions out of the library with new sanity checks to avoid crashes after seeking to a new position.
    • Take account of MPEG fields repetitions for frame duration (30->24 fps adaptation).

Previous versions are available from Peter Everett.

Page updated the 2018-08-26.