Previous 199869 Revisions Next

r36335 Monday 9th March, 2015 at 04:38:03 UTC by Vasantha Crabb
Move Wing Co stuff out to a different class
[src/mame/drivers]goldstar.c
[src/mame/includes]goldstar.h
[src/mame/video]goldstar.c

trunk/src/mame/drivers/goldstar.c
r244846r244847
785785   AM_RANGE(0xf800, 0xffff) AM_RAM
786786ADDRESS_MAP_END
787787
788WRITE8_MEMBER(goldstar_state::magodds_outb850_w)
788WRITE8_MEMBER(wingco_state::magodds_outb850_w)
789789{
790790   // guess, could be wrong, this might just be lights
791791
r244846r244847
801801
802802}
803803
804WRITE8_MEMBER(goldstar_state::magodds_outb860_w)
804WRITE8_MEMBER(wingco_state::magodds_outb860_w)
805805{
806806//  popmessage("magodds_outb860_w %02x\n", data);
807807}
808808
809static ADDRESS_MAP_START(magodds_map, AS_PROGRAM, 8, goldstar_state )
809static ADDRESS_MAP_START( magodds_map, AS_PROGRAM, 8, wingco_state )
810810   AM_RANGE(0x0000, 0x7fff) AM_ROM
811811   // where does the extra rom data map?? it seems like it should come straight after the existing rom, but it can't if this is a plain z80?
812812   AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram")
r244846r244847
958958{
959959   //popmessage("unkcm_0x03_w %02x", data);
960960
961   m_unkch_vidreg = data;
961   m_vidreg = data;
962962
963963   // -x-- ----   seems to toggle when a 'normal' tilemap should be displayed instead of the reels?
964964}
r244846r244847
74777477GFXDECODE_END
74787478
74797479
7480WRITE8_MEMBER(goldstar_state::system_outputa_w)
7480WRITE8_MEMBER(wingco_state::system_outputa_w)
74817481{
74827482   //popmessage("system_outputa_w %02x",data);
74837483}
74847484
74857485
7486WRITE8_MEMBER(goldstar_state::system_outputb_w)
7486WRITE8_MEMBER(wingco_state::system_outputb_w)
74877487{
74887488   //popmessage("system_outputb_w %02x",data);
74897489}
74907490
74917491
7492WRITE8_MEMBER(goldstar_state::system_outputc_w)
7492WRITE8_MEMBER(wingco_state::system_outputc_w)
74937493{
7494   m_lucky8_nmi_enable = data & 8;
7495   m_unkch_vidreg = data & 2;
7494   m_nmi_enable = data & 8;
7495   m_vidreg = data & 2;
74967496   //popmessage("system_outputc_w %02x",data);
74977497}
74987498
r244846r244847
77637763   }
77647764}
77657765
7766PALETTE_INIT_MEMBER(goldstar_state,lucky8)
7766PALETTE_INIT_MEMBER(goldstar_state, lucky8)
77677767{
77687768   /* BBGGGRRR */
77697769
r244846r244847
81718171   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
81728172MACHINE_CONFIG_END
81738173
8174INTERRUPT_GEN_MEMBER(goldstar_state::lucky8_irq)
8174INTERRUPT_GEN_MEMBER(wingco_state::masked_irq)
81758175{
8176   if(m_lucky8_nmi_enable)
8176   if (m_nmi_enable)
81778177      device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
81788178}
81798179
8180static MACHINE_CONFIG_START( lucky8, goldstar_state )
8180static MACHINE_CONFIG_START( lucky8, wingco_state )
81818181
81828182   /* basic machine hardware */
81838183   MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK)
81848184   MCFG_CPU_PROGRAM_MAP(lucky8_map)
81858185   //MCFG_CPU_IO_MAP(goldstar_readport)
8186   MCFG_CPU_VBLANK_INT_DRIVER("screen", goldstar_state, lucky8_irq)
8186   MCFG_CPU_VBLANK_INT_DRIVER("screen", wingco_state, masked_irq)
81878187
81888188   MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
81898189   MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
r244846r244847
81978197
81988198   MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
81998199   MCFG_I8255_IN_PORTA_CB(IOPORT("DSW2"))
8200   MCFG_I8255_OUT_PORTA_CB(WRITE8(goldstar_state, system_outputa_w))
8201   MCFG_I8255_OUT_PORTB_CB(WRITE8(goldstar_state, system_outputb_w))
8202   MCFG_I8255_OUT_PORTC_CB(WRITE8(goldstar_state, system_outputc_w))
8200   MCFG_I8255_OUT_PORTA_CB(WRITE8(wingco_state, system_outputa_w))
8201   MCFG_I8255_OUT_PORTB_CB(WRITE8(wingco_state, system_outputb_w))
8202   MCFG_I8255_OUT_PORTC_CB(WRITE8(wingco_state, system_outputc_w))
82038203
82048204   /* video hardware */
82058205   MCFG_SCREEN_ADD("screen", RASTER)
r244846r244847
82138213   MCFG_GFXDECODE_ADD("gfxdecode", "palette", ncb3)
82148214   MCFG_PALETTE_ADD("palette", 256)
82158215   MCFG_PALETTE_FORMAT(BBGGGRRR)
8216   MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
8216   MCFG_PALETTE_INIT_OWNER(goldstar_state, lucky8)
82178217   MCFG_NVRAM_ADD_1FILL("nvram")
82188218
82198219   MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
r244846r244847
82328232   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
82338233MACHINE_CONFIG_END
82348234
8235static MACHINE_CONFIG_START( bingowng, goldstar_state )
8235static MACHINE_CONFIG_START( bingowng, wingco_state )
82368236
82378237   /* basic machine hardware */
82388238   MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK)
82398239   MCFG_CPU_PROGRAM_MAP(lucky8_map)
82408240   //MCFG_CPU_IO_MAP(goldstar_readport)
8241   MCFG_CPU_VBLANK_INT_DRIVER("screen", goldstar_state,  lucky8_irq)
8241   MCFG_CPU_VBLANK_INT_DRIVER("screen", wingco_state,  masked_irq)
82428242
82438243   MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
82448244   MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
r244846r244847
82528252
82538253   MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
82548254   MCFG_I8255_IN_PORTA_CB(IOPORT("DSW2"))
8255   MCFG_I8255_OUT_PORTA_CB(WRITE8(goldstar_state, system_outputa_w))
8256   MCFG_I8255_OUT_PORTB_CB(WRITE8(goldstar_state, system_outputb_w))
8257   MCFG_I8255_OUT_PORTC_CB(WRITE8(goldstar_state, system_outputc_w))
8255   MCFG_I8255_OUT_PORTA_CB(WRITE8(wingco_state, system_outputa_w))
8256   MCFG_I8255_OUT_PORTB_CB(WRITE8(wingco_state, system_outputb_w))
8257   MCFG_I8255_OUT_PORTC_CB(WRITE8(wingco_state, system_outputc_w))
82588258
82598259   /* video hardware */
82608260   MCFG_SCREEN_ADD("screen", RASTER)
r244846r244847
82628262//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
82638263   MCFG_SCREEN_SIZE(64*8, 32*8)
82648264   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
8265   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_bingowng)
8265   MCFG_SCREEN_UPDATE_DRIVER(wingco_state, screen_update_bingowng)
82668266   MCFG_SCREEN_PALETTE("palette")
82678267
82688268   MCFG_GFXDECODE_ADD("gfxdecode", "palette", ncb3)
r244846r244847
82708270   MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
82718271   MCFG_NVRAM_ADD_1FILL("nvram")
82728272
8273   MCFG_VIDEO_START_OVERRIDE(goldstar_state,bingowng)
8273   MCFG_VIDEO_START_OVERRIDE(wingco_state, bingowng)
82748274
82758275   /* sound hardware */
82768276   MCFG_SPEAKER_STANDARD_MONO("mono")
r244846r244847
82868286   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
82878287MACHINE_CONFIG_END
82888288
8289static MACHINE_CONFIG_START( bingownga, goldstar_state )
8290
8291   /* basic machine hardware */
8292   MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK)
8293   MCFG_CPU_PROGRAM_MAP(lucky8_map)
8294   //MCFG_CPU_IO_MAP(goldstar_readport)
8295   MCFG_CPU_VBLANK_INT_DRIVER("screen", goldstar_state,  lucky8_irq)
8296
8297   MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
8298   MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
8299   MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
8300   MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
8301
8302   MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
8303   MCFG_I8255_IN_PORTA_CB(IOPORT("IN3"))
8304   MCFG_I8255_IN_PORTB_CB(IOPORT("IN4"))
8305   MCFG_I8255_IN_PORTC_CB(IOPORT("DSW1"))
8306
8307   MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
8308   MCFG_I8255_IN_PORTA_CB(IOPORT("DSW2"))
8309   MCFG_I8255_OUT_PORTA_CB(WRITE8(goldstar_state, system_outputa_w))
8310   MCFG_I8255_OUT_PORTB_CB(WRITE8(goldstar_state, system_outputb_w))
8311   MCFG_I8255_OUT_PORTC_CB(WRITE8(goldstar_state, system_outputc_w))
8312
8313   /* video hardware */
8314   MCFG_SCREEN_ADD("screen", RASTER)
8315   MCFG_SCREEN_REFRESH_RATE(60)
8316//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
8317   MCFG_SCREEN_SIZE(64*8, 32*8)
8318   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
8319   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_bingowng)
8320   MCFG_SCREEN_PALETTE("palette")
8321
8322   MCFG_GFXDECODE_ADD("gfxdecode", "palette", bingownga)       /* GFX Decode is the only difference with the parent machine */
8323   MCFG_PALETTE_ADD("palette", 256)
8324   MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
8325   MCFG_NVRAM_ADD_1FILL("nvram")
8326
8327   MCFG_VIDEO_START_OVERRIDE(goldstar_state,bingowng)
8328
8329   /* sound hardware */
8330   MCFG_SPEAKER_STANDARD_MONO("mono")
8331
8332   MCFG_SOUND_ADD("snsnd", SN76489, PSG_CLOCK)
8333   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
8334
8335   MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
8336   MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW3"))
8337   MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW4"))
8338   MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(goldstar_state, ay8910_outputa_w))
8339   MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(goldstar_state, ay8910_outputb_w))
8340   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
8289static MACHINE_CONFIG_DERIVED( bingownga, bingowng )
8290   MCFG_GFXDECODE_MODIFY("gfxdecode", bingownga)
83418291MACHINE_CONFIG_END
83428292
8343PALETTE_INIT_MEMBER(goldstar_state,magodds)
8293PALETTE_INIT_MEMBER(wingco_state, magodds)
83448294{
83458295   int i;
83468296   for (i = 0; i < 0x100; i++)
r244846r244847
83578307   }
83588308}
83598309
8360static MACHINE_CONFIG_START( magodds, goldstar_state )
8310static MACHINE_CONFIG_START( magodds, wingco_state )
83618311
83628312   /* basic machine hardware */
83638313   MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK)
83648314   MCFG_CPU_PROGRAM_MAP(magodds_map)
83658315   //MCFG_CPU_IO_MAP(goldstar_readport)
8366   MCFG_CPU_VBLANK_INT_DRIVER("screen", goldstar_state,  lucky8_irq)
8316   MCFG_CPU_VBLANK_INT_DRIVER("screen", wingco_state,  masked_irq)
83678317
83688318   MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
83698319   MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
r244846r244847
83778327
83788328   MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
83798329   MCFG_I8255_IN_PORTA_CB(IOPORT("DSW2"))
8380   MCFG_I8255_OUT_PORTA_CB(WRITE8(goldstar_state, system_outputa_w))
8381   MCFG_I8255_OUT_PORTB_CB(WRITE8(goldstar_state, system_outputb_w))
8382   MCFG_I8255_OUT_PORTC_CB(WRITE8(goldstar_state, system_outputc_w))
8330   MCFG_I8255_OUT_PORTA_CB(WRITE8(wingco_state, system_outputa_w))
8331   MCFG_I8255_OUT_PORTB_CB(WRITE8(wingco_state, system_outputb_w))
8332   MCFG_I8255_OUT_PORTC_CB(WRITE8(wingco_state, system_outputc_w))
83838333
83848334   /* video hardware */
83858335   MCFG_SCREEN_ADD("screen", RASTER)
r244846r244847
83878337//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
83888338   MCFG_SCREEN_SIZE(64*8, 32*8)
83898339   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
8390   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_magical)
8340   MCFG_SCREEN_UPDATE_DRIVER(wingco_state, screen_update_magical)
83918341   MCFG_SCREEN_PALETTE("palette")
83928342
83938343   MCFG_GFXDECODE_ADD("gfxdecode", "palette", magodds)
83948344   MCFG_PALETTE_ADD("palette", 256)
8395   MCFG_PALETTE_INIT_OWNER(goldstar_state,magodds)
8345   MCFG_PALETTE_INIT_OWNER(wingco_state, magodds)
83968346   MCFG_NVRAM_ADD_1FILL("nvram")
83978347
8398   MCFG_VIDEO_START_OVERRIDE(goldstar_state,magical)
8348   MCFG_VIDEO_START_OVERRIDE(wingco_state, magical)
83998349
84008350   /* sound hardware */
84018351   MCFG_SPEAKER_STANDARD_MONO("mono")
r244846r244847
84438393
84448394   MCFG_GFXDECODE_ADD("gfxdecode", "palette", ncb3)
84458395   MCFG_PALETTE_ADD("palette", 256)
8446   MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
8396   MCFG_PALETTE_INIT_OWNER(goldstar_state, lucky8)
84478397
84488398   MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
84498399
r244846r244847
84838433
84848434   MCFG_GFXDECODE_ADD("gfxdecode", "palette", ncb3)
84858435   MCFG_PALETTE_ADD("palette", 256)
8486   MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
8436   MCFG_PALETTE_INIT_OWNER(goldstar_state, lucky8)
84878437   MCFG_NVRAM_ADD_1FILL("nvram")
84888438
84898439   MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
r244846r244847
84998449MACHINE_CONFIG_END
85008450
85018451
8502static MACHINE_CONFIG_START( wcat3, goldstar_state )
8452static MACHINE_CONFIG_START( wcat3, wingco_state )
85038453
85048454   /* basic machine hardware */
85058455   MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK)
r244846r244847
85198469
85208470   MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
85218471   MCFG_I8255_IN_PORTA_CB(IOPORT("DSW2"))
8522   MCFG_I8255_OUT_PORTA_CB(WRITE8(goldstar_state, system_outputa_w))
8523   MCFG_I8255_OUT_PORTB_CB(WRITE8(goldstar_state, system_outputb_w))
8524   MCFG_I8255_OUT_PORTC_CB(WRITE8(goldstar_state, system_outputc_w))
8472   MCFG_I8255_OUT_PORTA_CB(WRITE8(wingco_state, system_outputa_w))
8473   MCFG_I8255_OUT_PORTB_CB(WRITE8(wingco_state, system_outputb_w))
8474   MCFG_I8255_OUT_PORTC_CB(WRITE8(wingco_state, system_outputc_w))
85258475
85268476   /* video hardware */
85278477   MCFG_SCREEN_ADD("screen", RASTER)
r244846r244847
85348484
85358485   MCFG_GFXDECODE_ADD("gfxdecode", "palette", ncb3)
85368486   MCFG_PALETTE_ADD("palette", 256)
8537   MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
8487   MCFG_PALETTE_INIT_OWNER(goldstar_state, lucky8)
85388488   MCFG_NVRAM_ADD_1FILL("nvram")
85398489
85408490   MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
r244846r244847
87738723
87748724static MACHINE_CONFIG_DERIVED( cherrys, ncb3 )
87758725   MCFG_GFXDECODE_MODIFY("gfxdecode", cherrys)
8776
87778726MACHINE_CONFIG_END
87788727
87798728static MACHINE_CONFIG_DERIVED( cm97, ncb3 )
87808729   MCFG_GFXDECODE_MODIFY("gfxdecode", cm97)
8781
87828730MACHINE_CONFIG_END
87838731
87848732
r244846r244847
88408788
88418789   MCFG_GFXDECODE_ADD("gfxdecode", "palette", megaline)
88428790   MCFG_PALETTE_ADD("palette", 256)
8843   MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
8791   MCFG_PALETTE_INIT_OWNER(goldstar_state, lucky8)
88448792//  MCFG_NVRAM_ADD_1FILL("nvram")
88458793
88468794   MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
r244846r244847
88858833
88868834   MCFG_GFXDECODE_ADD("gfxdecode", "palette", megaline)
88878835   MCFG_PALETTE_ADD("palette", 256)
8888   MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
8836   MCFG_PALETTE_INIT_OWNER(goldstar_state, lucky8)
88898837
88908838   MCFG_VIDEO_START_OVERRIDE(goldstar_state, goldstar)
88918839
r244846r244847
1088610834
1088710835is this the original Magical Odds?
1088810836*/
10889DRIVER_INIT_MEMBER(goldstar_state,magoddsc)
10837DRIVER_INIT_MEMBER(wingco_state, magoddsc)
1089010838{
1089110839   int A;
1089210840   UINT8 *ROM = memregion("maincpu")->base();
r244846r244847
1359413542   ROM[0x0a92] = 0x9b;
1359513543}
1359613544
13597DRIVER_INIT_MEMBER(goldstar_state,lucky8a)
13545DRIVER_INIT_MEMBER(wingco_state, lucky8a)
1359813546{
1359913547   UINT8 *ROM = memregion("maincpu")->base();
1360013548
r244846r244847
1418814136
1418914137
1419014138GAMEL( 1989, lucky8,    0,        lucky8,   lucky8,   driver_device,  0,         ROT0, "Wing Co., Ltd.",    "New Lucky 8 Lines (set 1, W-4)",                           0,                     layout_lucky8 )
14191GAMEL( 1989, lucky8a,   lucky8,   lucky8,   lucky8a,  goldstar_state, lucky8a,   ROT0, "Wing Co., Ltd.",    "New Lucky 8 Lines (set 2, W-4)",                           0,                     layout_lucky8 )
14139GAMEL( 1989, lucky8a,   lucky8,   lucky8,   lucky8a,  wingco_state,  lucky8a,   ROT0, "Wing Co., Ltd.",    "New Lucky 8 Lines (set 2, W-4)",                           0,                     layout_lucky8 )
1419214140GAMEL( 1989, lucky8b,   lucky8,   lucky8,   lucky8b,  driver_device,  0,         ROT0, "Wing Co., Ltd.",    "New Lucky 8 Lines (set 3, W-4, extended gfx)",             0,                     layout_lucky8 )
14193GAMEL( 1989, lucky8c,   lucky8,   lucky8,   lucky8,   goldstar_state, lucky8a,   ROT0, "Wing Co., Ltd.",    "New Lucky 8 Lines (set 4, W-4)",                           0,                     layout_lucky8 )
14141GAMEL( 1989, lucky8c,   lucky8,   lucky8,   lucky8,   wingco_state,  lucky8a,   ROT0, "Wing Co., Ltd.",    "New Lucky 8 Lines (set 4, W-4)",                           0,                     layout_lucky8 )
1419414142GAMEL( 1989, lucky8d,   lucky8,   lucky8,   lucky8d,  driver_device,  0,         ROT0, "Wing Co., Ltd.",    "New Lucky 8 Lines (set 5, W-4, main 40%, d-up 60%)",       0,                     layout_lucky8 )
1419514143GAMEL( 1989, lucky8e,   lucky8,   lucky8,   lucky8d,  driver_device,  0,         ROT0, "Wing Co., Ltd.",    "New Lucky 8 Lines (set 6, W-4, main 40%, d-up 60%)",       0,                     layout_lucky8 )
1419614144GAMEL( 198?, ns8lines,  0,        lucky8,   lucky8b,  driver_device,  0,         ROT0, "<unknown>",         "New Lucky 8 Lines / New Super 8 Lines (W-4)",              0,                     layout_lucky8 )
r244846r244847
1421114159GAME(  1992, magodds,   0,        magodds,  magodds,  driver_device,  0,         ROT0, "Pal Company / Micro Manufacturing Inc.", "Magical Odds (set 1)",                             GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS )
1421214160GAME(  1992, magoddsa,  magodds,  magodds,  magodds,  driver_device,  0,         ROT0, "Pal Company / Micro Manufacturing Inc.", "Magical Odds (set 2)",                             GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS )
1421314161GAME(  1992, magoddsb,  magodds,  magodds,  magodds,  driver_device,  0,         ROT0, "Pal Company / Micro Manufacturing Inc.", "Magical Odds (set 3)",                             GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS )
14214GAME(  1991, magoddsc,  magodds,  magodds,  magoddsc, goldstar_state, magoddsc,  ROT0, "Pal Company",                            "Magical Odds (set 4, custom encrypted CPU block)", GAME_WRONG_COLORS | GAME_NOT_WORKING |GAME_NO_SOUND)
14215GAME(  1991, magoddsd,  magodds,  magodds,  magoddsc, goldstar_state, magoddsc,  ROT0, "Pal Company",                            "Magical Odds (set 5, custom encrypted CPU block)", GAME_WRONG_COLORS | GAME_NOT_WORKING |GAME_NO_SOUND)
14162GAME(  1991, magoddsc,  magodds,  magodds,  magoddsc, wingco_state,   magoddsc,  ROT0, "Pal Company",                            "Magical Odds (set 4, custom encrypted CPU block)", GAME_WRONG_COLORS | GAME_NOT_WORKING |GAME_NO_SOUND)
14163GAME(  1991, magoddsd,  magodds,  magodds,  magoddsc, wingco_state,   magoddsc,  ROT0, "Pal Company",                            "Magical Odds (set 5, custom encrypted CPU block)", GAME_WRONG_COLORS | GAME_NOT_WORKING |GAME_NO_SOUND)
1421614164
1421714165
1421814166/* --- Amcoe games --- */
trunk/src/mame/includes/goldstar.h
r244846r244847
11class goldstar_state : public driver_device
22{
33public:
4   goldstar_state(const machine_config &mconfig, device_type type, const char *tag)
5      : driver_device(mconfig, type, tag),
4   goldstar_state(const machine_config &mconfig, device_type type, const char *tag) :
5      driver_device(mconfig, type, tag),
66      m_fg_vidram(*this, "fg_vidram"),
77      m_fg_atrram(*this, "fg_atrram"),
88      m_bg_vidram(*this, "bg_vidram"),
r244846r244847
3737   optional_shared_ptr<UINT8> m_reel3_scroll;
3838
3939
40   UINT8 m_unkch_vidreg;
41
4240   tilemap_t *m_reel1_tilemap;
4341   tilemap_t *m_reel2_tilemap;
4442   tilemap_t *m_reel3_tilemap;
r244846r244847
5048   UINT8 m_cmaster_girl_pal;
5149   UINT8 m_cm_enable_reg;
5250   UINT8 m_cm_girl_scroll;
53   UINT8 m_lucky8_nmi_enable;
5451   int m_tile_bank;
5552
5653   DECLARE_WRITE8_MEMBER(protection_w);
5754   DECLARE_READ8_MEMBER(protection_r);
55   DECLARE_WRITE8_MEMBER(lucky8_outport_w);
5856   DECLARE_WRITE8_MEMBER(ncb3_port81_w);
5957   DECLARE_WRITE8_MEMBER(goldstar_lamps_w);
6058   DECLARE_WRITE8_MEMBER(cb3_lamps_w);
6159   DECLARE_WRITE8_MEMBER(cm_outport1_w);
6260   DECLARE_WRITE8_MEMBER(pkrmast_lamps_w);
63   DECLARE_WRITE8_MEMBER(lucky8_outport_w);
64   DECLARE_WRITE8_MEMBER(magodds_outb850_w);
65   DECLARE_WRITE8_MEMBER(magodds_outb860_w);
6661   DECLARE_WRITE8_MEMBER(ladylinr_outport_w);
6762   DECLARE_READ8_MEMBER(fixedvalb4_r);
6863   DECLARE_READ8_MEMBER(fixedvala8_r);
r244846r244847
9287   DECLARE_WRITE8_MEMBER(goldstar_reel3_ram_w);
9388   DECLARE_WRITE8_MEMBER(goldstar_fa00_w);
9489   DECLARE_WRITE8_MEMBER(cm_background_col_w);
95   DECLARE_WRITE8_MEMBER(system_outputa_w);
96   DECLARE_WRITE8_MEMBER(system_outputb_w);
97   DECLARE_WRITE8_MEMBER(system_outputc_w);
9890   DECLARE_WRITE8_MEMBER(ay8910_outputa_w);
9991   DECLARE_WRITE8_MEMBER(ay8910_outputb_w);
10092   DECLARE_DRIVER_INIT(goldstar);
10193   DECLARE_DRIVER_INIT(cmast91);
10294   DECLARE_DRIVER_INIT(nfb96_dk);
10395   DECLARE_DRIVER_INIT(cm);
104   DECLARE_DRIVER_INIT(lucky8a);
10596   DECLARE_DRIVER_INIT(nfb96sea);
10697   DECLARE_DRIVER_INIT(schery97a);
10798   DECLARE_DRIVER_INIT(rp35);
r244846r244847
116107   DECLARE_DRIVER_INIT(po33);
117108   DECLARE_DRIVER_INIT(match133);
118109   DECLARE_DRIVER_INIT(rp36c3);
119   DECLARE_DRIVER_INIT(magoddsc);
120110   DECLARE_DRIVER_INIT(nfb96_c1);
121111   DECLARE_DRIVER_INIT(fb2010);
122112   DECLARE_DRIVER_INIT(super9);
r244846r244847
131121   DECLARE_VIDEO_START(cherrym);
132122   DECLARE_PALETTE_INIT(cmast91);
133123   DECLARE_PALETTE_INIT(lucky8);
134   DECLARE_VIDEO_START(bingowng);
135   DECLARE_VIDEO_START(magical);
136   DECLARE_PALETTE_INIT(magodds);
137124   UINT32 screen_update_goldstar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
138125   UINT32 screen_update_cmast91(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
139   UINT32 screen_update_bingowng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
140   UINT32 screen_update_magical(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
141126   UINT32 screen_update_amcoe1a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
142   INTERRUPT_GEN_MEMBER(lucky8_irq);
143127   void do_blockswaps(UINT8* ROM);
144128   void dump_to_file( UINT8* ROM);
145129   required_device<cpu_device> m_maincpu;
r244846r244847
148132};
149133
150134
135class wingco_state : public goldstar_state
136{
137public:
138   wingco_state(const machine_config &mconfig, device_type type, const char *tag) :
139      goldstar_state(mconfig, type, tag)
140   {
141   }
142
143   DECLARE_WRITE8_MEMBER(magodds_outb850_w);
144   DECLARE_WRITE8_MEMBER(magodds_outb860_w);
145   DECLARE_WRITE8_MEMBER(system_outputa_w);
146   DECLARE_WRITE8_MEMBER(system_outputb_w);
147   DECLARE_WRITE8_MEMBER(system_outputc_w);
148
149   DECLARE_DRIVER_INIT(lucky8a);
150   DECLARE_DRIVER_INIT(magoddsc);
151
152   DECLARE_VIDEO_START(bingowng);
153   DECLARE_VIDEO_START(magical);
154   DECLARE_PALETTE_INIT(magodds);
155   UINT32 screen_update_bingowng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
156   UINT32 screen_update_magical(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
157
158   INTERRUPT_GEN_MEMBER(masked_irq);
159
160private:
161   UINT8 m_nmi_enable;
162   UINT8 m_vidreg;
163};
164
165
151166class cb3_state : public goldstar_state
152167{
153168public:
154   cb3_state(const machine_config &mconfig, device_type type, const char *tag)
155      : goldstar_state(mconfig, type, tag)
169   cb3_state(const machine_config &mconfig, device_type type, const char *tag) :
170      goldstar_state(mconfig, type, tag)
156171   {
157172   }
158173
r244846r244847
168183class chrygld_state : public goldstar_state
169184{
170185public:
171   chrygld_state(const machine_config &mconfig, device_type type, const char *tag)
172      : goldstar_state(mconfig, type, tag)
186   chrygld_state(const machine_config &mconfig, device_type type, const char *tag) :
187      goldstar_state(mconfig, type, tag)
173188   {
174189   }
175190
r244846r244847
184199class sangho_state : public goldstar_state
185200{
186201public:
187   sangho_state(const machine_config &mconfig, device_type type, const char *tag)
188      : goldstar_state(mconfig, type, tag),
202   sangho_state(const machine_config &mconfig, device_type type, const char *tag) :
203      goldstar_state(mconfig, type, tag),
189204      m_reel1_attrram(*this, "reel1_attrram"),
190205      m_reel2_attrram(*this, "reel2_attrram"),
191206      m_reel3_attrram(*this, "reel3_attrram")
r244846r244847
225240class unkch_state : public goldstar_state
226241{
227242public:
228   unkch_state(const machine_config &mconfig, device_type type, const char *tag)
229      : goldstar_state(mconfig, type, tag),
243   unkch_state(const machine_config &mconfig, device_type type, const char *tag) :
244      goldstar_state(mconfig, type, tag),
230245      m_reel1_attrram(*this, "reel1_attrram"),
231246      m_reel2_attrram(*this, "reel2_attrram"),
232247      m_reel3_attrram(*this, "reel3_attrram")
r244846r244847
260275   required_shared_ptr<UINT8> m_reel1_attrram;
261276   required_shared_ptr<UINT8> m_reel2_attrram;
262277   required_shared_ptr<UINT8> m_reel3_attrram;
278
279   UINT8 m_vidreg;
263280};
trunk/src/mame/video/goldstar.c
r244846r244847
162162   m_cm_enable_reg = 0x0b;
163163}
164164
165VIDEO_START_MEMBER(goldstar_state, bingowng)
166{
167   m_reel1_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
168
169   m_reel1_tilemap->set_scroll_cols(64);
170
171   m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
172   m_fg_tilemap->set_transparent_pen(0);
173
174   // is there an enable reg for this game?
175   m_cm_enable_reg = 0x0b;
176}
177
178VIDEO_START_MEMBER(goldstar_state, magical)
179{
180   m_reel1_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
181   m_reel2_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
182   m_reel3_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
183
184   m_reel1_tilemap->set_scroll_cols(32);
185   m_reel2_tilemap->set_scroll_cols(32);
186   m_reel3_tilemap->set_scroll_cols(32);
187
188   m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_magical_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
189   m_fg_tilemap->set_transparent_pen(0);
190
191   // is there an enable reg for this game?
192   m_cm_enable_reg = 0x0b;
193}
194
195165VIDEO_START_MEMBER(goldstar_state, cherrym)
196166{
197167   m_reel1_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
r244846r244847
311281}
312282
313283
314UINT32 goldstar_state::screen_update_bingowng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
284UINT32 goldstar_state::screen_update_cmast91(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
315285{
316286   int i;
317287
r244846r244847
325295      for (i= 0;i < 64;i++)
326296      {
327297         m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
298         m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
299         m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
328300      }
329301
302      const rectangle visible1(0*8, (14+48)*8-1, 4*8,  (4+7)*8-1);    /* same start for reel1 */
303      const rectangle visible2(0*8, (14+48)*8-1, 11*8, (12+7)*8-1);   /* 4 pixels less for reel2 */
304      const rectangle visible3(0*8, (14+48)*8-1, 19*8, (19+7)*8-1);   /* 8 pixels less for reel3 */
330305
331      const rectangle visible1(0*8, (14+48)*8-1,  3*8,  (4+7)*8-1);
332306      m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0);
307      m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0);
308      m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0);
333309   }
334310
335   if (m_cm_enable_reg &0x04)
336   {
337      if (memregion("user1")->base())
338      {
339         gfx_element *gfx = m_gfxdecode->gfx(2);
340         int girlyscroll = (INT8)((m_cm_girl_scroll & 0xf0));
341         int girlxscroll = (INT8)((m_cm_girl_scroll & 0x0f)<<4);
342
343         gfx->zoom_transpen(bitmap,cliprect,m_cmaster_girl_num,m_cmaster_girl_pal,0,0,-(girlxscroll*2),-(girlyscroll), 0x20000, 0x10000,0);
344      }
345   }
346
347311   if (m_cm_enable_reg &0x02)
348312   {
349313      m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
r244846r244847
352316   return 0;
353317}
354318
355
356UINT32 goldstar_state::screen_update_magical(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
319UINT32 goldstar_state::screen_update_amcoe1a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
357320{
358321   int i;
359322
r244846r244847
364327
365328   if (m_cm_enable_reg &0x08)
366329   {
367      // guess, could be wrong, but different screens clearly need different reel layouts
368      if (m_unkch_vidreg & 2)
330      for (i= 0;i < 64;i++)
369331      {
370         for (i= 0;i < 32;i++)
371         {
372            m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
373            m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
374         //  m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i*2]);
375         }
376
377
378         const rectangle visible1alt(0*8, (16+48)*8-1,  4*8,  16*8-1);
379         const rectangle visible2alt(0*8, (16+48)*8-1, 16*8,  28*8-1);
380
381         m_reel1_tilemap->draw(screen, bitmap, visible1alt, 0, 0);
382         m_reel2_tilemap->draw(screen, bitmap, visible2alt, 0, 0);
383         //m_reel3_tilemap->draw(screen, bitmap, &magical_visible3, 0, 0);
332         m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
333         m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
334         m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
384335      }
385      else
386      {
387         for (i= 0;i < 32;i++)
388         {
389            m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
390            m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
391            m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i*2]);
392         }
393336
337      const rectangle visible1(0*8, (14+48)*8-1,  4*8,  (4+6)*8-1);
338      const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+6)*8-1);
339      const rectangle visible3(0*8, (14+48)*8-1, 16*8, (16+6)*8-1);
394340
395         const rectangle visible1(0*8, (14+48)*8-1,  4*8,  (4+8)*8-1);
396         const rectangle visible2(0*8, (14+48)*8-1, 12*8, (12+8)*8-1);
397         const rectangle visible3(0*8, (14+48)*8-1, 20*8, (20+8)*8-1);
341      m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0);
342      m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0);
343      m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0);
344   }
398345
399         m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0);
400         m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0);
401         m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0);
402      }
346   if (m_cm_enable_reg &0x04)
347   {
348      // no girls
403349   }
404350
405351   if (m_cm_enable_reg &0x02)
r244846r244847
410356   return 0;
411357}
412358
413UINT32 goldstar_state::screen_update_cmast91(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
359
360
361VIDEO_START_MEMBER(wingco_state, bingowng)
414362{
363   m_reel1_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
364
365   m_reel1_tilemap->set_scroll_cols(64);
366
367   m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
368   m_fg_tilemap->set_transparent_pen(0);
369
370   // is there an enable reg for this game?
371   m_cm_enable_reg = 0x0b;
372}
373
374VIDEO_START_MEMBER(wingco_state, magical)
375{
376   m_reel1_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
377   m_reel2_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
378   m_reel3_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
379
380   m_reel1_tilemap->set_scroll_cols(32);
381   m_reel2_tilemap->set_scroll_cols(32);
382   m_reel3_tilemap->set_scroll_cols(32);
383
384   m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_magical_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
385   m_fg_tilemap->set_transparent_pen(0);
386
387   // is there an enable reg for this game?
388   m_cm_enable_reg = 0x0b;
389}
390
391
392UINT32 wingco_state::screen_update_bingowng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
393{
415394   int i;
416395
417396   bitmap.fill(m_palette->black_pen(), cliprect);
r244846r244847
424403      for (i= 0;i < 64;i++)
425404      {
426405         m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
427         m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
428         m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
429406      }
430407
431      const rectangle visible1(0*8, (14+48)*8-1, 4*8,  (4+7)*8-1);    /* same start for reel1 */
432      const rectangle visible2(0*8, (14+48)*8-1, 11*8, (12+7)*8-1);   /* 4 pixels less for reel2 */
433      const rectangle visible3(0*8, (14+48)*8-1, 19*8, (19+7)*8-1);   /* 8 pixels less for reel3 */
434408
409      const rectangle visible1(0*8, (14+48)*8-1,  3*8,  (4+7)*8-1);
435410      m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0);
436      m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0);
437      m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0);
438411   }
439412
413   if (m_cm_enable_reg &0x04)
414   {
415      if (memregion("user1")->base())
416      {
417         gfx_element *gfx = m_gfxdecode->gfx(2);
418         int girlyscroll = (INT8)((m_cm_girl_scroll & 0xf0));
419         int girlxscroll = (INT8)((m_cm_girl_scroll & 0x0f)<<4);
420
421         gfx->zoom_transpen(bitmap,cliprect,m_cmaster_girl_num,m_cmaster_girl_pal,0,0,-(girlxscroll*2),-(girlyscroll), 0x20000, 0x10000,0);
422      }
423   }
424
440425   if (m_cm_enable_reg &0x02)
441426   {
442427      m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
r244846r244847
445430   return 0;
446431}
447432
448UINT32 goldstar_state::screen_update_amcoe1a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
433UINT32 wingco_state::screen_update_magical(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
449434{
450435   int i;
451436
r244846r244847
456441
457442   if (m_cm_enable_reg &0x08)
458443   {
459      for (i= 0;i < 64;i++)
444      // guess, could be wrong, but different screens clearly need different reel layouts
445      if (m_vidreg & 2)
460446      {
461         m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
462         m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
463         m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
447         for (i= 0;i < 32;i++)
448         {
449            m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
450            m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
451         //  m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i*2]);
452         }
453
454
455         const rectangle visible1alt(0*8, (16+48)*8-1,  4*8,  16*8-1);
456         const rectangle visible2alt(0*8, (16+48)*8-1, 16*8,  28*8-1);
457
458         m_reel1_tilemap->draw(screen, bitmap, visible1alt, 0, 0);
459         m_reel2_tilemap->draw(screen, bitmap, visible2alt, 0, 0);
460         //m_reel3_tilemap->draw(screen, bitmap, &magical_visible3, 0, 0);
464461      }
462      else
463      {
464         for (i= 0;i < 32;i++)
465         {
466            m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
467            m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
468            m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i*2]);
469         }
465470
466      const rectangle visible1(0*8, (14+48)*8-1,  4*8,  (4+6)*8-1);
467      const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+6)*8-1);
468      const rectangle visible3(0*8, (14+48)*8-1, 16*8, (16+6)*8-1);
469471
470      m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0);
471      m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0);
472      m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0);
473   }
472         const rectangle visible1(0*8, (14+48)*8-1,  4*8,  (4+8)*8-1);
473         const rectangle visible2(0*8, (14+48)*8-1, 12*8, (12+8)*8-1);
474         const rectangle visible3(0*8, (14+48)*8-1, 20*8, (20+8)*8-1);
474475
475   if (m_cm_enable_reg &0x04)
476   {
477      // no girls
476         m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0);
477         m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0);
478         m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0);
479      }
478480   }
479481
480482   if (m_cm_enable_reg &0x02)
r244846r244847
714716
715717   m_cmaster_girl_num = 0;
716718   m_cmaster_girl_pal = 0;
717   m_unkch_vidreg = 0x00;
719   m_vidreg = 0x00;
718720
719721   m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_cherrym_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
720722   m_fg_tilemap->set_transparent_pen(0);
r244846r244847
735737   {
736738      // guess, this could be something else completely!!
737739      // only draw the first 'reels' tilemap, but fullscreen, using alt registers? (or no scrolling at all? - doubtful, see girl)
738      if (m_unkch_vidreg & 0x40)
740      if (m_vidreg & 0x40)
739741      {
740742         for (i= 0;i < 32;i++)
741743         {


Previous 199869 Revisions Next


© 1997-2024 The MAME Team