Skip to content
/ at2 Public
forked from ijsf/at2

[GITHUB MIRROR] Adlib Tracker II is, dare we say, the most userfriendly tracker aimed for the OPL3 FM-chip, and is full of advanced features to simplify your task of making the most of your Adlib-tunes.

License

Notifications You must be signed in to change notification settings

ivan-tat/at2

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Adlib Tracker 2

This is a fork of the Adlib Tracker 2 project (GNU GPL 3+) based on the latest sources from the official website (released on 2019-09-10, DOS version is 2.3.57, SDL version is 2.4.24). Original project is abandoned by it's authors since 2019.

Examples of compatible tracked music files (modules) and instruments can be found on the official website.

3rd-party software used:

  • DOS version:

    • CWSDPMI r5 DOS extender by CW Sandmann (GNU GPL 2).
  • Unix, Linux, Windows version:

    • SDL library version 1.2 (GNU LGPL 2.1).

My interests in this project:

  • Just for fun.
  • Clean code: eliminate and separate platform-specific code.
  • Remove all unneeded assembler optimizations and obfuscations.
  • Make it portable: completely rewrite in C.
  • Keep it simple for portability.
  • Practice Git.
  • Practice good programming technics.
  • Translate into Russian.
  • Make this program available on the territory of Ukraine.
  • Add support for 4K displays.
  • Speed-up screen drawing routines and sound rendering.
  • Play audio streams.
  • Don't forget about media centers.

On the first seeing:

  • There are many extra media-files in the project tree (instruments and music modules).
  • DOS, Windows and Unix/Linux sources are merged together but have different versioning.
  • All sources use a 437 code page (CP437) and have DOS line endings (CR+LF).
  • There is no Unicode support.
  • It is written in Object Pascal (Turbo Pascal compatible mode) with Intel 386-specific assembler code.
  • There are 4 separate ways to compile the project (a batch file for DOS, a batch file for Windows, two separate Makefiles for Linux - one for native build and a template for cross-compilation).
  • Precompiled DOS and Windows only helper executables (located in the utils/ directory) without source code are used during compilation.
  • DOS port uses GO32 Free Pascal's library to deal with DPMI.
  • It uses SDL library (version 1.2) with bindings for 32-bits CPUs only.
  • Compiled object files were placed inside source code tree making a mess and it's not possible to cross-compile without cleaning first.
  • It won't compile for actual OSes using actual Free Pascal compiler.
  • To compile the project you will need retro-compilers (Free Pascal compiler version 2.6.4 will be fine) and a proper environment (appropriate tools for cross-compilation or: Debian GNU/Linux "Wheezy" i386 OS, DOS environment for a DOS version, QEMU or similar software).

Now:

  • Fixed binding with SDL library on 64-bit platforms.
  • To build adtrack2 under DOS (also true for adt2play):
    • Install DJGPP environment and Free Pascal compiler in DOSBox-X with LFN support or on a real hardware.
    • Run ./Make-DOS.sh.
  • To build adtrack2 under Windows (works for i386 target for now):
    • Install Cygwin/MSYS2/MinGW, Free Pascal compiler.
    • Run ./Make-Windows-i386.sh or ./Make-Windows-x86_64.sh.
  • To build adtrack2 under GNU/Linux (works for i386 target for now):
    • Install Free Pascal compiler and SDL library.
    • Run ./Make-Linux-i386.sh or ./Make-Linux-x86_64.sh.
  • These scripts can also be run in any supported OS for cross-compilation. See docs/build.md for details.
  • The compiled object files have been moved to the target directory and are no longer annoying lying around everywhere.
  • Many extra and unneeded files were removed.
  • Compilation is no longer dependent on unknown binary executables.

See docs/pascal-to-c.md for information about porting Pascal code to C.

References

Operating systems

Virtual machines (platform emulators)

  • QEMU (package) - a generic and open source machine emulator and virtualizer
  • DOSBox (package) - a /free and open source DOS-emulator that uses the SDL library
  • DOSBox-X (package) - an open-source DOS emulator names that supports long file names for running DOS applications and games
  • DOSBox Staging - a modern continuation of DOSBox with advanced features and current development practices

Compilers

Libraries

  • Simple DirectMedia Layer (SDL) - a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D
  • SDL4Freepascal - a set of FreePascal modules (units) with bindings to the SDL library
  • GNU GnuDOS - a library designed to help new users of the GNU system, who are coming from a DOS background
  • CWSDPMI - provides DPMI services for V2 of DJGPP
  • aPLib - a compression library based on the algorithm used in aPACK
  • Nuked-OPL3 - highly accurate Yamaha OPL3 (YMF262, CT1747) emulator

Tools

  • Linux utilities (package, Debian package) - miscellaneous system utilities
  • GNU Core Utilities (package)
  • GNU Bash (package) - GNU Bourne Again SHell
  • GNU Grep (package) - a non-interactive command-line utility to search for text in files
  • GNU sed (package) - a non-interactive command-line text editor
  • GNU Make (package) - utility for directing compilation
  • GNU Tar (package) - a utility to create tar archives, as well as various other kinds of manipulation
  • GNU Gzip (package) - a popular data compression program originally written for the GNU project
  • Zip (package) - a compression and file packaging/archive utility
  • dos2unix (package) - convert text file line endings between CRLF and LF
  • Netpbm - utilities for primitive manipulation of graphic images
  • GraphicsMagick (package) - collection of image processing tools
  • Cygwin - a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows
  • MSYS2 - a collection of tools and libraries providing you with an easy-to-use environment for building, installing and running native Windows software
  • MinGW - Minimalist GNU for Windows
  • MinGW-w64 (package) - an advancement of the original mingw.org project, created to support the GCC compiler on Windows systems
  • cmd - command interpreter in Microsoft Windows
  • Windows commands
  • GNU Midnight Commander (package) - a text-mode full-screen file manager for Unix/Linux
  • Far Manager - a free console file manager (NC clone) for Microsoft Windows
  • far2l (package) - Linux fork of FAR Manager v2
  • The Doszip Commander - a LFN-aware TUI file manager (NC clone) with built-in Zip and UnZip for DOS and Windows
  • UPX (package) - efficient live-compressor for executables

Fonts

Hardware

Documentation

Recommendations

About

[GITHUB MIRROR] Adlib Tracker II is, dare we say, the most userfriendly tracker aimed for the OPL3 FM-chip, and is full of advanced features to simplify your task of making the most of your Adlib-tunes.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Pascal 80.2%
  • C 16.6%
  • sed 1.5%
  • Makefile 1.0%
  • SourcePawn 0.6%
  • Shell 0.1%