Previous 199869 Revisions Next

r29284 Friday 4th April, 2014 at 21:05:36 UTC by Sandro Ronco
hd63484: added 8-bit mode. (nw)

converted sigmab52.c to use the new HD63484. (nw)
[src/emu/video]h63484.c h63484.h
[src/mame/drivers]sigmab52.c

trunk/src/emu/video/h63484.c
r29283r29284
17671767
17681768UINT16 h63484_device::video_registers_r(int offset)
17691769{
1770   UINT16 res;
1770   UINT16 res = (m_vreg[offset] << 8) | (m_vreg[offset+1] & 0xff);
17711771
1772   res = 0;
1773
17741772   switch(offset)
17751773   {
17761774      case 0x06:
r29283r29284
19101908
19111909READ16_MEMBER( h63484_device::data_r )
19121910{
1913   int res;
1911   UINT16 res = 0xffff;
19141912
1915   res = 0xffff;
1916
19171913   if(m_ar == 0) // FIFO read
19181914   {
19191915      UINT8 data;
r29283r29284
19321928WRITE16_MEMBER( h63484_device::address_w )
19331929{
19341930   if(ACCESSING_BITS_0_7)
1935      m_ar = data & 0xff;
1931      m_ar = data & 0xfe;
19361932}
19371933
19381934WRITE16_MEMBER( h63484_device::data_w )
r29283r29284
19521948   }
19531949}
19541950
1951READ8_MEMBER( h63484_device::status_r )
1952{
1953   return m_sr;
1954}
1955
1956WRITE8_MEMBER( h63484_device::address_w )
1957{
1958   m_ar = data;
1959}
1960
1961READ8_MEMBER( h63484_device::data_r )
1962{
1963   UINT8 res = 0xff;
1964
1965   if(m_ar < 2) // FIFO read
1966      dequeue_r(&res);
1967   else
1968      res = video_registers_r(m_ar & 0xfe) >> (m_ar & 1 ? 0 : 8);
1969
1970   return res;
1971}
1972
1973WRITE8_MEMBER( h63484_device::data_w )
1974{
1975   m_vreg[m_ar] = data;
1976
1977   if(m_ar < 2) // FIFO write
1978   {
1979      queue_w(data);
1980      if (m_ar & 1)
1981         process_fifo();
1982
1983      m_ar ^= 1;
1984   }
1985   else
1986      video_registers_w(m_ar & 0xfe);
1987
1988   if(m_ar & 0x80)
1989   {
1990      m_ar++;
1991      m_ar &= 0xff; // TODO: what happens if it overflows?
1992   }
1993}
1994
19551995void h63484_device::device_start()
19561996{
19571997   m_display_cb.bind_relative_to(*owner());
trunk/src/emu/video/h63484.h
r29283r29284
4848
4949   DECLARE_WRITE16_MEMBER( address_w );
5050   DECLARE_WRITE16_MEMBER( data_w );
51
5251   DECLARE_READ16_MEMBER( status_r );
5352   DECLARE_READ16_MEMBER( data_r );
5453
54   DECLARE_WRITE8_MEMBER( address_w );
55   DECLARE_WRITE8_MEMBER( data_w );
56   DECLARE_READ8_MEMBER( status_r );
57   DECLARE_READ8_MEMBER( data_r );
58
5559   UINT32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5660   virtual const rom_entry *device_rom_region() const;
5761   virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const;
trunk/src/mame/drivers/sigmab52.c
r29283r29284
129129#include "cpu/m6809/m6809.h"
130130#include "machine/6850acia.h"
131131#include "sound/3812intf.h"
132#include "video/hd63484.h"
132#include "video/h63484.h"
133133
134134
135135class sigmab52_state : public driver_device
r29283r29284
142142
143143   int m_latch;
144144   unsigned int m_acrtc_data;
145   DECLARE_WRITE8_MEMBER(acrtc_w);
146   DECLARE_READ8_MEMBER(acrtc_r);
145//  DECLARE_WRITE8_MEMBER(acrtc_w);
146//  DECLARE_READ8_MEMBER(acrtc_r);
147147   DECLARE_READ8_MEMBER(unk_f700_r);
148148   DECLARE_WRITE8_MEMBER(unk_f710_w);
149149   DECLARE_READ8_MEMBER(unk_f721_r);
r29283r29284
154154   UINT32 screen_update_jwildb52(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
155155   INTERRUPT_GEN_MEMBER(timer_irq);
156156   required_device<cpu_device> m_maincpu;
157   required_device<hd63484_device> m_hd63484;
157   required_device<h63484_device> m_hd63484;
158158};
159159
160160
r29283r29284
172172
173173UINT32 sigmab52_state::screen_update_jwildb52(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
174174{
175#if 0
175176   int x, y, b, src;
176177
177178   address_space &space = machine().driver_data()->generic_space();
r29283r29284
231232         }
232233      }
233234   }
235#endif
234236
235237   return 0;
236238}
r29283r29284
245247*      ACRTC Access      *
246248*************************/
247249
250#if 0
248251WRITE8_MEMBER(sigmab52_state::acrtc_w)
249252{
250253   if(!offset)
r29283r29284
285288      return 0x7b; //fake status read (instead m_hd63484->status_r(space, 0, 0xff); )
286289   }
287290}
291#endif
288292
289293
290294/*************************
r29283r29284
321325   AM_RANGE(0xf710, 0xf710) AM_WRITE(unk_f710_w)
322326   AM_RANGE(0xf721, 0xf721) AM_READ(unk_f721_r)
323327
324   //AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("hd63484", hd63484_device, status_r, address_w)
325   //AM_RANGE(0x02, 0x03) AM_DEVREADWRITE("hd63484", hd63484_device, data_r, data_w)
328   AM_RANGE(0xf730, 0xf730) AM_DEVREADWRITE("hd63484", h63484_device, status_r, address_w)
329   AM_RANGE(0xf731, 0xf731) AM_DEVREADWRITE("hd63484", h63484_device, data_r, data_w)
326330
327   AM_RANGE(0xf730, 0xf731) AM_READWRITE(acrtc_r, acrtc_w)
331   //AM_RANGE(0xf730, 0xf731) AM_READWRITE(acrtc_r, acrtc_w)
328332   AM_RANGE(0xf740, 0xf740) AM_READ_PORT("IN0")
329333   AM_RANGE(0xf741, 0xf741) AM_READ_PORT("IN1")    // random checks to active high to go further with the test.
330334   AM_RANGE(0xf742, 0xf742) AM_READ_PORT("IN2")
r29283r29284
366370
367371*/
368372
373static ADDRESS_MAP_START( jwildb52_hd63484_map, AS_0, 16, sigmab52_state )
374   AM_RANGE(0x00000, 0x1ffff) AM_RAM
375   AM_RANGE(0x20000, 0x3ffff) AM_ROM AM_REGION("gfx1", 0)
376ADDRESS_MAP_END
369377
370378/*************************
371379*      Input Ports       *
r29283r29284
563571
564572*/
565573
574#if 0
566575   {
567576      UINT16 *rom = (UINT16*)memregion("gfx1")->base();
568577      int i;
r29283r29284
573582         m_hd63484->ram_w(space, i + 0x40000/2, rom[i], 0xffff);
574583      }
575584   }
585#endif
576586}
577587
578static const hd63484_interface jwildb52_hd63484_intf = { 1 };
588//static const hd63484_interface jwildb52_hd63484_intf = { 1 };
579589
580590
581591/*************************
r29283r29284
602612   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
603613   MCFG_SCREEN_SIZE(1024, 1024)
604614   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 384-1)
605   MCFG_SCREEN_UPDATE_DRIVER(sigmab52_state, screen_update_jwildb52)
615   MCFG_SCREEN_UPDATE_DEVICE("hd63484", h63484_device, update_screen)
606616   MCFG_SCREEN_PALETTE("palette")
607617
608   MCFG_HD63484_ADD("hd63484", jwildb52_hd63484_intf)
618   MCFG_H63484_ADD("hd63484", SEC_CLOCK, jwildb52_hd63484_map)
609619
610620   MCFG_PALETTE_ADD("palette", 256)
611621   MCFG_PALETTE_INIT_OWNER(sigmab52_state, sigmab52)
r29283r29284
621631   ROM_REGION( 0x20000, "maincpu", 0 )
622632   ROM_LOAD( "poker.ic95", 0x10000, 0x10000, CRC(07eb9007) SHA1(ee814c40c6d8c9ea9e5246cae0cfa2c30f2976ed) )
623633
624   ROM_REGION( 0x40000, "gfx1", 0 )
625   ROM_LOAD32_BYTE( "cards_2001-1.ic45", 0x00002, 0x10000, CRC(7664455e) SHA1(c9f129060e63b9ac9058ab94208846e4dc578ead) )
626   ROM_LOAD32_BYTE( "cards_2001-2.ic46", 0x00000, 0x10000, CRC(c1455d64) SHA1(ddb576ba471b5d2faa415ec425615cf5f9d87911) )
627   ROM_LOAD32_BYTE( "cards_2001-3.ic47", 0x00001, 0x10000, CRC(cb2ece6e) SHA1(f2b6949085fe395d0fdd16322a880ec87e2efd50) )
628   ROM_LOAD32_BYTE( "cards_2001-4.ic48", 0x00003, 0x10000, CRC(8131d236) SHA1(8984aa1f2af70df41973b61df17f184796a2ffe9) )
634   ROM_REGION16_BE( 0x40000, "gfx1", 0 )
635   ROM_LOAD32_BYTE( "cards_2001-1.ic45", 0x00003, 0x10000, CRC(7664455e) SHA1(c9f129060e63b9ac9058ab94208846e4dc578ead) )
636   ROM_LOAD32_BYTE( "cards_2001-2.ic46", 0x00001, 0x10000, CRC(c1455d64) SHA1(ddb576ba471b5d2faa415ec425615cf5f9d87911) )
637   ROM_LOAD32_BYTE( "cards_2001-3.ic47", 0x00000, 0x10000, CRC(cb2ece6e) SHA1(f2b6949085fe395d0fdd16322a880ec87e2efd50) )
638   ROM_LOAD32_BYTE( "cards_2001-4.ic48", 0x00002, 0x10000, CRC(8131d236) SHA1(8984aa1f2af70df41973b61df17f184796a2ffe9) )
629639
630640   ROM_REGION( 0x10000, "audiocpu", 0 )
631641   ROM_LOAD( "sound-01-00.43", 0x8000, 0x8000, CRC(2712d44c) SHA1(295526b27676cd97cbf111d47305d63c2b3ea50d) )
r29283r29284
641651
642652   /* No gfx & sound dumps. Using the ones from parent set for now... */
643653
644   ROM_REGION( 0x40000, "gfx1", 0 )
645   ROM_LOAD32_BYTE( "cards_2001-1.ic45", 0x00002, 0x10000, BAD_DUMP CRC(7664455e) SHA1(c9f129060e63b9ac9058ab94208846e4dc578ead) )
646   ROM_LOAD32_BYTE( "cards_2001-2.ic46", 0x00000, 0x10000, BAD_DUMP CRC(c1455d64) SHA1(ddb576ba471b5d2faa415ec425615cf5f9d87911) )
647   ROM_LOAD32_BYTE( "cards_2001-3.ic47", 0x00001, 0x10000, BAD_DUMP CRC(cb2ece6e) SHA1(f2b6949085fe395d0fdd16322a880ec87e2efd50) )
648   ROM_LOAD32_BYTE( "cards_2001-4.ic48", 0x00003, 0x10000, BAD_DUMP CRC(8131d236) SHA1(8984aa1f2af70df41973b61df17f184796a2ffe9) )
654   ROM_REGION16_BE( 0x40000, "gfx1", 0 )
655   ROM_LOAD32_BYTE( "cards_2001-1.ic45", 0x00003, 0x10000, BAD_DUMP CRC(7664455e) SHA1(c9f129060e63b9ac9058ab94208846e4dc578ead) )
656   ROM_LOAD32_BYTE( "cards_2001-2.ic46", 0x00001, 0x10000, BAD_DUMP CRC(c1455d64) SHA1(ddb576ba471b5d2faa415ec425615cf5f9d87911) )
657   ROM_LOAD32_BYTE( "cards_2001-3.ic47", 0x00000, 0x10000, BAD_DUMP CRC(cb2ece6e) SHA1(f2b6949085fe395d0fdd16322a880ec87e2efd50) )
658   ROM_LOAD32_BYTE( "cards_2001-4.ic48", 0x00002, 0x10000, BAD_DUMP CRC(8131d236) SHA1(8984aa1f2af70df41973b61df17f184796a2ffe9) )
649659
650660   ROM_REGION( 0x10000, "audiocpu", 0 )
651661   ROM_LOAD( "sound-01-00.43", 0x8000, 0x8000, BAD_DUMP CRC(2712d44c) SHA1(295526b27676cd97cbf111d47305d63c2b3ea50d) )
r29283r29284
659669   ROM_REGION( 0x20000, "maincpu", 0 )
660670   ROM_LOAD( "jokers_wild_ver_xxx.ic95", 0x10000, 0x10000, CRC(07eb9007) SHA1(ee814c40c6d8c9ea9e5246cae0cfa2c30f2976ed) )
661671
662   ROM_REGION( 0x40000, "gfx1", 0 )
663   ROM_LOAD32_BYTE( "2006-1_harrahs.ic45", 0x00002, 0x10000, CRC(6e6871dc) SHA1(5dfc99c808c06ec34838324181988d4550c1ed1a) )
664   ROM_LOAD32_BYTE( "2006-2_harrahs.ic46", 0x00000, 0x10000, CRC(1039c62d) SHA1(11f0dbcbbff5f6e9028a0305f7e16a0654be40d4) )
665   ROM_LOAD32_BYTE( "2006-3_harrahs.ic47", 0x00001, 0x10000, CRC(d66af95a) SHA1(70bba1aeea9221541b82642045ce8ecf26e1d08c) )
666   ROM_LOAD32_BYTE( "2006-4_harrahs.ic48", 0x00003, 0x10000, CRC(2bf196cb) SHA1(686ca0dd84c48f51efee5349ea3db65531dd4a52) )
672   ROM_REGION16_BE( 0x40000, "gfx1", 0 )
673   ROM_LOAD32_BYTE( "2006-1_harrahs.ic45", 0x00003, 0x10000, CRC(6e6871dc) SHA1(5dfc99c808c06ec34838324181988d4550c1ed1a) )
674   ROM_LOAD32_BYTE( "2006-2_harrahs.ic46", 0x00001, 0x10000, CRC(1039c62d) SHA1(11f0dbcbbff5f6e9028a0305f7e16a0654be40d4) )
675   ROM_LOAD32_BYTE( "2006-3_harrahs.ic47", 0x00000, 0x10000, CRC(d66af95a) SHA1(70bba1aeea9221541b82642045ce8ecf26e1d08c) )
676   ROM_LOAD32_BYTE( "2006-4_harrahs.ic48", 0x00002, 0x10000, CRC(2bf196cb) SHA1(686ca0dd84c48f51efee5349ea3db65531dd4a52) )
667677
668678   ROM_REGION( 0x10000, "audiocpu", 0 )
669679   ROM_LOAD( "poker-01-00.43", 0x8000, 0x8000, CRC(2712d44c) SHA1(295526b27676cd97cbf111d47305d63c2b3ea50d) )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team