trunk/hash/nes.xml
| r22896 | r22897 | |
| 63140 | 63140 | </part> |
| 63141 | 63141 | </software> |
| 63142 | 63142 | |
| 63143 | <software name="drac2fds"> |
| 63144 | <description>Dracula II - Noroi no Fuuin (Asia, FDS conversion)</description> |
| 63145 | <year>19??</year> |
| 63146 | <publisher><pirate></publisher> |
| 63147 | <part name="cart" interface="nes_cart"> |
| 63148 | <feature name="slot" value="ks7031" /> |
| 63149 | <feature name="pcb" value="UNL-KS7031" /> |
| 63150 | <feature name="mirroring" value="vertical" /> |
| 63151 | <dataarea name="prg" size="131072"> |
| 63152 | <rom name="dracula ii - noroi no fuuin (fds conversion)[!].prg" size="131072" crc="8b7c2f62" sha1="759801bc77163613a21840591b69a336a8e0a06a" offset="00000" status="baddump" /> |
| 63153 | </dataarea> |
| 63154 | <!-- 8k VRAM on cartridge --> |
| 63155 | <dataarea name="vram" size="8192"> |
| 63156 | </dataarea> |
| 63157 | </part> |
| 63158 | </software> |
| 63159 | |
| 63143 | 63160 | <software name="falsnfds"> |
| 63144 | 63161 | <description>Falsion (Asia, FDS conversion)</description> |
| 63145 | 63162 | <year>19??</year> |
trunk/src/mess/machine/nes_pcb.c
| r22896 | r22897 | |
| 161 | 161 | { "ks7022", KAISER_KS7022 }, // mapper 175 |
| 162 | 162 | { "ks7017", KAISER_KS7017 }, |
| 163 | 163 | { "ks7032", KAISER_KS7032 }, // mapper 142 |
| 164 | | { "ks7012", STD_NROM /*KAISER_KS7012*/ }, // used in Zanac (FDS Conversion }, - UNSUPPORTED |
| 165 | | { "ks7013b", STD_NROM /*KAISER_KS7013B*/ }, // used in Highway Star (FDS Conversion }, - UNSUPPORTED |
| 164 | { "ks7031", KAISER_KS7031 }, // used in Dracula II (FDS Conversion) |
| 165 | { "ks7012", KAISER_KS7012 }, // used in Zanac (FDS Conversion) |
| 166 | { "ks7013b", KAISER_KS7013B }, // used in Highway Star (FDS Conversion) |
| 166 | 167 | { "gs2015", RCM_GS2015 }, |
| 167 | 168 | { "gs2004", RCM_GS2004 }, |
| 168 | 169 | { "gs2013", RCM_GS2013 }, |
| r22896 | r22897 | |
| 284 | 285 | { "tek90", JYCOMPANY_A }, |
| 285 | 286 | { "sa9602b", SACHEN_SA9602B }, |
| 286 | 287 | { "unl_shero", SACHEN_SHERO }, |
| 287 | | { "ks7012", KAISER_KS7012 }, |
| 288 | | { "ks7013b", KAISER_KS7013B }, |
| 289 | 288 | { "mmalee2", UNL_MMALEE }, |
| 290 | 289 | { "unl_2708", UNL_2708 }, |
| 291 | 290 | { "unl_lh10", UNL_LH10 }, |
trunk/src/mess/machine/nes_slot.h
| r22896 | r22897 | |
| 107 | 107 | OPENCORP_DAOU306, HES_BOARD, SVISION16_BOARD, RUMBLESTATION_BOARD, JYCOMPANY_A, JYCOMPANY_B, JYCOMPANY_C, |
| 108 | 108 | MAGICSERIES_MD, KASING_BOARD, FUTUREMEDIA_BOARD, FUKUTAKE_BOARD, SOMARI_SL12, |
| 109 | 109 | HENGG_SRICH, HENGG_XHZS, HENGG_SHJY3, SUBOR_TYPE0, SUBOR_TYPE1, |
| 110 | | KAISER_KS7058, KAISER_KS7032, KAISER_KS7022, KAISER_KS7017, KAISER_KS7012, KAISER_KS7013B, KAISER_KS202, |
| 110 | KAISER_KS7058, KAISER_KS7032, KAISER_KS7022, KAISER_KS7017, |
| 111 | KAISER_KS7012, KAISER_KS7013B, KAISER_KS202, KAISER_KS7031, |
| 111 | 112 | CNE_DECATHLON, CNE_FSB, CNE_SHLZ, CONY_BOARD, YOKO_BOARD, |
| 112 | 113 | RCM_GS2015, RCM_GS2004, RCM_GS2013, RCM_TF9IN1, RCM_3DBLOCK, |
| 113 | 114 | WAIXING_TYPE_A, WAIXING_TYPE_A1, WAIXING_TYPE_B, WAIXING_TYPE_C, WAIXING_TYPE_D, |
trunk/src/mess/machine/nes_kaiser.c
| r22896 | r22897 | |
| 23 | 23 | TODO: |
| 24 | 24 | - FCEUmm lists more Kaiser PCBs: |
| 25 | 25 | * KS7030 (for Yume Koujou Doki Doki Panic by Kaiser?) |
| 26 | | * KS7031 (for Dracula II?) |
| 27 | 26 | * KS7037 |
| 28 | 27 | but there seem to be no available dumps... |
| 29 | 28 | |
| r22896 | r22897 | |
| 56 | 55 | const device_type NES_KS7017 = &device_creator<nes_ks7017_device>; |
| 57 | 56 | const device_type NES_KS7012 = &device_creator<nes_ks7012_device>; |
| 58 | 57 | const device_type NES_KS7013B = &device_creator<nes_ks7013b_device>; |
| 58 | const device_type NES_KS7031 = &device_creator<nes_ks7031_device>; |
| 59 | 59 | |
| 60 | 60 | |
| 61 | 61 | nes_ks7058_device::nes_ks7058_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| r22896 | r22897 | |
| 98 | 98 | { |
| 99 | 99 | } |
| 100 | 100 | |
| 101 | nes_ks7031_device::nes_ks7031_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 102 | : nes_nrom_device(mconfig, NES_KS7031, "NES Cart Kaiser KS-7031 PCB", tag, owner, clock, "nes_ks7031", __FILE__) |
| 103 | { |
| 104 | } |
| 101 | 105 | |
| 102 | 106 | |
| 103 | 107 | |
| 108 | |
| 104 | 109 | void nes_ks7058_device::device_start() |
| 105 | 110 | { |
| 106 | 111 | common_start(); |
| r22896 | r22897 | |
| 205 | 210 | chr8(0, m_chr_source); |
| 206 | 211 | } |
| 207 | 212 | |
| 213 | void nes_ks7031_device::device_start() |
| 214 | { |
| 215 | common_start(); |
| 216 | save_item(NAME(m_reg)); |
| 217 | } |
| 208 | 218 | |
| 219 | void nes_ks7031_device::pcb_reset() |
| 220 | { |
| 221 | prg32(0); // not really used... |
| 222 | chr8(0, CHRRAM); |
| 223 | |
| 224 | m_reg[0] = 0; |
| 225 | m_reg[1] = 0; |
| 226 | m_reg[2] = 0; |
| 227 | m_reg[3] = 0; |
| 228 | } |
| 209 | 229 | |
| 210 | 230 | |
| 211 | 231 | |
| 232 | |
| 233 | |
| 212 | 234 | /*------------------------------------------------- |
| 213 | 235 | mapper specific handlers |
| 214 | 236 | -------------------------------------------------*/ |
| r22896 | r22897 | |
| 503 | 525 | |
| 504 | 526 | |
| 505 | 527 | /*------------------------------------------------- |
| 506 | | |
| 528 | |
| 507 | 529 | Kaiser Board KS7013B |
| 508 | | |
| 530 | |
| 509 | 531 | Games: Highway Star FDS Conversion |
| 510 | | |
| 532 | |
| 511 | 533 | iNES: |
| 512 | | |
| 534 | |
| 513 | 535 | In MESS: Supported. |
| 514 | | |
| 536 | |
| 515 | 537 | -------------------------------------------------*/ |
| 516 | 538 | |
| 517 | 539 | WRITE8_MEMBER(nes_ks7013b_device::write_m) |
| r22896 | r22897 | |
| 525 | 547 | LOG_MMC(("ks7013b write_h, offset: %04x, data: %02x\n", offset, data)); |
| 526 | 548 | set_nt_mirroring((data & 1) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT); |
| 527 | 549 | } |
| 550 | |
| 551 | |
| 552 | /*------------------------------------------------- |
| 553 | |
| 554 | Kaiser Board KS7031 |
| 555 | |
| 556 | Games: Dracula II FDS Conversion |
| 557 | |
| 558 | This board is quite weird. It handles 2K PRG chunks |
| 559 | and the chip contains chunks in reverse order, so |
| 560 | that the first 2K are actually loaded at the top |
| 561 | of the 0x8000-0xffff region. Main bank is fixed, while |
| 562 | the 8K mapped at 0x6000-0x7fff varies with reg writes. |
| 563 | |
| 564 | TODO: understand how SRAM is handled... |
| 565 | |
| 566 | iNES: |
| 567 | |
| 568 | In MESS: Supported. |
| 569 | |
| 570 | -------------------------------------------------*/ |
| 571 | |
| 572 | READ8_MEMBER(nes_ks7031_device::read_m) |
| 573 | { |
| 574 | // LOG_MMC(("ks7031 read_m, offset: %04x\n", offset)); |
| 575 | return m_prg[(m_reg[(offset >> 11) & 3] * 0x0800) + (offset & 0x7ff)]; |
| 576 | } |
| 577 | |
| 578 | READ8_MEMBER(nes_ks7031_device::read_h) |
| 579 | { |
| 580 | // here the first 32K are accessed, but in 16x2K blocks loaded in reverse order |
| 581 | int accessed_2k = (offset >> 11) & 0x0f; |
| 582 | return m_prg[((0x0f - accessed_2k) * 0x0800) + (offset & 0x7ff)]; |
| 583 | } |
| 584 | |
| 585 | WRITE8_MEMBER(nes_ks7031_device::write_h) |
| 586 | { |
| 587 | LOG_MMC(("ks7031 write_h, offset: %04x, data: %02x\n", offset, data)); |
| 588 | m_reg[(offset >> 11) & 3] = data & 0x3f; |
| 589 | } |
trunk/src/mess/machine/nes_kaiser.h
| r22896 | r22897 | |
| 147 | 147 | }; |
| 148 | 148 | |
| 149 | 149 | |
| 150 | // ======================> nes_ks7031_device |
| 150 | 151 | |
| 152 | class nes_ks7031_device : public nes_nrom_device |
| 153 | { |
| 154 | public: |
| 155 | // construction/destruction |
| 156 | nes_ks7031_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
| 157 | |
| 158 | // device-level overrides |
| 159 | virtual void device_start(); |
| 160 | virtual DECLARE_READ8_MEMBER(read_m); |
| 161 | virtual DECLARE_READ8_MEMBER(read_h); |
| 162 | virtual DECLARE_WRITE8_MEMBER(write_h); |
| 163 | |
| 164 | virtual void pcb_reset(); |
| 165 | |
| 166 | private: |
| 167 | UINT8 m_reg[4]; |
| 168 | }; |
| 169 | |
| 170 | |
| 171 | |
| 151 | 172 | // device type definition |
| 152 | 173 | extern const device_type NES_KS7058; |
| 153 | 174 | extern const device_type NES_KS7022; |
| r22896 | r22897 | |
| 156 | 177 | extern const device_type NES_KS7017; |
| 157 | 178 | extern const device_type NES_KS7012; |
| 158 | 179 | extern const device_type NES_KS7013B; |
| 180 | extern const device_type NES_KS7031; |
| 159 | 181 | |
| 160 | 182 | #endif |