diff -Nru E:\mame-b16c3e8e29b33d4acc40bb7615c017332ec9dbb1/src/mame/drivers/neogeo.c D:\mame-b16c3e8e29b33d4acc40bb7615c017332ec9dbb1/src/mame/drivers/neogeo.c
--- E:\mame-b16c3e8e29b33d4acc40bb7615c017332ec9dbb1/src/mame/drivers/neogeo.c	2012-10-31 13:50:18.000000000 +0100
+++ D:\mame-b16c3e8e29b33d4acc40bb7615c017332ec9dbb1/src/mame/drivers/neogeo.c	2012-11-03 17:50:02.000000000 +0100
@@ -766,15 +766,15 @@
 
 	state->membank(NEOGEO_BANK_AUDIO_CPU_MAIN_BANK)->set_entry(state->m_audio_cpu_rom_source);
 
-	/* reset CPU if the source changed -- this is a guess */
-	if (state->m_audio_cpu_rom_source != state->m_audio_cpu_rom_source_last)
-	{
-		state->m_audio_cpu_rom_source_last = state->m_audio_cpu_rom_source;
-
-		space.machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, PULSE_LINE);
-
-		if (LOG_AUDIO_CPU_BANKING) logerror("Audio CPU PC %03x: selectign %s ROM\n", space.device().safe_pc(), state->m_audio_cpu_rom_source ? "CARTRIDGE" : "BIOS");
-	}
+//	/* reset CPU if the source changed -- this is a guess */
+//	if (state->m_audio_cpu_rom_source != state->m_audio_cpu_rom_source_last)
+//	{
+//		state->m_audio_cpu_rom_source_last = state->m_audio_cpu_rom_source;
+//
+//		space.machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, PULSE_LINE);
+//
+//		if (LOG_AUDIO_CPU_BANKING) logerror("Audio CPU PC %03x: selectign %s ROM\n", space.device().safe_pc(), state->m_audio_cpu_rom_source ? "CARTRIDGE" : "BIOS");
+//	}
 }
 
 
@@ -997,6 +997,9 @@
 
 	/* set the initial audio CPU ROM banks */
 	audio_cpu_banking_init(machine());
+	
+	/* set fixed layer */
+	neogeo_set_fixed_layer_source(machine(),1);
 
 	create_interrupt_timers(machine());
 
@@ -1055,6 +1058,9 @@
 
 	machine().device("maincpu")->reset();
 
+	/* disable nmi */
+	audio_cpu_clear_nmi_w(space, 0, 0);
+
 	neogeo_reset_rng(machine());
 
 	start_interrupt_timers(machine());
@@ -1064,8 +1070,8 @@
 
 	m_recurse = 0;
 
-	/* AES apparently always uses the cartridge's fixed bank mode */
-	// neogeo_set_fixed_layer_source(machine(),1);
+	/* set fixed layer */
+	neogeo_set_fixed_layer_source(machine(),1);
 
 }
 
@@ -1138,7 +1144,7 @@
 	AM_RANGE(0x0a, 0x0a) AM_MIRROR(0xfff0) AM_MASK(0xfff0) AM_READ(audio_cpu_bank_select_c000_dfff_r)
 	AM_RANGE(0x0b, 0x0b) AM_MIRROR(0xfff0) AM_MASK(0xfff0) AM_READ(audio_cpu_bank_select_8000_bfff_r)
 	AM_RANGE(0x0c, 0x0c) AM_MIRROR(0xff00) AM_WRITE(audio_result_w)
-	AM_RANGE(0x18, 0x18) AM_MIRROR(0xff00) /* write - NMI disable? (the data written doesn't matter) */
+	AM_RANGE(0x18, 0x18) AM_MIRROR(0xff00) AM_WRITE(audio_cpu_clear_nmi_w) /* write - NMI disable (the data written doesn't matter) */
 ADDRESS_MAP_END
 
 
