Package: s3mod
Version: 1.09-14_arm.deb
When attempting to play a valid MOD file with s3mod, it complains that the
file is invalid:
[EMAIL PROTECTED]:~$ s3mod ../ian/icu8ab4t.mod
Protracker Module name = "icu8ab4t "
0 04530 written and composed 1 00096 alex craxton 1992
2 00000 92 accel of dmx 3 00002 imension x <
4 59102 rockish tune. 5 59594 the nasty
6 16580 he guitar 7 59102 ed to
8 59614 itar 9 55506
10 00000 11 00000 8
12 00000 13 00000
14 00000 15 00000
16 00000 17 00000
18 00002 19 00000
20 00000 21 00000
22 00000 23 00000
24 00000 25 00000
26 00000 27 00000
28 29284 29 03600
30 00000
File is not a valid mod or s3m!
The file format may not be recognised because the structures describing
the MOD file format are not correct on the ARMv4l architecture - as
defined in mod.h. A suggested fix is in the patch below:
$ diff -u mod.h s3mod-1.09.orig/mod.h
--- mod.h 2005-11-20 22:47:28.000000000 +0000
+++ s3mod-1.09.orig/mod.h 1995-10-21 07:58:08.000000000 +0100
@@ -65,9 +65,6 @@
#define S3M_MAGIC2 "SCRM"
#define S3M_INSTR2 "SCRS"
-
-#pragma pack(1)
-
typedef struct _s3m_header
{
int8 name[28];
@@ -84,7 +81,7 @@
uint8 bpm;
uint8 fill_1[13];
uint8 channel_maps[32];
-} __attribute__((__packed__)) s3m_header;
+} s3m_header;
typedef struct _s3m_instr
{
@@ -103,7 +100,7 @@
uint16 word_4;
int8 comment[28];
int8 id[4];
-} __attribute__((__packed__)) s3m_instr;
+} s3m_instr;
typedef struct _mod_voice
{
@@ -113,7 +110,7 @@
uint8 volume;
uint16 repeat_point;
uint16 repeat_length;
-} __attribute__((__packed__)) mod_voice;
+} mod_voice;
typedef struct _song_data
{
@@ -136,14 +133,14 @@
uint16 bpm;
uint16 tempo;
uint8 s3m;
-} __attribute__((__packed__)) song_data;
+} song_data;
typedef struct _song_15
{
uint8 song_length_patterns;
uint8 song_repeat_patterns;
uint8 positions[128];
-} __attribute__((__packed__)) song_15;
+} song_15;
typedef struct track_info
{
@@ -152,7 +149,7 @@
uint16 length;
uint16 repeat;
uint16 replen;
- int8 volume;
+ int8 volume;
int8 error;
uint16 pitch;
uint16 old_position;
@@ -193,8 +190,6 @@
uint16 period_high_limit;
} track_info;
-#pragma pack(0)
-
#ifdef NEAR_FAR_PTR
typedef track_info near *track_info_ptr;
#else
This is all on a StrongARM NetWinder machine, running Debian GNU/Linux
3.1, kernel 2.4.19-rmk7 and libc6 2.3.2.ds1-22.
Thanks,
--
Chris Williams | http://www.diodesign.co.uk/
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]