summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author couriersud <couriersud@users.noreply.github.com>2022-07-02 14:48:44 +0200
committer GitHub <noreply@github.com>2022-07-02 14:48:44 +0200
commit16058c238066f5dd0e8db0f3096f82675a37a314 (patch)
treec9a6a4cba35bfc9783e43d7204a9fc517b6827bf /src
parent5cae050f6077df02e067a923576b1876e9a8c402 (diff)
Fixed gtrak10 video. (#10022)
* Fixed gtrak10 video. * fix visible area * fix display of finish line, disable hack
Diffstat (limited to 'src')
-rw-r--r--src/devices/video/fixfreq.cpp5
-rw-r--r--src/mame/atari/atarittl.cpp30
-rw-r--r--src/mame/atari/nl_gtrak10.cpp4
3 files changed, 17 insertions, 22 deletions
diff --git a/src/devices/video/fixfreq.cpp b/src/devices/video/fixfreq.cpp
index e3f2f5f735d..2b6ea328f9a 100644
--- a/src/devices/video/fixfreq.cpp
+++ b/src/devices/video/fixfreq.cpp
@@ -89,6 +89,7 @@ void fixedfreq_monitor_state::update_sync_channel(const time_type &time, const d
const auto avg_line_dur = (time - m_last_field_time) * m_desc.m_fieldcount / (m_last_y + 1);
m_last_field_time = time;
m_sig_field = avg_line_dur * 0.75 > m_last_line_duration;
+ LOG("%d %f %f %f\n", m_sig_field, m_last_line_duration, avg_line_dur, time);
}
if (!has_fields || (m_sig_field == 0))
{
@@ -107,12 +108,12 @@ void fixedfreq_monitor_state::update_sync_channel(const time_type &time, const d
if (m_sig_vsync)
LOG("Hsync in vsync\n");
//LOG("HSYNC up %d\n", m_last_x);
- // FIXME: pixels > 50 filters some spurious hysnc on line 23/24 in breakout
+ // FIXME: pixels > 0 filters some spurious hysnc on line 23/24 in breakout
// The hsync signal transition from high to low is 7 pixels too
// early, goes up again after 6.8 pix and down after 7.2 pix.
// Therefore we need to filter early low to high transitions
// and base hsync on the start of the hsync signal.
- if (!m_sig_vsync && (m_last_x > m_desc.m_hscale * 100))
+ if (!m_sig_vsync && (m_last_x > 0))
{
m_last_y += m_desc.m_fieldcount;
m_last_x = 0;
diff --git a/src/mame/atari/atarittl.cpp b/src/mame/atari/atarittl.cpp
index be9df83bbca..d341caeca08 100644
--- a/src/mame/atari/atarittl.cpp
+++ b/src/mame/atari/atarittl.cpp
@@ -107,17 +107,8 @@ namespace {
#define TANK_HTOTAL (952)
#define TANK_VTOTAL (262)
-#define GTRAK10_VIDCLOCK 14318181
+#define GTRAK10_VIDCLOCK (14318181 / 2)
#define GTRAK10_HTOTAL 451
-//#define GTRAK10_HTOTAL 902
-// 451 only displays half of the frame
-// should be GTRAK10_HTOTAL 902 but that causes screen to disappear after 1 frame,
-// possibly fixfreq.h vsync filter/vsync time constant formula
-// double vsync_filter_timeconst() const noexcept
-// {
-//// //return (double) (m_monitor_clock) / ((double) m_hbackporch * vsync_width()); // original formula
-// return (double) (m_monitor_clock) / (double) (hvisible_width()); // vsync will work with gtrak10
-// }
#define GTRAK10_VTOTAL 521
class atarikee_state : public driver_device
@@ -293,26 +284,27 @@ void gtrak10_state::gtrak10(machine_config &config)
Pixel Clock = 14.318MHz
Horiz Total = 451
- Horiz Front Porch = 0
- Horiz Sync = 1
- Horiz Back Porch = 31
+ Horiz Front Porch = ?
+ Horiz Sync = 32
+ Horiz Back Porch = ?
Vert Total = 521
- Vert Front Porch = 0
- Vert Sync = 8
- Vert Back Porch = 0
+ Vert Front Porch = ?
+ Vert Sync = 4
+ Vert Back Porch = ?
*/
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
FIXFREQ(config, m_video).set_screen("screen");
m_video->set_monitor_clock(GTRAK10_VIDCLOCK);
// Length of active video, end of front-porch, end of sync signal, end of line/frame
- m_video->set_horz_params(GTRAK10_HTOTAL*1 - 32, GTRAK10_HTOTAL*1 - 32, GTRAK10_HTOTAL*1 - 31, GTRAK10_HTOTAL*1);
- //m_video->set_horz_params(GTRAK10_HTOTAL - 32, GTRAK10_HTOTAL - 32, GTRAK10_HTOTAL - 31, GTRAK10_HTOTAL);
- m_video->set_vert_params( GTRAK10_VTOTAL - 8, GTRAK10_VTOTAL - 8, GTRAK10_VTOTAL, GTRAK10_VTOTAL);
+ m_video->set_horz_params(GTRAK10_HTOTAL - 96, GTRAK10_HTOTAL - 64, GTRAK10_HTOTAL - 32, GTRAK10_HTOTAL);
+ m_video->set_vert_params( GTRAK10_VTOTAL - 32, GTRAK10_VTOTAL - 8, GTRAK10_VTOTAL - 4, GTRAK10_VTOTAL);
m_video->set_fieldcount(2);
m_video->set_threshold(1.0);
m_video->set_gain(1.50);
+ m_video->set_vsync_threshold(0.1);
+ m_video->set_horz_scale(2);
}
static INPUT_PORTS_START( gtrak10 )
diff --git a/src/mame/atari/nl_gtrak10.cpp b/src/mame/atari/nl_gtrak10.cpp
index 3e13da0eaaf..c9cb6dedaca 100644
--- a/src/mame/atari/nl_gtrak10.cpp
+++ b/src/mame/atari/nl_gtrak10.cpp
@@ -15,8 +15,10 @@
// To fill in some questions about the gtrak10 schematic, referencing the lemans schematic is helpful.
+// Couriersud: No jumping here
+// FXIME: Remove hack completely
// use this hack to stop horizontal jumping due to netlist timing problems
-#define HORIZ_COUNTER_ADJ_HACK // use 1 less than normal 450, substitute 1V instead of 2V, changes netlist timing
+//#define HORIZ_COUNTER_ADJ_HACK // use 1 less than normal 450, substitute 1V instead of 2V, changes netlist timing
#define GTRAK10_CLOCK 14318181