Previous 199869 Revisions Next

r24791 Wednesday 7th August, 2013 at 15:20:46 UTC by Curt Coder
(MESS) visicom: Fixed colors and video. [Curt Coder]
(MESS) visicom.xml: Fixed cartridge data bit order. [Charles MacDonald, Marcel van Tongeren]
[hash]visicom.xml
[src/emu/video]cdp1861.c cdp1861.h
[src/mess/drivers]studio2.c
[src/mess/includes]studio2.h

trunk/hash/visicom.xml
r24790r24791
66ID      Title                                           Dumped
77_________________________________________________________________
88
9CAS-110 Arithmetic Drill (Math Fun & Fun with Numbers)  no
10CAS-130 Sports Fan (Baseball & Sumo Wrestling)          yes
11CAS-140 Gambler I (Blackjack)                           no
12CAS-141 Gambler II (Slot Machine and Dice)              no
13CAS-160 Space Command (Space War)                       no
14CAS-190 Inspiration (Bagua and Biorhythm)               no
9CAS-110 Arithmetic Drill (Math Fun & Fun with Numbers)  no       算数ドリル
10CAS-130 Sports Fan (Baseball & Sumo Wrestling)          yes      スポーツファン
11CAS-140 Gambler I (Blackjack)                           no       ギャンブラーI
12CAS-141 Gambler II (Slot Machine and Dice)              no       ギャンブラーII
13CAS-160 Space Command (Space War)                       no       スペースコマンド
14CAS-190 Inspiration (Bagua and Biorhythm)               no       霊感
1515-->
1616<softwarelist name="visicom" description="Toshiba Visicom cartridges">
1717
r24790r24791
2020      <year>1978</year>
2121      <publisher>Toshiba</publisher>
2222      <info name="serial" value="CAS-130" />
23      <info name="alt_title" value="スポーツファン"/>
2324
2425      <part name="cart" interface="visicom_cart">
2526         <dataarea name="rom" size="0x800">
26            <rom name="cas130.rom" size="0x800" crc="be86b65c" sha1="fdbcdf6b69de0ced2dea7695a777ec255b5df109" offset="0" />
27            <rom name="cas130.rom" size="0x800" crc="9da5c845" sha1="438d9fc67de1ef408718b4737c0d0fd48844dacb" offset="0" />
2728         </dataarea>
2829      </part>
2930   </software>
trunk/src/emu/video/cdp1861.c
r24790r24791
4444      device_video_interface(mconfig, *this),
4545      m_write_irq(*this),
4646      m_write_dma_out(*this),
47      m_write_efx(*this)
47      m_write_efx(*this),
48      m_disp(0),
49      m_dispon(0),
50      m_dispoff(0),
51      m_dmaout(CLEAR_LINE)
4852{
4953}
5054
r24790r24791
165169
166170         m_dma_timer->adjust(clocks_to_attotime(CDP1861_CYCLES_DMA_WAIT));
167171
168         m_dmaout = 0;
172         m_dmaout = CLEAR_LINE;
169173      }
170174      else
171175      {
r24790r24791
179183
180184         m_dma_timer->adjust(clocks_to_attotime(CDP1861_CYCLES_DMA_ACTIVE));
181185
182         m_dmaout = 1;
186         m_dmaout = ASSERT_LINE;
183187      }
184188      break;
185189   }
trunk/src/emu/video/cdp1861.h
r24790r24791
102102
103103   UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
104104
105   bitmap_rgb32 m_bitmap;
106
105107protected:
106108   // device-level overrides
107109   virtual void device_start();
r24790r24791
120122   devcb2_write_line m_write_dma_out;
121123   devcb2_write_line m_write_efx;
122124
123   bitmap_rgb32 m_bitmap;          // bitmap
124
125125   int m_disp;                     // display enabled
126126   int m_dispon;                   // display on latch
127127   int m_dispoff;                  // display off latch
trunk/src/mess/drivers/studio2.c
r24790r24791
177177
178178    TODO:
179179
180    - mpt02 clones' colors
181    - visicom colors
182180    - NE555 discrete sound
183181
184182*/
r24790r24791
299297static ADDRESS_MAP_START( visicom_map, AS_PROGRAM, 8, visicom_state )
300298   AM_RANGE(0x0000, 0x0fff) AM_ROM
301299   AM_RANGE(0x1000, 0x10ff) AM_RAM
302   AM_RANGE(0x1100, 0x11ff) AM_RAM AM_SHARE("color_ram")
303   AM_RANGE(0x1300, 0x13ff) AM_RAM AM_SHARE("color_ram1")
300   AM_RANGE(0x1100, 0x11ff) AM_RAM AM_SHARE("color0_ram")
301   AM_RANGE(0x1300, 0x13ff) AM_RAM AM_SHARE("color1_ram")
304302ADDRESS_MAP_END
305303
306304static ADDRESS_MAP_START( visicom_io_map, AS_IO, 8, visicom_state )
r24790r24791
364362
365363static const rgb_t VISICOM_PALETTE[] =
366364{
367   MAKE_RGB(0x00, 0x80, 0x00),
368   MAKE_RGB(0x00, 0x00, 0xff),
369   MAKE_RGB(0x00, 0xff, 0x00),
370   MAKE_RGB(0xff, 0x00, 0x00)
365   MAKE_RGB(0x00, 0x40, 0x00),
366   MAKE_RGB(0xaf, 0xdf, 0xe4),
367   MAKE_RGB(0xb9, 0xc4, 0x2f),
368   MAKE_RGB(0xef, 0x45, 0x4a)
371369};
372370
371UINT32 visicom_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
372{
373   m_vdc->screen_update(screen, bitmap, cliprect);
374
375   m_vdc->m_bitmap.fill(VISICOM_PALETTE[0], cliprect);
376
377   return 0;
378}
379
373380READ_LINE_MEMBER( mpt02_state::rdata_r )
374381{
375382   return BIT(m_color, 0);
r24790r24791
423430   DEVCB_NULL
424431};
425432
433WRITE8_MEMBER( visicom_state::dma_w )
434{
435   int sx = m_screen->hpos() + 4;
436   int y = m_screen->vpos();
437   
438   UINT8 addr = offset & 0xff;
439   UINT8 color0 = m_color0_ram[addr];
440   UINT8 color1 = m_color1_ram[addr];
441
442   for (int x = 0; x < 8; x++)
443   {
444      int color = (BIT(color1, 7) << 1) | BIT(color0, 7);
445      m_vdc->m_bitmap.pix32(y, sx + x) = VISICOM_PALETTE[color];
446      color0 <<= 1;
447      color1 <<= 1;
448   }
449}
450
451static COSMAC_INTERFACE( visicom_cosmac_intf )
452{
453   DEVCB_LINE_VCC,
454   DEVCB_DRIVER_LINE_MEMBER(studio2_state, clear_r),
455   DEVCB_NULL,
456   DEVCB_NULL,
457   DEVCB_DRIVER_LINE_MEMBER(studio2_state, ef3_r),
458   DEVCB_DRIVER_LINE_MEMBER(studio2_state, ef4_r),
459   DEVCB_DRIVER_LINE_MEMBER(studio2_state, q_w),
460   DEVCB_NULL,
461   DEVCB_DRIVER_MEMBER(visicom_state, dma_w),
462   NULL,
463   DEVCB_NULL,
464   DEVCB_NULL
465};
466
426467WRITE8_MEMBER( mpt02_state::dma_w )
427468{
428469   UINT8 addr = ((offset & 0xe0) >> 2) | (offset & 0x07);
r24790r24791
511552   else
512553   {
513554      size_t size = image.get_software_region_length("rom");
514      if (size) memcpy(ptr, image.get_software_region("rom_800"), MAX(size, 0x800));
555      if (size) memcpy(ptr, image.get_software_region("rom"), MAX(size, 0x800));
515556   }
516557
517558   return IMAGE_INIT_PASS;
r24790r24791
554595   MCFG_CPU_ADD(CDP1802_TAG, CDP1802, XTAL_3_579545MHz/2)
555596   MCFG_CPU_PROGRAM_MAP(visicom_map)
556597   MCFG_CPU_IO_MAP(visicom_io_map)
557   MCFG_CPU_CONFIG(studio2_cosmac_intf)
598   MCFG_CPU_CONFIG(visicom_cosmac_intf)
558599
559600   /* video hardware */
560601   MCFG_CDP1861_SCREEN_ADD(CDP1861_TAG, SCREEN_TAG, XTAL_3_579545MHz/2)
561   MCFG_CDP1861_ADD(CDP1861_TAG, SCREEN_TAG, XTAL_3_579545MHz/2/8, INPUTLINE(CDP1802_TAG, COSMAC_INPUT_LINE_INT), INPUTLINE(CDP1802_TAG, COSMAC_INPUT_LINE_DMAOUT), INPUTLINE(CDP1802_TAG, COSMAC_INPUT_LINE_EF1))
602   MCFG_SCREEN_UPDATE_DRIVER(visicom_state, screen_update)
603   MCFG_CDP1861_ADD(CDP1861_TAG, SCREEN_TAG, XTAL_3_579545MHz/2, INPUTLINE(CDP1802_TAG, COSMAC_INPUT_LINE_INT), INPUTLINE(CDP1802_TAG, COSMAC_INPUT_LINE_DMAOUT), INPUTLINE(CDP1802_TAG, COSMAC_INPUT_LINE_EF1))
562604
563605   /* sound hardware */
564606   MCFG_SPEAKER_STANDARD_MONO("mono")
r24790r24791
653695
654696/* Game Drivers */
655697
656/*    YEAR  NAME        PARENT  COMPAT  MACHINE     INPUT       INIT        COMPANY   FULLNAME */
657CONS( 1977, studio2,    0,      0,      studio2,    studio2, studio2_state, studio2,    "RCA",      "Studio II", GAME_SUPPORTS_SAVE )
658CONS( 1978, visicom,    studio2,0,      visicom,    studio2, studio2_state, studio2,    "Toshiba",  "Visicom COM-100 (Japan)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
659CONS( 1978, mpt02,      studio2,0,      mpt02,      studio2, studio2_state, studio2,    "Soundic",  "Victory MPT-02 Home TV Programmer (Austria)", GAME_SUPPORTS_SAVE )
660CONS( 1978, mpt02h,     studio2,0,      mpt02,      studio2, studio2_state, studio2,    "Hanimex",  "MPT-02 Jeu TV Programmable (France)", GAME_SUPPORTS_SAVE)
661CONS( 1978, mtc9016,    studio2,0,      mpt02,      studio2, studio2_state, studio2,    "Mustang",  "9016 Telespiel Computer (Germany)", GAME_SUPPORTS_SAVE )
662CONS( 1978, shmc1200,   studio2,0,      mpt02,      studio2, studio2_state, studio2,    "Sheen",    "1200 Micro Computer (Australia)", GAME_SUPPORTS_SAVE )
663CONS( 1978, cm1200,     studio2,0,      mpt02,      studio2, studio2_state, studio2,    "Conic",    "M-1200 (?)", GAME_SUPPORTS_SAVE )
664CONS( 1978, apollo80,   studio2,0,      mpt02,      studio2, studio2_state, studio2,    "Academy",  "Apollo 80 (Germany)", GAME_SUPPORTS_SAVE )
698//    YEAR  NAME        PARENT  COMPAT  MACHINE     INPUT    INIT                       COMPANY    FULLNAME                                 FLAGS
699CONS( 1977, studio2,    0,      0,      studio2,    studio2, studio2_state, studio2,    "RCA",      "Studio II",                            GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
700CONS( 1978, visicom,    studio2,0,      visicom,    studio2, studio2_state, studio2,    "Toshiba",  "Visicom COM-100 (Japan)",                   GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
701CONS( 1978, mpt02,      studio2,0,      mpt02,      studio2, studio2_state, studio2,    "Soundic",  "Victory MPT-02 Home TV Programmer (Austria)",   GAME_SUPPORTS_SAVE )
702CONS( 1978, mpt02h,     studio2,0,      mpt02,      studio2, studio2_state, studio2,    "Hanimex",  "MPT-02 Jeu TV Programmable (France)",          GAME_SUPPORTS_SAVE )
703CONS( 1978, mtc9016,    studio2,0,      mpt02,      studio2, studio2_state, studio2,    "Mustang",  "9016 Telespiel Computer (Germany)",          GAME_SUPPORTS_SAVE )
704CONS( 1978, shmc1200,   studio2,0,      mpt02,      studio2, studio2_state, studio2,    "Sheen",    "1200 Micro Computer (Australia)",             GAME_SUPPORTS_SAVE )
705CONS( 1978, cm1200,     studio2,0,      mpt02,      studio2, studio2_state, studio2,    "Conic",    "M-1200 (?)",                            GAME_SUPPORTS_SAVE )
706CONS( 1978, apollo80,   studio2,0,      mpt02,      studio2, studio2_state, studio2,    "Academy",  "Apollo 80 (Germany)",                      GAME_SUPPORTS_SAVE )
trunk/src/mess/includes/studio2.h
r24790r24791
6969public:
7070   visicom_state(const machine_config &mconfig, device_type type, const char *tag)
7171      : studio2_state(mconfig, type, tag),
72         m_color_ram(*this, "color_ram"),
73         m_color_ram1(*this, "color_ram1")
72         m_color0_ram(*this, "color0_ram"),
73         m_color1_ram(*this, "color1_ram")
7474   { }
7575
76   required_shared_ptr<UINT8> m_color_ram;
77   required_shared_ptr<UINT8> m_color_ram1;
76   virtual UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7877
78   required_shared_ptr<UINT8> m_color0_ram;
79   required_shared_ptr<UINT8> m_color1_ram;
80
81   DECLARE_WRITE8_MEMBER( dma_w );
82   
7983   DECLARE_DEVICE_IMAGE_LOAD_MEMBER( visicom_cart_load );
8084};
8185

Previous 199869 Revisions Next


© 1997-2024 The MAME Team