Sega "Super Scaler" (Hang-On / Space Harrier / OutRun)¶
Sega's sprite-scaling pseudo-3D revolution, by Yu Suzuki / AM2 (1985-1986). No polygons: scaled sprites pushed at high speed by dedicated ASICs — hence the depth illusion of Hang-On, Space Harrier, OutRun. Often in motion/ride cabinets. The direct ancestor of the X-Board / Y-Board and then the Model 1 (true 3D).
Identification¶
| Field | Value |
|---|---|
| Manufacturer | Sega (AM2) |
| Years | Hang-On (1985), Space Harrier (1985), Enduro Racer (1986), OutRun (1986), Super Hang-On / Turbo OutRun |
| Type | pseudo-3D with scaled sprites ("super scaler") |
| Cabinets | often motion / sit-down (tilting bike, cockpit) |
Architecture¶
| Block | Chip | Role |
|---|---|---|
| CPU | Motorola 68000 (×1, then ×2 on OutRun) | logic + road/object geometry |
| Sound CPU | Zilog Z80 | drives the sound |
| Sound | Yamaha YM2151 (FM) + SegaPCM (315-5218) | FM music + samples |
| Video | custom Sega sprite-zoom ASIC + a "road" stage | scales hundreds of sprites, draws the road in pseudo-3D |
Two close families in MAME:
- Hang-On / Space Harrier / Enduro Racer →
sega/segahang.cpp(68000 + Z80; Enduro Racer is FD1089B-encrypted). - OutRun / Super Hang-On / Turbo OutRun →
sega/segaorun.cpp(2× 68000 + Z80; Turbo OutRun is FD1094-encrypted).
Hang-On, two 'firsts'
Hang-On (1985) is both Sega's first super scaler and one of the first motion-feedback cabinets (a full-size tilting bike). OutRun (1986) pushed the concept with its hydraulic cabinet and selectable soundtrack.
Protection & de-suicide¶
Some games are encrypted (battery-backed module):
- FD1089B (Enduro Racer), FD1094 (Turbo OutRun…) → dead battery = mute/ dead game. De-suicide = decrypted ROM or re-key — the same method as System 16. → System 16 FD1094/FD1089 (de-suicide) · Per-game keys.
Notable games¶
Hang-On, Space Harrier (1985), Enduro Racer (1986), OutRun (1986), Super Hang-On (1987), Turbo OutRun (1989).
Common faults¶
| Symptom | Likely cause | Lead |
|---|---|---|
| Black screen / stuck boot | FD1089/FD1094: dead key battery | De-suicide (decrypted ROM / re-key) |
| Sprites no longer zoom | zoom ASIC / sprite RAM | Video diagnosis, contacts |
| No music / sound | Z80 / YM2151 / SegaPCM | Sound-stage diagnosis |
| No force feedback (cabinet) | motion board / motors | Cabinet mechanical diagnosis |
| No image | Power, 68000, harness | Base diagnosis |
Modernisation & mods¶
The common ground for every JAMMA board
Video, power, control panel and upscalers depend on the cabinet rather than the board: everything is centralised in Modernising a cabinet. To run the board outside a cabinet (at home, on a display): supergun.
- Anti-suicide 🟠: some games/variants of this platform do suicide (battery-backed key) — see the dedicated section above to find out whether yours is affected. If so, the durable route is de-suiciding → conversions and de-suiciding, not merely replacing the battery → save batteries.
- Storage 🟡: the game lives in EPROM/mask ROM on the board. Changing or restoring a game means reprogramming the EPROMs (and, for a mask ROM, using a pinout adapter) → EPROM method.
- Media preservation: replacing the original storage, multicarts, ODEs and modern options by family → PCB preservation hub.
- Scan rate 📺: ~15.73 kHz / 60.1 Hz — standard resolution, a classic 15 kHz chassis is fine — the most common JAMMA case → tri-sync and upscalers.
(Computed from the MAME sources —
sega/segahang.cpp + segaorun.cpp— pixel clock ÷ htotal.) - FPGA / emulation: see the Emulation & FPGA section below.
Repair (technician)¶
- FD1089 encryption on some (e.g. Enduro Racer): key in the custom → see keys/de-suicide and backup batteries.
- Zoom ASIC + "road" stage: corrupt road/objects = test RAM + buffers, the ASIC last (donor, rare).
- Sound: Z80 + YM2151 + SegaPCM (315-5218) — silent samples = the SegaPCM stage / sound ROM.
- Capacitors: recap PSU + audio filtering. Oxidised EPROM sockets: turned-pin socket.
→ Methods: PCB fault-finding · Recap · EPROM · Traces & vias
Expected clocks — measurement table ✅¶
Values extracted from the MAME sources for this platform. On a scope or frequency counter, a clock that is missing or off-value points straight at the crystal, the divider or the chip at fault — the fastest starting point on a dead board.
| Component | Expected clock | Role |
|---|---|---|
| I8751 | 8 MHz | protection MCU |
| M68000 | 6.2937 MHz · 10 MHz | main CPU |
| YM2151 | 4 MHz | FM (sound) |
| YM2203 | 4 MHz | FM (sound) |
| Z80 | 4 MHz | sound CPU (usually) |
How to read this table
Several values for one component = several board variants in this family (or several instances of the chip clocked differently). These frequencies are those of the clock signal at the component's input, not of its original crystal — on many boards the clock is divided down from a single master crystal.
DIP settings ✅¶
13 games on this platform, settings extracted from the MAME sources (INPUT_PORTS_START blocks). The Position column gives the switch's physical reference on the board (SW2:!3,!4 = bank SW2, levers 3 and 4) — which is what lets you set it up without the paper manual. Games are sorted by MAME set name.
DIP settings — MAME set enduror
| Setting | Position | Options (default in bold) |
|---|---|---|
| Cabinet | SWB:1 | Upright · Wheelie |
| Difficulty | SWB:2,3 | Easy · Medium · Hard · Hardest |
| Time Adjust | SWB:4,5 | Easy · Medium · Hard · Hardest |
| Time Control | SWB:6,7 | Easy · Medium · Hard · Hardest |
| Demo Sounds | SWB:8 | Off · On |
DIP settings — MAME set outrun
| Setting | Position | Options (default in bold) |
|---|---|---|
| Cabinet | SWB:1,2 | Moving · Up Cockpit · Mini Up · Unused |
DIP settings — MAME set outrun_generic
| Setting | Position | Options (default in bold) |
|---|---|---|
| Demo Sounds | SWB:3 | Off · On |
| Time Adj. | SWB:5,6 | Easy · Normal · Hard · Hardest |
| Difficulty | SWB:7,8 | Easy · Normal · Hard · Hardest |
DIP settings — MAME set outrundx
| Setting | Position | Options (default in bold) |
|---|---|---|
| Cabinet | SWB:1 | Not Moving · Moving |
| Demo Sounds | SWB:2 | Off · On |
DIP settings — MAME set outrundxeh
| Setting | Position | Options (default in bold) |
|---|---|---|
| Cabinet | SWB:1 | Not Moving · Moving |
| Demo Sounds | SWB:2 | Off · On |
| Speed Indicator | SWB:4 | km/h · MPH |
DIP settings — MAME set outruneh
| Setting | Position | Options (default in bold) |
|---|---|---|
| Cabinet | SWB:1,2 | Moving · Up Cockpit · Mini Up · Unused |
| Speed Indicator | SWB:4 | km/h · MPH |
DIP settings — MAME set shangon
| Setting | Position | Options (default in bold) |
|---|---|---|
| Demo Sounds | SWB:1 | Off · On |
| Difficulty | SWB:2,3 | Easy · Normal · Hard · Hardest |
| Time Adj. | SWB:4,5 | Easy · Normal · Hard · Hardest |
DIP settings — MAME set shangupb
| Setting | Position | Options (default in bold) |
|---|---|---|
| Demo Sounds | SWB:1 | Off · On |
| Difficulty | SWB:2,3 | Easy · Normal · Hard · Hardest |
| Time Adj. | SWB:4,5 | Easy · Normal · Hard · Hardest |
DIP settings — MAME set sharrier
| Setting | Position | Options (default in bold) |
|---|---|---|
| Cabinet | SWB:1 | Upright · Moving |
| Demo Sounds | SWB:2 | Off · On |
| Lives | SWB:3,4 | 2 · 3 · 4 · 5 |
| Bonus Life | SWB:5 | 5000000 · 7000000 |
| Trial Time | SWB:6 | Off · On |
| Difficulty | SWB:7,8 | Easy · Medium · Hard · Hardest |
DIP settings — MAME set toutrun
| Setting | Position | Options (default in bold) |
|---|---|---|
| Cabinet | SWB:1,2 | Moving · Cockpit Conversion · Mini Up · Cockpit |
| Turbo | SWB:4 | Use Start Button · Use Turbo Shifter |
| Credits | SWB:5,6 | 3 to Start/2 to Continue · 2 to Start/1 to Continue · 1 to Start/1 to Continue · 2 to Start/2 to Continue |
DIP settings — MAME set toutrunc
| Setting | Position | Options (default in bold) |
|---|---|---|
| Cabinet | SWB:1,2 | Unused · Unused · Unused · Cockpit |
| Turbo | SWB:4 | Unused · Use Turbo Shifter |
DIP settings — MAME set toutrunct
| Setting | Position | Options (default in bold) |
|---|---|---|
| Time Adjust | SWB:5,6 | Easy · Normal · Hard · Hardest |
DIP settings — MAME set toutrunm
| Setting | Position | Options (default in bold) |
|---|---|---|
| Cabinet | SWB:1,2 | Moving · Unused · Unused · Unused |
Check against your own board
These settings apply to the game and revision described by MAME. One title may have several DIP sets depending on region or revision, and some systems use soft-dips (settings in memory, via the test menu) rather than physical switches. In case of a discrepancy, the board's silkscreen and the test menu are authoritative.
See also: DIP reference · game manuals
Procedure — a dead board, step by step ✅¶
What this adds
The general method lives in PCB diagnosis. This is its application to this platform: the same order, but with the values actually expected here, so you do not have to go back and forth.
Tools: multimeter, oscilloscope (or frequency counter), current-limited bench supply, desoldering braid. → Tooling
If the board is still in a cabinet
A CRT holds its charge with the machine unplugged. → CRT safety
1. Inspection, power off. Corrosion, cut tracks, oxidised EPROM legs, leaking SMD capacitors, dubious earlier repairs. On this platform the battery is the first suspect: its leakage eats tracks under the holder, and the damage is often hidden by the battery itself. Lift it to look.
2. The connector, before anything else. A large share of "dead boards" are a contact problem, not a fault. Clean the contacts with isopropyl alcohol and reseat — not with an abrasive eraser on a gold edge, which takes the plating off and brings the problem back worse. It costs two minutes and settles the question.
3. Power, measured on the board. Aim for +5.0 V measured as close as possible to where power reaches the board — not at the PSU output: the drop is in the loom, and that is exactly what makes a board boot on the bench and not in the cabinet. Where you probe depends on this board's connector — JAMMA edge, JVS loom or a proprietary harness — plenty of makers kept one long after JAMMA arrived — see Identification above. → Wiring Check −5 V and +12 V too if the sound stage uses them. Suspected short: bring it up current-limited and find the hot spot.
4. /RESET. It must release after power-up. Held low = the CPU never starts. A 1–2 Hz loop is not the reset circuit, it is the watchdog: the CPU is crashing at boot, so look at the bus, not at the reset.
5. Clocks — the values expected on this platform.
- I8751 → 8 MHz (Protection MCU)
- M68000 → 6.2937 MHz · 10 MHz (Main CPU)
- YM2151 → 4 MHz (FM (sound))
- YM2203 → 4 MHz (FM (sound))
- Z80 → 4 MHz (Sound CPU (usually))
No clock on the M68000 (6.2937 MHz · 10 MHz) and there is no point measuring anything else: the fault is the crystal, the divider, or the chip itself. That single measurement splits a dead board in two.
Several values for one component means several board variants in this family, not several readings on the same one: identify yours before calling a clock wrong. That is the mistake that replaces a healthy crystal.
6. Bus. Activity on the main CPU's address lines tells you whether it is running or frozen. Frozen with good clocks and good reset → work RAM, bus buffers, ROMs.
7. It boots but the picture or the sound is wrong — that is another job: see Common faults on this page, then signal tracing.
Procedure — replacing the battery without losing the key ✅¶
Not every board in this family is concerned
Check on this page whether your game is one of the encrypted ones before touching anything. On the others the battery only holds settings, and losing it costs nothing but a re-setup.
The order is the whole procedure
The decryption key of the FD1089 / FD1094 lives in SRAM held up by that battery. Cutting the old cell before the new one is soldered erases it, instantly and for good: the board goes silent and only a de-suicide brings the game back. So the new cell goes in first, in parallel.
- Board powered off, old battery left in place.
- Measure the old cell in circuit and note it (a CR2032 is 3 V nominal). This is what tells you whether you are ahead of the failure or already behind it.
- Solder the new cell in parallel with the old one — piggyback — watching polarity. A reversed cell discharges the old one through itself and erases the key just as surely.
- Re-measure at the holder: the voltage must have come back up. Do not go on before it has.
- Only now, remove the old cell.
- Power up and check the game boots.
Already dead? This procedure will not bring it back — the key is gone. → de-suicide
Emulation & FPGA¶
- Emulation: MAME (
sega/segahang.cpp,sega/segaorun.cpp) — FD1089/FD1094 decryption included. - FPGA / MiSTer: super-scaler cores available/in progress — Super Hang-On and OutRun have a core (the work is a basis for the other super-scaler games).
EPROM repair¶
68000 program (+ Z80 sound). Ex. (MAME sega/segahang.cpp, segaorun.cpp): Hang-On = 4× 27C256 · Space Harrier = 8× 27C256 · Enduro Racer = 6× 27C256 · OutRun = 4× 27C512 · Turbo OutRun = 6× 27C512. Several sub-boards; graphics are mask ROMs.
Lineage¶
Followed by the X-Board (After Burner) and the Y-Board (Galaxy Force), then the true polygonal 3D of the Model 1. → Converts: Sega X / Y-Board.
Photos / assets¶
(To add: Hang-On/OutRun board, zoom ASIC, motion cabinet.)
What the Enduro Racer manual establishes ✅¶
Read off the Sega manual 420-5297-06
archived below — it has a text layer, and its calibration values were additionally
re-read from the images, because they are hexadecimal and OCR confuses 8/S and 3/J.
\"INSTALLATION SPACE\" — the Sega convention, a fourth time
| Item | What the manual writes |
|---|---|
| Installation space | 660 mm (26 in.) W × 920 mm (36.2 in.) D |
| Height | 1,790 mm (70.5 in.) |
| Power | 230 W |
| C.R.T. | 20″ |
| Weight | 110 kg (242.5 lbs) |
⚠️ Sega writes Installation space, not dimensions — the area to reserve, not the cabinet. This wiki has met exactly the same convention on the Astro City 2, the Super Megalo 2 and the Naomi Deluxe. Four Sega documents, the same word four times: this is not an isolated quirk, it is their practice.
The service panel, behind the coin door: DEMAGNETIZING SWITCH (against colour patches on screen), SERVICE SWITCH (credits without stepping the meter), TEST SWITCH, and the coin meter.
Calibrating the controls — the values the test mode must show
The manual does not say "adjust by eye": it gives the hexadecimal value the DIAGNOSTIC INPUT TEST must display, and the tolerated range.
| Control | At rest | Allowable range | End stops |
|---|---|---|---|
| HANDLE RIGHT/LEFT | 80H | 7CH → 84H | max > B8H · min < 48H |
| BANK UP/DOWN | 30H | 2CH → 34H | max > 78H · min < 2CH |
The mechanical parts named: VOLUME BRACKET MX-2044 for the handlebars, ADJUST PLATE MX-2016 for the bank.
⚠️ You need the right keys. The cabinet is closed with tamperproof screws in M4, M5 and M8, and the manual gives the wrench part numbers: M4 540-0006-01 and 540-0018, M5 540-0007-01 and 540-0017, M6 540-0015-01.
The manual also contains DIP SWITCH SETTING (folio 14), GAME DIFFICULTY SETTING (15), EPROM/ROM LOCATION (16-17), SELF-TESTING (18-24), PARTS LIST (25-32) and a SCHEMATIC DIAGRAM (33) — not transcribed here.
Archived original documents ✅¶
Documents archived locally, found on Internet Archive on 13 August 2026 and identified from their title page. ⚠️ The items declare no licence.
- PDF — sega-enduro-racer-upright-owners-manual.pdf — SEGA — ENDURO RACER, UPRIGHT TYPE — Owner's Manual, Sega Enterprises Ltd., manual no. 420-5297-06, 1st printing, 45 pp. ⚠️ This is the upright version; Enduro Racer also exists as a ride-on cabinet, not covered here. Via Internet Archive
Sources & attribution¶
- MAME —
sega/segahang.cpp&sega/segaorun.cpp(68000(×2), Z80, YM2151 + SegaPCM, sprite zoom, FD1089B/FD1094, games) — https://github.com/mamedev/mame - Wikipedia — Hang-On / Space Harrier / Out Run / Super scaler — CC-BY-SA — https://en.wikipedia.org/wiki/Super_scaler
Review & corrections
How this space is used
Spotted a wrong value, an outdated procedure, a chip reference that does not match your board? Say so here, with what you observed (model, board revision, serial number, measurement). Every report is cross-checked against a source before anything changes — an unverifiable correction is published as “reported by …, not cross-checked” rather than silently applied.
Reading is open to everyone; posting requires signing in with Discord. Reports from the wiki's declared reviewers are handled first; anyone else's are read too, but go through a human before anything is changed.