aboutsummaryrefslogtreecommitdiff
path: root/README
blob: 265386960876c86dcac22c142308965a64544c59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
*****************************************************************************
JUST TO MAKE IT CLEAR: THE TEXT BELOW IS NOT LEGAL BINDING, IT'S JUST A
WARNING THAT ECHO ISN'T STABLE, OK? THE PROPER LICENSE IS ZLIB'S AND THAT'S
WHAT YOU SHOULD CONSIDER.

To see the license, check the LICENSE file. (to-do: add the notice to the
source files - license is still relevant!)
*****************************************************************************
 _   _   _   _____   _____   _   _   _   _   _   _____
| | | | | | |  _  | |  _  | | \ | | | | | \ | | |  ___|
| | | | | | | |_| | | |_| | |  \| | | | |  \| | | | __
| | | | | | |  _  | |    _| |     | | | |     | | ||  |
| |_| |_| | | | | | | |\ \  | |\  | | | | |\  | | |_| |
|____.____| |_| |_| |_| \_\ |_| \_| |_| |_| \_| |___._|

This is NOT a final version. This version is quite stable right now, and
conversion tools will cope up with any shenanigans that can happen due to
currently undefined behavior, but don't get surprised if something ends up
being broken.

tl;dr use Echo at your own risk :|

-----------------------------------------------------------------------------

If you want to use Echo from asm, take the blob from "bin/prog-z80.bin" and
the "src-68k/sound/echo.68k" asm file. Include the latter in your source
code, then go to the @Z80Program label and replace the string with the path
to the blob.

If you want to use Echo from C, check the "c" subdirectory. You will find the
required files. It should work with any Mega Drive C devkit that provides the
stdint.h header (and you should ditch it if it doesn't!).

-----------------------------------------------------------------------------

Echo official "site" (currently just redirects to the git repo):
http://echo.mdscene.net/

Echo tools are available as part of the mdtools set:
https://github.com/sikthehedgehog/mdtools

Also Oerg made a xm2esf tool, and an ESF optimization tool:
https://github.com/oerg866/xm2esf

-----------------------------------------------------------------------------

Current version: 0.9

   And yes, I know the source code is a mess, I need to clean it up severely.
   Also I know some stuff could be done better (e.g. buffering PCM instead of
   reading each byte from ROM every time), but leaving that for after the
   first official release, don't fix what isn't broken -_-'

-----------------------------------------------------------------------------

How to build:

   * Make sure the root of this source code tree is the current directory
   * Assemble src-z80/build.z80 to bin/prog-z80.bin
   * Assemble src-68k/build.68k to bin/prog-68k.bin (optional)

   Sorry for not providing a build script but my current setup is a mess and
   needs to be changed x_x; Currently using z80-asm to build the Z80 code and
   asm68k to build the 68000 code, I need to find good replacements for both
   (z80-asm for being crappy, asm68k for not being free).
   
   Also no source for the data blobs yet, for similar reasons, although I
   have more control over those tools at least so I may come up with good
   replacements (or even just rebuild the current tools, pretty sure one of
   them (mdtiler) already has a replacement) :/
   
   The last step builds the Echo tester ROM, which is some generic ROM I use
   to test the tools and some other stuff I make, and generally contains
   garbage tunes in it you shouldn't pay attention to. You don't have to
   build it to make use of Echo :P

-----------------------------------------------------------------------------

Available builds:

   built/prog-z80.bin
      Current build of Echo.

   built/echo-timer-version-a.bin
      Timer test. Both timers get reloaded each time they're fired.
   built/echo-timer-version-b.bin
      Timer test. Only timer B is reloaded when it fires, timer A is left to
      loop on its own.
   built/echo-timer-version-c.bin
      Timer test. Both timers are left to loop on their own. Code for
      initializing timer B is wrong so it doesn't work properly.
   built/echo-timer-version-d.bin
      What the previous ROM should have been, fixed timer B :|

-----------------------------------------------------------------------------

Credits:

   - Sik (main programmer)
   - Oerg866 (bug hunter)

Testing: TµEE, Eke Eke, MarkeyJester, John Springer, Flygon