Previous 199869 Revisions Next

r36386 Thursday 12th March, 2015 at 10:07:24 UTC by Vasantha Crabb
Little cleanup
[src/mame/drivers]goldstar.c
[src/mame/includes]goldstar.h
[src/mame/layout]crazybon.lay
[src/mame/video]goldstar.c

trunk/src/mame/drivers/goldstar.c
r244897r244898
179179WRITE8_MEMBER(goldstar_state::goldstar_lamps_w)
180180{
181181/*  bits
182  7654 3210     goldstar
183  ---- ---x     Bet Red / Card 2.
184  ---- --x-     Stop 3 / Small / Info / Card 1
185  ---- -x--     Bet Blue / Double / Card 3
186  ---- x---     Stop 1 / Take
187  ---x ----     Stop 2 / Big / Bonus
188  --x- ----     Start / Stop All / Card 4
182  7654 3210     goldstar                            crazybon
183  ---- ---x     Bet Red / Card 2
184  ---- --x-     Stop 3 / Small / Info / Card 1      Start
185  ---- -x--     Bet Blue / Double Up / Card 3
186  ---- x---     Stop 1 / Take                       Bet
187  ---x ----     Stop 2 / Big / Bonus                Stop All / Take Score
188  --x- ----     Start / Stop All / Card 4           Double Up
189  -x-- ----                                         Small / Info
190  x--- ----                                         Big
189191
190  7654 3210     cm/cmaster  cmpacman/cmtetris   tonypok         schery97        pokonl97        match98
191  ---- ---x                                                     stop/big        bet 10/big      hit/stop
192  ---- --x-     d-up        d-up                big/small       d-up            d-up
193  ---- -x--     take        take/stop           take/d-up       take/select     take/select     take
194  ---- x---     bet         bet                 bet             bet             bet 1           bet
195  ---x ----     info        info                                small           small
196  --x- ----     start       start               deal            start           start           start
192  7654 3210     cm/cmaster  cmpacman/cmtetris   tonypok     schery97        pokonl97        match98
193  ---- ---x                                                 stop/big        bet 10/big      hit/stop
194  ---- --x-     d-up        d-up                big/small   d-up            d-up
195  ---- -x--     take        take/stop           take/d-up   take/select     take/select     take
196  ---- x---     bet         bet                 bet         bet             bet 1           bet
197  ---x ----     info        info                            small           small
198  --x- ----     start       start               deal        start           start           start
197199  -x-- ----                                     hold
198200
199201  all cm/cmaster use the same scheme
r244897r244898
208210   output_set_lamp_value(4, (data >> 4) & 1);
209211   output_set_lamp_value(5, (data >> 5) & 1);
210212   output_set_lamp_value(6, (data >> 6) & 1);
213   output_set_lamp_value(7, (data >> 7) & 1);
211214
212215//  popmessage("lamps: %02X", data);
213216}
r244897r244898
692695ADDRESS_MAP_END
693696
694697
695WRITE8_MEMBER(goldstar_state::pkrmast_lamps_w)
696{
697/*  bits
698  7654 3210
699  ---- --x-  Start
700  ---- x---  Bet
701  ---x ----  Stop All / Take Score
702  --x- ----  Double Up
703  -x-- ----  Small / Info
704  x--- ----  Big
705  ---- -x-x  Unused in Crazy Bonus
706*/
707
708   output_set_lamp_value(0, (data >> 1) & 1);  /* Start */
709   output_set_lamp_value(1, (data >> 3) & 1);  /* Bet */
710   output_set_lamp_value(2, (data >> 4) & 1);  /* Stop All / Take Score */
711   output_set_lamp_value(3, (data >> 5) & 1);  /* Double Up */
712   output_set_lamp_value(4, (data >> 6) & 1);  /* Small / Info */
713   output_set_lamp_value(5, (data >> 7) & 1);  /* Big */
714
715   if (data & 0x05)
716      popmessage("lamps: %02X", data);
717}
718
719698WRITE8_MEMBER(goldstar_state::pkrmast_coincount_w)
720699{
721700/*  bits
r244897r244898
751730
752731   AM_RANGE(0x20, 0x20) AM_READ_PORT("DSW3-0")
753732   AM_RANGE(0x21, 0x21) AM_READ_PORT("DSW3-1")
754   AM_RANGE(0x22, 0x22) AM_WRITE(pkrmast_lamps_w)
733   AM_RANGE(0x22, 0x22) AM_WRITE(goldstar_lamps_w)
755734
756735   AM_RANGE(0x24, 0x24) AM_WRITE(pkrmast_coincount_w)
757736   AM_RANGE(0x25, 0x25) AM_READ_PORT("DSW1")
trunk/src/mame/includes/goldstar.h
r244897r244898
2525   DECLARE_WRITE8_MEMBER(ncb3_port81_w);
2626   DECLARE_WRITE8_MEMBER(goldstar_lamps_w);
2727   DECLARE_WRITE8_MEMBER(cb3_lamps_w);
28   DECLARE_WRITE8_MEMBER(pkrmast_lamps_w);
2928   DECLARE_WRITE8_MEMBER(pkrmast_coincount_w);
3029   DECLARE_WRITE8_MEMBER(ladylinr_outport_w);
3130   DECLARE_WRITE8_MEMBER(goldstar_fg_vidram_w);
trunk/src/mame/layout/crazybon.lay
r244897r244898
203203
204204<!-- define lamps -->
205205
206      <bezel name="lamp0" element="start_b">
206      <bezel name="lamp1" element="start_b">
207207         <bounds x="3.45" y="3.08" width="0.50" height="0.24" />
208208      </bezel>
209      <bezel name="lamp0" element="start">
209      <bezel name="lamp1" element="start">
210210         <bounds x="3.47" y="3.10" width="0.46" height="0.20" />
211211      </bezel>
212212
213213
214      <bezel name="lamp1" element="bet_b">
214      <bezel name="lamp3" element="bet_b">
215215         <bounds x="0.05" y="3.08" width="0.40" height="0.24" />
216216      </bezel>
217      <bezel name="lamp1" element="bet">
217      <bezel name="lamp3" element="bet">
218218         <bounds x="0.07" y="3.10" width="0.36" height="0.20" />
219219      </bezel>
220220
221221
222      <bezel name="lamp2" element="stop_b">
222      <bezel name="lamp4" element="stop_b">
223223         <bounds x="1.4" y="3.08" width="0.50" height="0.24" />
224224      </bezel>
225      <bezel name="lamp2" element="stop">
225      <bezel name="lamp4" element="stop">
226226         <bounds x="1.42" y="3.10" width="0.46" height="0.20" />
227227      </bezel>
228228
229229
230      <bezel name="lamp3" element="dup_b">
230      <bezel name="lamp5" element="dup_b">
231231         <bounds x="0.65" y="3.08" width="0.50" height="0.24" />
232232      </bezel>
233      <bezel name="lamp3" element="dup">
233      <bezel name="lamp5" element="dup">
234234         <bounds x="0.67" y="3.10" width="0.46" height="0.20" />
235235      </bezel>
236236
237237
238      <bezel name="lamp4" element="stop_b">
238      <bezel name="lamp6" element="stop_b">
239239         <bounds x="2.7" y="3.08" width="0.50" height="0.24" />
240240      </bezel>
241      <bezel name="lamp4" element="small">
241      <bezel name="lamp6" element="small">
242242         <bounds x="2.72" y="3.10" width="0.46" height="0.20" />
243243      </bezel>
244244
245245
246      <bezel name="lamp5" element="stop_b">
246      <bezel name="lamp7" element="stop_b">
247247         <bounds x="2.05" y="3.08" width="0.50" height="0.24" />
248248      </bezel>
249      <bezel name="lamp5" element="big">
249      <bezel name="lamp7" element="big">
250250         <bounds x="2.07" y="3.10" width="0.46" height="0.20" />
251251      </bezel>
252252
trunk/src/mame/video/goldstar.c
r244897r244898
3434
3535TILE_GET_INFO_MEMBER(goldstar_state::get_goldstar_fg_tile_info)
3636{
37   int code = m_fg_vidram[tile_index];
38   int attr = m_fg_atrram[tile_index];
37   int const code = m_fg_vidram[tile_index];
38   int const attr = m_fg_atrram[tile_index];
3939
4040   SET_TILE_INFO_MEMBER(0,
41         code | (attr & 0xf0)<<4,
42         attr&0x0f,
41         code | (attr & 0xf0) << 4,
42         attr & 0x0f,
4343         0);
4444}
4545
r244897r244898
4747// colour / high tile bits are swapped around
4848TILE_GET_INFO_MEMBER(goldstar_state::get_cherrym_fg_tile_info)
4949{
50   int code = m_fg_vidram[tile_index];
51   int attr = m_fg_atrram[tile_index];
50   int const code = m_fg_vidram[tile_index];
51   int const attr = m_fg_atrram[tile_index];
5252
5353   SET_TILE_INFO_MEMBER(0,
54         code | (attr & 0x0f)<<8,
55         (attr&0xf0)>>4,
54         code | (attr & 0x0f) << 8,
55         (attr & 0xf0) >> 4,
5656         0);
5757}
5858
r244897r244898
6666
6767TILE_GET_INFO_MEMBER(goldstar_state::get_goldstar_reel1_tile_info)
6868{
69   int code = m_reel1_ram[tile_index];
70
7169   SET_TILE_INFO_MEMBER(1,
72         code,
70         m_reel1_ram[tile_index],
7371         m_bgcolor,
7472         0);
7573}
r244897r244898
8381
8482TILE_GET_INFO_MEMBER(goldstar_state::get_goldstar_reel2_tile_info)
8583{
86   int code = m_reel2_ram[tile_index];
87
8884   SET_TILE_INFO_MEMBER(1,
89         code,
85         m_reel2_ram[tile_index],
9086         m_bgcolor,
9187         0);
9288}
r244897r244898
9995
10096TILE_GET_INFO_MEMBER(goldstar_state::get_goldstar_reel3_tile_info)
10197{
102   int code = m_reel3_ram[tile_index];
103
10498   SET_TILE_INFO_MEMBER(1,
105         code,
99         m_reel3_ram[tile_index],
106100         m_bgcolor,
107101         0);
108102}
r244897r244898
159153
160154UINT32 goldstar_state::screen_update_goldstar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
161155{
162   int i;
163
164156   bitmap.fill(m_palette->black_pen(), cliprect);
165157
166   if (!(m_cm_enable_reg &0x01))
158   if (!(m_cm_enable_reg & 0x01))
167159      return 0;
168160
169   if (m_cm_enable_reg &0x08)
161   if (m_cm_enable_reg & 0x08)
170162   {
171      for (i= 0;i < 64;i++)
163      for (int i = 0; i < 64; i++)
172164      {
173165         m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
174166         m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
175167         m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
176168      }
177169
178
179170      // are these hardcoded, or registers?
180171      const rectangle visible1(0*8, (14+48)*8-1,  4*8,  (4+7)*8-1);
181172      const rectangle visible2(0*8, (14+48)*8-1, 12*8, (12+7)*8-1);
r244897r244898
186177      m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0);
187178   }
188179
189   if (m_cm_enable_reg &0x04)
180   if (m_cm_enable_reg & 0x04)
190181   {
191182      if (memregion("user1")->base())
192183      {
193184         gfx_element *gfx = m_gfxdecode->gfx(2);
194         int girlyscroll = (INT8)((m_cm_girl_scroll & 0xf0));
195         int girlxscroll = (INT8)((m_cm_girl_scroll & 0x0f)<<4);
185         int const girlyscroll = (INT8)((m_cm_girl_scroll & 0xf0));
186         int const girlxscroll = (INT8)((m_cm_girl_scroll & 0x0f) << 4);
196187
197188         gfx->zoom_transpen(bitmap,cliprect,m_cmaster_girl_num,m_cmaster_girl_pal,0,0,-(girlxscroll*2),-(girlyscroll), 0x20000, 0x10000,0);
198189      }
199190   }
200191
201   if (m_cm_enable_reg &0x02)
202   {
192   if (m_cm_enable_reg & 0x02)
203193      m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
204   }
205194
206195   return 0;
207196}
r244897r244898
209198
210199UINT32 goldstar_state::screen_update_cmast91(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
211200{
212   int i;
213
214201   bitmap.fill(m_palette->black_pen(), cliprect);
215202
216   if (!(m_cm_enable_reg &0x01))
203   if (!(m_cm_enable_reg & 0x01))
217204      return 0;
218205
219   if (m_cm_enable_reg &0x08)
206   if (m_cm_enable_reg & 0x08)
220207   {
221      for (i= 0;i < 64;i++)
208      for (int i = 0; i < 64; i++)
222209      {
223210         m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
224211         m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
225212         m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
226213      }
227214
228      const rectangle visible1(0*8, (14+48)*8-1, 4*8,  (4+7)*8-1);    /* same start for reel1 */
215      const rectangle visible1(0*8, (14+48)*8-1, 4*8,  (4+7)*8-1);   /* same start for reel1 */
229216      const rectangle visible2(0*8, (14+48)*8-1, 11*8, (12+7)*8-1);   /* 4 pixels less for reel2 */
230217      const rectangle visible3(0*8, (14+48)*8-1, 19*8, (19+7)*8-1);   /* 8 pixels less for reel3 */
231218
r244897r244898
234221      m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0);
235222   }
236223
237   if (m_cm_enable_reg &0x02)
238   {
224   if (m_cm_enable_reg & 0x02)
239225      m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
240   }
241226
242227   return 0;
243228}
r244897r244898
287272
288273
289274   */
290   m_cmaster_girl_num = (data >> 4)&0x7;
291   m_cmaster_girl_pal = (data >> 2)&0x3;
275   m_cmaster_girl_num = (data >> 4) & 0x7;
276   m_cmaster_girl_pal = (data >> 2) & 0x3;
292277
293278   //bgcolor = (data & 0x03) >> 0;
294279
r244897r244898
310295
311296UINT32 cmaster_state::screen_update_amcoe1a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
312297{
313   int i;
314
315298   bitmap.fill(m_palette->black_pen(), cliprect);
316299
317   if (!(m_cm_enable_reg &0x01))
300   if (!(m_cm_enable_reg & 0x01))
318301      return 0;
319302
320   if (m_cm_enable_reg &0x08)
303   if (m_cm_enable_reg & 0x08)
321304   {
322      for (i= 0;i < 64;i++)
305      for (int i= 0;i < 64;i++)
323306      {
324307         m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
325308         m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
326309         m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
327310      }
328311
329      const rectangle visible1(0*8, (14+48)*8-1,  4*8,  (4+6)*8-1);
330      const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+6)*8-1);
331      const rectangle visible3(0*8, (14+48)*8-1, 16*8, (16+6)*8-1);
312      rectangle const visible1(0*8, (14+48)*8-1,  4*8,  (4+6)*8-1);
313      rectangle const visible2(0*8, (14+48)*8-1, 10*8, (10+6)*8-1);
314      rectangle const visible3(0*8, (14+48)*8-1, 16*8, (16+6)*8-1);
332315
333316      m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0);
334317      m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0);
335318      m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0);
336319   }
337320
338   if (m_cm_enable_reg &0x04)
321   if (m_cm_enable_reg & 0x04)
339322   {
340323      // no girls
341324   }
342325
343   if (m_cm_enable_reg &0x02)
344   {
326   if (m_cm_enable_reg & 0x02)
345327      m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
346   }
347328
348329   return 0;
349330}
r244897r244898
352333
353334TILE_GET_INFO_MEMBER(wingco_state::get_magical_fg_tile_info)
354335{
355   int code = m_fg_vidram[tile_index];
356   int attr = m_fg_atrram[tile_index];
336   int const code = m_fg_vidram[tile_index];
337   int const attr = m_fg_atrram[tile_index];
357338
358339   SET_TILE_INFO_MEMBER(0,
359         (code | (attr & 0xf0)<<4)+m_tile_bank*0x1000,
360         attr&0x0f,
340         (code | (attr & 0xf0)<<4) + (m_tile_bank * 0x1000),
341         attr & 0x0f,
361342         0);
362343}
363344
r244897r244898
395376
396377UINT32 wingco_state::screen_update_bingowng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
397378{
398   int i;
399
400379   bitmap.fill(m_palette->black_pen(), cliprect);
401380
402   if (!(m_cm_enable_reg &0x01))
381   if (!(m_cm_enable_reg & 0x01))
403382      return 0;
404383
405   if (m_cm_enable_reg &0x08)
384   if (m_cm_enable_reg & 0x08)
406385   {
407      for (i= 0;i < 64;i++)
386      for (int i = 0; i < 64; i++)
408387      {
409388         m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
410389      }
411390
412
413      const rectangle visible1(0*8, (14+48)*8-1,  3*8,  (4+7)*8-1);
391      rectangle const visible1(0*8, (14+48)*8-1,  3*8,  (4+7)*8-1);
414392      m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0);
415393   }
416394
417   if (m_cm_enable_reg &0x04)
395   if (m_cm_enable_reg & 0x04)
418396   {
419397      if (memregion("user1")->base())
420398      {
421399         gfx_element *gfx = m_gfxdecode->gfx(2);
422         int girlyscroll = (INT8)((m_cm_girl_scroll & 0xf0));
423         int girlxscroll = (INT8)((m_cm_girl_scroll & 0x0f)<<4);
400         int const girlyscroll = (INT8)((m_cm_girl_scroll & 0xf0));
401         int const girlxscroll = (INT8)((m_cm_girl_scroll & 0x0f)<<4);
424402
425403         gfx->zoom_transpen(bitmap,cliprect,m_cmaster_girl_num,m_cmaster_girl_pal,0,0,-(girlxscroll*2),-(girlyscroll), 0x20000, 0x10000,0);
426404      }
427405   }
428406
429   if (m_cm_enable_reg &0x02)
407   if (m_cm_enable_reg & 0x02)
430408   {
431409      m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
432410   }
r244897r244898
436414
437415UINT32 wingco_state::screen_update_magical(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
438416{
439   int i;
440
441417   bitmap.fill(m_palette->black_pen(), cliprect);
442418
443   if (!(m_cm_enable_reg &0x01))
419   if (!(m_cm_enable_reg & 0x01))
444420      return 0;
445421
446   if (m_cm_enable_reg &0x08)
422   if (m_cm_enable_reg & 0x08)
447423   {
448424      // guess, could be wrong, but different screens clearly need different reel layouts
449425      if (m_vidreg & 2)
450426      {
451         for (i= 0;i < 32;i++)
427         for (int i = 0; i < 32; i++)
452428         {
453429            m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
454430            m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
455431         //  m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i*2]);
456432         }
457433
434         rectangle const visible1alt(0*8, (16+48)*8-1,  4*8,  16*8-1);
435         rectangle const visible2alt(0*8, (16+48)*8-1, 16*8,  28*8-1);
458436
459         const rectangle visible1alt(0*8, (16+48)*8-1,  4*8,  16*8-1);
460         const rectangle visible2alt(0*8, (16+48)*8-1, 16*8,  28*8-1);
461
462437         m_reel1_tilemap->draw(screen, bitmap, visible1alt, 0, 0);
463438         m_reel2_tilemap->draw(screen, bitmap, visible2alt, 0, 0);
464439         //m_reel3_tilemap->draw(screen, bitmap, &magical_visible3, 0, 0);
465440      }
466441      else
467442      {
468         for (i= 0;i < 32;i++)
443         for (int i = 0; i < 32; i++)
469444         {
470445            m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
471446            m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
472447            m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i*2]);
473448         }
474449
450         rectangle const visible1(0*8, (14+48)*8-1,  4*8,  (4+8)*8-1);
451         rectangle const visible2(0*8, (14+48)*8-1, 12*8, (12+8)*8-1);
452         rectangle const visible3(0*8, (14+48)*8-1, 20*8, (20+8)*8-1);
475453
476         const rectangle visible1(0*8, (14+48)*8-1,  4*8,  (4+8)*8-1);
477         const rectangle visible2(0*8, (14+48)*8-1, 12*8, (12+8)*8-1);
478         const rectangle visible3(0*8, (14+48)*8-1, 20*8, (20+8)*8-1);
479
480454         m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0);
481455         m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0);
482456         m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0);
483457      }
484458   }
485459
486   if (m_cm_enable_reg &0x02)
487   {
460   if (m_cm_enable_reg & 0x02)
488461      m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
489   }
490462
491463   return 0;
492464}
r244897r244898
538510
539511TILE_GET_INFO_MEMBER(sanghopm_state::get_fg_tile_info)
540512{
541   int code = m_fg_vidram[tile_index];
542   int attr = m_fg_atrram[tile_index];
513   int const code = m_fg_vidram[tile_index];
514   int const attr = m_fg_atrram[tile_index];
543515
544516   SET_TILE_INFO_MEMBER(0,
545517         code | (attr & 0x0f)<<8,
546         (attr&0x70)>>4,
518         (attr & 0x70) >> 4,
547519         0);
548520}
549521
550522TILE_GET_INFO_MEMBER(sanghopm_state::get_bg_tile_info)
551523{
552   int code = m_bg_vidram[tile_index];
553   int attr = m_bg_atrram[tile_index];
524   int const code = m_bg_vidram[tile_index];
525   int const attr = m_bg_atrram[tile_index];
554526
555527   SET_TILE_INFO_MEMBER(1,
556528         code | (attr & 0x0f)<<8,
557         (attr&0x70)>>4,
529         (attr & 0x70) >> 4,
558530         0);
559531}
560532
561533TILE_GET_INFO_MEMBER(sanghopm_state::get_reel1_tile_info)
562534{
563   int code = m_reel1_ram[tile_index];
564   int attr = m_reel1_attrram[tile_index];
535   int const code = m_reel1_ram[tile_index];
536   int const attr = m_reel1_attrram[tile_index];
565537
566538   SET_TILE_INFO_MEMBER(1,
567539         code | (attr & 0x0f)<<8,
568         (attr&0x70)>>4,
540         (attr & 0x70) >> 4,
569541         0);
570542}
571543
572544TILE_GET_INFO_MEMBER(sanghopm_state::get_reel2_tile_info)
573545{
574   int code = m_reel2_ram[tile_index];
575   int attr = m_reel2_attrram[tile_index];
546   int const code = m_reel2_ram[tile_index];
547   int const attr = m_reel2_attrram[tile_index];
576548
577549   SET_TILE_INFO_MEMBER(1,
578550         code | (attr & 0x0f)<<8,
579         (attr&0x70)>>4,
551         (attr & 0x70)>>4,
580552         0);
581553}
582554
583555TILE_GET_INFO_MEMBER(sanghopm_state::get_reel3_tile_info)
584556{
585   int code = m_reel3_ram[tile_index];
586   int attr = m_reel3_attrram[tile_index];
557   int const code = m_reel3_ram[tile_index];
558   int const attr = m_reel3_attrram[tile_index];
587559
588560   SET_TILE_INFO_MEMBER(1,
589561         code | (attr & 0x0f)<<8,
590         (attr&0x70)>>4,
562         (attr & 0x70)>>4,
591563         0);
592564}
593565
r244897r244898
611583
612584UINT32 sanghopm_state::screen_update_sangho(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
613585{
614   int i;
615
616586   bitmap.fill(m_palette->black_pen(), cliprect);
617587
618   if (m_enable_reg & 0x01)
619   {
620      /* disable reels (only render bg and fg layers) */
621      m_bg_tilemap->set_scrolly(0, -16);
622      m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
623      m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
588   m_bg_tilemap->set_scrolly(0, -16);
589   m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
624590
625      return 0;
626   }
627   else
591   /* enable reels (render all the five layers) */
592   if (!(m_enable_reg & 0x01))
628593   {
629      /* enable reels (render all the five layers) */
630      m_bg_tilemap->set_scrolly(0, -16);
631      m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
632
633      for (i= 0;i < 64;i++)
594      for (int i = 0; i < 64;i++)
634595      {
635596         m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
636597         m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
r244897r244898
638599      }
639600
640601      // are these hardcoded, or registers?
641      const rectangle visible1(0*8, (15+48)*8-1,  4*8,  (4+7)*8-1);
642      const rectangle visible2(0*8, (15+48)*8-1, 12*8, (12+7)*8-1);
643      const rectangle visible3(0*8, (15+48)*8-1, 20*8, (20+7)*8-1);
602      rectangle const visible1(0*8, (15+48)*8-1,  4*8,  (4+7)*8-1);
603      rectangle const visible2(0*8, (15+48)*8-1, 12*8, (12+7)*8-1);
604      rectangle const visible3(0*8, (15+48)*8-1, 20*8, (20+7)*8-1);
644605
645606      m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0);
646607      m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0);
647608      m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0);
648
649      m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
650609   }
651610
611   m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
612
652613   return 0;
653614}
654615
r244897r244898
676637
677638TILE_GET_INFO_MEMBER(unkch_state::get_reel1_tile_info)
678639{
679   int code = m_reel1_ram[tile_index];
680   int attr = m_reel1_attrram[tile_index];
640   int const code = m_reel1_ram[tile_index];
641   int const attr = m_reel1_attrram[tile_index];
681642
682643   SET_TILE_INFO_MEMBER(1,
683644         code | (attr & 0x0f)<<8,
684         (attr&0xf0)>>4,
645         (attr & 0xf0) >> 4,
685646         0);
686647}
687648
688649TILE_GET_INFO_MEMBER(unkch_state::get_reel2_tile_info)
689650{
690   int code = m_reel2_ram[tile_index];
691   int attr = m_reel2_attrram[tile_index];
651   int const code = m_reel2_ram[tile_index];
652   int const attr = m_reel2_attrram[tile_index];
692653
693654   SET_TILE_INFO_MEMBER(1,
694655         code | (attr & 0x0f)<<8,
695         (attr&0xf0)>>4,
656         (attr & 0xf0) >> 4,
696657         0);
697658}
698659
699660TILE_GET_INFO_MEMBER(unkch_state::get_reel3_tile_info)
700661{
701   int code = m_reel3_ram[tile_index];
702   int attr = m_reel3_attrram[tile_index];
662   int const code = m_reel3_ram[tile_index];
663   int const attr = m_reel3_attrram[tile_index];
703664
704665   SET_TILE_INFO_MEMBER(1,
705666         code | (attr & 0x0f)<<8,
706         (attr&0xf0)>>4,
667         (attr & 0xf0) >> 4,
707668         0);
708669}
709670
r244897r244898
730691
731692UINT32 unkch_state::screen_update_unkch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
732693{
733   int i;
734
735694   bitmap.fill(m_palette->black_pen(), cliprect);
736695
737   if (!(m_cm_enable_reg &0x01))
696   if (!(m_cm_enable_reg & 0x01))
738697      return 0;
739698
740   if (m_cm_enable_reg &0x08)
699   if (m_cm_enable_reg & 0x08)
741700   {
742701      // guess, this could be something else completely!!
743702      // only draw the first 'reels' tilemap, but fullscreen, using alt registers? (or no scrolling at all? - doubtful, see girl)
744703      if (m_vidreg & 0x40)
745704      {
746         for (i= 0;i < 32;i++)
705         for (int i = 0; i < 32; i++)
747706         {
748707            m_reel1_tilemap->set_scrolly(i, -0x08/*m_reel1_scroll[(i*2)+1]*/);
749708         //  m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[(i*2)+1]);
r244897r244898
756715      // or draw the reels normally?
757716      else
758717      {
759         for (i= 0;i < 32;i++)
718         for (int i= 0; i < 32; i++)
760719         {
761720            m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
762721            m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
r244897r244898
773732      }
774733   }
775734
776   if (m_cm_enable_reg &0x02)
777   {
735   if (m_cm_enable_reg & 0x02)
778736      m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
779   }
780737
781738   return 0;
782739}


Previous 199869 Revisions Next


© 1997-2024 The MAME Team