Skip to content

HippoPlayer - a module player for the classic Amiga

License

Notifications You must be signed in to change notification settings

kowoba/HippoPlayer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HippoPlayer

This repository contains the source code for HippoPlayer, a module player for the classic Amigas with OS 1.2 or higher.

Original distribution is available here, from the year 2000: http://aminet.net/mus/play/hippoplayer.lha

Updated version developed later, in 2021: http://aminet.net/mus/play/hippoplayerupdate.lha

Tools used in development:

Files and directories

  • puu016.s: The main very small and clearly structured source file.
  • keyfile0.s: Keyfile generator.
  • playergroup0.s: HippoPlayer.group data generator, this file includes the compressed binaries for replay routines. Used for versions older than v2.48.
  • playergroup2.s: New format group data generator, used from version v2.48 onwards.
  • regtext.s: Possibly important file related to calculating checksums, see notes below
  • kpl14.s: Protracker replay routine source precompiled.
  • kpl: Protracker replay routine binary.
  • gadgets: Gadget's Editor files for the user interface.
  • pl: Replay routines for different module types with precompiled binaries.
  • eagleplayers: Supported eagleplayer plugins, gathered from aminet.
  • scopes: External scopes and related stuff.
  • Include: Some needed include files.
  • gfx: The hippo logo.

Build instructions

The standard include files will be searched from include: directory, these are not included. Some custom includes and some others are included. Tested to compile with ASM-One v1.28, ASM-Pro v1.17, vasm v1.9.

Manual

Build steps:

  • Assemble puu016.s to get the main binary. It should start if you have reqtools.library available.
  • Build the HippoPlayer.group replayer binary bundle.
    • There are binaries in pl/bin and eagleplayers/bin which need to be compressed first.
    • Execute pl/compress_im and eagleplayers/compress_im in Amiga shell to get FImp compressed data.
    • Run pl/compress_shr and eagleplayers/compress_shr on Mac/Linux to get Shrinkler compressed data.
    • Assemble file playergroup2.s and save the binary. Shr-files are used by default.

To build the Protracker replay routine, assemble the file kpl14.s and save the binary as kpl. To build individual replay routines, assemble one in the pl dir and save the binary (or executable) into bin. NOTE: Most of the replay routines are saved as Amiga executables so they can be relocated properly, a few are just binary blobs of PC-relative code.

Makefile

Edit the include paths in the makefiles to suit your environment and ensure vasmm68k_mot and shrinkler are in path, then run make.

Notes

All anti-cracker measures have been disabled from v2.46 onwards.

There is a checksum macro check in the main source file which is called at certain points. This checks if the application strings have been altered, making the app exit if the check fails. There is a CRC checksum check in the file Hippo_PS3M3.s which does the same as the simpler check mentioned above. It will jump into a busy loop and display colors on screen if the check fails.

About

HippoPlayer - a module player for the classic Amiga

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Assembly 99.1%
  • Other 0.9%