summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author angelosa <salese_corp_ltd@email.it>2016-02-08 23:54:33 +0100
committer angelosa <salese_corp_ltd@email.it>2016-02-08 23:54:57 +0100
commitfb922ca5207795584302a43e74ae4b2d5018b860 (patch)
tree200a9c3b461c2f2bf2c848e7c549e4d02020edda
parentfeba972bc6bbe2b8f7da9577649b8a1bc13245e4 (diff)
Added opcode $b2, Night Gal Summer shows some garbage now
-rw-r--r--src/devices/cpu/m6800/6800ops.inc13
-rw-r--r--src/devices/cpu/m6800/6800tbl.inc2
-rw-r--r--src/devices/cpu/m6800/m6800.h1
-rw-r--r--src/devices/video/jangou_blitter.cpp5
-rw-r--r--src/mame/drivers/nightgal.cpp21
5 files changed, 33 insertions, 9 deletions
diff --git a/src/devices/cpu/m6800/6800ops.inc b/src/devices/cpu/m6800/6800ops.inc
index 6dc59863f09..c0147b6acee 100644
--- a/src/devices/cpu/m6800/6800ops.inc
+++ b/src/devices/cpu/m6800/6800ops.inc
@@ -2284,7 +2284,7 @@ OP_HANDLER( stx_ex )
WM16(EAD,&m_x);
}
-/* NCS specific, guessed opcodes (tested by Night Gal Summer) */
+/* NSC8105 specific, guessed opcodes (tested by Night Gal Summer) */
// $bb - load A from [X + $0]
OP_HANDLER( ldax_imm )
{
@@ -2294,6 +2294,17 @@ OP_HANDLER( ldax_imm )
SET_NZ8(A);
}
+// $b2 - assuming correct, store first byte to (X + $disp8)
+OP_HANDLER( nsc_unk )
+{
+ IMM8;
+ UINT8 val = RM(EAD);
+ IMM8;
+ EA = X + RM(EAD);
+
+ WM(EAD,val);
+}
+
// $00 - store A to [X + $0]
OP_HANDLER( stax_imm )
{
diff --git a/src/devices/cpu/m6800/6800tbl.inc b/src/devices/cpu/m6800/6800tbl.inc
index c830f9ebe75..266ddb2a55c 100644
--- a/src/devices/cpu/m6800/6800tbl.inc
+++ b/src/devices/cpu/m6800/6800tbl.inc
@@ -150,7 +150,7 @@ const m6800_cpu_device::op_func m6800_cpu_device::nsc8105_insn[0x100] = {
// a8
&m6800_cpu_device::asl_ix, &m6800_cpu_device::dec_ix, &m6800_cpu_device::rol_ix, &m6800_cpu_device::illegal,&m6800_cpu_device::inc_ix, &m6800_cpu_device::jmp_ix, &m6800_cpu_device::tst_ix, &m6800_cpu_device::clr_ix,
// b0
-&m6800_cpu_device::neg_ex, &m6800_cpu_device::illegal,&m6800_cpu_device::illegal,&m6800_cpu_device::com_ex, &m6800_cpu_device::lsr_ex, &m6800_cpu_device::ror_ex, &m6800_cpu_device::illegal,&m6800_cpu_device::asr_ex,
+&m6800_cpu_device::neg_ex, &m6800_cpu_device::illegal,&m6800_cpu_device::nsc_unk,&m6800_cpu_device::com_ex, &m6800_cpu_device::lsr_ex, &m6800_cpu_device::ror_ex, &m6800_cpu_device::illegal,&m6800_cpu_device::asr_ex,
// b8
&m6800_cpu_device::asl_ex, &m6800_cpu_device::dec_ex, &m6800_cpu_device::rol_ex, &m6800_cpu_device::ldax_imm,&m6800_cpu_device::inc_ex, &m6800_cpu_device::jmp_ex, &m6800_cpu_device::tst_ex, &m6800_cpu_device::clr_ex,
&m6800_cpu_device::subb_im,&m6800_cpu_device::sbcb_im,&m6800_cpu_device::cmpb_im,&m6800_cpu_device::illegal,&m6800_cpu_device::andb_im,&m6800_cpu_device::ldb_im, &m6800_cpu_device::bitb_im,&m6800_cpu_device::stb_im,
diff --git a/src/devices/cpu/m6800/m6800.h b/src/devices/cpu/m6800/m6800.h
index a096bd922cd..6ddffe64242 100644
--- a/src/devices/cpu/m6800/m6800.h
+++ b/src/devices/cpu/m6800/m6800.h
@@ -428,6 +428,7 @@ protected:
void trap();
void ldax_imm();
void stax_imm();
+ void nsc_unk();
};
diff --git a/src/devices/video/jangou_blitter.cpp b/src/devices/video/jangou_blitter.cpp
index 4427fe01f74..07953576a45 100644
--- a/src/devices/video/jangou_blitter.cpp
+++ b/src/devices/video/jangou_blitter.cpp
@@ -105,8 +105,7 @@ WRITE8_MEMBER( jangou_blitter_device::blitter_process_w )
int count = 0;
int xcount, ycount;
- printf("%02x %02x %02x %02x %02x %02x %02x\n", m_blit_data[0], m_blit_data[1], m_blit_data[2],
- m_blit_data[3], m_blit_data[4], m_blit_data[5],m_blit_data[6]);
+ //printf("%02x %02x %02x %02x %02x %02x %02x\n", m_blit_data[0], m_blit_data[1], m_blit_data[2],m_blit_data[3], m_blit_data[4], m_blit_data[5],m_blit_data[6]);
w = (m_blit_data[4] & 0xff) + 1;
h = (m_blit_data[5] & 0xff) + 1;
src = ((m_blit_data[1] << 8)|(m_blit_data[0] << 0));
@@ -148,6 +147,7 @@ WRITE8_MEMBER( jangou_blitter_device::blitter_process_w )
WRITE8_MEMBER( jangou_blitter_device::blitter_alt_process_w)
{
+ // TODO: convert this into a more useable function
switch(offset)
{
case 0: blitter_process_w(space,0,data); break;
@@ -157,7 +157,6 @@ WRITE8_MEMBER( jangou_blitter_device::blitter_alt_process_w)
case 4: blitter_process_w(space,3,data); break;
case 5: blitter_process_w(space,4,data); break;
case 6: blitter_process_w(space,5,data); break;
-
}
}
diff --git a/src/mame/drivers/nightgal.cpp b/src/mame/drivers/nightgal.cpp
index 12642968006..6ce5f775589 100644
--- a/src/mame/drivers/nightgal.cpp
+++ b/src/mame/drivers/nightgal.cpp
@@ -1071,7 +1071,7 @@ ROM_START( ngalsumr )
ROM_LOAD( "2s.ic6", 0x04000, 0x04000, CRC(ca2a735f) SHA1(5980525a67fb0ffbfa04b82d805eee2463236ce3) )
ROM_LOAD( "3s.ic5", 0x08000, 0x04000, CRC(5cf15267) SHA1(72e4b2aa59a50af6b1b25d5279b3b125bfe06d86) )
- ROM_REGION( 0x20000, "gfx", 0 )
+ ROM_REGION( 0x20000, "gfx", ROMREGION_ERASEFF )
ROM_LOAD( "1.3a", 0x00000, 0x04000, CRC(9626f812) SHA1(ca7162811a0ba05dfaa2aa8cc93a2e898b326e9e) )
ROM_LOAD( "2.3c", 0x04000, 0x04000, CRC(0d59cf7a) SHA1(600bc70d29853fb936f8adaef048d925cbae0ce9) )
ROM_LOAD( "3.3d", 0x08000, 0x04000, CRC(2fb2ec0b) SHA1(2f1735e33906783b8c0b283455a2a079431e6f11) )
@@ -1094,17 +1094,30 @@ DRIVER_INIT_MEMBER(nightgal_state,royalqn)
DRIVER_INIT_MEMBER(nightgal_state,ngalsumr)
{
- //UINT8 *ROM = memregion("subrom")->base();
+#if 0
+ UINT8 *ROM = memregion("subrom")->base();
+
+// ROM[0x165a] = 0x02; // illegal
+// ROM[0x165b] = 0x02; // sts xx xx xx
+// ROM[0x165c] = 0x02;
+// ROM[0x165d] = 0x02;
+// ROM[0x165e] = 0x02; // sts xx xx xx
+// ROM[0x165f] = 0x02;
+// ROM[0x1660] = 0x02;
+// ROM[0x1661] = 0x02; // sts xx xx xx
+ ROM[0x1662] = 0x20;
+// ROM[0x1663] = 0x02;
/* patch blantantly wrong ROM checks */
- //ROM[0xd6ce] = 0x02;
- //ROM[0xd6cf] = 0x02;
+ ROM[0x16ce] = 0x02;
+ ROM[0x16cf] = 0x02;
// adcx $05 converted to 0x04 for debug purposes
//ROM[0x1782] = 0x04;
//ROM[0xd655] = 0x20;
//ROM[0xd3f9] = 0x02;
//ROM[0xd3fa] = 0x02;
//ROM[0xd3a0] = 0x02;
+#endif
}
/* Type 1 HW */