trunk/src/emu/bus/msx_cart/konami.c
| r30574 | r30575 | |
| 14 | 14 | , msx_cart_interface(mconfig, *this) |
| 15 | 15 | , m_bank_mask(0) |
| 16 | 16 | { |
| 17 | | for (int i = 0; i < 3; i++) |
| 17 | for (int i = 0; i < 4; i++) |
| 18 | 18 | { |
| 19 | 19 | m_selected_bank[i] = 0; |
| 20 | 20 | } |
| r30574 | r30575 | |
| 35 | 35 | |
| 36 | 36 | void msx_cart_konami::restore_banks() |
| 37 | 37 | { |
| 38 | | m_bank_base[0] = get_rom_base(); |
| 39 | | m_bank_base[1] = get_rom_base() + ( m_selected_bank[0] & m_bank_mask ) * 0x2000; |
| 40 | | m_bank_base[2] = get_rom_base(); |
| 41 | | m_bank_base[3] = get_rom_base() + ( m_selected_bank[0] & m_bank_mask ) * 0x2000; |
| 42 | | m_bank_base[4] = get_rom_base() + ( m_selected_bank[1] & m_bank_mask ) * 0x2000; |
| 43 | | m_bank_base[5] = get_rom_base() + ( m_selected_bank[2] & m_bank_mask ) * 0x2000; |
| 44 | | m_bank_base[6] = get_rom_base() + ( m_selected_bank[1] & m_bank_mask ) * 0x2000; |
| 45 | | m_bank_base[7] = get_rom_base() + ( m_selected_bank[2] & m_bank_mask ) * 0x2000; |
| 38 | m_bank_base[0] = get_rom_base() + ( m_selected_bank[0] & m_bank_mask ) * 0x2000; |
| 39 | m_bank_base[1] = get_rom_base() + ( m_selected_bank[1] & m_bank_mask ) * 0x2000; |
| 40 | m_bank_base[2] = get_rom_base() + ( m_selected_bank[0] & m_bank_mask ) * 0x2000; |
| 41 | m_bank_base[3] = get_rom_base() + ( m_selected_bank[1] & m_bank_mask ) * 0x2000; |
| 42 | m_bank_base[4] = get_rom_base() + ( m_selected_bank[2] & m_bank_mask ) * 0x2000; |
| 43 | m_bank_base[5] = get_rom_base() + ( m_selected_bank[3] & m_bank_mask ) * 0x2000; |
| 44 | m_bank_base[6] = get_rom_base() + ( m_selected_bank[2] & m_bank_mask ) * 0x2000; |
| 45 | m_bank_base[7] = get_rom_base() + ( m_selected_bank[3] & m_bank_mask ) * 0x2000; |
| 46 | 46 | } |
| 47 | 47 | |
| 48 | 48 | |
| 49 | 49 | void msx_cart_konami::device_reset() |
| 50 | 50 | { |
| 51 | | for (int i = 0; i < 3; i++) |
| 51 | for (int i = 0; i < 4; i++) |
| 52 | 52 | { |
| 53 | | m_selected_bank[i] = i + 1; |
| 53 | m_selected_bank[i] = i; |
| 54 | 54 | } |
| 55 | 55 | } |
| 56 | 56 | |
| r30574 | r30575 | |
| 87 | 87 | { |
| 88 | 88 | switch (offset) |
| 89 | 89 | { |
| 90 | | case 0x6000: |
| 90 | case 0x4000: |
| 91 | 91 | m_selected_bank[0] = data; |
| 92 | | m_bank_base[1] = get_rom_base() + ( m_selected_bank[0] & m_bank_mask ) * 0x2000; |
| 93 | | m_bank_base[3] = get_rom_base() + ( m_selected_bank[0] & m_bank_mask ) * 0x2000; |
| 92 | m_bank_base[0] = get_rom_base() + ( m_selected_bank[0] & m_bank_mask ) * 0x2000; |
| 93 | m_bank_base[2] = get_rom_base() + ( m_selected_bank[0] & m_bank_mask ) * 0x2000; |
| 94 | 94 | break; |
| 95 | 95 | |
| 96 | | case 0x8000: |
| 96 | case 0x6000: |
| 97 | 97 | m_selected_bank[1] = data; |
| 98 | | m_bank_base[4] = get_rom_base() + ( m_selected_bank[1] & m_bank_mask ) * 0x2000; |
| 99 | | m_bank_base[6] = get_rom_base() + ( m_selected_bank[1] & m_bank_mask ) * 0x2000; |
| 98 | m_bank_base[1] = get_rom_base() + ( m_selected_bank[1] & m_bank_mask ) * 0x2000; |
| 99 | m_bank_base[3] = get_rom_base() + ( m_selected_bank[1] & m_bank_mask ) * 0x2000; |
| 100 | 100 | break; |
| 101 | 101 | |
| 102 | | case 0xa000: |
| 102 | case 0x8000: |
| 103 | 103 | m_selected_bank[2] = data; |
| 104 | | m_bank_base[5] = get_rom_base() + ( m_selected_bank[2] & m_bank_mask ) * 0x2000; |
| 105 | | m_bank_base[7] = get_rom_base() + ( m_selected_bank[2] & m_bank_mask ) * 0x2000; |
| 104 | m_bank_base[4] = get_rom_base() + ( m_selected_bank[2] & m_bank_mask ) * 0x2000; |
| 105 | m_bank_base[6] = get_rom_base() + ( m_selected_bank[2] & m_bank_mask ) * 0x2000; |
| 106 | 106 | break; |
| 107 | |
| 108 | case 0xa000: |
| 109 | m_selected_bank[3] = data; |
| 110 | m_bank_base[5] = get_rom_base() + ( m_selected_bank[3] & m_bank_mask ) * 0x2000; |
| 111 | m_bank_base[7] = get_rom_base() + ( m_selected_bank[3] & m_bank_mask ) * 0x2000; |
| 112 | break; |
| 107 | 113 | } |
| 108 | 114 | } |
| 109 | 115 | |
trunk/hash/msx1_cart.xml
| r30574 | r30575 | |
| 2830 | 2830 | </part> |
| 2831 | 2831 | </software> |
| 2832 | 2832 | |
| 2833 | | <software name="breakinj" supported="no"> |
| 2833 | <software name="breakinj"> |
| 2834 | 2834 | <description>Break In (Jpn)</description> |
| 2835 | 2835 | <year>1987</year> |
| 2836 | 2836 | <publisher>Jaleco</publisher> |
| r30574 | r30575 | |
| 5303 | 5303 | </part> |
| 5304 | 5304 | </software> |
| 5305 | 5305 | |
| 5306 | | <software name="flideck" supported="no"> |
| 5306 | <software name="flideck"> |
| 5307 | 5307 | <description>Flight Deck (Jpn)</description> |
| 5308 | 5308 | <year>1986</year> |
| 5309 | 5309 | <publisher>Pony Canyon</publisher> |
| r30574 | r30575 | |
| 5316 | 5316 | </part> |
| 5317 | 5317 | </software> |
| 5318 | 5318 | |
| 5319 | | <software name="flidecka" cloneof="flideck" supported="no"> |
| 5319 | <software name="flidecka" cloneof="flideck"> |
| 5320 | 5320 | <description>Flight Deck (Jpn, Alt)</description> |
| 5321 | 5321 | <year>1986</year> |
| 5322 | 5322 | <publisher>Pony Canyon</publisher> |
| r30574 | r30575 | |
| 8426 | 8426 | </part> |
| 8427 | 8427 | </software> |
| 8428 | 8428 | |
| 8429 | | <software name="gabalin" supported="no"> |
| 8429 | <software name="gabalin"> |
| 8430 | 8430 | <description>Mashou no Yakata - Gabalin (Jpn)</description> |
| 8431 | 8431 | <year>1987</year> |
| 8432 | 8432 | <publisher>Pony Canyon</publisher> |
| r30574 | r30575 | |
| 8440 | 8440 | </part> |
| 8441 | 8441 | </software> |
| 8442 | 8442 | |
| 8443 | | <software name="gabalina" cloneof="gabalin" supported="no"> |
| 8443 | <software name="gabalina" cloneof="gabalin"> |
| 8444 | 8444 | <description>Mashou no Yakata - Gabalin (Jpn, Alt)</description> |
| 8445 | 8445 | <year>1987</year> |
| 8446 | 8446 | <publisher>Pony Canyon</publisher> |
| r30574 | r30575 | |
| 11285 | 11285 | </part> |
| 11286 | 11286 | </software> |
| 11287 | 11287 | |
| 11288 | | <software name="skootera" cloneof="skooter" supported="no"> |
| 11288 | <software name="skootera" cloneof="skooter"> |
| 11289 | 11289 | <description>Skooter (Jpn, Alt)</description> |
| 11290 | 11290 | <year>1988</year> |
| 11291 | 11291 | <publisher>Pony Canyon</publisher> |
| r30574 | r30575 | |
| 13175 | 13175 | </part> |
| 13176 | 13176 | </software> |
| 13177 | 13177 | |
| 13178 | | <software name="xanaduk" cloneof="xanadu" supported="no"> |
| 13178 | <software name="xanaduk" cloneof="xanadu" supported="partial"> |
| 13179 | 13179 | <description>Xanadu - Dragon Slayer II (Kor)</description> |
| 13180 | 13180 | <year>1987</year> |
| 13181 | 13181 | <publisher>Zemina</publisher> |
| r30574 | r30575 | |
| 13721 | 13721 | </part> |
| 13722 | 13722 | </software> |
| 13723 | 13723 | |
| 13724 | | <software name="fmpac" supported="no"><!-- Actually untested... --> |
| 13724 | <software name="fmpac"><!-- Actually untested... --> |
| 13725 | 13725 | <description>FM Pana Amusement Cartridge</description> |
| 13726 | 13726 | <year>19??</year> |
| 13727 | 13727 | <publisher>Panasoft</publisher> |
| r30574 | r30575 | |
| 13885 | 13885 | </part> |
| 13886 | 13886 | </software> |
| 13887 | 13887 | |
| 13888 | | <software name="gmaster2" supported="no"> |
| 13888 | <software name="gmaster2"> |
| 13889 | 13889 | <description>Konami no Shin 10-bai Cartridge (Jpn)</description> |
| 13890 | 13890 | <year>1987</year> |
| 13891 | 13891 | <publisher>Konami</publisher> |
| r30574 | r30575 | |
| 14525 | 14525 | <year>1985</year> |
| 14526 | 14526 | <publisher>Toshiba</publisher> |
| 14527 | 14527 | <part name="cart" interface="msx_cart"> |
| 14528 | <feature name="slot" value="msx_audio" /> |
| 14528 | 14529 | <feature name="mapper" value="NOMAPPER" /> |
| 14529 | 14530 | <dataarea name="rom" size="32768"> |
| 14530 | 14531 | <rom name="msx audio (japan) (hx-mu900) (program).rom" size="32768" crc="dc405f8c" sha1="0d246b0e3edc63803fcce861ea07eadf29dc488c" offset="0" /> |