add chipType change detect
This commit is contained in:
		
							parent
							
								
									6daf9b3d18
								
							
						
					
					
						commit
						407f916311
					
				| 
						 | 
					@ -512,7 +512,7 @@ void FurnaceGUI::drawChanOsc() {
 | 
				
			||||||
                        break;
 | 
					                        break;
 | 
				
			||||||
                      }
 | 
					                      }
 | 
				
			||||||
                      case 'p': {
 | 
					                      case 'p': {
 | 
				
			||||||
                        text+=FurnaceGUI::getSystemPartNumber(e->sysOfChan[ch]);
 | 
					                        text+=FurnaceGUI::getSystemPartNumber(e->sysOfChan[ch], e->song.systemFlags[e->dispatchOfChan[ch]]);
 | 
				
			||||||
                        break;
 | 
					                        break;
 | 
				
			||||||
                      }
 | 
					                      }
 | 
				
			||||||
                      case 'S': {
 | 
					                      case 'S': {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2287,7 +2287,7 @@ class FurnaceGUI {
 | 
				
			||||||
  bool quitRender();
 | 
					  bool quitRender();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const char* getSystemName(DivSystem which);
 | 
					  const char* getSystemName(DivSystem which);
 | 
				
			||||||
  const char* getSystemPartNumber(DivSystem sys);
 | 
					  const char* getSystemPartNumber(DivSystem sys, DivConfig& flags);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public:
 | 
					  public:
 | 
				
			||||||
    void editStr(String* which);
 | 
					    void editStr(String* which);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,14 +19,38 @@
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
#include "gui.h"
 | 
					#include "gui.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const char* FurnaceGUI::getSystemPartNumber(DivSystem sys) {
 | 
					const char* FurnaceGUI::getSystemPartNumber(DivSystem sys, DivConfig& flags) {
 | 
				
			||||||
  switch (sys) {
 | 
					  switch (sys) {
 | 
				
			||||||
    case DIV_SYSTEM_YMU759:
 | 
					    case DIV_SYSTEM_YMU759:
 | 
				
			||||||
      return "YMU759";
 | 
					      return "YMU759";
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    case DIV_SYSTEM_SMS:
 | 
					    case DIV_SYSTEM_SMS:{
 | 
				
			||||||
      return "SN76489";
 | 
					      int chipType=flags.getInt("chipType",0);
 | 
				
			||||||
 | 
					      if (chipType==4) {
 | 
				
			||||||
 | 
					        return "SN76489A";
 | 
				
			||||||
 | 
					      } else if (chipType==5) {
 | 
				
			||||||
 | 
					        return "SN76496";
 | 
				
			||||||
 | 
					      } else if (chipType==6) {
 | 
				
			||||||
 | 
					        return "8496";
 | 
				
			||||||
 | 
					      } else if (chipType==7) {
 | 
				
			||||||
 | 
					        return "PSSJ";//not part number
 | 
				
			||||||
 | 
					      } else if (chipType==8) {
 | 
				
			||||||
 | 
					        return "SN94624";
 | 
				
			||||||
 | 
					      } else if (chipType==9) {
 | 
				
			||||||
 | 
					        return "SN76494";
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					        return "SN76489";
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    case DIV_SYSTEM_PCE:{
 | 
				
			||||||
 | 
					      int chipType=flags.getInt("chipType",0);
 | 
				
			||||||
 | 
					      if (chipType==1) {
 | 
				
			||||||
 | 
					        return "HuC6280A";
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					        return "HuC6280";
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    case DIV_SYSTEM_NES:
 | 
					    case DIV_SYSTEM_NES:
 | 
				
			||||||
      return "2A03";
 | 
					      return "2A03";
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
| 
						 | 
					@ -40,9 +64,19 @@ const char* FurnaceGUI::getSystemPartNumber(DivSystem sys) {
 | 
				
			||||||
    case DIV_SYSTEM_Y8950_DRUMS:
 | 
					    case DIV_SYSTEM_Y8950_DRUMS:
 | 
				
			||||||
      return "Y8950";
 | 
					      return "Y8950";
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    case DIV_SYSTEM_AY8910:
 | 
					    case DIV_SYSTEM_AY8910:{
 | 
				
			||||||
      return "AY8910";
 | 
					      int chipType=flags.getInt("chipType",0);
 | 
				
			||||||
 | 
					        if (chipType==1) {
 | 
				
			||||||
 | 
					          return "YM2149(F)";
 | 
				
			||||||
 | 
					        } else if (chipType==2) {
 | 
				
			||||||
 | 
					          return "5B";
 | 
				
			||||||
 | 
					        } else if (chipType==3) {
 | 
				
			||||||
 | 
					          return "AY-3-8914";
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          return "AY-3-8910";
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    case DIV_SYSTEM_AMIGA:
 | 
					    case DIV_SYSTEM_AMIGA:
 | 
				
			||||||
      return "Amiga";
 | 
					      return "Amiga";
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
| 
						 | 
					@ -53,9 +87,22 @@ const char* FurnaceGUI::getSystemPartNumber(DivSystem sys) {
 | 
				
			||||||
    case DIV_SYSTEM_YM2612_CSM:
 | 
					    case DIV_SYSTEM_YM2612_CSM:
 | 
				
			||||||
    case DIV_SYSTEM_YM2612_DUALPCM:
 | 
					    case DIV_SYSTEM_YM2612_DUALPCM:
 | 
				
			||||||
    case DIV_SYSTEM_YM2612_DUALPCM_EXT:
 | 
					    case DIV_SYSTEM_YM2612_DUALPCM_EXT:
 | 
				
			||||||
    case DIV_SYSTEM_YM2612_EXT:
 | 
					    case DIV_SYSTEM_YM2612_EXT:{
 | 
				
			||||||
      return "YM2612";
 | 
					      int chipType=0;
 | 
				
			||||||
 | 
					      if (flags.has("chipType")) {
 | 
				
			||||||
 | 
					        chipType=flags.getInt("chipType",0);
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					        chipType=flags.getBool("ladderEffect",0)?1:0;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if (chipType==0) {
 | 
				
			||||||
 | 
					        return "YM3438";
 | 
				
			||||||
 | 
					      } else if (chipType==2) {
 | 
				
			||||||
 | 
					        return "YMF276";
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					        return "YM2612";
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    case DIV_SYSTEM_TIA:
 | 
					    case DIV_SYSTEM_TIA:
 | 
				
			||||||
      return "TIA";
 | 
					      return "TIA";
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
| 
						 | 
					@ -94,9 +141,19 @@ const char* FurnaceGUI::getSystemPartNumber(DivSystem sys) {
 | 
				
			||||||
      return "YM2608";
 | 
					      return "YM2608";
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    case DIV_SYSTEM_OPL:
 | 
					    case DIV_SYSTEM_OPL:
 | 
				
			||||||
    case DIV_SYSTEM_OPL_DRUMS:
 | 
					    case DIV_SYSTEM_OPL_DRUMS:{
 | 
				
			||||||
      return "YM3526";
 | 
					      int patchSet=flags.getInt("patchSet",0);
 | 
				
			||||||
 | 
					        if (patchSet==1) {
 | 
				
			||||||
 | 
					          return "YMF281";
 | 
				
			||||||
 | 
					        } else if (patchSet==2) {
 | 
				
			||||||
 | 
					          return "YM2423";
 | 
				
			||||||
 | 
					        } else if (patchSet==3) {
 | 
				
			||||||
 | 
					          return "VRC7";
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          return "YM2413";
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    case DIV_SYSTEM_OPL2:
 | 
					    case DIV_SYSTEM_OPL2:
 | 
				
			||||||
    case DIV_SYSTEM_OPL2_DRUMS:
 | 
					    case DIV_SYSTEM_OPL2_DRUMS:
 | 
				
			||||||
      return "YM3812";
 | 
					      return "YM3812";
 | 
				
			||||||
| 
						 | 
					@ -112,9 +169,15 @@ const char* FurnaceGUI::getSystemPartNumber(DivSystem sys) {
 | 
				
			||||||
    case DIV_SYSTEM_MULTIPCM:
 | 
					    case DIV_SYSTEM_MULTIPCM:
 | 
				
			||||||
      return "MultiPCM";
 | 
					      return "MultiPCM";
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    case DIV_SYSTEM_RF5C68:
 | 
					    case DIV_SYSTEM_RF5C68:{
 | 
				
			||||||
      return "RF5C68";
 | 
					      int chipType=flags.getInt("chipType",0);
 | 
				
			||||||
 | 
					      if (chipType==1) {
 | 
				
			||||||
 | 
					        return "RF5C164";
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					        return "RF5C68";
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    case DIV_SYSTEM_OPZ:
 | 
					    case DIV_SYSTEM_OPZ:
 | 
				
			||||||
      return "YM2414";
 | 
					      return "YM2414";
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue