Skip to content

Commit 421d94b

Browse files
committed
namcos21: tweak video timing and some other clocks
1 parent 91faf17 commit 421d94b

4 files changed

Lines changed: 14 additions & 13 deletions

File tree

src/emu/xtal.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,8 @@ const double XTAL::known_xtals[] = {
462462
36'000'000, // 36_MHz_XTAL Sega Model 1 video board
463463
36'864'000, // 36.864_MHz_XTAL Unidesa Cirsa Rock 'n' Roll
464464
37'980'000, // 37.98_MHz_XTAL Falco 5220
465-
38'769'220, // 38.76922_MHz_XTAL Namco System 21 video board
465+
38'769'220, // 38.76922_MHz_XTAL Namco System 21 video board (C67 / Driver's Eyes)
466+
38'808'000, // 38.808_MHz_XTAL Namco System 21 video board (Winning Run)
466467
38'863'630, // 38.86363_MHz_XTAL Sharp X68000 15.98kHz video
467468
39'321'600, // 39.3216_MHz_XTAL Sun 2/120
468469
39'710'000, // 39.71_MHz_XTAL Wyse WY-60 132-column display clock

src/mame/namco/namcos21.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ is used to shade pixels according to their depth.
3838
TODO:
3939
- polygon glitches/flicker
4040
- is there a video_enable flag? or at least one for the bitmap layer (see screen transitions)
41+
- verify video timing, PCB videos do suggest exactly 60Hz
4142
- winrungp: some missing bitmap layer gfx due to underdumps of the gpu program roms (see attract mode
4243
when it's supposed to show "TRIANGLE" curve text, and the congratulations screen after winning)
4344
@@ -830,7 +831,7 @@ void namcos21_state::winrun(machine_config &config)
830831
MC6809E(config, m_audiocpu, 49.152_MHz_XTAL / 24); // Sound
831832
m_audiocpu->set_addrmap(AS_PROGRAM, &namcos21_state::sound_map);
832833

833-
NAMCOC65(config, m_c65, 2048000);
834+
NAMCOC65(config, m_c65, 49.152_MHz_XTAL / 24);
834835
m_c65->in_pb_callback().set_ioport("MCUB");
835836
m_c65->in_pc_callback().set_ioport("MCUC");
836837
m_c65->in_ph_callback().set_ioport("MCUH");
@@ -873,8 +874,7 @@ void namcos21_state::winrun(machine_config &config)
873874

874875
// video hardware
875876
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
876-
// TODO: basic parameters to get 60.606060 Hz, x2 is for interlace
877-
m_screen->set_raw(49.152_MHz_XTAL / 4 * 2, 768, 0, 496, 264*2, 0, 480);
877+
m_screen->set_raw(38.808_MHz_XTAL / 4 * 2, 616, 0, 496, 262 + 263, 0, 480); // x2 is for interlace
878878
m_screen->set_screen_update(FUNC(namcos21_state::screen_update));
879879
m_screen->set_palette(m_palette);
880880

src/mame/namco/namcos21_c67.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Namco System 21 (later hardware with 5 TMS320C25 DSPs)
66
77
TODO:
88
- lamp/vibration outputs, from MCU? (particularly starblad);
9-
- verify video timing, pixel clock is from 38.76922?;
9+
- verify video timing, it's assumed to be the same as namcos21 with a different XTAL;
1010
- mix_layer0_sprites can be improved when namcos21_3d_device removes the z-buffer, there are currently
1111
glitches in cybsled, eg. missile pickups behind pillars;
1212
- wrong global sprite layer offsets in service mode for all games except aircomb, it's fine in-game though;
@@ -17,6 +17,7 @@ Namco System 21 (later hardware with 5 TMS320C25 DSPs)
1717
- aircomb: may show glitches when pressing start at the intro sequence, it forgot to turn off video_enable?
1818
namcos21_dsp_c67_device::render_slave_output size mismatch also triggers here (not a regression);
1919
- aircomb: are the depthcue banks actually used? it looks fine with the depth cue embedded in palette;
20+
- solvalou: remove the ROM hack;
2021
- solvalou: service mode polygon test is crashy when testing invalid polygons (the good old IDC overflow);
2122
- solvalou: sprite blend is wrong during water stages (look at the blaster/score panel), the palette
2223
bank for the water is at 0x2200, but the blend palette is at 0x6000 instead of 0x6200?;
@@ -843,7 +844,7 @@ void namcos21_c67_state::namcos21(machine_config &config)
843844
MC6809E(config, m_audiocpu, 49.152_MHz_XTAL / 24); // Sound
844845
m_audiocpu->set_addrmap(AS_PROGRAM, &namcos21_c67_state::sound_map);
845846

846-
NAMCOC68(config, m_c68, 8000000);
847+
NAMCOC68(config, m_c68, 49.152_MHz_XTAL / 6);
847848
m_c68->in_pb_callback().set_ioport("MCUB");
848849
m_c68->in_pc_callback().set_ioport("MCUC");
849850
m_c68->in_ph_callback().set_ioport("MCUH");
@@ -872,8 +873,7 @@ void namcos21_c67_state::namcos21(machine_config &config)
872873

873874
// video hardware
874875
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
875-
// TODO: basic parameters to get 60.606060 Hz, x2 is for interlace
876-
m_screen->set_raw(49.152_MHz_XTAL / 4 * 2, 768, 0, 496, 264*2, 0, 480);
876+
m_screen->set_raw(38.76922_MHz_XTAL / 4 * 2, 616, 0, 496, 262 + 263, 0, 480); // x2 is for interlace
877877
m_screen->set_screen_update(FUNC(namcos21_c67_state::screen_update));
878878
m_screen->set_palette(m_palette);
879879

src/mame/namco/namcos21_de.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
Driver's Eyes
66
not yet working
77
8-
see http://www.tvspels-nostalgi.com/driverseye.htm for details about setup
8+
see http://www.tvspels-nostalgi.com/driverseye.htm for details about setup (go to archive.org)
99
1010
2008/06/11, by Naibo(translated to English by Mameplus team):
1111
@@ -20,6 +20,7 @@ see http://www.tvspels-nostalgi.com/driverseye.htm for details about setup
2020
TODO:
2121
- add communications for Left and Right screen (linked C139 or something else?)
2222
- same flickering polygon glitches as namcos21.cpp
23+
- verify video timing, it's assumed to be the same as namcos21 with a different XTAL
2324
- are the left and right PCB sound outputs N/C?
2425
2526
*/
@@ -161,10 +162,10 @@ void namco_de_pcbstack_device::device_add_mconfig(machine_config &config)
161162
M68000(config, m_slave, 49.152_MHz_XTAL / 4); // Slave
162163
m_slave->set_addrmap(AS_PROGRAM, &namco_de_pcbstack_device::driveyes_slave_map);
163164

164-
MC6809E(config, m_audiocpu, 3072000); // Sound
165+
MC6809E(config, m_audiocpu, 49.152_MHz_XTAL / 24); // Sound
165166
m_audiocpu->set_addrmap(AS_PROGRAM, &namco_de_pcbstack_device::sound_map);
166167

167-
NAMCOC68(config, m_c68, 8000000);
168+
NAMCOC68(config, m_c68, 49.152_MHz_XTAL / 6);
168169
m_c68->in_pb_callback().set_ioport("MCUB");
169170
m_c68->in_pc_callback().set_ioport("MCUC");
170171
m_c68->in_ph_callback().set_ioport("MCUH");
@@ -203,8 +204,7 @@ void namco_de_pcbstack_device::device_add_mconfig(machine_config &config)
203204

204205
// video hardware
205206
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
206-
// TODO: basic parameters to get 60.606060 Hz, x2 is for interlace
207-
m_screen->set_raw(49.152_MHz_XTAL / 4 * 2, 768, 0, 496, 264*2, 0, 480);
207+
m_screen->set_raw(38.76922_MHz_XTAL / 4 * 2, 616, 0, 496, 262 + 263, 0, 480); // x2 is for interlace
208208
m_screen->set_screen_update(FUNC(namco_de_pcbstack_device::screen_update));
209209
m_screen->set_palette(m_palette);
210210

0 commit comments

Comments
 (0)