Hi all, was looking through some of nestopia's source for mapper 156 and came across this page:
https://wiki.nesdev.com/w/index.php/INES_Mapper_156
It seems general's son does not work correctly on nestopia so upon looking at Undead Edition I see that it's close to what the nesdev page says. There is actually not much to this mapper it seems:
I tried adding a line for $C014 mirroring but it still exhibits the mirroring issue right before a match starts on general's son. FWIW I am not 100 percent sure if this is mirroring switching but anyone see anything else I can try. The line I added is:
Map( 0xC014U, NMT_SWAP_VH01 );
https://wiki.nesdev.com/w/index.php/INES_Mapper_156
It seems general's son does not work correctly on nestopia so upon looking at Undead Edition I see that it's close to what the nesdev page says. There is actually not much to this mapper it seems:
Code:
#include "NstBoard.hpp"
#include "NstBoardOpenCorp.hpp"
namespace Nes
{
namespace Core
{
namespace Boards
{
namespace OpenCorp
{
#ifdef NST_MSVC_OPTIMIZE
#pragma optimize("s", on)
#endif
void Daou306::SubReset(bool)
{
Map( 0xC000U, CHR_SWAP_1K_0 );
Map( 0xC001U, CHR_SWAP_1K_1 );
Map( 0xC002U, CHR_SWAP_1K_2 );
Map( 0xC003U, CHR_SWAP_1K_3 );
Map( 0xC008U, CHR_SWAP_1K_4 );
Map( 0xC009U, CHR_SWAP_1K_5 );
Map( 0xC00AU, CHR_SWAP_1K_6 );
Map( 0xC00BU, CHR_SWAP_1K_7 );
Map( 0xC010U, PRG_SWAP_16K_0 );
}
#ifdef NST_MSVC_OPTIMIZE
#pragma optimize("", on)
#endif
}
}
}
}
#include "NstBoardOpenCorp.hpp"
namespace Nes
{
namespace Core
{
namespace Boards
{
namespace OpenCorp
{
#ifdef NST_MSVC_OPTIMIZE
#pragma optimize("s", on)
#endif
void Daou306::SubReset(bool)
{
Map( 0xC000U, CHR_SWAP_1K_0 );
Map( 0xC001U, CHR_SWAP_1K_1 );
Map( 0xC002U, CHR_SWAP_1K_2 );
Map( 0xC003U, CHR_SWAP_1K_3 );
Map( 0xC008U, CHR_SWAP_1K_4 );
Map( 0xC009U, CHR_SWAP_1K_5 );
Map( 0xC00AU, CHR_SWAP_1K_6 );
Map( 0xC00BU, CHR_SWAP_1K_7 );
Map( 0xC010U, PRG_SWAP_16K_0 );
}
#ifdef NST_MSVC_OPTIMIZE
#pragma optimize("", on)
#endif
}
}
}
}
I tried adding a line for $C014 mirroring but it still exhibits the mirroring issue right before a match starts on general's son. FWIW I am not 100 percent sure if this is mirroring switching but anyone see anything else I can try. The line I added is:
Map( 0xC014U, NMT_SWAP_VH01 );