Code:
# MAME 0.106 source snippet [midvunit.c]
GAME( 1996, crusnwld, 0, midvunit, crusnwld, crusnwld, ROT0, "Midway", "Cruis'n World (rev L2.3)", 0 )
INPUT_PORTS_START( crusnwld )
PORT_START
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */
PORT_BIT(0x0010, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Enter") PORT_CODE(KEYCODE_F2) /* Test switch */
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 )
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN3 )
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_VOLUME_DOWN )
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_VOLUME_UP )
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON5 ) /* 4th */
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON4 ) /* 3rd */
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* 2nd */
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* 1st */
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN4 )
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON6 ) /* radio */
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) /* view 1 */
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) /* view 2 */
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) /* view 3 */
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) /* view 4 */
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START
PORT_DIPNAME( 0x0003, 0x0000, "Link Number" )
PORT_DIPSETTING( 0x0000, "1" )
PORT_DIPSETTING( 0x0001, "2" )
PORT_DIPSETTING( 0x0002, "3" )
PORT_DIPSETTING( 0x0003, "4" )
PORT_DIPNAME( 0x0004, 0x0004, "Linking" )
PORT_DIPSETTING( 0x0004, DEF_STR( Off ))
PORT_DIPSETTING( 0x0000, DEF_STR( On ))
PORT_DIPNAME( 0x0018, 0x0008, "Games Linked" )
PORT_DIPSETTING( 0x0008, "2" )
PORT_DIPSETTING( 0x0010, "3" )
PORT_DIPSETTING( 0x0018, "4" )
PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Cabinet ))
PORT_DIPSETTING( 0x0020, DEF_STR( Upright ))
PORT_DIPSETTING( 0x0000, "Sitdown" )
PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ))
PORT_DIPSETTING( 0x0040, DEF_STR( Off ))
PORT_DIPSETTING( 0x0000, DEF_STR( On ))
PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
PORT_DIPNAME( 0x0100, 0x0100, "Coin Counters" )
PORT_DIPSETTING( 0x0100, "1" )
PORT_DIPSETTING( 0x0000, "2" )
PORT_DIPNAME( 0xfe00, 0xf800, DEF_STR( Coinage ))
PORT_DIPSETTING( 0xfe00, "USA-1" )
PORT_DIPSETTING( 0xfa00, "USA-3" )
PORT_DIPSETTING( 0xfc00, "USA-7" )
PORT_DIPSETTING( 0xf800, "USA-8" )
PORT_DIPSETTING( 0xf600, "Norway-1" )
PORT_DIPSETTING( 0xee00, "Australia-1" )
PORT_DIPSETTING( 0xea00, "Australia-2" )
PORT_DIPSETTING( 0xec00, "Australia-3" )
PORT_DIPSETTING( 0xe800, "Australia-4" )
PORT_DIPSETTING( 0xde00, "Swiss-1" )
PORT_DIPSETTING( 0xda00, "Swiss-2" )
PORT_DIPSETTING( 0xdc00, "Swiss-3" )
PORT_DIPSETTING( 0xce00, "Belgium-1" )
PORT_DIPSETTING( 0xca00, "Belgium-2" )
PORT_DIPSETTING( 0xcc00, "Belgium-3" )
PORT_DIPSETTING( 0xbe00, "French-1" )
PORT_DIPSETTING( 0xba00, "French-2" )
PORT_DIPSETTING( 0xbc00, "French-3" )
PORT_DIPSETTING( 0xb800, "French-4" )
PORT_DIPSETTING( 0xb600, "Hungary-1" )
PORT_DIPSETTING( 0xae00, "Taiwan-1" )
PORT_DIPSETTING( 0xaa00, "Taiwan-2" )
PORT_DIPSETTING( 0xac00, "Taiwan-3" )
PORT_DIPSETTING( 0x9e00, "UK-1" )
PORT_DIPSETTING( 0x9a00, "UK-2" )
PORT_DIPSETTING( 0x9c00, "UK-3" )
PORT_DIPSETTING( 0x8e00, "Finland-1" )
PORT_DIPSETTING( 0x7e00, "German-1" )
PORT_DIPSETTING( 0x7a00, "German-2" )
PORT_DIPSETTING( 0x7c00, "German-3" )
PORT_DIPSETTING( 0x7800, "German-4" )
PORT_DIPSETTING( 0x7600, "Denmark-1" )
PORT_DIPSETTING( 0x6e00, "Japan-1" )
PORT_DIPSETTING( 0x6a00, "Japan-2" )
PORT_DIPSETTING( 0x6c00, "Japan-3" )
PORT_DIPSETTING( 0x5e00, "Italy-1" )
PORT_DIPSETTING( 0x5a00, "Italy-2" )
PORT_DIPSETTING( 0x5c00, "Italy-3" )
PORT_DIPSETTING( 0x4e00, "Sweden-1" )
PORT_DIPSETTING( 0x3e00, "Canada-1" )
PORT_DIPSETTING( 0x3a00, "Canada-2" )
PORT_DIPSETTING( 0x3c00, "Canada-3" )
PORT_DIPSETTING( 0x3600, "General-1" )
PORT_DIPSETTING( 0x3200, "General-3" )
PORT_DIPSETTING( 0x3400, "General-5" )
PORT_DIPSETTING( 0x3000, "General-7" )
PORT_DIPSETTING( 0x2e00, "Austria-1" )
PORT_DIPSETTING( 0x2a00, "Austria-2" )
PORT_DIPSETTING( 0x2c00, "Austria-3" )
PORT_DIPSETTING( 0x2800, "Austria-4" )
PORT_DIPSETTING( 0x1e00, "Spain-1" )
PORT_DIPSETTING( 0x1a00, "Spain-2" )
PORT_DIPSETTING( 0x1c00, "Spain-3" )
PORT_DIPSETTING( 0x1800, "Spain-4" )
PORT_DIPSETTING( 0x0e00, "Netherland-1" )
PORT_START /* wheel */
PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(20)
PORT_START /* gas pedal */
PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(20)
PORT_START /* brake pedal */
PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_PLAYER(2)
INPUT_PORTS_END
Resolution: 512x400 @ 57.000000Hz
Note: service mode accessible with F2. Navigation is with Volume Up and Volume Down with Service Mode as the select button.
Rules, The World [Fastest Completion]: https://www.twingalaxies.com/scores.php?scores=55739
Rules, Africa [Fastest Race]: https://www.twingalaxies.com/scores.php?scores=55725
Rules, Australia [Fastest Race]: https://www.twingalaxies.com/scores.php?scores=55726
Rules, China [Fastest Race]: https://www.twingalaxies.com/scores.php?scores=55727
Rules, Egypt [Fastest Race]: https://www.twingalaxies.com/scores.php?scores=55728
Rules, England [Fastest Race]: https://www.twingalaxies.com/scores.php?scores=55729
Rules, Florida [Fastest Race]: https://www.twingalaxies.com/scores.php?scores=55730
Rules, France [Fastest Race]: https://www.twingalaxies.com/scores.php?scores=55731
Rules, Germany [Fastest Race]: https://www.twingalaxies.com/scores.php?scores=55732
Rules, Hawaii [Fastest Race]: https://www.twingalaxies.com/scores.php?scores=55733
Rules, Italy [Fastest Race]: https://www.twingalaxies.com/scores.php?scores=55734
Rules, Japan [Fastest Race]: https://www.twingalaxies.com/scores.php?scores=55735
Rules, Mexico [Fastest Race]: https://www.twingalaxies.com/scores.php?scores=55736
Rules, Moscow [Fastest Race]: https://www.twingalaxies.com/scores.php?scores=55737
Rules, New York [Fastest Race]: https://www.twingalaxies.com/scores.php?scores=55738
ROMSet: CrusnWld
Link Number: 1
Linking: Off
Games Linked: 2
Cabinet: Upright
Unknown: Off
Service Mode: Off
----------
Internal Defaults
Standard Pricing: [Any] ON
Custom Pricing: OFF
Free Play: OFF
First Place Gets Free Race: ON
Start Time Bonus Secs: 75
Checkpoint Bonus Time Secs: 20
Attract Mode Sounds: Optional
Initial Entry: ON
Minimum Volume Level: 11
Speed In MPH or KPH: Optional
Show Roadkill: Optional
Show Ending: ON
Show Girls: ON
High Score Reset: 5000
Game Difficulty: 5
Maximum Credits: 30
Steering Sensitivity: 3
Multi Player Free Races: NO
Sample correct TG:
DIPs: offset 0x2A, repeat every 0x7C to begin with but varies due to analog input, typical value 0xF9EC
- DIPs: 0x0003 (Link Number): 0x0000 (1)
- DIPs: 0x0004 (Linking): 0x0004 (Off)
- DIPs: 0x0018 (Games Linked): 0x0008 (2)
- DIPs: 0x0020 (Cabinet): 0x0020 (Upright)
- DIPs: 0x0040 (unknown): 0x0040 (Off)
- DIPs: 0x0080 (Service Mode): 0x0080 (Off)
- DIPs: 0x0100 (Coin Counters): [not relevant]
- DIPs: 0xfe00 (Coinage): [not relevant]
20: 00 00 FF FF 00 00 FF FF 00 00 F9 EC 00 00 00 80
A0: 00 00 FF FF 00 00 F9 EC 00 00 00 80 00 00 00 00
120: 00 00 F9 EC 00 00 00 80 00 00 00 00 00 00 00 00
Code:
MAMEInfo.dat entries for:
crusnwld
midvunit.cpp
----
0.146u3 [Brian Troha, The Dumping Union]
0.106u10 [Aaron Giles]
0.62 [Aaron Giles]
Bugs:
- [possible] No manual transmission. In the recently added Crus'n World Rev L2.5 there is no screen for choosing transmission between manual and auto, it is always set to auto. It's a completely different behaviour from Rev L2.4, is that correct?. Scagazza (ID 04952)
- "Unimplemented op @ 8099E8: 08AD8000 (tbl=045)" in demo mode [~10mins]. john_iv (ID 02219)
- Choosing manual gear you can see strange green artifacts when you set neutral gear. Scagazza (ID 01798)
WIP:
- 0.162: Osso added postload to fixed Cruis'n World save state problem as per Tafoid's regression test.
- 0.146u3: Brian Troha and The Dumping Union added Cruis'n World (rev L2.5) and clone (rev L1.9). Renamed (crusnwld) to (crusnwld24).
- 6th July 2012: Smitdogg - We dumped Cruis'n World 2.5 and 1.9.
- 0.146u2: Brian Troha added DIP locations to Cruis'n World. Changed 'Unknown' dipswitch to 'Unused'.
- 0.133u1: Renamed (crusnu40) to (crusnusa40), (crusnu21) to (crusnusa21), (crusnw23) to (crusnwld23), (crusnw20) to (crusnwld20), (crusnw17) to (crusnwld17) and (crusnw13) to (crusnwld13).
- 0.131u1: MSN added clone Cruis'n World (rev L1.7).
- 0.130u2: Added buttons 7-11. Removed 2nd Player.
- 0.106u10: Aaron Giles added Cruis'n World (rev L2.4). Renamed (crusnwld) to (crusnw23).
- 0.102u1: Guru added redump of bad rom (user1 - $0) for clone Cruis'n World (rev L1.3).
- 0.79u2: Replaced Custom sound with DMA-driven DAC.
- 0.78u4: Changed region cpu2 to sound1.
- 0.74u2: Brake pedal hack removed.
- 0.74: Changed ADSP2105 clock speed to 10MHz.
- 0.63: Added clone Cruis'n World (rev L2.0).
- 22nd November 2002: Aaron Giles added Cruis'n World version 2.0 to the Williams V-unit driver.
- 0.62: Aaron Giles added 'Cruis'n World (rev L2.3)' (Midway 1996) and clone (rev L1.3).
- 29th October 2002: smf fixed some compile errors in the Williams V-unit driver.
- 28th October 2002: Aaron Giles sent in a TMS32031 CPU core and Williams V-Unit driver supporting Cruis'n USA and Cruis'n World complete with perfect sound emulation. P4 - 4 GHz or Athlon XP 4000+ recommended.
LEVELS: 14
Recommended Games (Racing 3D):
280-ZZZAP
Night Driver
Speed Freak
Change Lanes
Konami GT
Out Run
Out Run (Mega-Tech)
Out Run (TourVision PCE bootleg)
Turbo Out Run
Turbo Outrun (Mega-Tech)
OutRunners
OutRun 2
OutRun 2 Special Tours
OutRun 2 SP SDX
Hyper Crash
Rad Racer
Rad Racer II
Road Blasters
Top Speed
Hard Drivin'
Race Drivin'
Hard Drivin's Airborne
Street Drivin'
Power Drift
Power Drift - Link Version
Power Drift (TourVision PCE bootleg)
Big Run
Cisco Heat
Rad Mobile
F-Zero (Nintendo Super System)
F-Zero AX
F-Zero AX Monster Ride
Rad Rally
Ridge Racer
Ridge Racer 2
Ridge Racer V Arcade Battle
Chase Bombers
Cruis'n USA
Cruis'n World
Cruis'n Exotica
Knight Rider Special (TourVision PCE bootleg)
Dangerous Curves
Dirt Dash
Midnight Run: Road Fighters 2
Rave Racer
Sega Rally Championship - TWIN
Sega Rally 2
Sega Rally 2 DX
Speed Racer
Wheels & Fire
GTI Club
GTI Club: Corso Italiano
Pocket Racer
San Francisco Rush
San Francisco Rush: The Rock
San Francisco Rush 2049
Scud Race Twin
Side by Side
Side by Side 2
Speed Up
Winding Heat
Over Rev
Roads Edge / Round Trip
California Speed
Choro Q Hyper Racing 5
Race On!
Racing Jam
Racing Jam DX
Techno Drive
Battle Gear
Battle Gear 2
California Chase
Go By RC
Stunt Typhoon Plus
Wangan Midnight
Wangan Midnight R
Wangan Midnight Maximum Tune
Wangan Midnight Maximum Tune 2
Initial D Arcade Stage
Initial D Arcade Stage Ver. 2
Initial D Arcade Stage Ver. 3
Initial D Arcade Stage Ver. 3 Cycraft Edition
Initial D4
Need for Speed
Need for Speed GT
Need For Speed: Underground
Faster Than Speed
Speed Driver
Gaelco Championship Tuning Race
Sega Race-TV
Romset: 20 MB / 24 files / 15.7 zip
----
0.62 [Aaron Giles]
TODO:
- Textures for automatic/manual selection get overwritten in Cruis'n World
- Rendering needs to be looked at a little more closely to fix some holes
- In Cruis'n World attract mode, right side of sky looks like it has wrapped
- Off Road Challenge has polygon sorting issues, among other problems
- Issues for the Wargods sets: Sound D/RAM ERROR EE (during boot diag) and Listen for Tone ERROR E1 (during boot diag). All sets report as Game Type: 452 (12/11/1995), which is wrong for newer sets.
Bugs:
- crusnusa, crusnwld and offroadc and clones: All games run at incorrect speeds. Hydreigon (ID 07337)
WIP:
- 0.208: Removed MACHINE_CONFIG macros [Osso].
- 0.207: Removed unnecessary arguments in ADC0844 and serial_pic handlers [cam900].
- 0.206: Default input clocks for ADC0844. Eliminated custom_port_read and use ioport finders instead [AJR]. Removed TIMER MCFG macros [Osso]. Added 'Serial Low Digit' dipswitch.
- 0.205: Removed MIDWAY_SERIAL_PIC and MIDWAY_IOASIC MCFG macros [Osso]. Removed TMS32031 MCFG macros [Ryan Holtz].
- 0.204: Removed DCS2_AUDIO_2115 MCFG macros [Osso].
- 0.202: Removed WATCHDOG MCFG macros [Osso].
- 0.201: Removed ADC0844, ATA_INTERFACE and NVRAM MCFG macros [Ryan Holtz].
- 0.196: Cleaned up Midway V-Unit inputs and outputs. Better motion inputs and sorted main buttons. Removed runtime tagmap lookup [Risugami].
- 0.192: Added ADC0844 A/D Converter for input [Dirk Best].
- 0.189: Better documentation for Midway V-Unit wheel board. Added part numbers [Risugami].
- 0.185: Removed anonymous timers [Osso].
- 0.178: Fixed Midway V Unit wheel output. It seems the diagnostics test for the wheel is poorly coded for turning left as it is correct in game [Risugami].
- 0.177: Added layout\crusnusa.lay. Added basic wheel force feedback reference and made notes on other outputs. Added layout for Midway V-Unit games (Cruis'n USA, Cruis'n World and Off Road Challenge). Dumping Galil commands to osd_printf_error for now. Not confident enough in the rest of the code to include tests for them so improved the comments about them instead. Finished implementing motion controller. Motion test will succeed and everything sent to motion controller goes to stdout [Risugami].
- 0.152: Fixed polygon pixel color selection in Midway V-Unit driver [Phil Bennett].
- 0.149: Added harddisk device.
- 0.147u1: Made timer_device use delegates [Miodrag Milanovic].
- 0.145u7: Clang fix (video\polynew.h) [Balrog].
- 0.144u1: Added video\polynew.h.
- 0.125u7: Fabio Priuli updated the whole mid*unit family of drivers which shared some input code. Aaron Giles added save state support to the CAGE audio system.
- 0.122u4: Aaron Giles added save state support to the Midway V-Unit driver. Fixed crash when saving state of older DCS-based games.
- 0.120u3: Aaron Giles expanded polynew.c to support quad rendering. Converted midvunit.c over to using the new quad rendering, which fixes a number of rendering issues that have plagued the driver since the start.
- 0.120u1: Aaron Giles created new module polynew.c which combines triangle setup, rasterization and Voodoo-like multiprocessor support. Coverted Gaelco3D, Midway V-Unit, Namco System 22 and Voodoo drivers over to the new system.
- 0.119: Aaron Giles added intelligence around the UPDATE_HAS_NOT_CHANGED flag, which is returned from VIDEO_UPDATE. If all screens in the game return UPDATE_HAS_NOT_CHANGED, then that frame is effectively skipped (up to 3 frames in a row) in terms of throttling. This allows games that render every other frame to not throttle during their "off frames". Updated the midvunit driver to return UPDATE_HAS_NOT_CHANGED. You should see an improvement in framerate with throttling enabled for these games. Note that this only kicks in if frameskip is set to 0.
- 0.113u2: Aaron Giles updated video timing in the Midway V-unit driver. Changed VSync to 57.349016 Hz.
- 0.113: Derrick Renaud changed Midway V-Unit games so the brake pedal shows on player1.
- 0.99u7: Aaron Giles fixed crashing of the Midway V-Unit games.
- 0.94u5: Aaron Giles turned off debugging code in the hotspots, giving a huge speed improvement to the V-unit games.
- 0.84u3: Aaron Giles cleaned up and reorganized the DCS sound module. This required changing the way ROMs are loaded for all of the DCS-using games. Fixed sound1 roms addresses.
- 23rd January 2004: Aaron Giles cleaned up the Midway Y/Z/X/T/W/V-unit drivers.
- 0.77: Changed ADSP2105 CPU2 clock speed to 10MHz.
- 0.76u2: Midway V-Unit Update [Aaron Giles]: Added speedup handlers for all games (it makes a little difference), revamped the DCS2 handling to support stereo output, fixed a number of synchronization issues in the DCS2 handling and implemented a few missing features in the Midway I/O ASIC. Changed ADSP2105 clock speed to 10240000 Hz.
- 0.63: Changed wmsvunit.c to midvunit.c driver, vidhrdw\wmsvunit.c to vidhrdw\midvunit.c and includes\wmsvunit.h to includes\midvunit.h. Added machine\midwayic.c. Aaron Giles fixed missing music in crusnusa and crusnwld.
- 0.62: Added wmsvunit.c driver, vidhrdw\wmsvunit.c, includes\wmsvunit.h and vidhrdw\poly.c + h. Known issues: Textures for automatic/manual selection get overwritten in Cruis'n World. Sound reset not working for all games. Rendering needs to be looked at a little more closely to fix some holes. In Cruis'n World attract mode, right side of sky looks like it has wrapped.
----