Skip to content

Commit

Permalink
Added some more source code
Browse files Browse the repository at this point in the history
  • Loading branch information
Kochise committed Mar 27, 2017
1 parent 7111cdc commit 5c36cad
Show file tree
Hide file tree
Showing 196 changed files with 26,472 additions and 0 deletions.
5 changes: 5 additions & 0 deletions AICA/SRCS/dxm-0.9/AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@

Main author
~~~~~~~~~~~

Lars Olsson <[email protected]>
13 changes: 13 additions & 0 deletions AICA/SRCS/dxm-0.9/CVS/Entries
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/AUTHORS/1.2/Sun Sep 16 00:18:33 2001//
/ChangeLog/1.2/Sun Sep 16 00:17:27 2001//
/INSTALL/1.1.1.1/Sat Sep 8 10:48:15 2001//
/Makefile.in/1.1.1.1/Sat Sep 8 10:48:15 2001//
/NEWS/1.1.1.1/Sat Sep 8 10:48:15 2001//
/README/1.1.1.1/Sat Sep 8 10:48:15 2001//
/TODO/1.1.1.1/Sat Sep 8 10:48:15 2001//
/acinclude.m4/1.1.1.1/Sat Sep 8 10:48:15 2001//
/aclocal.m4/1.1.1.1/Sat Sep 8 10:48:15 2001//
/configure/1.1.1.1/Sat Sep 8 10:48:15 2001//
/configure.in/1.1.1.1/Sat Sep 8 10:48:15 2001//
D/example////
D/src////
1 change: 1 addition & 0 deletions AICA/SRCS/dxm-0.9/CVS/Repository
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/usr/home/ejstans/cvs/dxm
1 change: 1 addition & 0 deletions AICA/SRCS/dxm-0.9/CVS/Root
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/usr/home/ejstans/cvs
1 change: 1 addition & 0 deletions AICA/SRCS/dxm-0.9/ChangeLog
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v0.9 - initial release
150 changes: 150 additions & 0 deletions AICA/SRCS/dxm-0.9/INSTALL
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
Basic Installation
==================

This package requires a cross-compiler suite targeted for the
ARM7 series of microprocessors.
Currently only GNU gcc is supported so make sure you have properly
installed this before attempting to build this package. Run the 'configure'
script which will attempt to guess correct values for any system-
dependent variables. If it fails to locate a cross-compiler even though
it is installed, set the environment variable $ACC to the name of the
compiler and be sure to include the directory path where it's stored
in the $PATH variable before running the script.

If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If at some point `config.cache'
contains results you don't want to keep, you can remove or edit it.

The file `configure.in' is used to create `configure' by a program
called `autoconf'. You only need `configure.in' if you want to change
it or regenerate `configure' using a newer version of `autoconf'.

The simplest way to compile this package is:

1. `cd' to the directory containing the configure script and type
`./configure' to configure the package for your system. If you're
using `csh' on an old version of System V, you might need to type
`sh ./configure' instead to prevent `csh' from trying to execute
`configure' itself.

Running `configure' takes awhile. While running, it prints some
messages telling which features it is checking for.

2. Type `make' to compile the package.

3. Optionally, type 'make test' to compile a test program that
demonstrates the usage of the routines.

4. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'.

Compilers and Options
=====================

Some systems require unusual options for compilation or linking that
the `configure' script does not know about. You can give `configure'
initial values for variables by setting them in the environment. Using
a Bourne-compatible shell, you can do that on the command line like
this:
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure

Or on systems that have the `env' program, you can do it like this:
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure

Compiling For Multiple Architectures
====================================

You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.

If you have to use a `make' that does not supports the `VPATH'
variable, you have to compile the package for one architecture at a time
in the source code directory. After you have installed the package for
one architecture, use `make distclean' before reconfiguring for another
architecture.

Optional Features
=================

Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.

For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.

Specifying the System Type
==========================

There may be some features `configure' can not figure out
automatically, but needs to determine by the type of host the package
will run on. Usually `configure' can figure that out, but if it prints
a message saying it can not guess the host type, give it the
`--host=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name with three fields:
CPU-COMPANY-SYSTEM

See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the host type.

If you are building compiler tools for cross-compiling, you can also
use the `--target=TYPE' option to select the type of system they will
produce code for and the `--build=TYPE' option to select the type of
system on which you are compiling the package.

Sharing Defaults
================

If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.

Operation Controls
==================

`configure' recognizes the following options to control how it
operates.

`--cache-file=FILE'
Use and save the results of the tests in FILE instead of
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
debugging `configure'.

`--help'
Print a summary of the options to `configure', and exit.

`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
messages will still be shown).

`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.

`--version'
Print the version of Autoconf used to generate the `configure'
script, and exit.

`configure' also accepts some other, not widely useful, options.
26 changes: 26 additions & 0 deletions AICA/SRCS/dxm-0.9/Makefile.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Makefile for dxm

@SET_MAKE@

srcdir:
${MAKE} -C src

all: srcdir testdir

clean: cleandir

cleandir:
${MAKE} -C src clean
${MAKE} -C example clean

