Previous 199869 Revisions Next

r20767 Wednesday 6th February, 2013 at 10:41:17 UTC by David Haywood
hook up the palette (nw)
[src/mame/drivers]fresh.c

trunk/src/mame/drivers/fresh.c
r20766r20767
3131      : driver_device(mconfig, type, tag) ,
3232      m_bg_videoram(*this, "bg_videoram"),
3333      m_bg_2_videoram(*this, "bg_videoram_2"),
34      m_attr_videoram(*this, "attr_videoram"),
35      m_attr_2_videoram(*this, "attr_videoram_2"),
3436      m_paletteram_1(*this, "paletteram_1"),
3537      m_paletteram_2(*this, "paletteram_2")
3638   
r20766r20767
4143
4244   required_shared_ptr<UINT16> m_bg_videoram;
4345   required_shared_ptr<UINT16> m_bg_2_videoram;
46   required_shared_ptr<UINT16> m_attr_videoram;
47   required_shared_ptr<UINT16> m_attr_2_videoram;
4448
4549   required_shared_ptr<UINT16> m_paletteram_1;
4650   required_shared_ptr<UINT16> m_paletteram_2;
4751
4852   DECLARE_WRITE16_MEMBER(fresh_bg_videoram_w);
53   DECLARE_WRITE16_MEMBER(fresh_attr_videoram_w);
4954   TILE_GET_INFO_MEMBER(get_fresh_bg_tile_info);
5055   DECLARE_WRITE16_MEMBER(fresh_bg_2_videoram_w);
56   DECLARE_WRITE16_MEMBER(fresh_attr_2_videoram_w);
5157   TILE_GET_INFO_MEMBER(get_fresh_bg_2_tile_info);
5258
59   DECLARE_WRITE16_MEMBER(fresh_paletteram_1_w);
60   DECLARE_WRITE16_MEMBER(fresh_paletteram_2_w);
61
62   void update_palette(int offset);
63
5364   DECLARE_READ16_MEMBER( unk_r )
5465   {
5566      return machine().rand();
r20766r20767
6980
7081TILE_GET_INFO_MEMBER(fresh_state::get_fresh_bg_tile_info)
7182{
72   int tileno;
83   int tileno, pal;
7384   tileno = m_bg_videoram[tile_index];
74   SET_TILE_INFO_MEMBER(1, tileno, 0, 0);
85   pal = m_attr_videoram[tile_index];
86   SET_TILE_INFO_MEMBER(1, tileno, pal, 0);
7587}
7688
7789
r20766r20767
8193   m_bg_tilemap->mark_tile_dirty(offset);
8294}
8395
96WRITE16_MEMBER(fresh_state::fresh_attr_videoram_w)
97{
98   COMBINE_DATA(&m_attr_videoram[offset]);
99   m_bg_tilemap->mark_tile_dirty(offset);
100}
101
102
84103TILE_GET_INFO_MEMBER(fresh_state::get_fresh_bg_2_tile_info)
85104{
86   int tileno;
105   int tileno, pal;
87106   tileno = m_bg_2_videoram[tile_index];
88   SET_TILE_INFO_MEMBER(0, tileno, 0, 0);
107   pal = m_attr_2_videoram[tile_index];
108   SET_TILE_INFO_MEMBER(0, tileno, pal, 0);
89109}
90110
91111
r20766r20767
95115   m_bg_2_tilemap->mark_tile_dirty(offset);
96116}
97117
118WRITE16_MEMBER(fresh_state::fresh_attr_2_videoram_w)
119{
120   COMBINE_DATA(&m_attr_2_videoram[offset]);
121   m_bg_2_tilemap->mark_tile_dirty(offset);
122}
98123
99124
125void fresh_state::update_palette( int offset )
126{
127   UINT16 pal1 = m_paletteram_1[offset];
128   UINT8 pal2 = m_paletteram_2[offset];
129
130   palette_set_color(machine(),offset,MAKE_RGB(pal1&0xff,(pal1>>8)&0xff,pal2));
131}
132
133WRITE16_MEMBER(fresh_state::fresh_paletteram_1_w)
134{
135   COMBINE_DATA(&m_paletteram_1[offset]);
136   update_palette(offset);
137}
138
139WRITE16_MEMBER(fresh_state::fresh_paletteram_2_w)
140{
141   COMBINE_DATA(&m_paletteram_2[offset]);
142   update_palette(offset);
143}
144
145
146
147
100148void fresh_state::video_start()
101149{
102150   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(fresh_state::get_fresh_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8,  64, 512);
r20766r20767
118166   AM_RANGE(0x000000, 0x03ffff) AM_ROM
119167
120168   AM_RANGE(0xC00000, 0xC0ffff) AM_RAM_WRITE( fresh_bg_2_videoram_w ) AM_SHARE( "bg_videoram_2" )
121   AM_RANGE(0xC10000, 0xC1ffff) AM_RAM
169   AM_RANGE(0xC10000, 0xC1ffff) AM_RAM_WRITE( fresh_attr_2_videoram_w ) AM_SHARE( "attr_videoram_2" )
122170   AM_RANGE(0xC20000, 0xC2ffff) AM_RAM_WRITE( fresh_bg_videoram_w ) AM_SHARE( "bg_videoram" )
123   AM_RANGE(0xC30000, 0xC3ffff) AM_RAM
171   AM_RANGE(0xC30000, 0xC3ffff) AM_RAM_WRITE( fresh_attr_videoram_w ) AM_SHARE( "attr_videoram" )
124172
125173
126174   // written together
127   AM_RANGE(0xC40000, 0xC417ff) AM_RAM AM_SHARE( "paletteram_1" ) // 16-bit
128   AM_RANGE(0xC50000, 0xC517ff) AM_RAM AM_SHARE( "paletteram_2" ) // 8-bit
175   AM_RANGE(0xC40000, 0xC417ff) AM_RAM_WRITE(fresh_paletteram_1_w) AM_SHARE( "paletteram_1" ) // 16-bit
176   AM_RANGE(0xC50000, 0xC517ff) AM_RAM_WRITE(fresh_paletteram_2_w) AM_SHARE( "paletteram_2" ) // 8-bit
129177
130178   AM_RANGE(0xD40000, 0xD40001) AM_READ_PORT("IN0")
131179   AM_RANGE(0xD70000, 0xD70001) AM_READ_PORT("IN1")
r20766r20767
558606
559607
560608static GFXDECODE_START( fresh )
561   GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 2 )
562   GFXDECODE_ENTRY( "gfx2", 0, tiles8x8_layout, 0, 2 )
609   GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 16 )
610   GFXDECODE_ENTRY( "gfx2", 0, tiles8x8_layout, 0, 16 )
563611GFXDECODE_END
564612
565613
r20766r20767
594642   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
595643   MCFG_SCREEN_UPDATE_DRIVER(fresh_state, screen_update_fresh)
596644
597   MCFG_PALETTE_LENGTH(0x200)
645   MCFG_PALETTE_LENGTH(0x1000) // or 0xc00
598646   MCFG_GFXDECODE(fresh)
599647
600648   /* sound hw? */
r20766r20767
616664
617665
618666
619
620GAME( 1996, fresh, 0, fresh, fresh, driver_device, 0, ROT0, "Chain Leisure", "Fruit Fresh", GAME_NOT_WORKING|GAME_NO_SOUND )
667// title shows Fruit Fresh but on resetting you get text strings of 'Dream World V2.41SI 97. 1.28'
668GAME( 1996, fresh, 0, fresh, fresh, driver_device, 0, ROT0, "Chain Leisure", "Fruit Fresh (Italy)", GAME_NOT_WORKING|GAME_NO_SOUND )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team