AxibugEmuOnline/virtuanessrc097-master/NES/Mapper/MapperFactory.cpp

664 lines
31 KiB
C++
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*----------------------------------------------------------------------*/
/* */
/* NES Mapeers Factory */
/* Norix */
/* written 2003/09/04 */
/* last modify ----/--/-- */
/*----------------------------------------------------------------------*/
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include "DebugOut.h"
#include "typedef.h"
#include "macro.h"
#include "nes.h"
#include "mmu.h"
#include "cpu.h"
#include "ppu.h"
#include "apu.h"
#include "pad.h"
#include "rom.h"
#include "mapper.h"
#include "Config.h"
//////////////////////////////////////////////////////////////////////////
#include "Mapper000.h"
#include "Mapper001.h"
#include "Mapper002.h"
#include "Mapper003.h"
#include "Mapper004.h"
#include "Mapper005.h"
#include "Mapper006.h"
#include "Mapper007.h"
#include "Mapper008.h"
#include "Mapper009.h"
#include "Mapper010.h"
#include "Mapper011.h"
#include "Mapper013.h"
#include "Mapper015.h"
#include "Mapper016.h"
#include "Mapper017.h"
#include "Mapper018.h"
#include "Mapper019.h"
#include "MapperFDS.h" // 020
#include "Mapper021.h"
#include "Mapper022.h"
#include "Mapper023.h"
#include "Mapper024.h"
#include "Mapper025.h"
#include "Mapper026.h"
#include "Mapper032.h"
#include "Mapper033.h"
#include "Mapper034.h"
#include "Mapper040.h"
#include "Mapper041.h"
#include "Mapper042.h"
#include "Mapper043.h"
#include "Mapper048.h"
#include "Mapper064.h"
#include "Mapper065.h"
#include "Mapper066.h"
#include "Mapper067.h"
#include "Mapper068.h"
#include "Mapper069.h"
#include "Mapper070.h"
#include "Mapper071.h"
#include "Mapper072.h"
#include "Mapper073.h"
#include "Mapper075.h"
#include "Mapper076.h"
#include "Mapper077.h"
#include "Mapper078.h"
#include "Mapper079.h"
#include "Mapper080.h"
#include "Mapper082.h"
#include "Mapper083.h"
#include "Mapper085.h"
#include "Mapper086.h"
#include "Mapper087.h"
#include "Mapper088.h"
#include "Mapper089.h"
#include "Mapper090.h"
#include "Mapper091.h"
#include "Mapper092.h"
#include "Mapper093.h"
#include "Mapper094.h"
#include "Mapper095.h"
#include "Mapper096.h"
#include "Mapper097.h"
#include "Mapper100.h"
#include "Mapper101.h"
#include "Mapper107.h"
#include "Mapper113.h"
#include "Mapper118.h"
#include "Mapper119.h"
#include "Mapper122.h"
#include "Mapper180.h"
#include "Mapper181.h"
#include "Mapper185.h"
#include "Mapper187.h"
#include "Mapper188.h"
#include "Mapper189.h"
#include "Mapper243.h"
#include "MapperNSF.h"
#include "Mapper044.h"
#include "Mapper045.h"
#include "Mapper046.h"
#include "Mapper047.h"
#include "Mapper050.h"
#include "Mapper051.h"
#include "Mapper057.h"
#include "Mapper058.h"
#include "Mapper060.h"
#include "Mapper062.h"
#include "Mapper074.h"
#include "Mapper105.h"
#include "Mapper108.h"
#include "Mapper109.h"
#include "Mapper110.h"
#include "Mapper112.h"
#include "Mapper114.h"
#include "Mapper115.h"
#include "Mapper116.h"
#include "Mapper117.h"
#include "Mapper133.h"
#include "Mapper134.h"
#include "Mapper135.h"
#include "Mapper140.h"
#include "Mapper142.h"
#include "Mapper160.h"
#include "Mapper182.h"
#include "Mapper183.h"
#include "Mapper190.h"
#include "Mapper191.h"
#include "Mapper193.h"
#include "Mapper194.h"
#include "Mapper198.h"
#include "Mapper222.h"
#include "Mapper225.h"
#include "Mapper226.h"
#include "Mapper227.h"
#include "Mapper228.h"
#include "Mapper229.h"
#include "Mapper230.h"
#include "Mapper231.h"
#include "Mapper232.h"
#include "Mapper233.h"
#include "Mapper234.h"
#include "Mapper235.h"
#include "Mapper236.h"
#include "Mapper240.h"
#include "Mapper241.h"
#include "Mapper242.h"
#include "Mapper244.h"
#include "Mapper245.h"
#include "Mapper246.h"
#include "Mapper248.h"
#include "Mapper249.h"
#include "Mapper251.h"
#include "Mapper252.h"
#include "Mapper254.h"
#include "Mapper255.h"
#include "Mapper099.h"
#include "Mapper151.h"
#include "Mapper012.h"
#include "Mapper200.h"
#include "Mapper201.h"
#include "Mapper202.h"
#include "Mapper061.h"
#include "Mapper027.h"
#include "Mapper164.h"
#include "Mapper165.h"
#include "Mapper167.h"
//////////////////////////////////////////////////////////////////////////
#include "Mapper000.cpp"
#include "Mapper001.cpp"
#include "Mapper002.cpp"
#include "Mapper003.cpp"
#include "Mapper004.cpp"
#include "Mapper005.cpp"
#include "Mapper006.cpp"
#include "Mapper007.cpp"
#include "Mapper008.cpp"
#include "Mapper009.cpp"
#include "Mapper010.cpp"
#include "Mapper011.cpp"
#include "Mapper013.cpp"
#include "Mapper015.cpp"
#include "Mapper016.cpp"
#include "Mapper017.cpp"
#include "Mapper018.cpp"
#include "Mapper019.cpp"
#include "MapperFDS.cpp" // 020
#include "Mapper021.cpp"
#include "Mapper022.cpp"
#include "Mapper023.cpp"
#include "Mapper024.cpp"
#include "Mapper025.cpp"
#include "Mapper026.cpp"
#include "Mapper032.cpp"
#include "Mapper033.cpp"
#include "Mapper034.cpp"
#include "Mapper040.cpp"
#include "Mapper041.cpp"
#include "Mapper042.cpp"
#include "Mapper043.cpp"
#include "Mapper048.cpp"
#include "Mapper064.cpp"
#include "Mapper065.cpp"
#include "Mapper066.cpp"
#include "Mapper067.cpp"
#include "Mapper068.cpp"
#include "Mapper069.cpp"
#include "Mapper070.cpp"
#include "Mapper071.cpp"
#include "Mapper072.cpp"
#include "Mapper073.cpp"
#include "Mapper075.cpp"
#include "Mapper076.cpp"
#include "Mapper077.cpp"
#include "Mapper078.cpp"
#include "Mapper079.cpp"
#include "Mapper080.cpp"
#include "Mapper082.cpp"
#include "Mapper083.cpp"
#include "Mapper085.cpp"
#include "Mapper086.cpp"
#include "Mapper087.cpp"
#include "Mapper088.cpp"
#include "Mapper089.cpp"
#include "Mapper090.cpp"
#include "Mapper091.cpp"
#include "Mapper092.cpp"
#include "Mapper093.cpp"
#include "Mapper094.cpp"
#include "Mapper095.cpp"
#include "Mapper096.cpp"
#include "Mapper097.cpp"
#include "Mapper100.cpp"
#include "Mapper101.cpp"
#include "Mapper107.cpp"
#include "Mapper113.cpp"
#include "Mapper118.cpp"
#include "Mapper119.cpp"
#include "Mapper122.cpp"
#include "Mapper180.cpp"
#include "Mapper181.cpp"
#include "Mapper185.cpp"
#include "Mapper187.cpp"
#include "Mapper188.cpp"
#include "Mapper189.cpp"
#include "Mapper243.cpp"
#include "MapperNSF.cpp"
#include "Mapper044.cpp"
#include "Mapper045.cpp"
#include "Mapper046.cpp"
#include "Mapper047.cpp"
#include "Mapper050.cpp"
#include "Mapper051.cpp"
#include "Mapper057.cpp"
#include "Mapper058.cpp"
#include "Mapper060.cpp"
#include "Mapper062.cpp"
#include "Mapper074.cpp"
#include "Mapper105.cpp"
#include "Mapper108.cpp"
#include "Mapper109.cpp"
#include "Mapper110.cpp"
#include "Mapper112.cpp"
#include "Mapper114.cpp"
#include "Mapper115.cpp"
#include "Mapper116.cpp"
#include "Mapper117.cpp"
#include "Mapper133.cpp"
#include "Mapper134.cpp"
#include "Mapper135.cpp"
#include "Mapper140.cpp"
#include "Mapper142.cpp"
#include "Mapper160.cpp"
#include "Mapper182.cpp"
#include "Mapper183.cpp"
#include "Mapper190.cpp"
#include "Mapper191.cpp"
#include "Mapper193.cpp"
#include "Mapper194.cpp"
#include "Mapper198.cpp"
#include "Mapper222.cpp"
#include "Mapper225.cpp"
#include "Mapper226.cpp"
#include "Mapper227.cpp"
#include "Mapper228.cpp"
#include "Mapper229.cpp"
#include "Mapper230.cpp"
#include "Mapper231.cpp"
#include "Mapper232.cpp"
#include "Mapper233.cpp"
#include "Mapper234.cpp"
#include "Mapper235.cpp"
#include "Mapper236.cpp"
#include "Mapper240.cpp"
#include "Mapper241.cpp"
#include "Mapper242.cpp"
#include "Mapper244.cpp"
#include "Mapper245.cpp"
#include "Mapper246.cpp"
#include "Mapper248.cpp"
#include "Mapper249.cpp"
#include "Mapper251.cpp"
#include "Mapper252.cpp"
#include "Mapper254.cpp"
#include "Mapper255.cpp"
#include "Mapper099.cpp"
#include "Mapper151.cpp"
#include "Mapper012.cpp"
#include "Mapper200.cpp"
#include "Mapper201.cpp"
#include "Mapper202.cpp"
#include "Mapper061.cpp"
#include "Mapper027.cpp"
#include "Mapper164.cpp"
#include "Mapper165.cpp"
#include "Mapper167.cpp"
//////////////////////////////////////////////////////////////////////////
// Mapper Factory
//////////////////////////////////////////////////////////////////////////
Mapper* CreateMapper( NES* parent, INT no )
{
switch( no ) {
case 0:
return new Mapper000(parent);
case 1:
return new Mapper001(parent);
case 2:
return new Mapper002(parent);
case 3:
return new Mapper003(parent);
case 4:
return new Mapper004(parent);
case 5:
return new Mapper005(parent);
case 6:
return new Mapper006(parent);
case 7:
return new Mapper007(parent);
case 8:
return new Mapper008(parent);
case 9:
return new Mapper009(parent);
case 10:
return new Mapper010(parent);
case 11:
return new Mapper011(parent);
case 13:
return new Mapper013(parent);
case 15:
return new Mapper015(parent);
case 16:
return new Mapper016(parent);
case 17:
return new Mapper017(parent);
case 18:
return new Mapper018(parent);
case 19:
return new Mapper019(parent);
case 20:
return new Mapper020(parent);
case 21:
return new Mapper021(parent);
case 22:
return new Mapper022(parent);
case 23:
return new Mapper023(parent);
case 24:
return new Mapper024(parent);
case 25:
return new Mapper025(parent);
case 26:
return new Mapper026(parent);
case 32:
return new Mapper032(parent);
case 33:
return new Mapper033(parent);
case 34:
return new Mapper034(parent);
case 40:
return new Mapper040(parent);
case 41:
return new Mapper041(parent);
case 42:
return new Mapper042(parent);
case 43:
return new Mapper043(parent);
case 48:
return new Mapper048(parent);
case 64:
return new Mapper064(parent);
case 65:
return new Mapper065(parent);
case 66:
return new Mapper066(parent);
case 67:
return new Mapper067(parent);
case 68:
return new Mapper068(parent);
case 69:
return new Mapper069(parent);
case 70:
return new Mapper070(parent);
case 71:
return new Mapper071(parent);
case 72:
return new Mapper072(parent);
case 73:
return new Mapper073(parent);
case 75:
return new Mapper075(parent);
case 76:
return new Mapper076(parent);
case 77:
return new Mapper077(parent);
case 78:
return new Mapper078(parent);
case 79:
return new Mapper079(parent);
case 80:
return new Mapper080(parent);
case 82:
return new Mapper082(parent);
case 83:
return new Mapper083(parent);
case 85:
return new Mapper085(parent);
case 86:
return new Mapper086(parent);
case 87:
return new Mapper087(parent);
case 88:
return new Mapper088(parent);
case 89:
return new Mapper089(parent);
case 90:
return new Mapper090(parent);
case 91:
return new Mapper091(parent);
case 92:
return new Mapper092(parent);
case 93:
return new Mapper093(parent);
case 94:
return new Mapper094(parent);
case 95:
return new Mapper095(parent);
case 96:
return new Mapper096(parent);
case 97:
return new Mapper097(parent);
case 100:
return new Mapper100(parent);
case 101:
return new Mapper101(parent);
case 107:
return new Mapper107(parent);
case 113:
return new Mapper113(parent);
case 118:
return new Mapper118(parent);
case 119:
return new Mapper119(parent);
case 122:
case 184:
return new Mapper122(parent);
case 180:
return new Mapper180(parent);
case 181:
return new Mapper181(parent);
case 185:
return new Mapper185(parent);
case 187:
return new Mapper187(parent);
case 188:
return new Mapper188(parent);
case 189:
return new Mapper189(parent);
case 243:
return new Mapper243(parent);
case 0x100:
return new MapperNSF(parent);
case 44:
return new Mapper044(parent);
case 45:
return new Mapper045(parent);
case 46:
return new Mapper046(parent);
case 47:
return new Mapper047(parent);
case 50:
return new Mapper050(parent);
case 51:
return new Mapper051(parent);
case 57:
return new Mapper057(parent);
case 58:
return new Mapper058(parent);
case 60:
return new Mapper060(parent);
case 62:
return new Mapper062(parent);
case 74:
return new Mapper074(parent);
case 105:
return new Mapper105(parent);
case 108:
return new Mapper108(parent);
case 109:
return new Mapper109(parent);
case 110:
return new Mapper110(parent);
case 112:
return new Mapper112(parent);
case 114:
return new Mapper114(parent);
case 115:
return new Mapper115(parent);
case 116:
return new Mapper116(parent);
case 117:
return new Mapper117(parent);
case 133:
return new Mapper133(parent);
case 134:
return new Mapper134(parent);
case 135:
return new Mapper135(parent);
case 140:
return new Mapper140(parent);
case 142:
return new Mapper142(parent);
case 160:
return new Mapper160(parent);
case 182:
return new Mapper182(parent);
case 183:
return new Mapper183(parent);
case 190:
return new Mapper190(parent);
case 191:
return new Mapper191(parent);
case 193:
return new Mapper193(parent);
case 194:
return new Mapper194(parent);
case 198:
return new Mapper198(parent);
case 222:
return new Mapper222(parent);
case 225:
return new Mapper225(parent);
case 226:
return new Mapper226(parent);
case 227:
return new Mapper227(parent);
case 228:
return new Mapper228(parent);
case 229:
return new Mapper229(parent);
case 230:
return new Mapper230(parent);
case 231:
return new Mapper231(parent);
case 232:
return new Mapper232(parent);
case 233:
return new Mapper233(parent);
case 234:
return new Mapper234(parent);
case 235:
return new Mapper235(parent);
case 236:
return new Mapper236(parent);
case 240:
return new Mapper240(parent);
case 241:
return new Mapper241(parent);
case 242:
return new Mapper242(parent);
case 244:
return new Mapper244(parent);
case 245:
return new Mapper245(parent);
case 246:
return new Mapper246(parent);
case 248:
return new Mapper248(parent);
case 249:
return new Mapper249(parent);
case 251:
return new Mapper251(parent);
case 252:
return new Mapper252(parent);
case 254:
return new Mapper254(parent);
case 255:
return new Mapper255(parent);
case 99:
return new Mapper099(parent);
case 151:
return new Mapper151(parent);
case 12:
return new Mapper012(parent);
case 200:
return new Mapper200(parent);
case 201:
return new Mapper201(parent);
case 202:
return new Mapper202(parent);
case 61:
return new Mapper061(parent);
case 27:
return new Mapper027(parent);
case 164:
return new Mapper164(parent);
case 165:
return new Mapper165(parent);
case 167:
return new Mapper167(parent);
default:
break;
}
return NULL;
}