Putting mapper creation in the core file2
This commit is contained in:
parent
28da3085f2
commit
7b41851e30
|
@ -2,8 +2,8 @@
|
|||
// Nes_Emu 0.7.0. http://www.slack.net/~ant/
|
||||
|
||||
#include "Nes_Core.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <cstdio>
|
||||
#include <cstring>
|
||||
#include "Nes_Mapper.h"
|
||||
#include "Nes_State.h"
|
||||
|
||||
|
@ -20,6 +20,66 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
|||
|
||||
#include "blargg_source.h"
|
||||
|
||||
/*
|
||||
New mapping distribution by Sergio Martin (eien86)
|
||||
https://github.com/SergioMartin86/jaffarPlus
|
||||
*/
|
||||
#include "mappers/mapper000.hpp"
|
||||
#include "mappers/mapper001.hpp"
|
||||
#include "mappers/mapper002.hpp"
|
||||
#include "mappers/mapper003.hpp"
|
||||
#include "mappers/mapper004.hpp"
|
||||
#include "mappers/mapper005.hpp"
|
||||
#include "mappers/mapper007.hpp"
|
||||
#include "mappers/mapper009.hpp"
|
||||
#include "mappers/mapper010.hpp"
|
||||
#include "mappers/mapper011.hpp"
|
||||
#include "mappers/mapper015.hpp"
|
||||
#include "mappers/mapper019.hpp"
|
||||
#include "mappers/mapper021.hpp"
|
||||
#include "mappers/mapper022.hpp"
|
||||
#include "mappers/mapper023.hpp"
|
||||
#include "mappers/mapper024.hpp"
|
||||
#include "mappers/mapper025.hpp"
|
||||
#include "mappers/mapper026.hpp"
|
||||
#include "mappers/mapper030.hpp"
|
||||
#include "mappers/mapper032.hpp"
|
||||
#include "mappers/mapper033.hpp"
|
||||
#include "mappers/mapper034.hpp"
|
||||
#include "mappers/mapper060.hpp"
|
||||
#include "mappers/mapper066.hpp"
|
||||
#include "mappers/mapper069.hpp"
|
||||
#include "mappers/mapper070.hpp"
|
||||
#include "mappers/mapper071.hpp"
|
||||
#include "mappers/mapper073.hpp"
|
||||
#include "mappers/mapper075.hpp"
|
||||
#include "mappers/mapper078.hpp"
|
||||
#include "mappers/mapper079.hpp"
|
||||
#include "mappers/mapper085.hpp"
|
||||
#include "mappers/mapper086.hpp"
|
||||
#include "mappers/mapper087.hpp"
|
||||
#include "mappers/mapper088.hpp"
|
||||
#include "mappers/mapper089.hpp"
|
||||
#include "mappers/mapper093.hpp"
|
||||
#include "mappers/mapper094.hpp"
|
||||
#include "mappers/mapper097.hpp"
|
||||
#include "mappers/mapper113.hpp"
|
||||
#include "mappers/mapper140.hpp"
|
||||
#include "mappers/mapper152.hpp"
|
||||
#include "mappers/mapper154.hpp"
|
||||
#include "mappers/mapper156.hpp"
|
||||
#include "mappers/mapper180.hpp"
|
||||
#include "mappers/mapper184.hpp"
|
||||
#include "mappers/mapper190.hpp"
|
||||
#include "mappers/mapper193.hpp"
|
||||
#include "mappers/mapper206.hpp"
|
||||
#include "mappers/mapper207.hpp"
|
||||
#include "mappers/mapper232.hpp"
|
||||
#include "mappers/mapper240.hpp"
|
||||
#include "mappers/mapper241.hpp"
|
||||
#include "mappers/mapper244.hpp"
|
||||
#include "mappers/mapper246.hpp"
|
||||
|
||||
extern const char unsupported_mapper [] = "Unsupported mapper";
|
||||
|
||||
bool const wait_states_enabled = true;
|
||||
|
@ -71,9 +131,69 @@ const char * Nes_Core::open( Nes_Cart const* new_cart )
|
|||
// Getting cartdrige mapper code
|
||||
auto mapperCode = new_cart->mapper_code();
|
||||
|
||||
mapper = Nes_Mapper::create(mapperCode);
|
||||
if ( !mapper )
|
||||
return unsupported_mapper;
|
||||
// Now checking if the detected mapper code is supported
|
||||
if (mapperCode == 0) mapper = new Mapper000();
|
||||
if (mapperCode == 1) mapper = new Mapper001();
|
||||
if (mapperCode == 2) mapper = new Mapper002();
|
||||
if (mapperCode == 3) mapper = new Mapper003();
|
||||
if (mapperCode == 4) mapper = new Mapper004();
|
||||
if (mapperCode == 5) mapper = new Mapper005();
|
||||
if (mapperCode == 7) mapper = new Mapper007();
|
||||
if (mapperCode == 9) mapper = new Mapper009();
|
||||
if (mapperCode == 10) mapper = new Mapper010();
|
||||
if (mapperCode == 11) mapper = new Mapper011();
|
||||
if (mapperCode == 15) mapper = new Mapper015();
|
||||
if (mapperCode == 19) mapper = new Mapper019();
|
||||
if (mapperCode == 21) mapper = new Mapper021();
|
||||
if (mapperCode == 22) mapper = new Mapper022();
|
||||
if (mapperCode == 23) mapper = new Mapper023();
|
||||
if (mapperCode == 24) mapper = new Mapper024();
|
||||
if (mapperCode == 25) mapper = new Mapper025();
|
||||
if (mapperCode == 26) mapper = new Mapper026();
|
||||
if (mapperCode == 30) mapper = new Mapper030();
|
||||
if (mapperCode == 32) mapper = new Mapper032();
|
||||
if (mapperCode == 33) mapper = new Mapper033();
|
||||
if (mapperCode == 34) mapper = new Mapper034();
|
||||
if (mapperCode == 60) mapper = new Mapper060();
|
||||
if (mapperCode == 66) mapper = new Mapper066();
|
||||
if (mapperCode == 69) mapper = new Mapper069();
|
||||
if (mapperCode == 70) mapper = new Mapper070();
|
||||
if (mapperCode == 71) mapper = new Mapper071();
|
||||
if (mapperCode == 73) mapper = new Mapper073();
|
||||
if (mapperCode == 75) mapper = new Mapper075();
|
||||
if (mapperCode == 78) mapper = new Mapper078();
|
||||
if (mapperCode == 79) mapper = new Mapper079();
|
||||
if (mapperCode == 85) mapper = new Mapper085();
|
||||
if (mapperCode == 86) mapper = new Mapper086();
|
||||
if (mapperCode == 87) mapper = new Mapper087();
|
||||
if (mapperCode == 88) mapper = new Mapper088();
|
||||
if (mapperCode == 89) mapper = new Mapper089();
|
||||
if (mapperCode == 93) mapper = new Mapper093();
|
||||
if (mapperCode == 94) mapper = new Mapper094();
|
||||
if (mapperCode == 97) mapper = new Mapper097();
|
||||
if (mapperCode == 113) mapper = new Mapper113();
|
||||
if (mapperCode == 140) mapper = new Mapper140();
|
||||
if (mapperCode == 152) mapper = new Mapper152();
|
||||
if (mapperCode == 154) mapper = new Mapper154();
|
||||
if (mapperCode == 156) mapper = new Mapper156();
|
||||
if (mapperCode == 180) mapper = new Mapper180();
|
||||
if (mapperCode == 184) mapper = new Mapper184();
|
||||
if (mapperCode == 190) mapper = new Mapper190();
|
||||
if (mapperCode == 193) mapper = new Mapper193();
|
||||
if (mapperCode == 206) mapper = new Mapper206();
|
||||
if (mapperCode == 207) mapper = new Mapper207();
|
||||
if (mapperCode == 232) mapper = new Mapper232();
|
||||
if (mapperCode == 240) mapper = new Mapper240();
|
||||
if (mapperCode == 241) mapper = new Mapper241();
|
||||
if (mapperCode == 244) mapper = new Mapper244();
|
||||
if (mapperCode == 246) mapper = new Mapper246();
|
||||
|
||||
// If no mapper was found, return null (error) now
|
||||
if (mapper == NULL)
|
||||
{
|
||||
fprintf(stderr, "Could not find mapper for code: %u\n", mapperCode);
|
||||
return unsupported_mapper;
|
||||
}
|
||||
|
||||
// Assigning backwards pointers to cartdrige and emulator now
|
||||
mapper->cart_ = new_cart;
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
// Nes_Emu 0.7.0. http://www.slack.net/~ant/
|
||||
|
||||
#include "Nes_Mapper.h"
|
||||
|
||||
#include <cstdio>
|
||||
#include <string.h>
|
||||
#include "Nes_Core.h"
|
||||
|
||||
|
@ -20,66 +18,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
|||
|
||||
#include "blargg_source.h"
|
||||
|
||||
/*
|
||||
New mapping distribution by Sergio Martin (eien86)
|
||||
https://github.com/SergioMartin86/jaffarPlus
|
||||
*/
|
||||
#include "mappers/mapper000.hpp"
|
||||
#include "mappers/mapper001.hpp"
|
||||
#include "mappers/mapper002.hpp"
|
||||
#include "mappers/mapper003.hpp"
|
||||
#include "mappers/mapper004.hpp"
|
||||
#include "mappers/mapper005.hpp"
|
||||
#include "mappers/mapper007.hpp"
|
||||
#include "mappers/mapper009.hpp"
|
||||
#include "mappers/mapper010.hpp"
|
||||
#include "mappers/mapper011.hpp"
|
||||
#include "mappers/mapper015.hpp"
|
||||
#include "mappers/mapper019.hpp"
|
||||
#include "mappers/mapper021.hpp"
|
||||
#include "mappers/mapper022.hpp"
|
||||
#include "mappers/mapper023.hpp"
|
||||
#include "mappers/mapper024.hpp"
|
||||
#include "mappers/mapper025.hpp"
|
||||
#include "mappers/mapper026.hpp"
|
||||
#include "mappers/mapper030.hpp"
|
||||
#include "mappers/mapper032.hpp"
|
||||
#include "mappers/mapper033.hpp"
|
||||
#include "mappers/mapper034.hpp"
|
||||
#include "mappers/mapper060.hpp"
|
||||
#include "mappers/mapper066.hpp"
|
||||
#include "mappers/mapper069.hpp"
|
||||
#include "mappers/mapper070.hpp"
|
||||
#include "mappers/mapper071.hpp"
|
||||
#include "mappers/mapper073.hpp"
|
||||
#include "mappers/mapper075.hpp"
|
||||
#include "mappers/mapper078.hpp"
|
||||
#include "mappers/mapper079.hpp"
|
||||
#include "mappers/mapper085.hpp"
|
||||
#include "mappers/mapper086.hpp"
|
||||
#include "mappers/mapper087.hpp"
|
||||
#include "mappers/mapper088.hpp"
|
||||
#include "mappers/mapper089.hpp"
|
||||
#include "mappers/mapper093.hpp"
|
||||
#include "mappers/mapper094.hpp"
|
||||
#include "mappers/mapper097.hpp"
|
||||
#include "mappers/mapper113.hpp"
|
||||
#include "mappers/mapper140.hpp"
|
||||
#include "mappers/mapper152.hpp"
|
||||
#include "mappers/mapper154.hpp"
|
||||
#include "mappers/mapper156.hpp"
|
||||
#include "mappers/mapper180.hpp"
|
||||
#include "mappers/mapper184.hpp"
|
||||
#include "mappers/mapper190.hpp"
|
||||
#include "mappers/mapper193.hpp"
|
||||
#include "mappers/mapper206.hpp"
|
||||
#include "mappers/mapper207.hpp"
|
||||
#include "mappers/mapper232.hpp"
|
||||
#include "mappers/mapper240.hpp"
|
||||
#include "mappers/mapper241.hpp"
|
||||
#include "mappers/mapper244.hpp"
|
||||
#include "mappers/mapper246.hpp"
|
||||
|
||||
Nes_Mapper::Nes_Mapper()
|
||||
{
|
||||
emu_ = NULL;
|
||||
|
@ -214,75 +152,3 @@ void Nes_Mapper::mirror_manual( int page0, int page1, int page2, int page3 )
|
|||
}
|
||||
|
||||
|
||||
Nes_Mapper* Nes_Mapper::create(const int mapperCode)
|
||||
{
|
||||
// Storage for the mapper, NULL by default
|
||||
Nes_Mapper* mapper = NULL;
|
||||
|
||||
// Now checking if the detected mapper code is supported
|
||||
if (mapperCode == 0) mapper = new Mapper000();
|
||||
if (mapperCode == 1) mapper = new Mapper001();
|
||||
if (mapperCode == 2) mapper = new Mapper002();
|
||||
if (mapperCode == 3) mapper = new Mapper003();
|
||||
if (mapperCode == 4) mapper = new Mapper004();
|
||||
if (mapperCode == 5) mapper = new Mapper005();
|
||||
if (mapperCode == 7) mapper = new Mapper007();
|
||||
if (mapperCode == 9) mapper = new Mapper009();
|
||||
if (mapperCode == 10) mapper = new Mapper010();
|
||||
if (mapperCode == 11) mapper = new Mapper011();
|
||||
if (mapperCode == 15) mapper = new Mapper015();
|
||||
if (mapperCode == 19) mapper = new Mapper019();
|
||||
if (mapperCode == 21) mapper = new Mapper021();
|
||||
if (mapperCode == 22) mapper = new Mapper022();
|
||||
if (mapperCode == 23) mapper = new Mapper023();
|
||||
if (mapperCode == 24) mapper = new Mapper024();
|
||||
if (mapperCode == 25) mapper = new Mapper025();
|
||||
if (mapperCode == 26) mapper = new Mapper026();
|
||||
if (mapperCode == 30) mapper = new Mapper030();
|
||||
if (mapperCode == 32) mapper = new Mapper032();
|
||||
if (mapperCode == 33) mapper = new Mapper033();
|
||||
if (mapperCode == 34) mapper = new Mapper034();
|
||||
if (mapperCode == 60) mapper = new Mapper060();
|
||||
if (mapperCode == 66) mapper = new Mapper066();
|
||||
if (mapperCode == 69) mapper = new Mapper069();
|
||||
if (mapperCode == 70) mapper = new Mapper070();
|
||||
if (mapperCode == 71) mapper = new Mapper071();
|
||||
if (mapperCode == 73) mapper = new Mapper073();
|
||||
if (mapperCode == 75) mapper = new Mapper075();
|
||||
if (mapperCode == 78) mapper = new Mapper078();
|
||||
if (mapperCode == 79) mapper = new Mapper079();
|
||||
if (mapperCode == 85) mapper = new Mapper085();
|
||||
if (mapperCode == 86) mapper = new Mapper086();
|
||||
if (mapperCode == 87) mapper = new Mapper087();
|
||||
if (mapperCode == 88) mapper = new Mapper088();
|
||||
if (mapperCode == 89) mapper = new Mapper089();
|
||||
if (mapperCode == 93) mapper = new Mapper093();
|
||||
if (mapperCode == 94) mapper = new Mapper094();
|
||||
if (mapperCode == 97) mapper = new Mapper097();
|
||||
if (mapperCode == 113) mapper = new Mapper113();
|
||||
if (mapperCode == 140) mapper = new Mapper140();
|
||||
if (mapperCode == 152) mapper = new Mapper152();
|
||||
if (mapperCode == 154) mapper = new Mapper154();
|
||||
if (mapperCode == 156) mapper = new Mapper156();
|
||||
if (mapperCode == 180) mapper = new Mapper180();
|
||||
if (mapperCode == 184) mapper = new Mapper184();
|
||||
if (mapperCode == 190) mapper = new Mapper190();
|
||||
if (mapperCode == 193) mapper = new Mapper193();
|
||||
if (mapperCode == 206) mapper = new Mapper206();
|
||||
if (mapperCode == 207) mapper = new Mapper207();
|
||||
if (mapperCode == 232) mapper = new Mapper232();
|
||||
if (mapperCode == 240) mapper = new Mapper240();
|
||||
if (mapperCode == 241) mapper = new Mapper241();
|
||||
if (mapperCode == 244) mapper = new Mapper244();
|
||||
if (mapperCode == 246) mapper = new Mapper246();
|
||||
|
||||
// If no mapper was found, return null (error) now
|
||||
if (mapper == NULL)
|
||||
{
|
||||
fprintf(stderr, "Could not find mapper for code: %u\n", mapperCode);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Returning successfully created mapper
|
||||
return mapper;
|
||||
}
|
||||
|
|
|
@ -16,9 +16,6 @@ class Nes_Core;
|
|||
|
||||
class Nes_Mapper {
|
||||
public:
|
||||
// Create mapper appropriate for cartridge. Returns NULL if it uses unsupported mapper.
|
||||
static Nes_Mapper* create(const int mapperCode );
|
||||
|
||||
virtual ~Nes_Mapper();
|
||||
|
||||
// Reset mapper to power-up state.
|
||||
|
|
Loading…
Reference in New Issue