summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/segaatom.cpp
blob: 9ba749b2b0c0db829a8c65f4b491cab8b10cc917 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
// license:BSD-3-Clause
// copyright-holders:MetalliC
/***************************************************************************

    Atom II
    (c) Sega 200?

 Main board:
  Sega PC BD ATOM II
  837-14800
  U0150841
  (c) Sega 2007 171-8477A

   Hitachi H8S/2373 CPU
   25MHz OSC
   R1LV0408CSP 512k x8 SRAM
   M27C4001 512k x8 IC4 EPROM DIL socket
   Axell AG-2 AX51201 GPU
   25.18MHz OSC
   2x 48LC8M16A2 2M x16 x4banks SDRAM (2x 16Mbyte)
   Yamaha YMZ770C-F
   16.384MHz OSC
   Sega 315-6549 (Xilinx XC95144XL CPLD)

 ROM board:
  PC BD ATOM MEMO
  837-14806
  (c) Sega 2006 171-8363B

   3x S29GL128N 128Mbit flash ROMs

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


#include "emu.h"
#include "cpu/h8/h8s2357.h"
#include "sound/ymz770.h"
#include "emupal.h"
#include "screen.h"
#include "speaker.h"

class atom2_state : public driver_device
{
public:
	atom2_state(const machine_config &mconfig, device_type type, const char *tag)
		: driver_device(mconfig, type, tag)
		, m_maincpu(*this, "maincpu")
	{
	}

	void atom2(machine_config &config);

protected:
	// driver_device overrides
	virtual void machine_start() override;
	virtual void machine_reset() override;

	virtual void video_start() override;

private:
	// screen updates
	uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);

	void atom2_map(address_map &map);

	// devices
	required_device<cpu_device> m_maincpu;
};

void atom2_state::video_start()
{
}

uint32_t atom2_state::screen_update( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect )
{
	return 0;
}

void atom2_state::machine_start()
{
}

void atom2_state::machine_reset()
{
}

static INPUT_PORTS_START( atom2 )
INPUT_PORTS_END

void atom2_state::atom2_map(address_map &map)
{
	map(0x000000, 0x1fffff).rom().region("maincpu", 0);
}


void atom2_state::atom2(machine_config &config)
{
	/* basic machine hardware */
	H8S2394(config, m_maincpu, 25_MHz_XTAL);  // wrong type, should be H8S/2378 family group
	m_maincpu->set_addrmap(AS_PROGRAM, &atom2_state::atom2_map);

	/* video hardware dummy */
	screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
	screen.set_refresh_hz(60);
	screen.set_size(640, 480);
	screen.set_visarea(0, 639, 0, 479);
	screen.set_screen_update(FUNC(atom2_state::screen_update));

	PALETTE(config, "palette").set_entries(65536);

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

	ymz770_device &ymz770(YMZ770(config, "ymz770", 16.384_MHz_XTAL));
	ymz770.add_route(0, "lspeaker", 1.0);
	ymz770.add_route(1, "rspeaker", 1.0);
}


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

  ROM definition(s)

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

ROM_START( spongbob )
	ROM_REGION( 0x2000000, "maincpu", ROMREGION_ERASE00 )
	// Main board
	ROM_LOAD("epr-24430.ic4", 0x0000000, 0x80000, NO_DUMP )

	// ROM board
	ROM_LOAD("ic1", 0x0000000, 0x1000000, CRC(607a0989) SHA1(17706df8400e13800edd1d1cf45047d1c970d0b8) )
	ROM_LOAD("ic2", 0x1000000, 0x1000000, CRC(88c8db6b) SHA1(d716e752a3e70e6cfdf82bb1e9ef73897452bb84) )

	ROM_REGION(0x1000000, "ymz770", ROMREGION_ERASEFF)
	ROM_LOAD("ic5", 0x0000000, 0x1000000, CRC(d8e9bc95) SHA1(91798ea0f47f3340bc32b754d0be8fec5d093122) )
ROM_END

GAME( 200?, spongbob,  0, atom2, atom2, atom2_state, empty_init, ROT0, "Sega",      "SpongeBob SquarePants Ticket Boom", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )