[Atsoft-commit] CVS: dcgen/ym2612 fm.c,1.1.1.1,1.2
Brought to you by:
atani
|
From: Mike D. <at...@us...> - 2002-04-08 16:39:12
|
Update of /cvsroot/atsoft/dcgen/ym2612
In directory usw-pr-cvs1:/tmp/cvs-serv12097/ym2612
Modified Files:
fm.c
Log Message:
Makefile.prefab: moved "-finline-funcs" optimization flag to the default set of "RELEASE" flags.
vdp.c: cleaned up and sped up some sections of code.
mem68k.c: cleanedup and sped up memory reading.
ui-kos.c: general code cleanup, worked out the correct values for the palette code, colors are a bit dark but are correct.
uip-kos.c: made it so it could compile again.
fm.c: general warnings cleanup (removed logging calls).
gensoundp-kos.c: general warnings cleanup.
Index: fm.c
===================================================================
RCS file: /cvsroot/atsoft/dcgen/ym2612/fm.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** fm.c 18 Jan 2002 02:42:54 -0000 1.1.1.1
--- fm.c 8 Apr 2002 01:15:33 -0000 1.2
***************
*** 1219,1283 ****
}
- #ifdef _STATE_H
- #if 0
- static void FM_channel_postload(FM_CH *CH,int num_ch)
- {
- int slot , ch;
-
- for(ch=0;ch<num_ch;ch++,CH++)
- {
- /* slots */
- for(slot=0;slot<4;slot++)
- {
- }
- }
- }
- #endif
- /* FM channel save , internal state only */
- static void FMsave_state_channel(const char *name,int num,FM_CH *CH,int num_ch)
- {
- int slot , ch;
- char state_name[20];
- const char slot_array[4] = { 1 , 3 , 2 , 4 };
-
- for(ch=0;ch<num_ch;ch++,CH++)
- {
- /* channel */
- sprintf(state_name,"%s.CH%d",name,ch);
- state_save_register_INT32(state_name, num, "feedback" , CH->op1_out , 2);
- state_save_register_UINT32(state_name, num, "phasestep" , &CH->fc , 1);
- /* slots */
- for(slot=0;slot<4;slot++)
- {
- FM_SLOT *SLOT = &CH->SLOT[slot];
-
- sprintf(state_name,"%s.CH%d.SLOT%d",name,ch,slot_array[slot]);
- state_save_register_UINT32(state_name, num, "phasecount" , &SLOT->Cnt , 1);
- state_save_register_UINT8 (state_name, num, "state" , &SLOT->state , 1);
- state_save_register_INT32 (state_name, num, "volume" , &SLOT->volume , 1);
- state_save_register_UINT32(state_name, num, "totallevel" , &SLOT->TLL , 1);
- }
- }
- }
-
- static void FMsave_state_st(const char *state_name,int num,FM_ST *ST)
- {
- #if FM_BUSY_FLAG_SUPPORT
- state_save_register_double(state_name, num, "BusyExpire", &ST->BusyExpire , 1);
- #endif
- state_save_register_UINT8 (state_name, num, "address" , &ST->address , 1);
- state_save_register_UINT8 (state_name, num, "IRQ" , &ST->irq , 1);
- state_save_register_UINT8 (state_name, num, "IRQ MASK" , &ST->irqmask , 1);
- state_save_register_UINT8 (state_name, num, "status" , &ST->status , 1);
- state_save_register_UINT32(state_name, num, "mode" , &ST->mode , 1);
- state_save_register_UINT8 (state_name, num, "prescaler" , &ST->prescaler_sel , 1);
- state_save_register_UINT8 (state_name, num, "freq latch", &ST->fn_h , 1);
- state_save_register_int (state_name, num, "TIMER A" , &ST->TA );
- state_save_register_int (state_name, num, "TIMER Acnt", &ST->TAC );
- state_save_register_UINT8 (state_name, num, "TIMER B" , &ST->TB , 1);
- state_save_register_int (state_name, num, "TIMER Bcnt", &ST->TBC );
- }
- #endif /* _STATE_H */
-
#if BUILD_OPN
/***********************************************************/
--- 1219,1222 ----
***************
*** 1466,1472 ****
break;
case 0x90: /* SSG-EG */
- #if !FM_SEG_SUPPORT
- if(v&0x08) LOG(LOG_ERR,("OPN %d,%d,%d :SSG-TYPE envelope selected (not supported )\n",OPN->ST.index,c,OPN_SLOT(r)));
- #endif
SLOT->SEG = v&0x0f;
break;
--- 1405,1408 ----
***************
*** 1705,1760 ****
}
- #ifdef _STATE_H
- static void YM2203_postload(void)
- {
- int num , r;
-
- for(num=0;num<YM2203NumChips;num++)
- {
- /* prescaler */
- OPNPrescaler_w(&FM2203[num].OPN,1,1);
-
- /* SSG registers */
- for(r=0;r<16;r++)
- {
- SSGWrite(num,0,r);
- SSGWrite(num,1,FM2203[num].REGS[r]);
- }
-
- /* OPN registers */
- /* DT / MULTI , TL , KS / AR , AMON / DR , SR , SL / RR , SSG-EG */
- for(r=0x30;r<0x9e;r++)
- if((r&3) != 3)
- OPNWriteReg(&FM2203[num].OPN,r,FM2203[num].REGS[r]);
- /* FB / CONNECT , L / R / AMS / PMS */
- for(r=0xb0;r<0xb6;r++)
- if((r&3) != 3)
- OPNWriteReg(&FM2203[num].OPN,r,FM2203[num].REGS[r]);
-
- /* channels */
- /*FM_channel_postload(FM2203[num].CH,3);*/
- }
- cur_chip = NULL;
- }
-
- static void YM2203_save_state(void)
- {
- int num;
- const char statename[] = "YM2203";
-
- for(num=0;num<YM2203NumChips;num++)
- {
- state_save_register_UINT8 (statename, num, "regs" , FM2203[num].REGS , 256);
- FMsave_state_st(statename,num,&FM2203[num].OPN.ST);
- FMsave_state_channel(statename,num,FM2203[num].CH,3);
- /* 3slots */
- state_save_register_UINT32 (statename, num, "slot3fc" , FM2203[num].OPN.SL3.fc , 3);
- state_save_register_UINT8 (statename, num, "slot3fh" , &FM2203[num].OPN.SL3.fn_h , 1);
- state_save_register_UINT8 (statename, num, "slot3kc" , FM2203[num].OPN.SL3.kcode , 3);
- }
- state_save_register_func_postload(YM2203_postload);
- }
- #endif /* _STATE_H */
-
/* ---------- Initialize YM2203 emulator(s) ---------- */
/* 'num' is the number of virtual YM2203's to allocate */
--- 1641,1644 ----
***************
*** 2419,2495 ****
}
- #ifdef _STATE_H
- static void YM2608_postload(void)
- {
- int num , r;
-
- for(num=0;num<YM2608NumChips;num++)
- {
- YM2608 *F2608 = &(FM2608[num]);
- /* prescaler */
- OPNPrescaler_w(&F2608->OPN,1,2);
- F2608->deltaT.freqbase = F2608->OPN.ST.freqbase;
- /* IRQ mask / mode */
- YM2608IRQMaskWrite(&F2608->OPN,F2608->REGS[0x29]);
- /* SSG registers */
- for(r=0;r<16;r++)
- {
- SSGWrite(num,0,r);
- SSGWrite(num,1,F2608->REGS[r]);
- }
-
- /* OPN registers */
- /* DT / MULTI , TL , KS / AR , AMON / DR , SR , SL / RR , SSG-EG */
- for(r=0x30;r<0x9e;r++)
- if((r&3) != 3)
- {
- OPNWriteReg(&F2608->OPN,r,F2608->REGS[r]);
- OPNWriteReg(&F2608->OPN,r|0x100,F2608->REGS[r|0x100]);
- }
- /* FB / CONNECT , L / R / AMS / PMS */
- for(r=0xb0;r<0xb6;r++)
- if((r&3) != 3)
- {
- OPNWriteReg(&F2608->OPN,r,F2608->REGS[r]);
- OPNWriteReg(&F2608->OPN,r|0x100,F2608->REGS[r|0x100]);
- }
- /* FM channels */
- /*FM_channel_postload(F2608->CH,6);*/
- /* rhythm(ADPCMA) */
- FM_ADPCMAWrite(F2608,1,F2608->REGS[0x111]);
- for( r=0x08 ; r<0x0c ; r++)
- FM_ADPCMAWrite(F2608,r,F2608->REGS[r+0x110]);
- /* Delta-T ADPCM unit */
- YM_DELTAT_postload(&F2608->deltaT , &F2608->REGS[0x100] );
- }
- cur_chip = NULL;
- }
-
- static void YM2608_save_state(void)
- {
- int num;
- const char statename[] = "YM2608";
-
- for(num=0;num<YM2608NumChips;num++)
- {
- YM2608 *F2608 = &(FM2608[num]);
-
- state_save_register_UINT8 (statename, num, "regs" , F2608->REGS , 512);
- FMsave_state_st(statename,num,&FM2608[num].OPN.ST);
- FMsave_state_channel(statename,num,FM2608[num].CH,6);
- /* 3slots */
- state_save_register_UINT32(statename, num, "slot3fc" , F2608->OPN.SL3.fc , 3);
- state_save_register_UINT8 (statename, num, "slot3fh" , &F2608->OPN.SL3.fn_h , 1);
- state_save_register_UINT8 (statename, num, "slot3kc" , F2608->OPN.SL3.kcode , 3);
- /* address register1 */
- state_save_register_int (statename, num, "address1" , &F2608->address1);
- /* rythm(ADPCMA) */
- FMsave_state_adpcma(statename,num,F2608->adpcm);
- /* Delta-T ADPCM unit */
- YM_DELTAT_savestate(statename,num,&FM2608[num].deltaT);
- }
- state_save_register_func_postload(YM2608_postload);
- }
- #endif /* _STATE_H */
/* -------------------------- YM2608(OPNA) ---------------------------------- */
--- 2303,2306 ----
***************
*** 3058,3130 ****
#if BUILD_OPNB
- #ifdef _STATE_H
- static void YM2610_postload(void)
- {
- int num , r;
-
- for(num=0;num<YM2610NumChips;num++)
- {
- YM2610 *F2610 = &(FM2610[num]);
- /* SSG registers */
- for(r=0;r<16;r++)
- {
- SSGWrite(num,0,r);
- SSGWrite(num,1,F2610->REGS[r]);
- }
-
- /* OPN registers */
- /* DT / MULTI , TL , KS / AR , AMON / DR , SR , SL / RR , SSG-EG */
- for(r=0x30;r<0x9e;r++)
- if((r&3) != 3)
- {
- OPNWriteReg(&F2610->OPN,r,F2610->REGS[r]);
- OPNWriteReg(&F2610->OPN,r|0x100,F2610->REGS[r|0x100]);
- }
- /* FB / CONNECT , L / R / AMS / PMS */
- for(r=0xb0;r<0xb6;r++)
- if((r&3) != 3)
- {
- OPNWriteReg(&F2610->OPN,r,F2610->REGS[r]);
- OPNWriteReg(&F2610->OPN,r|0x100,F2610->REGS[r|0x100]);
- }
- /* FM channels */
- /*FM_channel_postload(F2610->CH,6);*/
- /* rhythm(ADPCMA) */
- FM_ADPCMAWrite(F2610,1,F2610->REGS[0x111]);
- for( r=0x08 ; r<0x0c ; r++)
- FM_ADPCMAWrite(F2610,r,F2610->REGS[r+0x110]);
- /* Delta-T ADPCM unit */
- YM_DELTAT_postload(&F2610->deltaT , &F2610->REGS[0x100] );
- }
- cur_chip = NULL;
- }
-
- static void YM2610_save_state(void)
- {
- int num;
- const char statename[] = "YM2610";
-
- for(num=0;num<YM2610NumChips;num++)
- {
- YM2610 *F2610 = &(FM2610[num]);
-
- state_save_register_UINT8 (statename, num, "regs" , F2610->REGS , 512);
- FMsave_state_st(statename,num,&FM2610[num].OPN.ST);
- FMsave_state_channel(statename,num,FM2610[num].CH,6);
- /* 3slots */
- state_save_register_UINT32(statename, num, "slot3fc" , F2610->OPN.SL3.fc , 3);
- state_save_register_UINT8 (statename, num, "slot3fh" , &F2610->OPN.SL3.fn_h , 1);
- state_save_register_UINT8 (statename, num, "slot3kc" , F2610->OPN.SL3.kcode , 3);
- /* address register1 */
- state_save_register_int (statename, num, "address1" , &F2610->address1);
- state_save_register_UINT8 (statename, num, "arrivedFlag", &F2610->adpcm_arrivedEndAddress , 1);
- /* rythm(ADPCMA) */
- FMsave_state_adpcma(statename,num,F2610->adpcm);
- /* Delta-T ADPCM unit */
- YM_DELTAT_savestate(statename,num,&FM2610[num].deltaT);
- }
- state_save_register_func_postload(YM2610_postload);
- }
- #endif /* _STATE_H */
int YM2610Init(int num, int clock, int rate,
--- 2869,2872 ----
***************
*** 3520,3578 ****
}
- #ifdef _STATE_H
- static void YM2612_postload(void)
- {
- int num , r;
-
- for(num=0;num<YM2612NumChips;num++)
- {
- /* DAC data & port */
- /* James Ponder 2001-09-30 level setting of 5 found suitable */
- FM2612[num].dacout = ((int)FM2612[num].REGS[0x2a] - 0x80) << 5; /* level unknown */
- /* James Ponder 2001-10-19 fix from 0x2d to 0x2b */
- FM2612[num].dacen = FM2612[num].REGS[0x2b] & 0x80;
- /* OPN registers */
- /* DT / MULTI , TL , KS / AR , AMON / DR , SR , SL / RR , SSG-EG */
- for(r=0x30;r<0x9e;r++)
- if((r&3) != 3)
- {
- OPNWriteReg(&FM2612[num].OPN,r,FM2612[num].REGS[r]);
- OPNWriteReg(&FM2612[num].OPN,r|0x100,FM2612[num].REGS[r|0x100]);
- }
- /* FB / CONNECT , L / R / AMS / PMS */
- for(r=0xb0;r<0xb6;r++)
- if((r&3) != 3)
- {
- OPNWriteReg(&FM2612[num].OPN,r,FM2612[num].REGS[r]);
- OPNWriteReg(&FM2612[num].OPN,r|0x100,FM2612[num].REGS[r|0x100]);
- }
- /* channels */
- /*FM_channel_postload(FM2612[num].CH,6);*/
- }
- cur_chip = NULL;
- }
-
- /* James Ponder: removed static */
- void YM2612_save_state(void)
- {
- int num;
- const char statename[] = "YM2612";
-
- for(num=0;num<YM2612NumChips;num++)
- {
- state_save_register_UINT8 (statename, num, "regs" , FM2612[num].REGS , 512);
- FMsave_state_st(statename,num,&FM2612[num].OPN.ST);
- FMsave_state_channel(statename,num,FM2612[num].CH,6);
- /* 3slots */
- state_save_register_UINT32 (statename, num, "slot3fc" , FM2612[num].OPN.SL3.fc , 3);
- state_save_register_UINT8 (statename, num, "slot3fh" , &FM2612[num].OPN.SL3.fn_h , 1);
- state_save_register_UINT8 (statename, num, "slot3kc" , FM2612[num].OPN.SL3.kcode , 3);
- /* address register1 */
- state_save_register_int (statename, num, "address1" , &FM2612[num].address1);
- }
- state_save_register_func_postload(YM2612_postload);
- }
- #endif /* _STATE_H */
-
/* -------------------------- YM2612 ---------------------------------- */
int YM2612Init(int num, int clock, int rate,
--- 3262,3265 ----
***************
*** 3728,3732 ****
case 2:
case 3:
- LOG(LOG_WAR,("YM2612 #%d:A=%d read unmapped area\n"));
return FM_STATUS_FLAG(&F2612->OPN.ST);
}
--- 3415,3418 ----
***************
*** 4167,4216 ****
for(i = 0xff ; i >= 0x20 ; i-- ) OPMWriteReg(num,i,0);
}
-
- #ifdef _STATE_H
- static void YM2151_postload(void)
- {
- int num , r;
-
- for(num=0;num<YM2151NumChips;num++)
- {
- YM2151 *F2151 = &(FMOPM[num]);
-
- OPMWriteReg(num,0x0f,F2151->REGS[0x0f]); /* noise sel */
- OPMWriteReg(num,0x18,F2151->REGS[0x18]); /* lfreq */
- OPMWriteReg(num,0x1b,F2151->REGS[0x1b]); /* CT , W */
-
- for(r=0xff;r>=0x20;r--)
- OPMWriteReg(num,r,F2151->REGS[r]);
- /* channels */
- /*FM_channel_postload(F2151->CH,8);*/
- }
- cur_chip = NULL;
- }
-
- static void YM2151_save_state(void)
- {
- int num;
- const char statename[] = "YM2151";
-
- for(num=0;num<YM2151NumChips;num++)
- {
- YM2151 *F2151 = &(FMOPM[num]);
-
- state_save_register_UINT8 (statename, num, "regs" , F2151->REGS , 256);
- FMsave_state_st(statename,num,&F2151->ST);
- FMsave_state_channel(statename,num,F2151->CH,8);
-
- state_save_register_UINT32 (statename, num, "NoiseCount" , &F2151->NoiseCnt , 1);
- state_save_register_UINT32 (statename, num, "NoiseStep" , &F2151->NoiseIncr , 1);
- state_save_register_UINT32 (statename, num, "LFOCount" , &F2151->LFOCnt , 1);
- state_save_register_UINT32 (statename, num, "LFOStep" , &F2151->LFOIncr , 1);
- state_save_register_UINT8 (statename, num, "LFOPMD" , &F2151->pmd , 1);
- state_save_register_UINT8 (statename, num, "LFOAMD" , &F2151->amd , 1);
- state_save_register_UINT8 (statename, num, "test" , &F2151->testreg , 1);
- }
- state_save_register_func_postload(YM2151_postload);
- }
- #endif /* _STATE_H */
/* ---------- Initialize YM2151 emulator(s) ---------- */
--- 3853,3856 ----
|