не соберётся - другой смысл у прагмы pack с 2-мя параметрами
pack(push, 1) на MSVC будет ждать парный pack(pop, 1), т.е. 1 тут - просто идентификатор
самое странное - замена
Код:
union SNDSAMPLE
{
DWORD sample; // left/right channels in low/high WORDs
struct { WORD left, right; }; // or left/right separately
};
на
Код:
union SNDSAMPLE
{
DWORD sample; // left/right channels in low/high WORDs
struct rl { WORD left, right; }; // or left/right separately
};
как оно скомпилировалось? ведь 2-й вариант определяет описание класса rl внутри пространства имён SNDSAMPLE, но не объявляет внутри SNDSAMPLE экземпляр rl. т.е. код sample.left - ошибочный (не компилируется MSVC)
предлагаю
Код:
struct SNDCHANNELS
{
WORD left, right;
};
union SNDSAMPLE
{
DWORD sample; // left/right channels in low/high WORDs
SNDCHANNELS ch; // or left/right separately
};
- должно везде собираться
странно, почему const не работает. на самом деле те константы типа unsigned, они передаются в unsigned-параметры функций (хотя msvc не выдаёт warning'ов и при int), но они могут вдруг использоваться и в сравнениях
вариант
Код:
const unsigned TICK_FF=6;
компилируется gcc?
ну попробуй LHA-депакер портировать..
Кстати, AY_Emul прекрасно пашет под Wine.
а, значит, не особо нужно
По поводу быстродействия кстати поясни - как может эмуляция AY и CPU (я правильно понял?) быть быстрее только эмуляции AY?
так сделать медленнее - не проблема ;-) особенно когда надо сделать чтобы быстрее заработало