Previous 199869 Revisions Next

r41817 Saturday 21st November, 2015 at 23:04:36 UTC by Robbbert
New Working Game - supergs - Galaxians (Silver Systems) [Robbbert]
================
[src/devices/machine]wozfdc.cpp
[src/mame]arcade.lst
[src/mame/drivers]galaxian.cpp

trunk/src/devices/machine/wozfdc.cpp
r250328r250329
186186
187187READ8_MEMBER(wozfdc_device::read)
188188{
189   lss_sync();
190189   control(offset);
191190
192191   if(!(offset & 1)) {
192      lss_sync();
193193      return data_reg;
194194   }
195195   return 0xff;
r250328r250329
202202
203203WRITE8_MEMBER(wozfdc_device::write)
204204{
205   control(offset);
205206   lss_sync();
206   control(offset);
207207   last_6502_write = data;
208208}
209209
r250328r250329
220220
221221void wozfdc_device::control(int offset)
222222{
223   if(offset < 8)
223   if(offset < 8) {
224      if(active)
225         lss_sync();
224226      phase(offset >> 1, offset & 1);
225227
226   else
228   } else
227229      switch(offset) {
228230      case 0x8:
229231         if(active == MODE_ACTIVE) {
232            lss_sync();
230233            delay_timer->adjust(attotime::from_seconds(1));
231234            active = MODE_DELAY;
232235         }
r250328r250329
249252      case 0xa:
250253            external_io_select = false;
251254            if(floppy != floppy0->get_device()) {
252               if(active)
255               if(active) {
256                  lss_sync();
253257                  floppy->mon_w(true);
258               }
254259            floppy = floppy0->get_device();
255260            if(active)
256261               floppy->mon_w(false);
r250328r250329
262267         {
263268            if (floppy != floppy1->get_device())
264269            {
265               if(active)
270               if(active) {
271                  lss_sync();
266272                  floppy->mon_w(true);
273               }
267274               floppy = floppy1->get_device();
268275               if(active)
269276                  floppy->mon_w(false);
r250328r250329
276283         break;
277284      case 0xc:
278285         if(mode_load) {
279            if(active)
286            if(active) {
287               lss_sync();
280288               address &= ~0x04;
289            }
281290            mode_load = false;
282291         }
283292         break;
284293      case 0xd:
285294         if(!mode_load) {
286            if(active)
295            if(active) {
296               lss_sync();
287297               address |= 0x04;
298            }
288299            mode_load = true;
289300         }
290301         break;
291302      case 0xe:
292303         if(mode_write) {
293            if(active)
304            if(active) {
305               lss_sync();
294306               address &= ~0x08;
307            }
295308            mode_write = false;
296            attotime now = machine().time();
297            if(floppy)
298               floppy->write_flux(write_start_time, now, write_position, write_buffer);
299309         }
300310         break;
301311      case 0xf:
302312         if(!mode_write) {
303313            if(active) {
314               lss_sync();
304315               address |= 0x08;
305316               write_start_time = machine().time();
306               write_position = 0;
307317               if(floppy)
308318                  floppy->set_write_splice(write_start_time);
309319            }
r250328r250329
345355   if(!active)
346356      return;
347357
348   attotime next_flux = floppy ? floppy->get_next_transition(cycles_to_time(cycles-1)) : attotime::never;
358   attotime next_flux = floppy ? floppy->get_next_transition(cycles_to_time(cycles) - attotime::from_usec(1)) : attotime::never;
349359
350360   UINT64 cycles_limit = time_to_cycles(machine().time());
351361   UINT64 cycles_next_flux = next_flux != attotime::never ? time_to_cycles(next_flux) : UINT64(-1);
r250328r250329
372382               write_line_active = !write_line_active;
373383               assert(write_position != 32);
374384               write_buffer[write_position++] = cycles_to_time(cycles);
375            } else if(write_position >= 30) {
376               attotime now = cycles_to_time(cycles);
377               if(floppy)
378                  floppy->write_flux(write_start_time, now, write_position, write_buffer);
379               write_start_time = now;
380               write_position = 0;
381385            }
382386         }
383387
trunk/src/mame/arcade.lst
r250328r250329
148148galaxrf         // bootleg (Recreativos Franco)
149149galaxrfgg       // bootleg (Recreativos Franco)
150150superg          // hack
151supergs         // Silver Systems hack
151152galapx          // hack
152153moonaln         // [Nichibutsu] (Karateco license) or hack
153154galap1          // hack
trunk/src/mame/drivers/galaxian.cpp
r250328r250329
71267126   ROM_LOAD( "gxrf.6l",       0x0000, 0x0020, CRC(992350e5) SHA1(e901b1abd11cc0f02dd6d87b429d8997f762c15d) )
71277127ROM_END
71287128
7129
71307129ROM_START( astrians )
71317130   ROM_REGION( 0x10000, "maincpu", 0 )
71327131   ROM_LOAD( "astrians.7h",  0x0000, 0x0800, CRC(21eba3d0) SHA1(d07f141d785c86faca8c40af034c26f2789e9346) )
r250328r250329
71587157   ROM_REGION( 0x0020, "proms", 0 )
71597158   ROM_LOAD( "6l.bpr",       0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
71607159ROM_END
7160
71617161ROM_START( superg )
71627162   ROM_REGION( 0x4000, "maincpu", 0 )
71637163   ROM_LOAD( "7f.bin",       0x0000, 0x1000, CRC(4335b1de) SHA1(e41e3d90dac738cf71377f3b476ec67b14dee27a) )
r250328r250329
71737173   ROM_LOAD( "6l.bpr",       0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
71747174ROM_END
71757175
7176ROM_START( supergs ) // rom names are from HBMAME; real names yet to be found
7177   ROM_REGION( 0x10000, "maincpu", 0 )
7178   ROM_LOAD( "7f.bin",       0x0000, 0x1000, CRC(4335b1de) SHA1(e41e3d90dac738cf71377f3b476ec67b14dee27a) )
7179   ROM_LOAD( "superg.w",     0x1000, 0x0800, CRC(ddeabdae) SHA1(daa5109a32c7c9a80bdb212dc3e4e3e3c104a731) )
7180   ROM_LOAD( "superg.y",     0x1800, 0x0800, CRC(9463f753) SHA1(d9cb35c19aafec43d08b048bbe2337a790f6ba9d) )
7181   ROM_LOAD( "supergs.z",    0x2000, 0x0800, CRC(95e9005c) SHA1(cb4c556f00ec2ae9876d235224a7eb7816c06f60) )
7182
7183   ROM_REGION( 0x1000, "gfx1", 0 )
7184   ROM_LOAD( "galmidw.1j",   0x0000, 0x0800, CRC(84decf98) SHA1(2e565cb6057b1816a6b4541e6dfadd3c3762fa36) )
7185   ROM_LOAD( "galmidw.1k",   0x0800, 0x0800, CRC(c31ada9e) SHA1(237ebb48549b34ca59a13cc2706512d957413ec4) )
7186
7187   ROM_REGION( 0x0020, "proms", 0 )
7188   ROM_LOAD( "6l.bpr",       0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
7189ROM_END
7190
71767191ROM_START( galturbo )
71777192   ROM_REGION( 0x4000, "maincpu", 0 )
71787193   ROM_LOAD( "galturbo.u",   0x0000, 0x0800, CRC(e8f3aa67) SHA1(a0e9576784dbe602dd9780e667f01f31defd7c00) )
r250328r250329
1105211067/* straight Galaxian ripoffs on basic galaxian hardware */
1105311068GAME( 1979, moonaln,     galaxian, galaxian,   superg,     galaxian_state, galaxian,   ROT90,  "Namco / Nichibutsu (Karateco license?)", "Moon Alien", MACHINE_SUPPORTS_SAVE ) // or bootleg?
1105411069GAME( 1979, superg,      galaxian, galaxian,   superg,     galaxian_state, galaxian,   ROT90,  "hack", "Super Galaxians (galaxiana hack)", MACHINE_SUPPORTS_SAVE )
11070GAME( 1979, supergs,     galaxian, galaxian,   superg,     galaxian_state, galaxian,   ROT90,  "hack", "Super Galaxians (Silver Systems)", MACHINE_SUPPORTS_SAVE )
1105511071GAME( 1979, galturbo,    galaxian, galaxian,   superg,     galaxian_state, galaxian,   ROT90,  "hack", "Galaxian Turbo (superg hack)", MACHINE_SUPPORTS_SAVE )
1105611072GAME( 1979, galapx,      galaxian, galaxian,   superg,     galaxian_state, galaxian,   ROT90,  "hack", "Galaxian Part X (moonaln hack)", MACHINE_SUPPORTS_SAVE )
1105711073GAME( 1979, galap1,      galaxian, galaxian,   superg,     galaxian_state, galaxian,   ROT90,  "hack", "Space Invaders Galactica (galaxiana hack)", MACHINE_SUPPORTS_SAVE )


Previous 199869 Revisions Next


© 1997-2024 The MAME Team