(MESS) msx.c: Some small fixes. (nw)

This commit is contained in:
Wilbert Pol 2014-05-20 21:18:46 +00:00
parent d256717e59
commit 0c1e68d4cd
4 changed files with 42 additions and 30 deletions

View File

@ -2830,7 +2830,7 @@ kept for now until finding out what those bytes affect...
</part>
</software>
<software name="breakinj" supported="no">
<software name="breakinj">
<description>Break In (Jpn)</description>
<year>1987</year>
<publisher>Jaleco</publisher>
@ -5303,7 +5303,7 @@ kept for now until finding out what those bytes affect...
</part>
</software>
<software name="flideck" supported="no">
<software name="flideck">
<description>Flight Deck (Jpn)</description>
<year>1986</year>
<publisher>Pony Canyon</publisher>
@ -5316,7 +5316,7 @@ kept for now until finding out what those bytes affect...
</part>
</software>
<software name="flidecka" cloneof="flideck" supported="no">
<software name="flidecka" cloneof="flideck">
<description>Flight Deck (Jpn, Alt)</description>
<year>1986</year>
<publisher>Pony Canyon</publisher>
@ -8426,7 +8426,7 @@ kept for now until finding out what those bytes affect...
</part>
</software>
<software name="gabalin" supported="no">
<software name="gabalin">
<description>Mashou no Yakata - Gabalin (Jpn)</description>
<year>1987</year>
<publisher>Pony Canyon</publisher>
@ -8440,7 +8440,7 @@ kept for now until finding out what those bytes affect...
</part>
</software>
<software name="gabalina" cloneof="gabalin" supported="no">
<software name="gabalina" cloneof="gabalin">
<description>Mashou no Yakata - Gabalin (Jpn, Alt)</description>
<year>1987</year>
<publisher>Pony Canyon</publisher>
@ -11285,7 +11285,7 @@ kept for now until finding out what those bytes affect...
</part>
</software>
<software name="skootera" cloneof="skooter" supported="no">
<software name="skootera" cloneof="skooter">
<description>Skooter (Jpn, Alt)</description>
<year>1988</year>
<publisher>Pony Canyon</publisher>
@ -13175,7 +13175,7 @@ kept for now until finding out what those bytes affect...
</part>
</software>
<software name="xanaduk" cloneof="xanadu" supported="no">
<software name="xanaduk" cloneof="xanadu" supported="partial">
<description>Xanadu - Dragon Slayer II (Kor)</description>
<year>1987</year>
<publisher>Zemina</publisher>
@ -13721,7 +13721,7 @@ kept for now until finding out what those bytes affect...
</part>
</software>
<software name="fmpac" supported="no"><!-- Actually untested... -->
<software name="fmpac"><!-- Actually untested... -->
<description>FM Pana Amusement Cartridge</description>
<year>19??</year>
<publisher>Panasoft</publisher>
@ -13885,7 +13885,7 @@ kept for now until finding out what those bytes affect...
</part>
</software>
<software name="gmaster2" supported="no">
<software name="gmaster2">
<description>Konami no Shin 10-bai Cartridge (Jpn)</description>
<year>1987</year>
<publisher>Konami</publisher>
@ -14525,6 +14525,7 @@ kept for now until finding out what those bytes affect...
<year>1985</year>
<publisher>Toshiba</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="msx_audio" />
<feature name="mapper" value="NOMAPPER" />
<dataarea name="rom" size="32768">
<rom name="msx audio (japan) (hx-mu900) (program).rom" size="32768" crc="dc405f8c" sha1="0d246b0e3edc63803fcce861ea07eadf29dc488c" offset="0" />

View File

