HOW-TO: Sega Driving Simulator (tech & bug report) #1634
Unanswered
CO-Windler
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Sega Driving Simulator is a training simulator designed in 2002 for driving schools in Japan. It was running on the arcade hardware Naomi2 (successor of the Dreamcast console). The cabinet was an arcade-like dashboard cockpit with 3 CRT monitors but no coin slots. The game (yes, Sega refers it such) can be played on Windows using the Flycast emulator, but it runs very unstable and needs many workarounds. Unfortunately there was almost nothing found online, so it took me a week to figure out. Obsolete driving simulator software rarely survives in the wild, so these are some tips and tricks to make Sega's antithesis of Crazy Taxi playable.
https://www.thedreamcastjunkyard.co.uk/2016/03/the-sega-driving-simulator-expanding.html
http://www.system16.com/hardware.php?id=725&page=1#2196
The graphics quality was only slightly below Sega's arcade games but pretty good for a training simulator, which is no matter of course. I research driving simulator history and have seen much worse.
A Ryzen 2400G APU is sufficient to run it at full speed, although it will turn a little hot. This game will crash Flycast 2.3 if Graphics API is not set to OpenGL (which runs other games a bit choppy). It can lock up when entering the emulator menu because all 3 emulated PCBs run out of sync when restarting. It also crashes if any of its windows is paused or slowed for few seconds (e.g. by dragging it). So when pausing the emulator, resume it only with gamepad button, because mouse clicking only resumes that window, pushing them out of sync. If you need to click, always resume first on both slave windows before the main window. But after moving a slave window, also resume by button sometimes only resumes one window.
The network between simulated PCBs uses Windoze, so do not block Flycast's network access by a firewall. By default, the game automatically selects these temporary network settings "Network Type: Naomi, Configuration: Act as Server, Local Port: 37391".
If network settings got changed, it will refuse to start. So disabling network made my config mess itself up and close the game windows before it boots. If this happens, remove from emu.cfg the following faulty entry.
Do not move steering wheel (joystick) while booting, else it locks up with an error. In case of lockup, quit and restart the emulator (reloading only the game is less effective). If the simulator boots correctly, you will see in all 3 windows a green screen with "JA" and kanji text. The center window changes into a kanji menu with 4 vertical text boxes, those apparently each boot into a different program (selected by steering wheel). Press accelerator to start, which will load the main part of the simulator, that shows a copyright text and then the blue title screen "Sega Driving Simulator" with further menus. Avoid to move the windows before you see the cockpit; it seems to lockup much easier during menu. Pause the emulator before you move or resize its windows, refocus the main window and resume by gamepad button (not keyboard or mouse click).
The car is unobvious to start. Select gear SHIFT0 (aka SLP0, will show turn key icon). Then again SHIFT0 + IG-START (in my setup right stick right + dpad down).
Don't forget, this is not a racing game. The female teacher will stop you if you are speeding or collide or ignore traffic rules. If you don't understand Japanese, its hard to guess what she wants. And Japan demands left-hand driving. Minor faults (like too strong braking) cause a warning noise that resembles a loud booming base drum. The emulator lacks dashboard gauges, but your speed is displayed in the lower left corner of the left window (so do not hide it). Menus are in Japanese, but some have icons for driving exercises. Often there is lengthy spoken Japanese instruction, that only sometimes apparently can be truncated with pedals.
The sevice mode ("application test mode" is hard to enter because the game tends to lockup by timeouts. Press "service" during "Naomi 2" splash screen of the main window enters the 1st part (Naomi2 bios) which is less useful. But loading the game specific part tends to crash. Press "Service" (default F1) when the game menu after the "Sega Driving Simulator" title screen appears. (This sometimes also works during car driving.) The main (center) screen goes black, so pause it (Guide button) and only click resume on main screen, which with some luck will show a menu "APPLICATION TEST MODE" window turns black) and then close the slave windows, which shows the application test (with red notice "ERROR_COMMBD, COMMUNICATION BD ERROR"). Select items with "Test" (default F2) button (not "SERVICE" like instructed on screen, which here would immediately exit the menu and fail restarting into game mode). Despite there are coin settings in Naomi 2 bios service mode, the game itself ignores credits. In GAME SETTINGS The "machine id " can be 1..5, which hints that up to 5 of these driving simulators could be linked. The setting "mission=" can be toggled AT/MT, which may be intended to select automatic/manual transmission, but it has no effect. Sega uses some strange Engrish terms, so "volume" is not about audio but adjusting any analogue values. So in this emu the speech volume control seems to be shorted with steering wheel position. "Handle" is the steering wheel. (You need to reverse direction in emulator controls.) The game crashes with error if steering is not perfectly centered during start.
game controls:
The controls are mapped to the Dreamcast arcade inputs in unobvious ways, those are only partially named in Flycast (see I/O check of the service mode). Many button functions (blinker,headlight etc.) in real harware have locking switches (here marked "LK"), but PC keys and gamepad buttons don't, which complicates their use. The controller mapping of the emulator should add an optional locking mode for such inputs (like MAME does) to make it playable with standard game controllers. Also the pilot lamps of the dashboard should be optionally displayed in the GUI.
Port A
up = horn
down = Light 0 (LK headlights small)
Left = Light 1 (LK headlights)
Right = Light 2 (?)
Thumbstick Up = Clutch (clutch pedal up?)
Thumbstick Down = Clutch (clutch pedal)
Thumbstick Left = Master (steering wheel left)
Thumbstick Right = Master (steering wheel right)
Button 1 = Turn R (LK blinker right)
Button 2 = Turn L (LK blinker left)
Button 3 = Shift 2 (LK stick shift gear "2")
Button 4 = Shift 3 (LK stick shift gear ?)
Button 5 = O/D Switch (LK)
Button 6 = S-Brake (LK handbrake/parking brake)
Button 7 = IG-Start (ignition key/start engine)
Button 8 = Shift 0 (LK stick shift gear "P", enable ignition)
Left Trigger = Brake (brake pedal)
Right Trigger = Accelerator (gas pedal)
Start = Start
Reload = IG-ON (ignition?)
Insert Card = Belt
The stick shifter switch uses 4-bit combinations for the shift position, seen in the I/O check menu at SLP0..3. Beside 0001 ("P"), 0100 ("2") and 0011 ("R") the rest stays "L". Bit 2 is forced lo by game or emulator when 1 or 3 are hi. Bit 2 (SLP2) is on Port B input.
0000 = L
0001 = P
0100 = 2
0101 = L
0010 = L
0011 = R
0110 = x
0111 = x
1000 = L
1001 = L
1100 = L
1101 = L
1010 = x
1011 = x
1110 = x
1111 = x
Also light uses a combi switch with 3 bits; bit 3 does nothing useful. Combinations of bit 3 and 2 (11X) seem to be prevented by the game or emulator.
000 = off
001 = small
010 = pass
011 = high
100 = off
101 = off
IG-ON and BELT stay always on (may be hacked by lack of locking switches, because else the car would not start). IG-ON input of the emulator seems miswired and so triggers TURN-R (right blinker). STOP SW is missing (may be on a 2nd coin slot input absent in Flycast); this switch or IG-ON was likely intended to abort a lesson, because I find no sane way to do this. (Not even game reset button works, and service mode tends to crash.) Holding "Start" shows rom version "ROM ver. 03.04.09.1.".
Only the SLP0 of Port B works simultaneously with SLP1 to shift into "R" (reverse) gear, which however does not respond anyway. And to start the car only Port A Button 8 works. Port C and D do nothing.
Port B
Reload = SLP0 Shift 0 (LK stick shift gear "P")
Button 1 = SLP0 (dto.)
Button 2 = SLP1 Shift 1 (LK stick shift gear "1")
Button 4 = IN-24
Button 5 = IN-25
Button 6 = IN-26
Left = IG-START (ignition key/start engine)
Right = HAZARD (LK warning lights?)
Start = WIPER-LO (LK windscreen wiper slow)
Service = WIPER-HI (LK windscreen wiper fast)
Up = WASHER (should be windscreen washer??)
ANALOG-5 = Thumbstick Right/Left
ANALOG-6 = Right Trigger
ANALOG-7 = Left Trigger
ANALOG-8 = Thumbstick Up/Down
My shifter:
up (Right Stick Y-) = Port A Button 4
down (Right Stick Y+) = Port B Button 2
left (Right Stick X-) = Port A Button 3
right (Right Stick X+) = Port B Button 1
I used the right thumbstick of my gamepad as shifter. Thus lower right is intended as reverse gear (important when car gets stuck). However Port A Button 8 as SLP0 (needed during ignition start) canceled reverse gear, so I use Port B Button 1. But as ignition starter (IG-START) this failed with Port A Button 7, so I use Port B Left instead (mapped on dpad down).
There are many annoying interactions in this keyboard matrix. So Port A Button 7 (IG-START) cancels Port B Button 1 (SLP0). And as a shift stick it would need a locking mechanism to function like expected.
switch matrix:
The keyboard matrix of the driving simulator is almost as big as a pinball playfield, including plenty of lights and locking switches not found in regular videogames. Some functions are doublets (e.g. in the stick shifter) but cancel out each others differently when combined, which was possibly done to omit some matrix diodes. I have no access to schematics and sorted the names according to the application test mode, with the corresponding Flycast port inputs.
gamepad
This mapping on a wired XBox 360 gamepad works for me to make it quite playable. But controls marked "LK" need to be held down during play (annoying with shifter and lights) by lack of locking switches. Set controller mapping to "All" because it needs parts from port A and B. Don't get confused by the controls description in Flycast, those for port B are just wrong.
Use left stick for steering and menu select, right stick for shifter. Shift right + Dpad down = start car engine. Left trigger = brake, right trigger = accelerator pedal and menu enter. Blink L/R with 'X'/'B', headlight is 'Y' and right button, wiper is left button. Use 'A to honk. Push left stick for handbrake, right stick for clutch. The shifter seems semi-automatic. Shift right down for reverse gear. Shift left for 2nd (fast) gear. I yet found no menu for fully manual stick shift (can'T read Japanese), despite the hardware looks like supporting it.
keyboard
I also mapped everything on my PC keyboard (German language IBM Model M clone) to test things those don't fit on the gamepad. Some may be not ergonimic, but are mostly unneeded anyway. I swapped F2/F1 etc. to keep it more MAME-like.
These are my controller configs:
SDL_Xbox 360 Controller_SEGA DRIVING SIMULATOR_arcade.cfg
SDL_Keyboard_SEGA DRIVING SIMULATOR_arcade.cfg
I also posted a bug report with summary of the issues. #1636
Beta Was this translation helpful? Give feedback.
All reactions