Previous 199869 Revisions Next

r33610 Monday 1st December, 2014 at 16:28:17 UTC by David Haywood
add some Smashing Drive hw details [Demul Team]
[src/mame/drivers]atvtrack.c

trunk/src/mame/drivers/atvtrack.c
r242121r242122
5656
5757*/
5858
59/*
60
61notes from DEMUL team
62
63Smashing Drive needs a working SH4 MMU emulation, ATV Track does not.
64
65Audio - is a simple buffered DAC.
66frequency is 32kHz
67data written by CPU to buffer have such meaning:
68offs 0 - s16 bass channel 0
69offs 2 - s16 bass channel 1
70offs 4 - s16 left channel
71offs 6 - s16 right channel
72and so on
73
74buffer is 2x32bytes
75then it becomes (I suppose half) empty - SH4 IRL5 IRQ generated
76
77
78"control registers" (Smashing Drive)
790 - read - various statuses, returning -1 is OK
80write - enable slave CPU, gpu, etc most of bits is unclear
814 - r/w - communication port (for cabinet linking), returning 0 is OK
82also there some bits on SH4 PDTRA port, I'll hook it later by myself
83
84about clocks - SH4s is clocked at 33000000*6
85but unlike to DC/AW/Naomi SH4 'peripheral clock' (at which works TMU timers and other internal stuff) is 1/6 from CPU clock, not 1/4
86
87*/
88
5989#include "emu.h"
6090#include "cpu/sh4/sh4.h"
6191#include "debugger.h"
r242121r242122
96126   required_device<sh4_device> m_subcpu;
97127};
98128
129
130class smashdrv_state : public atvtrack_state
131{
132public:
133   smashdrv_state(const machine_config &mconfig, device_type type, const char *tag)
134      : atvtrack_state(mconfig, type, tag) { }
135
136   virtual void machine_start();
137   virtual void machine_reset();
138};
139
99140void atvtrack_state::logbinary(UINT32 data,int high=31,int low=0)
100141{
101142   UINT32 s;
r242121r242122
358399   m_subcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
359400}
360401
402
403void smashdrv_state::machine_start()
404{
405
406}
407
408void smashdrv_state::machine_reset()
409{
410
411}
412
413// ATV Track
414
361415static ADDRESS_MAP_START( atvtrack_main_map, AS_PROGRAM, 64, atvtrack_state )
362416   AM_RANGE(0x00000000, 0x000003ff) AM_RAM AM_SHARE("sharedmem")
363   AM_RANGE(0x00020000, 0x00020007) AM_READWRITE(area1_r, area1_w)
417   AM_RANGE(0x00020000, 0x00020007) AM_READWRITE(area1_r, area1_w) // control registers
418//   AM_RANGE(0x00020040, 0x0002007f) // audio DAC buffer
364419   AM_RANGE(0x14000000, 0x14000007) AM_READWRITE(area2_r, area2_w) // data
365420   AM_RANGE(0x14100000, 0x14100007) AM_READWRITE(area3_r, area3_w) // command
366421   AM_RANGE(0x14200000, 0x14200007) AM_READWRITE(area4_r, area4_w) // address
367   AM_RANGE(0x0c000000, 0x0cffffff) AM_RAM
422   AM_RANGE(0x0c000000, 0x0c7fffff) AM_RAM
368423ADDRESS_MAP_END
369424
370425static ADDRESS_MAP_START( atvtrack_main_port, AS_IO, 64, atvtrack_state )
371426   AM_RANGE(0x00, 0x1f) AM_READWRITE(ioport_r, ioport_w)
372427ADDRESS_MAP_END
373428
429// Smashing Drive
430
431static ADDRESS_MAP_START( smashdrv_main_map, AS_PROGRAM, 64, smashdrv_state )
432   AM_RANGE(0x00000000, 0x03ffffff) AM_ROM
433   AM_RANGE(0x0c000000, 0x0c7fffff) AM_RAM
434   AM_RANGE(0x10000000, 0x100003ff) AM_RAM AM_SHARE("sharedmem")
435// 0x10000400 - 0x1000043F control registers
436// 0x10000440 - 0x1000047F Audio DAC buffer
437   AM_RANGE(0x14000000, 0x143fffff) AM_ROM AM_REGION("data", 0)
438ADDRESS_MAP_END
439
440static ADDRESS_MAP_START( smashdrv_main_port, AS_IO, 64, smashdrv_state )
441ADDRESS_MAP_END
442
443// Sub CPU (same for both games)
444
374445static ADDRESS_MAP_START( atvtrack_sub_map, AS_PROGRAM, 64, atvtrack_state )
375446   AM_RANGE(0x00000000, 0x000003ff) AM_RAM AM_SHARE("sharedmem")
376447   AM_RANGE(0x0c000000, 0x0cffffff) AM_RAM
448// 0x14000000 - 0x1400xxxx GPU registers
449// 0x18000000 - 0x19FFFFFF GPU RAM (32MB)
377450ADDRESS_MAP_END
378451
379452static ADDRESS_MAP_START( atvtrack_sub_port, AS_IO, 64, atvtrack_state )
r242121r242122
427500   MCFG_SCREEN_UPDATE_DRIVER(atvtrack_state, screen_update_atvtrack)
428501
429502   MCFG_PALETTE_ADD("palette", 0x1000)
503MACHINE_CONFIG_END
430504
505static MACHINE_CONFIG_DERIVED_CLASS( smashdrv, atvtrack, smashdrv_state )
506   MCFG_CPU_MODIFY("maincpu")
507   MCFG_CPU_PROGRAM_MAP(smashdrv_main_map)
508   MCFG_CPU_IO_MAP(smashdrv_main_port)
509
431510MACHINE_CONFIG_END
432511
512
433513ROM_START( atvtrack )
434514   ROM_REGION( 0x4200000, "maincpu", ROMREGION_ERASEFF) // NAND roms, contain additional data hence the sizes
435515   ROM_LOAD32_BYTE("15.bin", 0x0000000, 0x1080000, CRC(84eaede7) SHA1(6e6230165c3bb35e49c660dfd0d07c132ed89e6a) )
r242121r242122
489569*/
490570
491571ROM_START( smashdrv )
572   ROM_REGION64_LE( 0x0400000, "data", ROMREGION_ERASEFF)
573   ROM_LOAD("prg.ic23", 0x0000000, 0x0400000, CRC(5cc6d3ac) SHA1(0c8426774212d891796b59c95b8c70f64db5b67a) )
574
492575   ROM_REGION( 0x4000000, "maincpu", ROMREGION_ERASEFF)
493   ROM_LOAD("prg.ic23", 0x0000000, 0x0400000, CRC(5cc6d3ac) SHA1(0c8426774212d891796b59c95b8c70f64db5b67a) )
494   ROM_LOAD("sdra.ic15", 0x1000000, 0x1000000, CRC(cf702287) SHA1(84cd83c339831deff15fe5fcc353e0b596667500) )
495   ROM_LOAD("sdrb.ic14", 0x2000000, 0x1000000, CRC(39b76f0e) SHA1(529943b6075925e5f72c6e966796e04b2c33686c) )
496   ROM_LOAD("sdrc.ic20", 0x3000000, 0x1000000, CRC(c9021dd7) SHA1(1d08aab433614810af858a0fc5d7f03c7b782237) )
576   ROM_LOAD32_WORD("sdra.ic15",   0x00000000,   0x01000000, CRC(cf702287) SHA1(84cd83c339831deff15fe5fcc353e0b596667500) )
577   ROM_LOAD32_WORD("sdrb.ic14",   0x00000002,   0x01000000, CRC(39b76f0e) SHA1(529943b6075925e5f72c6e966796e04b2c33686c) )
578   ROM_LOAD32_WORD("sdrc.ic20",   0x02000000,   0x01000000, CRC(c9021dd7) SHA1(1d08aab433614810af858a0fc5d7f03c7b782237) )
579   // ic21 unpopulated
497580ROM_END
498581
499582GAME( 2002, atvtrack,  0,          atvtrack,    atvtrack, driver_device,    0, ROT0, "Gaelco", "ATV Track (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND )
500583GAME( 2002, atvtracka, atvtrack,   atvtrack,    atvtrack, driver_device,    0, ROT0, "Gaelco", "ATV Track (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND )
501584
502585// not the same HW, but has dual SH4 at least
503GAME( 2000, smashdrv, 0,           atvtrack,    atvtrack, driver_device,    0, ROT0, "Gaelco", "Smashing Drive", GAME_NOT_WORKING | GAME_NO_SOUND )
586GAME( 2000, smashdrv, 0,           smashdrv,    atvtrack, driver_device,    0, ROT0, "Gaelco", "Smashing Drive", GAME_NOT_WORKING | GAME_NO_SOUND )


Previous 199869 Revisions Next


© 1997-2024 The MAME Team