INT16 volume; /* #0x1a envelope counter | need_save */\r
UINT32 sl; /* #0x1c sustain level:sl_table[SL] */\r
\r
- UINT32 eg_pack_ar; /* #0x20 (attack state) */\r
- UINT32 eg_pack_d1r; /* #0x24 (decay state) */\r
- UINT32 eg_pack_d2r; /* #0x28 (sustain state) */\r
- UINT32 eg_pack_rr; /* #0x2c (release state) */\r
+ /* asm relies on this order: */\r
+ union {\r
+ struct {\r
+ UINT32 eg_pack_rr; /* #0x20 1 (release state) */\r
+ UINT32 eg_pack_d2r; /* #0x24 2 (sustain state) */\r
+ UINT32 eg_pack_d1r; /* #0x28 3 (decay state) */\r
+ UINT32 eg_pack_ar; /* #0x2c 4 (attack state) */\r
+ };\r
+ UINT32 eg_pack[4];\r
+ };\r
} FM_SLOT;\r
\r
\r