Previous 199869 Revisions Next

r22897 Saturday 18th May, 2013 at 15:03:35 UTC by Fabio Priuli
(MESS) nes.c: added dump for another interesting fds conversion found in the same chinese pack as the other.
emulation for this work, except for SRAM. nw.
[hash]nes.xml
[src/mess/includes]nes.h
[src/mess/machine]nes.c nes_kaiser.c nes_kaiser.h nes_pcb.c nes_slot.h

trunk/hash/nes.xml
r22896r22897
6314063140      </part>
6314163141   </software>
6314263142
63143   <software name="drac2fds">
63144      <description>Dracula II - Noroi no Fuuin (Asia, FDS conversion)</description>
63145      <year>19??</year>
63146      <publisher>&lt;pirate&gt;</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
6314363160   <software name="falsnfds">
6314463161      <description>Falsion (Asia, FDS conversion)</description>
6314563162      <year>19??</year>
trunk/src/mess/machine/nes.c
r22896r22897
156156
157157      // install additional handlers (read_h, read_ex, write_ex)
158158      if (m_cartslot->get_pcb_id() == GG_NROM || m_cartslot->get_pcb_id() == SUNSOFT_DCS
159         || m_cartslot->get_pcb_id() == AVE_MAXI15 || m_cartslot->get_pcb_id() == KAISER_KS7022 || m_cartslot->get_pcb_id() == BMC_VT5201
159         || m_cartslot->get_pcb_id() == AVE_MAXI15 || m_cartslot->get_pcb_id() == KAISER_KS7022 || m_cartslot->get_pcb_id() == KAISER_KS7031 || m_cartslot->get_pcb_id() == BMC_VT5201
160160         || m_cartslot->get_pcb_id() == UNL_LH32 || m_cartslot->get_pcb_id() == UNL_LH10 || m_cartslot->get_pcb_id() == UNL_2708
161161         || m_cartslot->get_pcb_id() == UNL_43272 || m_cartslot->get_pcb_id() == BMC_G63IN1 || m_cartslot->get_pcb_id() == BMC_8157
162162         || m_cartslot->get_pcb_id() == BMC_GOLD150 || m_cartslot->get_pcb_id() == BMC_CH001
trunk/src/mess/machine/nes_pcb.c
r22896r22897
161161   { "ks7022",           KAISER_KS7022 }, // mapper 175
162162   { "ks7017",           KAISER_KS7017 },
163163   { "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)
166167   { "gs2015",           RCM_GS2015 },
167168   { "gs2004",           RCM_GS2004 },
168169   { "gs2013",           RCM_GS2013 },
r22896r22897
284285   { "tek90",            JYCOMPANY_A },
285286   { "sa9602b",          SACHEN_SA9602B },
286287   { "unl_shero",        SACHEN_SHERO },
287   { "ks7012",           KAISER_KS7012 },
288   { "ks7013b",          KAISER_KS7013B },
289288   { "mmalee2",          UNL_MMALEE },
290289   { "unl_2708",         UNL_2708 },
291290   { "unl_lh10",         UNL_LH10 },
trunk/src/mess/machine/nes_slot.h
r22896r22897
107107   OPENCORP_DAOU306, HES_BOARD, SVISION16_BOARD, RUMBLESTATION_BOARD, JYCOMPANY_A, JYCOMPANY_B, JYCOMPANY_C,
108108   MAGICSERIES_MD, KASING_BOARD, FUTUREMEDIA_BOARD, FUKUTAKE_BOARD, SOMARI_SL12,
109109   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,
111112   CNE_DECATHLON, CNE_FSB, CNE_SHLZ, CONY_BOARD, YOKO_BOARD,
112113   RCM_GS2015, RCM_GS2004, RCM_GS2013, RCM_TF9IN1, RCM_3DBLOCK,
113114   WAIXING_TYPE_A, WAIXING_TYPE_A1, WAIXING_TYPE_B, WAIXING_TYPE_C, WAIXING_TYPE_D,
trunk/src/mess/machine/nes_kaiser.c
r22896r22897
2323 TODO:
2424 - FCEUmm lists more Kaiser PCBs:
2525   * KS7030 (for Yume Koujou Doki Doki Panic by Kaiser?)
26   * KS7031 (for Dracula II?)
2726   * KS7037
2827   but there seem to be no available dumps...
2928
r22896r22897
5655const device_type NES_KS7017 = &device_creator<nes_ks7017_device>;
5756const device_type NES_KS7012 = &device_creator<nes_ks7012_device>;
5857const device_type NES_KS7013B = &device_creator<nes_ks7013b_device>;
58const device_type NES_KS7031 = &device_creator<nes_ks7031_device>;
5959
6060
6161nes_ks7058_device::nes_ks7058_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
r22896r22897
9898{
9999}
100100
101nes_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}
101105
102106
103107
108
104109void nes_ks7058_device::device_start()
105110{
106111   common_start();
r22896r22897
205210   chr8(0, m_chr_source);
206211}
207212
213void nes_ks7031_device::device_start()
214{
215   common_start();
216   save_item(NAME(m_reg));
217}
208218
219void 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}
209229
210230
211231
232
233
212234/*-------------------------------------------------
213235 mapper specific handlers
214236 -------------------------------------------------*/
r22896r22897
503525
504526
505527/*-------------------------------------------------
506
528
507529 Kaiser Board KS7013B
508
530
509531 Games: Highway Star FDS Conversion
510
532
511533 iNES:
512
534
513535 In MESS: Supported.
514
536
515537 -------------------------------------------------*/
516538
517539WRITE8_MEMBER(nes_ks7013b_device::write_m)
r22896r22897
525547   LOG_MMC(("ks7013b write_h, offset: %04x, data: %02x\n", offset, data));
526548   set_nt_mirroring((data & 1) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT);
527549}
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
572READ8_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
578READ8_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
585WRITE8_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
r22896r22897
147147};
148148
149149
150// ======================> nes_ks7031_device
150151
152class nes_ks7031_device : public nes_nrom_device
153{
154public:
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   
166private:
167   UINT8 m_reg[4];
168};
169
170
171
151172// device type definition
152173extern const device_type NES_KS7058;
153174extern const device_type NES_KS7022;
r22896r22897
156177extern const device_type NES_KS7017;
157178extern const device_type NES_KS7012;
158179extern const device_type NES_KS7013B;
180extern const device_type NES_KS7031;
159181
160182#endif
trunk/src/mess/includes/nes.h
r22896r22897
245245   SLOT_INTERFACE_INTERNAL("ks7032",           NES_KS7032) //  mapper 142
246246   SLOT_INTERFACE_INTERNAL("ks7012",           NES_KS7012)  // used in Zanac (FDS Conversion)
247247   SLOT_INTERFACE_INTERNAL("ks7013b",          NES_KS7013B) // used in Highway Star (FDS Conversion)
248   SLOT_INTERFACE_INTERNAL("ks7031",           NES_KS7031) //  used in Dracula II (FDS Conversion)
248249   SLOT_INTERFACE_INTERNAL("gs2015",           NES_GS2015)
249250   SLOT_INTERFACE_INTERNAL("gs2004",           NES_GS2004)
250251   SLOT_INTERFACE_INTERNAL("gs2013",           NES_GS2013)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team