Since I'm on a roll, I added the 555 1second timer and it seems to work!
The driver is only running at 10% speed (on my system) so I made the resistance much lower (supposed to be 220K, set it to 20K otherwise I'd never see the end of the countdown).
Once it counts down, the car won't move forward (you can still turn it though).
So I looked at the schematic over and over again, trying different things and I've come to the conclusion that the RESET1 D-Latch must depend on the horizontal position somehow, either through HBLANK or 512H.
RESET1 pulse ends when it clocks in a P on the data line. If this happens when 512H goes high, the car will appear in the middle of the screen.
Code
TTL_7408_AND(Reset1Clock, VLd1_Q, 512H) // clock the reset1 flipflop depending on 512H
TTL_7474(A4_A, Reset1Clock.Q, P, A6_B.Q, P)
// TTL_7474(A4_A, VLd1_Q, P, A6_B.Q, P) // according to schematic
ALIAS(RESET1_Q, A4_A.Q)
ALIAS(RESET1, A4_A.QQ)
TTL_7400_NAND(A2_B, CAR1VIDEO, COMP_SYNC_Q)
TTL_7408_AND(A6_B, START_Q, A2_B.Q)
If you think about it awhile (it just came to me), no additional gating necessary.
You can set the flipflop with PRESET_Q so just connecting 512H_Q up will set it and shut off the RESET1.
Code
TTL_7474(A4_A, VLd1_Q, P, A6_B.Q, 512H_Q)
It's actually kind of interesting to study these early Atari arcade games like Lemans/Gran Trak 10 and Tank because you see the similarities between them and what came later in the 2600. The horizontal and vertical position and motion based on counters, here discrete logic does the counting for vertical and horizontal, whereas the 2600 had the cpu do the vertical counting, and the horizontal counting was done with a polynomial counter with an cpu supplied HMOVE offset.
Another exciting patent about composing complex graphics without framebuffer is US4383827 and DE3243574A1 about Nürburgring 3, the mythical arcade driving simulator by Reiner Foerst.
If you are emulating such things, a specimen has apparently survived in the Computer Games Museum of Berlin.
I am writing on a more detailed summary about the different Foerst hardware platforms. Nürburgring 1 & 2 were the predecessor of Atari "Night Driver" but had mostly analogue computers for car simulation, graphics and sound. Nürburgring 3 had more realistic colour graphics controlled by a Z80 MK3880 CPU but still used much analogue hardware for the simulator.
Foerst GmbH, Historie
According to patent DE3243574A1 the colour graphics works without framebuffer using gate logics with counters to draw the road etc., likely controlled by an eprom. Although this machine yet had no opponent cars, the graphics style of drawing a 3D road with center line and horizontally scrolling 2D backdrop (sky and mountains) had set the standard for games like Sega's "Turbo" (1981, which completely lacked car physics and switched curves as static still pictures) and the famous "Pole Position" (1982 by Namco, having car physics and proper curve motion).
Versions N4/N5 (1982,1983) were fully digital with improved arcade graphics featuring opposing traffic and better character generator. N6 (1986?) was likely for professional simulators only and had very awesome hardware based weather effects (apparently alpha channel) and hardware based area fill and circle segment drawing for a kind of zooming run-length encoded sprite graphics. N7 (1985, used in a serious forklift simulator) employed a custom built highend parallel computer with 3D polygon rendering hardware.
It is unknown how many Nürburgring arcade machines still exist. Apparently a "Nürburgring Power-Slide" (N3 P) stands in the Computerspielemuseum Berlin (computer games museum of Berlin, Germany). On flickr a person "videogamescgi1" uploaded detail photos of a "Nürburgring/1" (N1) including screenshot and PCB rack, those look fresh and suggest that it survived in collector's hands. With the early professional simulators it is hard to guess if some still rot in the cellars of some driving school because nobody seems to care. It would be exciting to emulate at least the graphics engine of the early models - and be it only for art purpose because they were way beyond its time.
Video Game Museum in Berlin (photo of Nürburgring 3 Power-Slide)
Interesting stuff, CO, I was watching the moving pictures until I realized that you can auto translate the German captions into English.
Too bad they had that "youth protection law".
==================
Back to the GT10:
I tried to put a POT (potentiometer) into the netlist, where there's supposed to be a pot to adjust the game timer.
There's a bunch of questions about pots that I don't quite understand:
I tried to use POT but that used three terminals, the POT2 only has two terminals.
You can specify a resistance:
POT2(R72, RES_K(10)) // should be a potentiometer 1M // lemans calls it R40 // Less resistance, faster count POT2(R71, RES_K(60)) // lemans calls it R39 // should be 220K , we'll set to less because we want to see it count
and you can specify a dial setting:
PARAM(R72.DIAL,1.0) PARAM(R71.DIAL,1.0)
and in the driver you have to specify an analog input:
So I'm confused as to how the value given in the adjuster affects the POT2. Here I've given the one adjuster a value of 1000, and another a value of 220, how does that change the value, is it a percentage on scale of 0 to 100?
The dial setting in the param, is that an initial value?
==========================
I seem to be able to affect the pot value in-game make it count slower/faster, but the exact semantics are not quite understood.
============================
The UI not working properly with a slow netlist is getting problematic since half the time I can't even bring up the Sliders screen to change the values. Sometimes I can "kick it loose" by hitting ALT+ENTER to swap between full screen and window mode, but it still will hang up. (It will still respond to ALT+F4 and ALT+Enter). It seems like it won't respond to the up/down arrows until after a delay (like it needs the auto-repeat to kick in before it will see it). Does the input buffer get cleared before it can see the events or something?
I'm using Ubuntu, is this just a problem under linux?
one workaround I just figured out, put the netlist game into pause before bringing up the menu, then the menus work.
Interesting stuff, CO, I was watching the moving pictures until I realized that you can auto translate the German captions into English.
Too bad they had that "youth protection law".
The last arcade videogame machine I saw in a German shopping center in Bremen was an Atari "Pole Position" cockpit at Horten that remained in operation likely until about 1992. But I also remember a Sega "Outrun" cockpit at Brinkmann that stood for few weeks in the computer department at the same time when they sold a PC with built-in Megadrive (looking like "Amstrad Mega PC" which was made 1993 - possibly rebranded as Compaq or such). It is unknown if there was a grace period for machines bought earlier or individual special approvals for non-violent games in some states of Germany.
The Nürburgring 3 graphics seems to be mostly described in the German language patent DE3243574A1 while the US patent is more general. The earlier Nürburgring 1 & 2 (which is mostly analogue without CPU) is described in patents US4077138, US4077138A. Unfortunately some of the old Foerst patents seem to be missing in online search. (I don't know if due to invention secrecy act if these included military simulators, but likely they were simply not scanned by Google when not found because these were expired anyway. The German ones tend to be OCR only, thus lacking illustrating drawings like schematics.)
There is a Foerst company history PDF (31MB huge) with plenty of fairly detailed info and many screenshots and newspaper articles of their historical arcade and professional driving simulators.
Particularly the N6 graphics looks gorgeous. Unfortunately the screenshot dates seem partially messed up, and those dates in the youtube video got shuffled even worse and have nothing to do with the spoken text. Here is some additional driving simulator history:
Stunt Cycle is very similar to Gran Trak in many ways, thought I'd fiddle a little.
Attaching a clock to the score up counter and hacking a "force start" button gets you from 8 to 27 buses: (don't know what's happening with the ramps on score = 12)
Okay, got the bike looking normal, still falling...
Don't know if this is right, but JD left a clue, saying that it could be DIRECTION_Q and it didn't look right until I used DIRECTION_Q.
Code
TTL_7402_NOR(D4_3, DIRECTION_Q, H6) // Schematic says DIRECTION, maybe DIRECTION_Q?
TTL_7408_AND(B5_1, DIRECTION_Q, H5_AND_H6) // Schematic says DIRECTION, maybe DIRECTION_Q?
TTL_7402_NOR(D4_4, D4_3.Q, B5_1.Q)
TTL_7400_NAND(H2_1, HSYNC_Q, D4_4.Q)
TTL_7400_NAND(H2_2, HSYNC_Q, H5)
//"TTL_9322","+SELECT,+A1,+B1,+A2,+B2,+A3,+B3,+A4,+B4,+STROBE,@VCC,@GND")
TTL_9322(J1, HSYNC, V4, P, V3, 4V, V2, 2V, V1, 1V, GROUND)
// 1V is from the VERTICAL COUNT registers (screen, used for bus images, read during hsync)
// V1 is from the VERTICAL MOTION registers (relative to the start of the cycle)
// PROM_82S115(name, CE1Q, CE2, A0, A1, A2, A3, A4, A5, A6, A7, A8, STROBE)
PROM_82S115(hf1, GROUND, P, A0, A1, A2, A3, A4, A5, A6, A7, A8, P)
// 9 bits of rom addressing, 512 bytes
ALIAS (A0, J1.Y4) // image row number 0..15
ALIAS (A1, J1.Y3)
ALIAS (A2, J1.Y2)
ALIAS (A3, J1.Y1)
ALIAS (A4, H2_2.Q) // horiz byte number 0..3 (0-2 = bike 3 = bus)
ALIAS (A5, H2_1.Q)
ALIAS (A6, R2) // image number 0..3 (cycle angle)
ALIAS (A7, R3)
ALIAS (A8, R4) // animation frame 0..1
// R2 and R3 are CYCLE ANGLE CONTROL
//
// R2 R3
// 0 0 both wheels on the road
// 1 0 half wheelie (held to a half wheelie while jumping)
// 0 1 full wheelie
// 1 1 crash / flipped position
// depends on the throttle