distclean: distcleandir
rm -f config.* Makefile

distcleandir:
${MAKE} -C src distclean
${MAKE} -C example distclean

test: testdir

testdir:
${MAKE} -C example test
1 change: 1 addition & 0 deletions AICA/SRCS/dxm-0.9/NEWS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
No news is good news.
42 changes: 42 additions & 0 deletions AICA/SRCS/dxm-0.9/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
General Information
===================

DXM is an XM-module player written for the Dreamcast videogame console.
It is meant to complement my graphics library (working name: Artisan) and
provide a way to play music and sounds for use in demos or games.

Installation
============

See the file 'INSTALL' for detailed instructions


Usage
=====

After compiling the package there should be an ARM binary executable in the
arm subdirectory. This is the player routine and should be placed in sound
RAM.

The module to be played must be converted to an internal format. This can
either be done beforehand by compiling the 'loader' program for the host
architecture and feeding it the module (only little-endian systems are
supported), or it can be done on-the-fly by compiling the 'loader'
program for the SH4 architecture and including the compiled object-
and header-file into your own project. The function dxm_load() will
then take as argument a pointer to the module and will convert and upload
it to sound RAM.

In the SH4 subdirectory there is also a file named 'control.o'. This
contains a couple of small functions to give control over the playing
of the module. dxm_halt() will halt the playing, dxm_play() will
(re)start the playing, and dxm_init() (re)initializes the moduel and
takes as argument the order to initialize to.

The file 'dxm.h' also defines a structure that contains variables that
are used by the module-player. These can be accessed in order to synchronize
effects etc. with the music.

Bah...i suck at writing documentation normally, and now its 03:43am which
doesnt exactly improve the situation...will see if i can rewrite this to
be more understandable later....
59 changes: 59 additions & 0 deletions AICA/SRCS/dxm-0.9/TODO
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
Issues:

* only handles waveforms less than 64k frames (unfortunately this seems to
be a hardware restriction so not much can be done about it)
NOTE: the 64k limit is NOT in bytes, but sample-frames! this means that
it's possible to play 128kb 16-bit samples, 64kb 8-bit samples and 32k 4-bit
ADPCM samples. also note that ping-pong loop causes part of the loop-portion
to be copied and this will eat sample-frames so try to minimize the use of
ping-pong loops.

* arpeggio command is not fully implemented

* tremor command is not implemented

* set finetune command currently has no effect.

* glissando slides are not implemented

* delay note seems bugged (just noticed, maybe affects other similar cmds)

* amiga frequency table is currently not (correctly) implemented

* SH4 loader is incomplete so module must be pre-converted using the
host converter...

* loader only handles the XM-format, though MOD, S3M, etc can be added
with "relatively" ease (or that was the intention anyway...)

* Maybe make control.o into a library instead? (nah, not really worth it)

* ARM was too slow so i moved one-shot waveform playing to the SH4 side instead
but this is completely untested....


Known bugs:

* sound is noisy, probably due to bug in interpolation code in envelope
processing (will look into that momentarily)

* Still something wrong with BPM...module plays slightly out-of-sync,
this is maybe due to inaccuracy of the timer-irq..check the calculations

* volume conversion from linear to logarithmic is incorrect

* Figure out how to get ld to align the .o files properly. changing
the order of the module and player causes misaligned data with
a address-error as result (when trying to write to sound-ram). this
is annoying...

* slow code. playing 32 channels is not working with full envelope
processing (maybe works at a lower BPM than 125 but still).
pan envelope can be turned off if necessary to speed things up
a bit...

* Some (most?) modules just play incorrectly. I dont really know whats going
on...even if aica only handles 64k waveform doesnt mean that there should
be noise which is the most common symptom...others include playing of pattern
screwing up, erranously repeating part of the pattern etc...
hmm...could it be bugs in the converter? oh,well....
11 changes: 11 additions & 0 deletions AICA/SRCS/dxm-0.9/acinclude.m4
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
dnl define macro to check valid arguments to compiler
AC_DEFUN(AC_CHECK_COMPILER_ARG,
[AC_CACHE_CHECK(whether $1 accepts $2, $3,
[echo 'void f(){}' > conftest.c
if test -z "`$1 $2 -c conftest.c 2>&1`"; then
$3=yes
else
$3=no
fi
rm -f conftest.c conftest.o
])])
24 changes: 24 additions & 0 deletions AICA/SRCS/dxm-0.9/aclocal.m4
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
dnl aclocal.m4 generated automatically by aclocal 1.4

dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.

dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
dnl PARTICULAR PURPOSE.

dnl define macro to check valid arguments to compiler
AC_DEFUN(AC_CHECK_COMPILER_ARG,
[AC_CACHE_CHECK(whether $1 accepts $2, $3,
[echo 'void f(){}' > conftest.c
if test -z "`$1 $2 -c conftest.c 2>&1`"; then
$3=yes
else
$3=no
fi
rm -f conftest.c conftest.o
])])

Loading

0 comments on commit 5c36cad

Please sign in to comment.