Previous 199869 Revisions Next

r32266 Sunday 21st September, 2014 at 22:26:53 UTC by Alex Jackson
MT 5700 [Alex Jackson]
[src/mame/drivers]terracre.c
[src/mame/includes]terracre.h
[src/mame/video]terracre.c

trunk/src/mame/drivers/terracre.c
r32265r32266
182182   AM_RANGE(0x000000, 0x01ffff) AM_ROM
183183   AM_RANGE(0x020000, 0x0201ff) AM_RAM AM_SHARE("spriteram")
184184   AM_RANGE(0x020200, 0x021fff) AM_RAM
185   AM_RANGE(0x022000, 0x022fff) AM_WRITE(amazon_background_w) AM_SHARE("amazon_videoram")
185   AM_RANGE(0x022000, 0x022fff) AM_WRITE(amazon_background_w) AM_SHARE("bg_videoram")
186186   AM_RANGE(0x023000, 0x023fff) AM_RAM
187187   AM_RANGE(0x024000, 0x024001) AM_READ_PORT("P1")
188188   AM_RANGE(0x024002, 0x024003) AM_READ_PORT("P2")
r32265r32266
192192   AM_RANGE(0x026002, 0x026003) AM_WRITE(amazon_scrollx_w)
193193   AM_RANGE(0x026004, 0x026005) AM_WRITE(amazon_scrolly_w)
194194   AM_RANGE(0x02600c, 0x02600d) AM_WRITE(amazon_sound_w)
195   AM_RANGE(0x028000, 0x0287ff) AM_WRITE(amazon_foreground_w) AM_SHARE("videoram")
195   AM_RANGE(0x028000, 0x0287ff) AM_WRITE(amazon_foreground_w) AM_SHARE("fg_videoram")
196196ADDRESS_MAP_END
197197
198198static ADDRESS_MAP_START( amazon_map, AS_PROGRAM, 16, terracre_state )
199199   AM_RANGE(0x000000, 0x01ffff) AM_ROM
200200   AM_RANGE(0x040000, 0x0401ff) AM_RAM AM_SHARE("spriteram")
201201   AM_RANGE(0x040200, 0x040fff) AM_RAM
202   AM_RANGE(0x042000, 0x042fff) AM_WRITE(amazon_background_w) AM_SHARE("amazon_videoram")
202   AM_RANGE(0x042000, 0x042fff) AM_WRITE(amazon_background_w) AM_SHARE("bg_videoram")
203203   AM_RANGE(0x044000, 0x044001) AM_READ_PORT("IN0")
204204   AM_RANGE(0x044002, 0x044003) AM_READ_PORT("IN1")
205205   AM_RANGE(0x044004, 0x044005) AM_READ_PORT("IN2")
r32265r32266
208208   AM_RANGE(0x046002, 0x046003) AM_WRITE(amazon_scrollx_w)
209209   AM_RANGE(0x046004, 0x046005) AM_WRITE(amazon_scrolly_w)
210210   AM_RANGE(0x04600c, 0x04600d) AM_WRITE(amazon_sound_w)
211   AM_RANGE(0x050000, 0x050fff) AM_WRITE(amazon_foreground_w) AM_SHARE("videoram")
211   AM_RANGE(0x050000, 0x050fff) AM_WRITE(amazon_foreground_w) AM_SHARE("fg_videoram")
212212   AM_RANGE(0x070000, 0x070003) AM_READWRITE(amazon_protection_r, amazon_protection_w)
213213ADDRESS_MAP_END
214214
r32265r32266
510510   GFXDECODE_ENTRY( "gfx3", 0, sprite_layout, 1*16+16*16, 256 )
511511GFXDECODE_END
512512
513static MACHINE_CONFIG_START( amazon, terracre_state )
514   MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2)   // 8mhz
515   MCFG_CPU_PROGRAM_MAP(amazon_map)
516   MCFG_CPU_VBLANK_INT_DRIVER("screen", terracre_state,  irq1_line_hold)
517513
518   MCFG_CPU_ADD("audiocpu", Z80, XTAL_16MHz/4)     // 4mhz? should be derived from XTAL_22MHz? how?
519   MCFG_CPU_PROGRAM_MAP(sound_map)
520   MCFG_CPU_IO_MAP(sound_3526_io_map)
521   MCFG_CPU_PERIODIC_INT_DRIVER(terracre_state, irq0_line_hold,  XTAL_16MHz/4/512) // ?
522
523   MCFG_MACHINE_START_OVERRIDE(terracre_state,amazon)
524
525   MCFG_SCREEN_ADD("screen", RASTER)
526   MCFG_SCREEN_REFRESH_RATE( 60 )
527   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
528   MCFG_SCREEN_SIZE(32*8, 32*8)
529   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
530   MCFG_SCREEN_UPDATE_DRIVER(terracre_state, screen_update_amazon)
531   MCFG_SCREEN_PALETTE("palette")
532
533   MCFG_GFXDECODE_ADD("gfxdecode", "palette", terracre)
534   MCFG_PALETTE_ADD("palette", 1*16+16*16+16*256)
535   MCFG_PALETTE_INDIRECT_ENTRIES(256)
536   MCFG_PALETTE_INIT_OWNER(terracre_state, terracre)
537
538   MCFG_SPEAKER_STANDARD_MONO("mono")
539
540   MCFG_SOUND_ADD("ymsnd", YM3526, XTAL_16MHz/4)
541   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
542
543   MCFG_DAC_ADD("dac1")
544   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
545
546   MCFG_DAC_ADD("dac2")
547   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
548MACHINE_CONFIG_END
549
550514static MACHINE_CONFIG_START( ym3526, terracre_state )
551515   MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2)   // 8mhz
552516   MCFG_CPU_PROGRAM_MAP(terracre_map)
r32265r32266
557521   MCFG_CPU_IO_MAP(sound_3526_io_map)
558522   MCFG_CPU_PERIODIC_INT_DRIVER(terracre_state, irq0_line_hold,  XTAL_16MHz/4/512) // ?
559523
524   MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
525
560526   MCFG_SCREEN_ADD("screen", RASTER)
561527   MCFG_SCREEN_REFRESH_RATE( 60 )
562528   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
563529   MCFG_SCREEN_SIZE(32*8, 32*8)
564530   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
565531   MCFG_SCREEN_UPDATE_DRIVER(terracre_state, screen_update_amazon)
532   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
566533   MCFG_SCREEN_PALETTE("palette")
567534
568535   MCFG_GFXDECODE_ADD("gfxdecode", "palette", terracre)
r32265r32266
582549   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
583550MACHINE_CONFIG_END
584551
585static MACHINE_CONFIG_START( ym2203, terracre_state )
586   MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2)   // 8mhz
587   MCFG_CPU_PROGRAM_MAP(terracre_map)
588   MCFG_CPU_VBLANK_INT_DRIVER("screen", terracre_state,  irq1_line_hold)
589
590   MCFG_CPU_ADD("audiocpu", Z80, XTAL_16MHz/4)     // 4.0mhz when compared to sound recordings, should be derived from XTAL_22MHz? how?
591   MCFG_CPU_PROGRAM_MAP(sound_map)
552static MACHINE_CONFIG_DERIVED( ym2203, ym3526 )
553   MCFG_CPU_MODIFY("audiocpu")
592554   MCFG_CPU_IO_MAP(sound_2203_io_map)
593   MCFG_CPU_PERIODIC_INT_DRIVER(terracre_state, irq0_line_hold,  XTAL_16MHz/4/512) // ?
594555
595   MCFG_SCREEN_ADD("screen", RASTER)
596   MCFG_SCREEN_REFRESH_RATE(60)
597   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
598   MCFG_SCREEN_SIZE(32*8, 32*8)
599   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
600   MCFG_SCREEN_UPDATE_DRIVER(terracre_state, screen_update_amazon)
601   MCFG_SCREEN_PALETTE("palette")
556   MCFG_DEVICE_REMOVE("ymsnd")
602557
603   MCFG_GFXDECODE_ADD("gfxdecode", "palette", terracre)
604   MCFG_PALETTE_ADD("palette", 1*16+16*16+16*256)
605   MCFG_PALETTE_INDIRECT_ENTRIES(256)
606   MCFG_PALETTE_INIT_OWNER(terracre_state, terracre)
607
608   MCFG_SPEAKER_STANDARD_MONO("mono")
609
610558   MCFG_SOUND_ADD("ym1", YM2203, XTAL_16MHz/4)
611559   MCFG_SOUND_ROUTE(0, "mono", 0.20)
612560   MCFG_SOUND_ROUTE(1, "mono", 0.20)
613561   MCFG_SOUND_ROUTE(2, "mono", 0.20)
614562   MCFG_SOUND_ROUTE(3, "mono", 0.40)
563MACHINE_CONFIG_END
615564
616   MCFG_DAC_ADD("dac1")
617   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
565static MACHINE_CONFIG_DERIVED( amazon, ym3526 )
566   MCFG_CPU_MODIFY("maincpu")
567   MCFG_CPU_PROGRAM_MAP(amazon_map)
618568
619   MCFG_DAC_ADD("dac2")
620   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
569   MCFG_MACHINE_START_OVERRIDE(terracre_state,amazon)
621570MACHINE_CONFIG_END
622571
623572
trunk/src/mame/includes/terracre.h
r32265r32266
1#include "video/bufsprite.h"
2
13class terracre_state : public driver_device
24{
35public:
r32265r32266
35   terracre_state(const machine_config &mconfig, device_type type, const char *tag)
46      : driver_device(mconfig, type, tag),
5      m_spriteram(*this, "spriteram"),
6      m_amazon_videoram(*this, "amazon_videoram"),
7      m_videoram(*this, "videoram"),
87      m_maincpu(*this, "maincpu"),
98      m_gfxdecode(*this, "gfxdecode"),
10      m_palette(*this, "palette") { }
9      m_palette(*this, "palette"),
10      m_spriteram(*this, "spriteram"),
11      m_bg_videoram(*this, "bg_videoram"),
12      m_fg_videoram(*this, "fg_videoram") { }
1113
12   required_shared_ptr<UINT16> m_spriteram;
13   required_shared_ptr<UINT16> m_amazon_videoram;
14   required_shared_ptr<UINT16> m_videoram;
14   required_device<cpu_device> m_maincpu;
15   required_device<gfxdecode_device> m_gfxdecode;
16   required_device<palette_device> m_palette;
17   required_device<buffered_spriteram16_device> m_spriteram;
1518
19   required_shared_ptr<UINT16> m_bg_videoram;
20   required_shared_ptr<UINT16> m_fg_videoram;
21
1622   const UINT16 *m_mpProtData;
1723   UINT8 m_mAmazonProtCmd;
r32265r32266
4046   DECLARE_MACHINE_START(amazon);
4147   UINT32 screen_update_amazon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4248   void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
43   required_device<cpu_device> m_maincpu;
44   required_device<gfxdecode_device> m_gfxdecode;
45   required_device<palette_device> m_palette;
4649};
trunk/src/mame/video/terracre.c
r32265r32266
1515   /* xxxx.----.----.----
1616    * ----.xx--.----.----
1717    * ----.--xx.xxxx.xxxx */
18   unsigned data = m_amazon_videoram[tile_index];
18   unsigned data = m_bg_videoram[tile_index];
1919   unsigned color = data>>11;
2020   SET_TILE_INFO_MEMBER(1,data&0x3ff,color,0 );
2121}
2222
2323TILE_GET_INFO_MEMBER(terracre_state::get_fg_tile_info)
2424{
25   UINT16 *videoram = m_videoram;
26   int data = videoram[tile_index];
25   unsigned data = m_fg_videoram[tile_index];
2726   SET_TILE_INFO_MEMBER(0,data&0xff,0,0 );
2827}
2928
r32265r32266
3130{
3231   const UINT8 *spritepalettebank = memregion("user1")->base();
3332   gfx_element *pGfx = m_gfxdecode->gfx(2);
34   const UINT16 *pSource = m_spriteram;
35   int i;
33   const UINT16 *pSource = m_spriteram->buffer();
34   int flip = flip_screen();
3635   int transparent_pen;
3736
3837   if( pGfx->elements() > 0x200 )
r32265r32266
4342   {
4443      transparent_pen = 0x0;
4544   }
46   for( i=0; i<0x200; i+=8 )
45   for( int i=0; i<0x200; i+=8 )
4746   {
4847      int tile = pSource[1]&0xff;
4948      int attrs = pSource[2];
r32265r32266
7372         color += 16 * (spritepalettebank[(tile>>1)&0xff] & 0x0f);
7473      }
7574
76      if (flip_screen())
75      if (flip)
7776      {
7877            sx=240-sx;
7978            sy=240-sy;
r32265r32266
146145
147146WRITE16_MEMBER(terracre_state::amazon_background_w)
148147{
149   COMBINE_DATA( &m_amazon_videoram[offset] );
148   COMBINE_DATA( &m_bg_videoram[offset] );
150149   m_background->mark_tile_dirty(offset );
151150}
152151
153152WRITE16_MEMBER(terracre_state::amazon_foreground_w)
154153{
155   UINT16 *videoram = m_videoram;
156   COMBINE_DATA( &videoram[offset] );
154   COMBINE_DATA( &m_fg_videoram[offset] );
157155   m_foreground->mark_tile_dirty(offset );
158156}
159157

Previous 199869 Revisions Next


© 1997-2024 The MAME Team