This repository contains the source code for HippoPlayer, a module player for the classic Amigas with OS 1.3 or higher. Binary distribution is available here: http://aminet.net/mus/play/hippoplayer.lha
Tools used in development:
- Amiga 1200 with kickstart 3.0, Amiga 500 with kickstart 1.3
- ASM-One v1.28
- fimp file compressor, available here: http://aminet.net/util/pack/imploder-4.0.lzh
- Gadget's Editor by Stefano Crimì (included without permission)
Files and directories
- puu016.s: The main very small source file
- keyfile0.s: Keyfile generator
- playergroup0.s: HippoPlayer.group data generator, this file includes the compressed binaries for replay routines
- regtext.s: Possibly important file related to calculating checksums, see notes below
- kpl14.s: Protracker replay routine source
- kpl: Protracker replay routine binary
- gadgets: Gadget's Editor files for the user interface
- pl: Replay routines for different module types and compressed binaries for each
- scopes: External scopes and related stuff
- Include: Some needed include files.
- gfx: The hippo logo
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 and ASM-Pro v1.17. Compile the file puu016.s to get the main binary. It should start if you have reqtools.library available.
To build the player group file, read the playergroup0.s and assemble, it will create a binary bundle out of the files in the pl-dir.
To build the Protracker replay routine, assemble the file kpl14.s and write out the binary to kpl.
To build individual replay routines, assemble one in the pl-directory, write out the binary and compress it with fimp, then re-create the group file.
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_PS3M.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.