Esempio n. 1
0
void sliver_state::sliver(machine_config &config)
{
	M68000(config, m_maincpu, 12000000);
	m_maincpu->set_addrmap(AS_PROGRAM, &sliver_state::sliver_map);
	m_maincpu->set_vblank_int("screen", FUNC(sliver_state::irq4_line_hold));

	TIMER(config, "obj_actel").configure_periodic(FUNC(sliver_state::obj_irq_cb), attotime::from_hz(60)); /* unknown clock, causes "obj actel ready error" without this */
	// irq 2 valid but not used?

	I8051(config, m_audiocpu, 8000000);
	m_audiocpu->set_addrmap(AS_PROGRAM, &sliver_state::soundmem_prg);
	m_audiocpu->set_addrmap(AS_IO, &sliver_state::soundmem_io);
	m_audiocpu->port_out_cb<1>().set(FUNC(sliver_state::oki_setbank));

	SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
	m_screen->set_refresh_hz(60);
	m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500));
	m_screen->set_size(64*8, 32*8);
	m_screen->set_visarea(0*8, 384-1-16, 0*8, 240-1);
	m_screen->set_screen_update(FUNC(sliver_state::screen_update));

	PALETTE(config, "palette").set_entries(0x100);
	ramdac_device &ramdac(RAMDAC(config, "ramdac", 0, "palette"));
	ramdac.set_addrmap(0, &sliver_state::ramdac_map);

	SPEAKER(config, "lspeaker").front_left();
	SPEAKER(config, "rspeaker").front_right();

	GENERIC_LATCH_8(config, m_soundlatch);

	okim6295_device &oki(OKIM6295(config, "oki", 1000000, okim6295_device::PIN7_HIGH));
	oki.set_addrmap(0, &sliver_state::oki_map);
	oki.add_route(ALL_OUTPUTS, "lspeaker", 0.6);
	oki.add_route(ALL_OUTPUTS, "rspeaker", 0.6);
}
Esempio n. 2
0
void blockout_state::blockout(machine_config &config)
{
	/* basic machine hardware */
	M68000(config, m_maincpu, MAIN_CLOCK);       /* MRH - 8.76 makes gfx/adpcm samples sync better -- but 10 is correct speed*/
	m_maincpu->set_addrmap(AS_PROGRAM, &blockout_state::main_map);
	TIMER(config, "scantimer").configure_scanline(FUNC(blockout_state::blockout_scanline), "screen", 0, 1);

	Z80(config, m_audiocpu, AUDIO_CLOCK);  /* 3.579545 MHz */
	m_audiocpu->set_addrmap(AS_PROGRAM, &blockout_state::audio_map);

	/* video hardware */
	SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
	/* assume same as ddragon3 with adjusted visible display area */
	m_screen->set_raw(XTAL(28'000'000) / 4, 448, 0, 320, 272, 10, 250);
	m_screen->set_screen_update(FUNC(blockout_state::screen_update));
	m_screen->set_palette(m_palette);

	PALETTE(config, m_palette).set_format(2, &blockout_state::blockout_xBGR_444, 513);

	/* sound hardware */
	SPEAKER(config, "lspeaker").front_left();
	SPEAKER(config, "rspeaker").front_right();

	GENERIC_LATCH_8(config, m_soundlatch);
	m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);

	ym2151_device &ymsnd(YM2151(config, "ymsnd", AUDIO_CLOCK));
	ymsnd.irq_handler().set(FUNC(blockout_state::irq_handler));
	ymsnd.add_route(0, "lspeaker", 0.60);
	ymsnd.add_route(1, "rspeaker", 0.60);

	okim6295_device &oki(OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_HIGH));
	oki.add_route(ALL_OUTPUTS, "lspeaker", 0.50);
	oki.add_route(ALL_OUTPUTS, "rspeaker", 0.50);
}
Esempio n. 3
0
void test_rechercher_liste2 ()
{
  Liste_joueur liste;   
  Joueur* joueur;
  Joueur* joueur2;
  int i;
  fprintf(stderr, "* test_rechercher_liste2: ");
  joueur = joueurCreer();
  joueur2 = joueurCreer();
  
  
  liste_joueurInitialiser(&liste);
  joueurEcrireX(joueur, 4);
  joueurEcrireY(joueur, 2);
  joueurEcrireX(joueur2, 1);
  joueurEcrireY(joueur2, 2);
 
  liste_joueurAjouterFin(&liste, joueur);
  liste_joueurAjouterFin(&liste, joueur2);
  
  
  i = liste_joueurRechercher(&liste, 1,2); 
 
  assert(i == 2);  
  
  joueurDetruire(joueur);
  joueurDetruire(joueur2);
  liste_joueurDetruire(&liste);
  oki ();  
     
}
Esempio n. 4
0
void test_Lire_avec_AjouterFin ()
{
  Liste_joueur liste;
  Joueur* joueur;
  Joueur* joueur2;
  fprintf(stderr, "* test_Lire_avec_AjouterFin: ");
  
  joueur= joueurCreer();
  joueurEcrireX(joueur,13);
  joueurEcrireY(joueur, 14);
  
/*  fprintf(stderr, "--- %d ----", joueur);*/
  liste_joueurInitialiser(&liste);
  liste_joueurAjouterFin(&liste, joueur);
  /*liste_joueurAjouterFin(&liste, joueur);*/
  joueur2 = liste_joueurLire(&liste, 1);
 /* fprintf(stderr, "-LIRE %d--%d-",joueurLireY(joueur2),joueurLireX(joueur2));*/
  
 /* fprintf(stderr, "----%d ----- %d -----", joueur, joueur2);*/
  assert(joueur2 == joueur);   
  
  joueurDetruire(joueur);
  liste_joueurDetruire(&liste);
  oki ();  
}
Esempio n. 5
0
void zerozone_state::zerozone(machine_config &config)
{
	/* basic machine hardware */
	M68000(config, m_maincpu, 10000000);   /* 10 MHz */
	m_maincpu->set_addrmap(AS_PROGRAM, &zerozone_state::main_map);

	Z80(config, m_audiocpu, 1000000);  /* 1 MHz ??? */
	m_audiocpu->set_addrmap(AS_PROGRAM, &zerozone_state::sound_map);

	config.m_minimum_quantum = attotime::from_hz(600);

	/* video hardware */
	screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
	screen.set_refresh_hz(60);
	screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
	screen.set_size(64*8, 32*8);
	screen.set_visarea(1*8, 47*8-1, 2*8, 30*8-1);
	screen.set_palette("palette");
	screen.set_screen_update(FUNC(zerozone_state::screen_update));
	screen.screen_vblank().set(FUNC(zerozone_state::vblank_w));

	GFXDECODE(config, m_gfxdecode, "palette", gfx_zerozone);

	PALETTE(config, "palette").set_format(palette_device::RRRRGGGGBBBBRGBx, 256);

	/* sound hardware */
	SPEAKER(config, "mono").front_center();

	GENERIC_LATCH_8(config, m_soundlatch);

	okim6295_device &oki(OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 not verified
	oki.add_route(ALL_OUTPUTS, "mono", 1.0);
}
Esempio n. 6
0
void test_diamantCreer_et_diamantDetruire ()
{
  fprintf(stderr, "*** Test de diamantCreer_et_diamantDetruire =");
  Diamant* diamant;
  diamant = diamantCreer();
  assert(diamant != NULL);
  
  diamantDetruire(diamant);   
     
  oki ();
}
Esempio n. 7
0
void test_ennemiCreer_et_ennemiDetruire ()
{
  fprintf(stderr, "*** Test de ennemiCreer_et_ennemiDetruire =");
  Ennemi* ennemi;
  ennemi = ennemiCreer();
  assert(ennemi != NULL);
  
  ennemiDetruire(ennemi);   
     
  oki ();
}
Esempio n. 8
0
void test_TailleNulle_avec_listeInitialiser ()
{
  Liste_joueur liste;
  int taille;
  fprintf(stderr, "* test_TailleNulle_avec_listeInit: ");
  
  liste_joueurInitialiser(&liste);
  taille = liste_joueurTaille(&liste);
  assert(taille ==0);  
  listeDetruire(&liste); 
  oki ();  
}
Esempio n. 9
0
void test_rechercher_listevide ()
{
  Liste_joueur liste;   
  int i;
  fprintf(stderr, "* test_rechercher_listevide: ");
  
  liste_joueurInitialiser(&liste);
  i = liste_joueurRechercher(&liste, 1,2); 
  assert(i == 0);  
  liste_joueurDetruire(&liste);
  oki ();  
     
}
Esempio n. 10
0
void test_retirer_ListeVide ()
{
  Liste_joueur liste;
   int taille;
  fprintf(stderr, "* test_retirer_ListeVide: ");

 
  liste_joueurInitialiser(&liste);
  liste_joueurRetirer(&liste, 1);
  assert(taille == 0); 
  
  liste_joueurDetruire(&liste);
  oki ();  
}
Esempio n. 11
0
void test_TailleNulle1_avec_AjouterFin ()
{
  Liste_joueur liste;
  int taille;
  Joueur* joueur;
  fprintf(stderr, "* test_TailleNulle1_avec_ajouterFin: ");
  
  liste_joueurInitialiser(&liste);
  liste_joueurAjouterFin(&liste, joueur);
  taille = liste_joueurTaille(&liste);
  assert(taille ==1);   
  liste_joueurDetruire(&liste);
  oki ();  
}
Esempio n. 12
0
void test_fichierlLireEgale()
{
   fprintf(stderr, "* Test test_niveauLireFichierEgale");
   Fichierl* f = fichierlOuvrir("./test/testfichieregale.txt");
   char test[52];
   int i;
   
   if (f==NULL)
    fprintf(stderr, "probleme fichier");
   fichierlLireEgale(f, test);
   i = strcmp("NIVEAU", test);
   assert(i==0);
   fichierlFermer(f);   
   oki ();  
}
Esempio n. 13
0
void test_ennemiEcrireY ()
{
  fprintf(stderr, "*** Test de ennemiEcrireY =");
  Ennemi* ennemi;
  ennemi = ennemiCreer();
  
  ennemiEcrireY(ennemi, 12);
  assert(ennemi->y == 12);
  ennemiEcrireY(ennemi, 13);
  assert(ennemi->y == 13);
  
  ennemiDetruire(ennemi);   
     
  oki ();
}
Esempio n. 14
0
void test_diamantEcrireY ()
{
  fprintf(stderr, "*** Test de diamantEcrireY =");
  Diamant* diamant;
  diamant = diamantCreer();
  
  diamantEcrireY(diamant, 12);
  assert(diamant->y == 12);
  diamantEcrireY(diamant, 13);
  assert(diamant->y == 13);
  
  diamantDetruire(diamant);   
     
  oki ();
}
Esempio n. 15
0
void raiden_state::raiden(machine_config &config)
{
	/* basic machine hardware */
	V30(config, m_maincpu, XTAL(20'000'000)/2); /* NEC V30 CPU, 20MHz verified on pcb */
	m_maincpu->set_addrmap(AS_PROGRAM, &raiden_state::main_map);

	V30(config, m_subcpu, XTAL(20'000'000)/2); /* NEC V30 CPU, 20MHz verified on pcb */
	m_subcpu->set_addrmap(AS_PROGRAM, &raiden_state::sub_map);

	z80_device &audiocpu(Z80(config, "audiocpu", XTAL(14'318'181)/4)); /* verified on pcb */
	audiocpu.set_addrmap(AS_PROGRAM, &raiden_state::seibu_sound_map);
	audiocpu.set_irq_acknowledge_callback("seibu_sound", FUNC(seibu_sound_device::im0_vector_cb));

	config.m_minimum_quantum = attotime::from_hz(12000);

	/* video hardware */
	BUFFERED_SPRITERAM16(config, m_spriteram);

	screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
	screen.set_refresh_hz(59.60); // verified on pcb */
	screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
	screen.set_size(32*8, 32*8);
	screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
	screen.set_screen_update(FUNC(raiden_state::screen_update_raiden));
	screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram16_device::vblank_copy_rising));
	screen.screen_vblank().append(FUNC(raiden_state::vblank_irq));
	screen.set_palette(m_palette);

	GFXDECODE(config, m_gfxdecode, m_palette, gfx_raiden);
	PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 2048);

	/* sound hardware */
	SPEAKER(config, "mono").front_center();

	ym3812_device &ymsnd(YM3812(config, "ymsnd", XTAL(14'318'181)/4));
	ymsnd.irq_handler().set("seibu_sound", FUNC(seibu_sound_device::fm_irqhandler));
	ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0);

	okim6295_device &oki(OKIM6295(config, "oki", XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH)); // frequency and pin 7 verified
	oki.add_route(ALL_OUTPUTS, "mono", 1.0);

	SEIBU_SOUND(config, m_seibu_sound, 0);
	m_seibu_sound->int_callback().set_inputline("audiocpu", 0);
	m_seibu_sound->set_rom_tag("audiocpu");
	m_seibu_sound->set_rombank_tag("seibu_bank1");
	m_seibu_sound->ym_read_callback().set("ymsnd", FUNC(ym3812_device::read));
	m_seibu_sound->ym_write_callback().set("ymsnd", FUNC(ym3812_device::write));
}
Esempio n. 16
0
void test_Lire_avec_ListeVide ()
{
  Liste_joueur liste;
  Joueur* joueur;
  fprintf(stderr, "* test_Lire_avec_ListeVide: ");
  
 

  liste_joueurInitialiser(&liste);
  joueur = liste_joueurLire(&liste, 4);
  assert(joueur == NULL);   
  
  joueurDetruire(joueur);
  liste_joueurDetruire(&liste);
  oki ();  
}
Esempio n. 17
0
void test_retirer_Liste1 ()
{
  Liste_joueur liste;
  Joueur* joueur;
  int taille;
  fprintf(stderr, "* test_retirer_Liste1: ");
  joueur=joueurCreer();
 
  liste_joueurInitialiser(&liste);
  liste_joueurAjouterFin(&liste,joueur);
  liste_joueurRetirer(&liste, 1);
  taille = liste_joueurTaille(&liste);
  assert(taille == 0);   
  
  joueurDetruire(joueur);
  liste_joueurDetruire(&liste);
  oki ();  
}
Esempio n. 18
0
void test_ennemiEcrireDirection ()
{
  fprintf(stderr, "*** Test de ennemiEcrireDirection =");
  Ennemi* ennemi;
  ennemi = ennemiCreer();
  
  ennemiEcrireDirection(ennemi, ENNEMI_DIRECTION_HAUT);
  assert(ennemi->direction == ENNEMI_DIRECTION_HAUT);
  ennemiEcrireDirection(ennemi, ENNEMI_DIRECTION_BOUGE_PAS);
  assert(ennemi->direction == ENNEMI_DIRECTION_BOUGE_PAS);

  
  ennemiDetruire(ennemi);   
     
  oki ();  
     
     
     
}
Esempio n. 19
0
void test_fichierlLireLigne_linux ()
{
   fprintf(stderr, "* Test test_niveauLireLigne format linux");
   Fichierl* f = fichierlOuvrir("./test/testligne_linux.txt");
   char test[52];
   
   if (f==NULL)
    fprintf(stderr, "probleme fichier");
    
   fichierlLireLigne(f, test);
   //fprintf(stderr, "\n%s\n", test);
   assert( strcmp("COUCOU", test)==0);
   fichierlLireLigne(f, test);
   assert( strcmp("SALUT", test)==0);
   assert(fichierlLireLigne(f, test) == FIN_DE_FICHIER);
   fichierlFermer(f);   
   oki ();     
     
}
Esempio n. 20
0
void test_diamantEcrireDirection ()
{
  fprintf(stderr, "*** Test de diamantEcrireDirection =");
  Diamant* diamant;
  diamant = diamantCreer();
  
  diamantEcrireDirection(diamant, DIAMANT_DIRECTION_HAUT);
  assert(diamant->direction == DIAMANT_DIRECTION_HAUT);
  diamantEcrireDirection(diamant, DIAMANT_DIRECTION_BOUGE_PAS);
  assert(diamant->direction == DIAMANT_DIRECTION_BOUGE_PAS);

  
  diamantDetruire(diamant);   
     
  oki ();  
     
     
     
}
Esempio n. 21
0
void test_diamantLireX ()
{
  fprintf(stderr, "*** Test de diamantLireY =");
  Diamant* diamant;
  int i;

  diamant = diamantCreer();
  
  diamantEcrireX(diamant, 12);
  i = diamantLireX(diamant) ;
  assert(i == 12);
  diamantEcrireX(diamant, 13);
  i = diamantLireX(diamant) ;
  assert(i == 13);
  
  diamantDetruire(diamant);   
     
  oki ();
}
Esempio n. 22
0
void test_diamantLireTransformationChute ()
{
  fprintf(stderr, "*** Test de diamantLireTransformationChute =");
  Diamant* diamant;
  diamant = diamantCreer();
  
  diamantEcrireTransformationChute(diamant, DIAMANT_TRANSFORMATION_DIAMANT);
  assert(diamant->transformation == DIAMANT_TRANSFORMATION_DIAMANT);
  diamantEcrireTransformationChute(diamant, DIAMANT_TRANSFORMATION_EXPLOSION);
  assert(diamant->transformation == DIAMANT_TRANSFORMATION_EXPLOSION);

  
  diamantDetruire(diamant);   
     
  oki ();  
     
     
     
}
Esempio n. 23
0
void test_ennemiEcrireType ()
{
  fprintf(stderr, "*** Test de ennemiLireType =");
  Ennemi* ennemi;
  ennemi = ennemiCreer();
  
  ennemiEcrireType(ennemi, ENNEMI_TYPE_DIAMANT);
  assert(ennemi->type == ENNEMI_TYPE_DIAMANT);
  ennemiEcrireType(ennemi, ENNEMI_TYPE_RIEN);
  assert(ennemi->type == ENNEMI_TYPE_RIEN);
  ennemiEcrireType(ennemi, ENNEMI_TYPE_PIERRE);
  assert(ennemi->type == ENNEMI_TYPE_PIERRE);
  
  ennemiDetruire(ennemi);   
     
  oki ();  
     
     
     
}
Esempio n. 24
0
void test_diamantEcrireValeur ()
{
  fprintf(stderr, "*** Test de diamantLireValeur =");
  Diamant* diamant;
  diamant = diamantCreer();
  
  diamantEcrireValeur(diamant, 12);
  assert(diamant->valeur == 12);
  diamantEcrireValeur(diamant, 14);
  assert(diamant->valeur == 14);
  diamantEcrireValeur(diamant, -1);
  assert(diamant->valeur == -1);
  
  diamantDetruire(diamant);   
     
  oki ();  
     
     
     
}
Esempio n. 25
0
void f1gp_state::f1gpb(machine_config &config)
{
	/* basic machine hardware */
	M68000(config, m_maincpu, 10000000); /* 10 MHz ??? */
	m_maincpu->set_addrmap(AS_PROGRAM, &f1gp_state::f1gpb_cpu1_map);
	m_maincpu->set_vblank_int("screen", FUNC(f1gp_state::irq1_line_hold));

	m68000_device &sub(M68000(config, "sub", 10000000));    /* 10 MHz ??? */
	sub.set_addrmap(AS_PROGRAM, &f1gp_state::f1gpb_cpu2_map);
	sub.set_vblank_int("screen", FUNC(f1gp_state::irq1_line_hold));

	/* NO sound CPU */
	config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame */

	ACIA6850(config, m_acia, 0);
	m_acia->irq_handler().set_inputline("sub", M68K_IRQ_3);
	m_acia->txd_handler().set("acia", FUNC(acia6850_device::write_rxd)); // loopback for now

	clock_device &acia_clock(CLOCK(config, "acia_clock", 1000000)); // guessed
	acia_clock.signal_handler().set(m_acia, FUNC(acia6850_device::write_txc));
	acia_clock.signal_handler().append(m_acia, FUNC(acia6850_device::write_rxc));

	/* video hardware */
	screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
	screen.set_refresh_hz(60);
	screen.set_size(64*8, 32*8);
	screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
	screen.set_screen_update(FUNC(f1gp_state::screen_update_f1gpb));
	screen.set_palette(m_palette);

	GFXDECODE(config, m_gfxdecode, m_palette, gfx_f1gp);
	PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048);

	//VSYSTEM_GGA(config, "gga", 0);

	/* sound hardware */
	SPEAKER(config, "mono").front_center();

	okim6295_device &oki(OKIM6295(config, "oki", 1000000, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 not verified
	oki.add_route(ALL_OUTPUTS, "mono", 1.00);
}
Esempio n. 26
0
void crospang_state::crospang(machine_config &config)
{
	/* basic machine hardware */
	M68000(config, m_maincpu, XTAL(14'318'181)/2); /* 68000P10 @ 7.15909MHz */
	m_maincpu->set_addrmap(AS_PROGRAM, &crospang_state::crospang_map);
	m_maincpu->set_vblank_int("screen", FUNC(crospang_state::irq6_line_hold));

	z80_device &audiocpu(Z80(config, "audiocpu", XTAL(14'318'181)/4)); /* 3.579545MHz */
	audiocpu.set_addrmap(AS_PROGRAM, &crospang_state::crospang_sound_map);
	audiocpu.set_addrmap(AS_IO, &crospang_state::crospang_sound_io_map);

	/* video hardware */
	screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
	screen.set_refresh_hz(60);
	screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
	screen.set_size(64*8, 64*8);
	screen.set_visarea(0, 40*8-1, 0, 30*8-1);
	screen.set_screen_update(FUNC(crospang_state::screen_update_crospang));
	screen.set_palette("palette");

	PALETTE(config, "palette").set_format(palette_device::xRGB_555, 0x300);
	GFXDECODE(config, m_gfxdecode, "palette", gfx_crospang);

	DECO_SPRITE(config, m_sprgen, 0);
	m_sprgen->set_gfx_region(0);
	m_sprgen->set_is_bootleg(true);
	m_sprgen->set_offsets(5, 7);
	m_sprgen->set_gfxdecode_tag(m_gfxdecode);

	/* sound hardware */
	SPEAKER(config, "mono").front_center();

	GENERIC_LATCH_8(config, m_soundlatch);

	ym3812_device &ymsnd(YM3812(config, "ymsnd", XTAL(14'318'181)/4)); /* 3.579545MHz */
	ymsnd.irq_handler().set_inputline("audiocpu", 0);
	ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0);

	okim6295_device &oki(OKIM6295(config, "oki", XTAL(14'318'181)/16, okim6295_device::PIN7_HIGH)); // 1.789772MHz or 0.894886MHz?? & pin 7 not verified
	oki.add_route(ALL_OUTPUTS, "mono", 1.0);
}
Esempio n. 27
0
void pokechmp_state::pokechmp(machine_config &config)
{
	/* basic machine hardware */
	M6502(config, m_maincpu, 4_MHz_XTAL/4);
	m_maincpu->set_addrmap(AS_PROGRAM, &pokechmp_state::pokechmp_map);

	M6502(config, m_audiocpu, 4_MHz_XTAL/4);
	m_audiocpu->set_addrmap(AS_PROGRAM, &pokechmp_state::pokechmp_sound_map);

	/* video hardware */
	screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
	screen.set_refresh_hz(60);
	screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
	screen.set_size(32*8, 32*8);
	screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
	screen.set_screen_update(FUNC(pokechmp_state::screen_update_pokechmp));
	screen.set_palette(m_palette);
	screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI);
	screen.screen_vblank().append(FUNC(pokechmp_state::sound_irq));

	GFXDECODE(config, m_gfxdecode, m_palette, gfx_pokechmp);
	PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x400);

	/* sound hardware */
	SPEAKER(config, "mono").front_center();

	GENERIC_LATCH_8(config, m_soundlatch);

	YM2203(config, "ym1", XTAL(4'000'000)/4).add_route(ALL_OUTPUTS, "mono", 0.60);

	YM3812(config, "ym2", XTAL(24'000'000)/16).add_route(ALL_OUTPUTS, "mono", 1.0);

	okim6295_device &oki(OKIM6295(config, "oki", XTAL(24'000'000)/16, okim6295_device::PIN7_LOW));
	oki.add_route(ALL_OUTPUTS, "mono", 0.50); /* sound fx */
	oki.add_route(ALL_OUTPUTS, "mono", 0.50);
	oki.set_addrmap(0, &pokechmp_state::pokechmp_oki_map);
}
Esempio n. 28
0
/******************************************************************************/

