X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=Pico%2Fsound%2Fym2612.h;h=f5e98a05786508e859bf3650d5a803613fb91e31;hb=9761a7d0d41ad429d53c64ff35fe061c38092dbf;hp=07f41989ec182fa571bef5484307dfed6edf2462;hpb=d2721b08bb50fd1b112befa4b9f1a918dbd1ca03;p=picodrive.git diff --git a/Pico/sound/ym2612.h b/Pico/sound/ym2612.h index 07f4198..f5e98a0 100644 --- a/Pico/sound/ym2612.h +++ b/Pico/sound/ym2612.h @@ -30,7 +30,7 @@ typedef struct /* Phase Generator */ UINT32 phase; /* #0x0c phase counter | need_save */ - UINT32 Incr; /* #0x10 phase step | need_save */ + UINT32 Incr; /* #0x10 phase step */ UINT8 KSR; /* #0x14 key scale rate :3-KSR */ UINT8 ksr; /* #0x15 key scale rate :kcode>>(3-KSR) */ @@ -54,22 +54,25 @@ typedef struct { FM_SLOT SLOT[4]; /* four SLOTs (operators) */ - UINT8 ALGO; /* algorithm */ + UINT8 ALGO; /* +00 algorithm */ UINT8 FB; /* feedback shift */ + UINT8 pad[2]; INT32 op1_out; /* op1 output for feedback */ - INT32 mem_value; /* delayed sample (MEM) value */ + INT32 mem_value; /* +08 delayed sample (MEM) value */ INT32 pms; /* channel PMS */ UINT8 ams; /* channel AMS */ - UINT8 kcode; /* key code: */ + UINT8 kcode; /* +11 key code: */ + UINT8 fn_h; /* freq latch */ + UINT8 pad2; UINT32 fc; /* fnum,blk:adjusted to sample rate */ UINT32 block_fnum; /* current blk/fnum value for this slot (can be different betweeen slots of one channel in 3slot mode) */ /* LFO */ UINT8 AMmasks; /* AM enable flag */ - + UINT8 pad3[3]; } FM_CH; typedef struct @@ -80,12 +83,12 @@ typedef struct UINT8 address; /* 10 address register | need_save */ UINT8 status; /* 11 status flag | need_save */ UINT8 mode; /* mode CSM / 3SLOT */ - UINT8 fn_h; /* freq latch */ + UINT8 pad; int TA; /* timer a */ int TAC; /* timer a maxval */ int TAT; /* timer a ticker | need_save */ UINT8 TB; /* timer b */ - UINT8 pad[3]; + UINT8 pad2[3]; int TBC; /* timer b maxval */ int TBT; /* timer b ticker | need_save */ /* local time tables */ @@ -112,9 +115,9 @@ typedef struct FM_3SLOT SL3; /* 3 slot mode state */ UINT32 pan; /* fm channels output mask (bit 1 = enable) */ - UINT32 eg_cnt; /* #0xb38 global envelope generator counter | need_save */ - UINT32 eg_timer; /* #0xb3c global envelope generator counter works at frequency = chipclock/64/3 | need_save */ - UINT32 eg_timer_add; /* #0xb40 step of eg_timer */ + UINT32 eg_cnt; /* global envelope generator counter | need_save */ + UINT32 eg_timer; /* global envelope generator counter works at frequency = chipclock/64/3 | need_save */ + UINT32 eg_timer_add; /* step of eg_timer */ /* LFO */ UINT32 lfo_cnt; /* need_save */ @@ -129,7 +132,7 @@ typedef struct UINT8 REGS[0x200]; /* registers (for save states) */ INT32 addr_A1; /* address line A1 | need_save */ - FM_CH CH[6]; /* channel state (0x168 bytes each)? */ + FM_CH CH[6]; /* channel state */ /* dac output (YM2612) */ int dacen;