Coder Social home page Coder Social logo

kowoba / hippoplayer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from koobo/hippoplayer

0.0 1.0 0.0 12.97 MB

HippoPlayer - a module player for the classic Amiga

License: MIT License

Assembly 99.07% SWIG 0.20% Makefile 0.43% Shell 0.02% Python 0.28%

hippoplayer's Introduction

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.

hippoplayer's People

Contributors

koobo avatar

Watchers

Kolbjørn Barmen avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.