@ -14,7 +14,7 @@ msx_cart_konami::msx_cart_konami(const machine_config &mconfig, const char *tag,
, msx_cart_interface(mconfig, *this)
, m_bank_mask(0)
{
for (int i = 0; i < 3; i++)
for (int i = 0; i < 4; i++)
{
m_selected_bank[i] = 0;
}
@ -35,22 +35,22 @@ void msx_cart_konami::device_start()
void msx_cart_konami::restore_banks()
{
m_bank_base[0] = get_rom_base();
m_bank_base[1] = get_rom_base() + ( m_selected_bank[0] & m_bank_mask ) * 0x2000;
m_bank_base[2] = get_rom_base();
m_bank_base[3] = get_rom_base() + ( m_selected_bank[0] & m_bank_mask ) * 0x2000;
m_bank_base[4] = get_rom_base() + ( m_selected_bank[1] & m_bank_mask ) * 0x2000;
m_bank_base[5] = get_rom_base() + ( m_selected_bank[2] & m_bank_mask ) * 0x2000;
m_bank_base[6] = get_rom_base() + ( m_selected_bank[1] & m_bank_mask ) * 0x2000;
m_bank_base[7] = get_rom_base() + ( m_selected_bank[2] & m_bank_mask ) * 0x2000;
m_bank_base[0] = get_rom_base() + ( m_selected_bank[0] & m_bank_mask ) * 0x2000;
m_bank_base[1] = get_rom_base() + ( m_selected_bank[1] & m_bank_mask ) * 0x2000;
m_bank_base[2] = get_rom_base() + ( m_selected_bank[0] & m_bank_mask ) * 0x2000;
m_bank_base[3] = get_rom_base() + ( m_selected_bank[1] & m_bank_mask ) * 0x2000;
m_bank_base[4] = get_rom_base() + ( m_selected_bank[2] & m_bank_mask ) * 0x2000;
m_bank_base[5] = get_rom_base() + ( m_selected_bank[3] & m_bank_mask ) * 0x2000;
m_bank_base[6] = get_rom_base() + ( m_selected_bank[2] & m_bank_mask ) * 0x2000;
m_bank_base[7] = get_rom_base() + ( m_selected_bank[3] & m_bank_mask ) * 0x2000;
}
void msx_cart_konami::device_reset()
{
for (int i = 0; i < 3; i++)
for (int i = 0; i < 4; i++)
{
m_selected_bank[i] = i + 1;
m_selected_bank[i] = i;
}
}
@ -87,22 +87,28 @@ WRITE8_MEMBER(msx_cart_konami::write_cart)
{
switch (offset)
{
case 0x6000:
case 0x4000:
m_selected_bank[0] = data;
m_bank_base[1] = get_rom_base() + ( m_selected_bank[0] & m_bank_mask ) * 0x2000;
m_bank_base[3] = get_rom_base() + ( m_selected_bank[0] & m_bank_mask ) * 0x2000;
m_bank_base[0] = get_rom_base() + ( m_selected_bank[0] & m_bank_mask ) * 0x2000;
m_bank_base[2] = get_rom_base() + ( m_selected_bank[0] & m_bank_mask ) * 0x2000;
break;
case 0x6000:
m_selected_bank[1] = data;
m_bank_base[1] = get_rom_base() + ( m_selected_bank[1] & m_bank_mask ) * 0x2000;
m_bank_base[3] = get_rom_base() + ( m_selected_bank[1] & m_bank_mask ) * 0x2000;
break;
case 0x8000:
m_selected_bank[1] = data;
m_bank_base[4] = get_rom_base() + ( m_selected_bank[1] & m_bank_mask ) * 0x2000;
m_bank_base[6] = get_rom_base() + ( m_selected_bank[1] & m_bank_mask ) * 0x2000;
m_selected_bank[2] = data;
m_bank_base[4] = get_rom_base() + ( m_selected_bank[2] & m_bank_mask ) * 0x2000;
m_bank_base[6] = get_rom_base() + ( m_selected_bank[2] & m_bank_mask ) * 0x2000;
break;
case 0xa000:
m_selected_bank[2] = data;
m_bank_base[5] = get_rom_base() + ( m_selected_bank[2] & m_bank_mask ) * 0x2000;
m_bank_base[7] = get_rom_base() + ( m_selected_bank[2] & m_bank_mask ) * 0x2000;
m_selected_bank[3] = data;
m_bank_base[5] = get_rom_base() + ( m_selected_bank[3] & m_bank_mask ) * 0x2000;
m_bank_base[7] = get_rom_base() + ( m_selected_bank[3] & m_bank_mask ) * 0x2000;
break;
}
}

View File

@ -33,7 +33,7 @@ public:
private:
UINT8 m_bank_mask;
UINT8 m_selected_bank[3];
UINT8 m_selected_bank[4];
UINT8 *m_bank_base[8];
};

View File

@ -35,6 +35,11 @@ void msx_cart_nomapper::initialize_cartridge()
}
}
if (size == 0x10000)
{
m_start_address = 0;
}
m_end_address = MIN(m_start_address + size, 0x10000);
}