static const gfx_layout charlayout =
{
	8,8,
	RGN_FRAC(1,2),
	4,
	{ RGN_FRAC(1,2)+8, RGN_FRAC(1,2)+0, 8, 0 },
	{ STEP8(0,1) },
	{ STEP8(0,8*2) },
	16*8
};

static const gfx_layout tile_layout =
{
	16,16,
	RGN_FRAC(1,2),
	4,
	{ RGN_FRAC(1,2)+8, RGN_FRAC(1,2)+0, 8, 0 },
	{ STEP8(16*8*2,1), STEP8(0,1) },
	{ STEP16(0,8*2) },
	64*8
};

static GFXDECODE_START( gfx_funkyjet )
	GFXDECODE_ENTRY( "gfx1", 0, charlayout,  256, 32 )  /* Characters 8x8 */
	GFXDECODE_ENTRY( "gfx1", 0, tile_layout, 256, 32 )  /* Tiles 16x16 */
	GFXDECODE_ENTRY( "gfx2", 0, tile_layout,   0, 16 )  /* Sprites 16x16 */
GFXDECODE_END

/******************************************************************************/

void funkyjet_state::funkyjet(machine_config &config)
{
	/* basic machine hardware */
	M68000(config, m_maincpu, XTAL(28'000'000)/2); /* 28 MHz crystal */
	m_maincpu->set_addrmap(AS_PROGRAM, &funkyjet_state::funkyjet_map);
	m_maincpu->set_vblank_int("screen", FUNC(funkyjet_state::irq6_line_hold));

	H6280(config, m_audiocpu, XTAL(32'220'000)/4); /* Custom chip 45, Audio section crystal is 32.220 MHz */
	m_audiocpu->set_addrmap(AS_PROGRAM, &funkyjet_state::sound_map);
	m_audiocpu->add_route(ALL_OUTPUTS, "lspeaker", 0); // internal sound unused
	m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0);

	/* video hardware */
	screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
	screen.set_refresh_hz(58);
	screen.set_vblank_time(ATTOSECONDS_IN_USEC(529));
	screen.set_size(40*8, 32*8);
	screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
	screen.set_screen_update(FUNC(funkyjet_state::screen_update));
	screen.set_palette("palette");

	DECO146PROT(config, m_deco146, 0);
	m_deco146->port_a_cb().set_ioport("INPUTS");
	m_deco146->port_b_cb().set_ioport("SYSTEM");
	m_deco146->port_c_cb().set_ioport("DSW");
	m_deco146->soundlatch_irq_cb().set_inputline(m_audiocpu, 0);
	m_deco146->set_interface_scramble_interleave();

	GFXDECODE(config, "gfxdecode", "palette", gfx_funkyjet);
	PALETTE(config, "palette").set_format(palette_device::xBGR_444, 1024);

	DECO16IC(config, m_deco_tilegen, 0);
	m_deco_tilegen->set_pf1_size(DECO_64x32);
	m_deco_tilegen->set_pf2_size(DECO_64x32);
	m_deco_tilegen->set_pf1_trans_mask(0x0f);
	m_deco_tilegen->set_pf2_trans_mask(0x0f);
	m_deco_tilegen->set_pf1_col_bank(0x00);
	m_deco_tilegen->set_pf2_col_bank(0x10);
	m_deco_tilegen->set_pf1_col_mask(0x0f);
	m_deco_tilegen->set_pf2_col_mask(0x0f);
	m_deco_tilegen->set_pf12_8x8_bank(0);
	m_deco_tilegen->set_pf12_16x16_bank(1);
	m_deco_tilegen->set_gfxdecode_tag("gfxdecode");

	DECO_SPRITE(config, m_sprgen, 0);
	m_sprgen->set_gfx_region(2);
	m_sprgen->set_gfxdecode_tag("gfxdecode");

	/* sound hardware */
	SPEAKER(config, "lspeaker").front_left();
	SPEAKER(config, "rspeaker").front_right();

	ym2151_device &ymsnd(YM2151(config, "ymsnd", XTAL(32'220'000)/9));
	ymsnd.irq_handler().set_inputline(m_audiocpu, 1); // IRQ2
	ymsnd.add_route(0, "lspeaker", 0.45);
	ymsnd.add_route(1, "rspeaker", 0.45);

	okim6295_device &oki(OKIM6295(config, "oki", XTAL(28'000'000)/28, okim6295_device::PIN7_HIGH));
	oki.add_route(ALL_OUTPUTS, "lspeaker", 0.50);
	oki.add_route(ALL_OUTPUTS, "rspeaker", 0.50);
}
Esempio n. 29
0
void sshangha_state::sshangha(machine_config &config)
{
	/* basic machine hardware */
	M68000(config, m_maincpu, 16_MHz_XTAL); /* CPU marked as 16MHz part */
	m_maincpu->set_addrmap(AS_PROGRAM, &sshangha_state::sshangha_map);
	m_maincpu->set_vblank_int("screen", FUNC(sshangha_state::irq6_line_hold));

	Z80(config, m_audiocpu, 16_MHz_XTAL / 4);
	m_audiocpu->set_addrmap(AS_PROGRAM, &sshangha_state::sound_map);


	config.m_minimum_quantum = attotime::from_hz(6000);

	screen_device& screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
	screen.set_refresh_hz(60);
	screen.set_vblank_time(ATTOSECONDS_IN_USEC(529));
	screen.set_size(40*8, 32*8);
	screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
	screen.set_screen_update(FUNC(sshangha_state::screen_update));

	GFXDECODE(config, "gfxdecode", m_palette, gfx_sshangha);

	PALETTE(config, m_palette).set_format(palette_device::xBGR_888, 0x4000);

	DECO16IC(config, m_tilegen, 0);
	m_tilegen->set_pf1_size(DECO_64x32);
	m_tilegen->set_pf2_size(DECO_64x32);
	m_tilegen->set_pf1_trans_mask(0x0f);
	m_tilegen->set_pf2_trans_mask(0x0f);
	m_tilegen->set_pf1_col_bank(0x30);
	m_tilegen->set_pf2_col_bank(0x20);
	m_tilegen->set_pf1_col_mask(0x0f);
	m_tilegen->set_pf2_col_mask(0x0f);
	m_tilegen->set_bank1_callback(FUNC(sshangha_state::bank_callback), this);
	m_tilegen->set_bank2_callback(FUNC(sshangha_state::bank_callback), this);
	m_tilegen->set_pf12_8x8_bank(0);
	m_tilegen->set_pf12_16x16_bank(1);
	m_tilegen->set_gfxdecode_tag("gfxdecode");

	DECO_SPRITE(config, m_sprgen1, 0);
	m_sprgen1->set_gfx_region(2);
	m_sprgen1->set_gfxdecode_tag("gfxdecode");

	DECO_SPRITE(config, m_sprgen2, 0);
	m_sprgen2->set_gfx_region(3);
	m_sprgen2->set_gfxdecode_tag("gfxdecode");

	DECO146PROT(config, m_deco146, 0);
	m_deco146->port_a_cb().set_ioport("INPUTS");
	m_deco146->port_b_cb().set_ioport("SYSTEM");
	m_deco146->port_c_cb().set_ioport("DSW");

	/* sound hardware */
	SPEAKER(config, "lspeaker").front_left(); // sure it's stereo?
	SPEAKER(config, "rspeaker").front_right();

	ym2203_device &ymsnd(YM2203(config, "ymsnd", 16_MHz_XTAL / 4));
	ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
	ymsnd.add_route(ALL_OUTPUTS, "lspeaker", 0.33);
	ymsnd.add_route(ALL_OUTPUTS, "rspeaker", 0.33);

	okim6295_device &oki(OKIM6295(config, "oki", 16_MHz_XTAL / 8, okim6295_device::PIN7_LOW)); // clock frequency & pin 7 not verified
	oki.add_route(ALL_OUTPUTS, "lspeaker", 0.27);
	oki.add_route(ALL_OUTPUTS, "rspeaker", 0.27);
}