Systen16
=========

Since MAME37b8 we have all trouble with the System16 games.

Here are five fixes for:

* Super Hang-On / Super Hang-On (bootleg) -> fixed the players bike sprite

* Wonder Boy III - Monster Lair (set 1)   -> fixed missing sound


_____________________________________________________________________________________________
_____________________________________________________________________________________________



-----------------------
Super Hang-On (shangon)  Source:   src\drivers\outrun.c
-----------------------

Exchange line 257-264 from: 

	ROM_LOAD16_BYTE( "ic8",	0x000001, 0x010000, 0xd6ac012b )
//	ROM_RELOAD(     			0x100000, 0x010000 )	// twice?
	ROM_LOAD16_BYTE( "ic16",  0x000000, 0x010000, 0xd9d83250 )
//	ROM_RELOAD(              	0x100000, 0x010000 )	// twice?
	ROM_LOAD16_BYTE( "ic7",   0x020001, 0x010000, 0x25ebf2c5 )
//	ROM_RELOAD(              	0x0e0000, 0x010000 )	// twice?
	ROM_LOAD16_BYTE( "ic15",  0x020000, 0x010000, 0x6365d2e9 )
//	ROM_RELOAD(              	0x0e0000, 0x010000 )	// twice?

to

	ROM_LOAD16_BYTE( "ic8",   0x000001, 0x010000, 0xd6ac012b )
	ROM_RELOAD(               0x100001, 0x010000 )
	ROM_LOAD16_BYTE( "ic16",  0x000000, 0x010000, 0xd9d83250 )
	ROM_RELOAD(               0x100000, 0x010000 )
	ROM_LOAD16_BYTE( "ic7",   0x020001, 0x010000, 0x25ebf2c5 )
	ROM_RELOAD(               0x0e0001, 0x010000 )	// twice?
	ROM_LOAD16_BYTE( "ic15",  0x020000, 0x010000, 0x6365d2e9 )
	ROM_RELOAD(               0x0e0000, 0x010000 )	// twice?

----------------------------------
Super Hang-On (bootleg) (shangonb)
----------------------------------

Exchange line 307-314 from: 

	ROM_LOAD16_BYTE( "ic8",         0x000001, 0x010000, 0xd6ac012b )
//	ROM_RELOAD(       		          0x100000, 0x010000 )	// twice?
	ROM_LOAD16_BYTE( "ic16",        0x000000, 0x010000, 0xd9d83250 )
//	ROM_RELOAD(             		  0x100000, 0x010000 )	// twice?
	ROM_LOAD16_BYTE( "s-hangon.20", 0x020001, 0x010000, 0xeef23b3d )
//	ROM_RELOAD(           		      0x0e0000, 0x010000 )	// twice?
	ROM_LOAD16_BYTE( "s-hangon.14", 0x020000, 0x010000, 0x0f26d131 )
//	ROM_RELOAD(              		  0x0e0000, 0x010000 )	// twice?

to

	ROM_LOAD16_BYTE( "ic8",         0x000001, 0x010000, 0xd6ac012b )
	ROM_RELOAD(                     0x100001, 0x010000 )
	ROM_LOAD16_BYTE( "ic16",        0x000000, 0x010000, 0xd9d83250 )
	ROM_RELOAD(                     0x100000, 0x010000 )
	ROM_LOAD16_BYTE( "s-hangon.20", 0x020001, 0x010000, 0xeef23b3d )
	ROM_RELOAD(                     0x0e0001, 0x010000 )		// twice?
	ROM_LOAD16_BYTE( "s-hangon.14", 0x020000, 0x010000, 0x0f26d131 )
	ROM_RELOAD(                     0x0e0000, 0x010000 )		// twice?


* NOTE: Only Super Hang-On (bootleg) is working in MAME, the other one is protected!!!

_____________________________________________________________________________________________
_____________________________________________________________________________________________



--------------------
Wonder Boy III (wb3)   Source:   src\drivers\system16.c
--------------------


Add after { 0xc42000, 0xc4200...} line 5853 in MEMORY_READ16_START( wb3_readmem ):

	{ 0xdf0020, 0xdf003f, SYS16_MRA16_EXTRAM3 },


Exchange line 5858 after WRITE16_HANDLER( wb3_sound_command_w ):

//	if( ACCESSING_MSB ) sound_command_w(offset,data>>8 );

to
	if( ACCESSING_LSB ){
		soundlatch_w( 0,data>>8 );
		cpu_set_irq_line( 1, 0, HOLD_LINE );
	}



Add after { 0xc40000, 0xc40001...} line 5872 in MEMORY_WRITE16_START( wb3_writemem ):

	{ 0xdf0020, 0xdf003f, SYS16_MWA16_EXTRAM3 },


_____________________________________________________________________________________________
_____________________________________________________________________________________________



(!) Verify the results with MAME 37b7 and you will see, that everything works fine again!





M.A.S.H.