mirror of
https://github.com/holub/mame
synced 2025-04-24 17:30:55 +03:00
XaviX - get ttv_mx to show some screens (nw) (#4153)
* on review of code I'm fairly sure these work with the accumulator (nw) * get ttv_mx to show some screens (nw) * oops (nw) * more ops (nw) * (nw) * help xavtenni along (nw) * less logging (nw)
This commit is contained in:
parent
5a41d073fc
commit
441d067878
@ -8,13 +8,13 @@ bmi_rel and_idy plx_imp andpa_imp bit_zpx and_zpx rol_zpx
|
||||
rti_xav_imp eor_idx nop_imp eorl0_acc nop_imp eor_zpg lsr_zpg eorl1_acc pha_imp eor_imm lsr_acc eorl2_acc jmp_adr eor_aba lsr_aba eorl3_acc
|
||||
bvc_rel eor_idy phy_imp eorpa_imp nop_imp eor_zpx lsr_zpx eorpb_imp cli_imp eor_aby nop_imp spa1_acc callf_aba eor_abx lsr_abx spb1_acc
|
||||
rts_imp adc_idx nop_imp adcl0_acc nop_imp adc_zpg ror_zpg adcl1_acc pla_imp adc_imm ror_acc adcl2_acc jmp_ind adc_aba ror_aba adcl3_acc
|
||||
bvs_rel adc_idy ply_imp adcpa_imp nop_imp adc_zpx ror_zpx adcpb_imp sei_imp adc_aby nop_imp lpa1_acc callf_ind adc_abx ror_abx lpb1_acc
|
||||
bvs_rel adc_idy ply_imp adcpa_imp nop_imp adc_zpx ror_zpx adcpb_imp sei_imp adc_aby nop_imp lpa1_acc jmpf_ind adc_abx ror_abx lpb1_acc
|
||||
retf_imp sta_idx stz_zpg stal0_acc sty_zpg sta_zpg stx_zpg stal1_acc dey_imp sev_imp txa_imp stal2_acc sty_aba sta_aba stx_aba stal3_acc
|
||||
bcc_rel sta_idy stz_aba stapa_imp sty_zpx sta_zpx stx_zpy stapb_imp tya_imp sta_aby txs_imp spa2_acc sty_abx sta_abx stx_aby spb2_acc
|
||||
ldy_imm lda_idx ldx_imm ldal0_acc ldy_zpg lda_zpg ldx_zpg ldal1_acc tay_imp lda_imm tax_imp ldal2_acc ldy_aba lda_aba ldx_aba ldal3_acc
|
||||
bcs_rel lda_idy clrl_imp ldapa_imp ldy_zpx lda_zpx ldx_zpy ldapb_imp clv_imp lda_aby tsx_imp lpa2_acc ldy_abx lda_abx ldx_aby lpb2_acc
|
||||
cpy_imm cmp_idx decl_imp cmpl0_acc cpy_zpg cmp_zpg dec_zpg cmpl1_acc iny_imp cmp_imm dex_imp cmpl2_acc cpy_aba cmp_aba dec_aba cmpl3_acc
|
||||
bne_rel cmp_idy notl_imp cmppa_imp nop_imp cmp_zpx dec_zpx cmppb_imp cld_imp cmp_aby nop_imp decpa_imp nop_imp cmp_abx dec_abx decpb_imp
|
||||
cpx_imm sbc_idx incl_imp sbcl0_acc cpx_zpg sbc_zpg inc_zpg sbcl1_acc inx_imp sbc_imm nop_imp sbcl2_acc cpx_aba sbc_aba inc_aba sbcl3_acc
|
||||
beq_rel sbc_idy negl_imp sbcpa_imp nop_imp sbc_zpx inc_zpx sbcpb_imp sed_imp sbc_aby nop_imp incpa_imp nop_imp sbc_abx inc_abx incpb_imp
|
||||
bcs_rel lda_idy clr_acc ldapa_imp ldy_zpx lda_zpx ldx_zpy ldapb_imp clv_imp lda_aby tsx_imp lpa2_acc ldy_abx lda_abx ldx_aby lpb2_acc
|
||||
cpy_imm cmp_idx dec_acc cmpl0_acc cpy_zpg cmp_zpg dec_zpg cmpl1_acc iny_imp cmp_imm dex_imp cmpl2_acc cpy_aba cmp_aba dec_aba cmpl3_acc
|
||||
bne_rel cmp_idy not_acc cmppa_imp nop_imp cmp_zpx dec_zpx cmppb_imp cld_imp cmp_aby nop_imp decpa_imp nop_imp cmp_abx dec_abx decpb_imp
|
||||
cpx_imm sbc_idx inc_acc sbcl0_acc cpx_zpg sbc_zpg inc_zpg sbcl1_acc inx_imp sbc_imm nop_imp sbcl2_acc cpx_aba sbc_aba inc_aba sbcl3_acc
|
||||
beq_rel sbc_idy neg_acc sbcpa_imp nop_imp sbc_zpx inc_zpx sbcpb_imp sed_imp sbc_aby nop_imp incpa_imp nop_imp sbc_abx inc_abx incpb_imp
|
||||
reset
|
||||
|
@ -30,30 +30,34 @@ ply_imp
|
||||
set_nz(Y);
|
||||
prefetch();
|
||||
|
||||
clrl_imp
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
clr_acc
|
||||
read_pc_noinc();
|
||||
m_l = 0;
|
||||
A = 0;
|
||||
set_nz(A);
|
||||
prefetch();
|
||||
|
||||
decl_imp
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
dec_acc
|
||||
read_pc_noinc();
|
||||
A--;
|
||||
set_nz(A);
|
||||
prefetch();
|
||||
|
||||
notl_imp
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
not_acc
|
||||
read_pc_noinc();
|
||||
A = A ^ 0xff;
|
||||
set_nz(A);
|
||||
prefetch();
|
||||
|
||||
incl_imp
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
inc_acc
|
||||
read_pc_noinc();
|
||||
A++;
|
||||
set_nz(A);
|
||||
prefetch();
|
||||
|
||||
negl_imp
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
neg_acc
|
||||
read_pc_noinc();
|
||||
A = (0x00 - A) & 0xff;
|
||||
set_nz(A);
|
||||
prefetch();
|
||||
|
||||
oral0_acc
|
||||
@ -62,8 +66,8 @@ oral0_acc
|
||||
prefetch();
|
||||
|
||||
oral1_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
A |= (m_l & 0x0000ff00) >> 8;
|
||||
set_nz(A);
|
||||
prefetch();
|
||||
|
||||
oral2_acc
|
||||
@ -97,8 +101,8 @@ andl3_acc
|
||||
prefetch();
|
||||
|
||||
eorl0_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
A ^= (m_l & 0x000000ff) >> 0;
|
||||
set_nz(A);
|
||||
prefetch();
|
||||
|
||||
eorl1_acc
|
||||
@ -137,43 +141,43 @@ adcl3_acc
|
||||
prefetch();
|
||||
|
||||
stal0_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
m_l = (m_l & 0xffffff00) | (A & 0xff); // TODO: flags
|
||||
prefetch();
|
||||
|
||||
stal1_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
m_l = (m_l & 0xffff00ff) | ((A & 0xff) << 8); // TODO: flags
|
||||
prefetch();
|
||||
|
||||
stal2_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
m_l = (m_l & 0xff00ffff) | ((A & 0xff) << 16); // TODO: flags
|
||||
prefetch();
|
||||
|
||||
stal3_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
m_l = (m_l & 0x00ffffff) | ((A & 0xff) << 24); // TODO: flags
|
||||
prefetch();
|
||||
|
||||
ldal0_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
A = (m_l & 0x000000ff) >> 0; // TODO: flags
|
||||
prefetch();
|
||||
|
||||
ldal1_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
A = (m_l & 0x0000ff00) >> 8; // TODO: flags
|
||||
prefetch();
|
||||
|
||||
ldal2_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
A = (m_l & 0x00ff0000) >> 16; // TODO: flags
|
||||
prefetch();
|
||||
|
||||
ldal3_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
A = (m_l & 0xff000000) >> 24; // TODO: flags
|
||||
prefetch();
|
||||
|
||||
cmpl0_acc
|
||||
@ -217,68 +221,69 @@ sbcl3_acc
|
||||
prefetch();
|
||||
|
||||
spa0_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
m_pa = (m_pa & 0xffff00) | A; // TODO: Flags?
|
||||
prefetch();
|
||||
|
||||
lpa0_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
A = (m_pa & 0x0000ff) >> 0; // TODO: Flags?
|
||||
prefetch();
|
||||
|
||||
spa1_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
m_pa = (m_pa & 0xff00ff) | (A << 8); // TODO: Flags?
|
||||
prefetch();
|
||||
|
||||
lpa1_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
A = (m_pa & 0x00ff00) >> 8; // TODO: Flags?
|
||||
prefetch();
|
||||
|
||||
spa2_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
m_pa = (m_pa & 0x00ffff) | (A << 16); // TODO: Flags?
|
||||
prefetch();
|
||||
|
||||
lpa2_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
A = (m_pa & 0xff0000) >> 16; // TODO: Flags?
|
||||
prefetch();
|
||||
|
||||
spb0_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
m_pb = (m_pb & 0xffff00) | A; // TODO: Flags?
|
||||
prefetch();
|
||||
|
||||
lpb0_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
A = (m_pb & 0x0000ff) >> 0; // TODO: Flags?
|
||||
prefetch();
|
||||
|
||||
spb1_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
m_pb = (m_pb & 0xff00ff) | (A << 8); // TODO: Flags?
|
||||
prefetch();
|
||||
|
||||
lpb1_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
A = (m_pb & 0x00ff00) >> 8; // TODO: Flags?
|
||||
prefetch();
|
||||
|
||||
spb2_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
m_pb = (m_pb & 0x00ffff) | (A << 16); // TODO: Flags?
|
||||
prefetch();
|
||||
|
||||
lpb2_acc
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
A = (m_pb & 0xff0000) >> 16; // TODO: Flags?
|
||||
prefetch();
|
||||
|
||||
incpa_imp
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
m_pa++;
|
||||
set_nz(m_pa&0xff); // startup code seems to require flag to set if low byte is 0x00?
|
||||
prefetch();
|
||||
|
||||
incpb_imp
|
||||
@ -312,13 +317,17 @@ eorpa_imp
|
||||
prefetch();
|
||||
|
||||
adcpa_imp
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
TMP = m_databank; // TODO: Flags, how does bank boundary crossing get handled?
|
||||
m_databank = (m_pa & 0xff0000)>>16;
|
||||
do_adc(read((m_pa&0xffff)+Y));
|
||||
m_databank = TMP;
|
||||
prefetch();
|
||||
|
||||
stapa_imp
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
TMP = m_databank; // TODO: Flags, how does bank boundary crossing get handled?
|
||||
m_databank = (m_pa & 0xff0000)>>16;
|
||||
write((m_pa&0xffff)+Y, A);
|
||||
m_databank = TMP;
|
||||
prefetch();
|
||||
|
||||
ldapa_imp
|
||||
@ -332,8 +341,10 @@ cmppa_imp
|
||||
prefetch();
|
||||
|
||||
sbcpa_imp
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
TMP = m_databank; // TODO: Flags, how does bank boundary crossing get handled?
|
||||
m_databank = (m_pa & 0xff0000)>>16;
|
||||
do_sbc(read((m_pa&0xffff)+Y));
|
||||
m_databank = TMP;
|
||||
prefetch();
|
||||
|
||||
orapb_imp
|
||||
@ -387,13 +398,14 @@ sty_abx
|
||||
prefetch();
|
||||
|
||||
stz_zpg
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
TMP = read_pc();
|
||||
write(TMP, 0x00);
|
||||
prefetch();
|
||||
|
||||
stz_aba
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
TMP = read_pc();
|
||||
TMP = set_h(TMP, read_pc());
|
||||
write(TMP, 0x00);
|
||||
prefetch();
|
||||
|
||||
bit_zpx
|
||||
@ -407,8 +419,11 @@ bit_abx
|
||||
prefetch();
|
||||
|
||||
bit_imm
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
TMP = read_pc();
|
||||
if(A & TMP)
|
||||
P &= ~F_Z;
|
||||
else
|
||||
P |= F_Z;
|
||||
prefetch();
|
||||
|
||||
asr_zpg
|
||||
@ -451,7 +466,11 @@ callf_aba
|
||||
read_pc_noinc();
|
||||
prefetch();
|
||||
|
||||
callf_ind
|
||||
fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state);
|
||||
read_pc_noinc();
|
||||
jmpf_ind
|
||||
TMP = read_pc();
|
||||
TMP = set_h(TMP, read_pc());
|
||||
PC = read(TMP);
|
||||
PC = set_h(PC, read(set_l(TMP, TMP+1)));
|
||||
TMP2 = read(TMP+2);
|
||||
set_codebank(TMP2);
|
||||
prefetch();
|
||||
|
@ -159,7 +159,7 @@ uint8_t xavix_device::mi_xavix_nd::read_arg(uint16_t adr)
|
||||
return program->read_byte(base->adr_with_codebank(adr));
|
||||
}
|
||||
|
||||
inline void xavix_device::set_codebank(uint8_t bank)
|
||||
void xavix_device::set_codebank(uint8_t bank)
|
||||
{
|
||||
// space().write_byte(0xfe, bank);
|
||||
m_codebank = bank;
|
||||
|
@ -31,13 +31,13 @@
|
||||
a is 80 when entering here?
|
||||
|
||||
01BC37: A0 3F ldy #$3f
|
||||
01BC39: B2 clrl // clear 32-bit 'long' register (part of it might be the accumulator?) (or clear accumulator?)
|
||||
01BC39: B2 clr a // clear acculuator
|
||||
01BC3A: 1B spa0 a // store 'accumulator' into byte 0 of PA 'address' register
|
||||
01BC3B: 9B spa2 a // store 'accumulator' into byte 2 of PA 'address' register
|
||||
|
||||
-- loop point 2
|
||||
01BC3C: 98 tya // y -> a (3f on first run of loop)
|
||||
01BC3D: 5B spa1 a // store 'accumulator' into byte 1 of PA 'address' register (803f80 on first loop? 003f00 if we clear accumulator with clrl instead) maybe should be 3f0000 ? (would make more sense for a ram test)
|
||||
01BC3D: 5B spa1 a // store 'accumulator' into byte 1 of PA 'address' register (003f00 on first loop?)
|
||||
|
||||
-- loop point 1
|
||||
01BC3E: A3 ldal0 a // read byte 0 of 32-bit 'long' register into accumulator
|
||||
@ -107,6 +107,14 @@ xavix2000_device::xavix2000_device(const machine_config &mconfig, const char *ta
|
||||
sprogram_config.m_logaddr_width = 24;
|
||||
}
|
||||
|
||||
void xavix2000_device::device_start()
|
||||
{
|
||||
xavix_device::device_start();
|
||||
|
||||
state_add(SXAVIX_L, "L", m_l).callimport().formatstr("%8s");;
|
||||
state_add(SXAVIX_PA, "PA", m_pa).callimport().formatstr("%8s");
|
||||
state_add(SXAVIX_PB, "PB", m_pb).callimport().formatstr("%8s");
|
||||
}
|
||||
|
||||
std::unique_ptr<util::disasm_interface> xavix2000_device::create_disassembler()
|
||||
{
|
||||
@ -114,4 +122,38 @@ std::unique_ptr<util::disasm_interface> xavix2000_device::create_disassembler()
|
||||
}
|
||||
|
||||
|
||||
void xavix2000_device::state_import(const device_state_entry &entry)
|
||||
{
|
||||
xavix_device::state_import(entry);
|
||||
|
||||
switch(entry.index())
|
||||
{
|
||||
case SXAVIX_L:
|
||||
break;
|
||||
case SXAVIX_PA:
|
||||
break;
|
||||
case SXAVIX_PB:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void xavix2000_device::state_string_export(const device_state_entry &entry, std::string &str) const
|
||||
{
|
||||
xavix_device::state_string_export(entry, str);
|
||||
|
||||
switch(entry.index())
|
||||
{
|
||||
case SXAVIX_L:
|
||||
str = string_format("%08x", m_l);
|
||||
break;
|
||||
case SXAVIX_PA:
|
||||
str = string_format("%08x", m_pa);
|
||||
break;
|
||||
case SXAVIX_PB:
|
||||
str = string_format("%08x", m_pb);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#include "cpu/m6502/xavix2000.hxx"
|
||||
|
@ -23,6 +23,10 @@ public:
|
||||
virtual void do_exec_full() override;
|
||||
virtual void do_exec_partial() override;
|
||||
|
||||
virtual void device_start() override;
|
||||
virtual void state_import(const device_state_entry &entry) override;
|
||||
virtual void state_string_export(const device_state_entry &entry, std::string &str) const override;
|
||||
|
||||
#define O(o) void o ## _full(); void o ## _partial()
|
||||
|
||||
// Super XaviX opcodes
|
||||
@ -32,11 +36,11 @@ public:
|
||||
O(plx_imp); // 32
|
||||
O(ply_imp); // 72
|
||||
|
||||
O(clrl_imp); // b2
|
||||
O(decl_imp); // c2
|
||||
O(notl_imp); // d2
|
||||
O(incl_imp); // e2
|
||||
O(negl_imp); // f2
|
||||
O(clr_acc); // b2
|
||||
O(dec_acc); // c2
|
||||
O(not_acc); // d2
|
||||
O(inc_acc); // e2
|
||||
O(neg_acc); // f2
|
||||
|
||||
O(oral0_acc);
|
||||
O(oral1_acc);
|
||||
@ -136,7 +140,7 @@ public:
|
||||
O(sev_imp);
|
||||
|
||||
O(callf_aba);
|
||||
O(callf_ind);
|
||||
O(jmpf_ind);
|
||||
|
||||
#undef O
|
||||
|
||||
@ -146,6 +150,12 @@ public:
|
||||
|
||||
};
|
||||
|
||||
enum {
|
||||
SXAVIX_L = M6502_IR+1,
|
||||
SXAVIX_PA,
|
||||
SXAVIX_PB
|
||||
};
|
||||
|
||||
DECLARE_DEVICE_TYPE(XAVIX2000, xavix2000_device)
|
||||
|
||||
#endif // MAME_CPU_M6502_XAVIX2000_H
|
||||
|
@ -4,57 +4,60 @@
|
||||
#include "emu.h"
|
||||
#include "includes/xavix.h"
|
||||
|
||||
// #define VERBOSE 1
|
||||
#include "logmacro.h"
|
||||
|
||||
READ8_MEMBER(xavix_state::sound_75f0_r)
|
||||
{
|
||||
logerror("%s: sound_75f0_r\n", machine().describe_context());
|
||||
LOG("%s: sound_75f0_r\n", machine().describe_context());
|
||||
return m_soundregs[0];
|
||||
}
|
||||
|
||||
READ8_MEMBER(xavix_state::sound_75f1_r)
|
||||
{
|
||||
logerror("%s: sound_75f1_r\n", machine().describe_context());
|
||||
LOG("%s: sound_75f1_r\n", machine().describe_context());
|
||||
return m_soundregs[1];
|
||||
}
|
||||
|
||||
READ8_MEMBER(xavix_state::sound_75f6_r)
|
||||
{
|
||||
logerror("%s: sound_75f6_r\n", machine().describe_context());
|
||||
LOG("%s: sound_75f6_r\n", machine().describe_context());
|
||||
return m_soundregs[6];
|
||||
}
|
||||
|
||||
READ8_MEMBER(xavix_state::sound_75f8_r)
|
||||
{
|
||||
logerror("%s: sound_75f8_r\n", machine().describe_context());
|
||||
LOG("%s: sound_75f8_r\n", machine().describe_context());
|
||||
return m_soundregs[8];
|
||||
}
|
||||
|
||||
READ8_MEMBER(xavix_state::sound_75f9_r)
|
||||
{
|
||||
logerror("%s: sound_75f9_r\n", machine().describe_context());
|
||||
LOG("%s: sound_75f9_r\n", machine().describe_context());
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
READ8_MEMBER(xavix_state::sound_75fa_r)
|
||||
{
|
||||
logerror("%s: sound_75fa_r\n", machine().describe_context());
|
||||
LOG("%s: sound_75fa_r\n", machine().describe_context());
|
||||
return m_soundregs[10];
|
||||
}
|
||||
|
||||
READ8_MEMBER(xavix_state::sound_75fb_r)
|
||||
{
|
||||
logerror("%s: sound_75fb_r\n", machine().describe_context());
|
||||
LOG("%s: sound_75fb_r\n", machine().describe_context());
|
||||
return m_soundregs[11];
|
||||
}
|
||||
|
||||
READ8_MEMBER(xavix_state::sound_75fc_r)
|
||||
{
|
||||
logerror("%s: sound_75fc_r\n", machine().describe_context());
|
||||
LOG("%s: sound_75fc_r\n", machine().describe_context());
|
||||
return m_soundregs[12];
|
||||
}
|
||||
|
||||
READ8_MEMBER(xavix_state::sound_75fd_r)
|
||||
{
|
||||
logerror("%s: sound_75fd_r\n", machine().describe_context());
|
||||
LOG("%s: sound_75fd_r\n", machine().describe_context());
|
||||
return m_soundregs[13];
|
||||
}
|
||||
|
||||
@ -65,7 +68,7 @@ WRITE8_MEMBER(xavix_state::sound_75f0_w)
|
||||
{
|
||||
// expected to return data written
|
||||
m_soundregs[0] = data;
|
||||
logerror("%s: sound_75f0_w %02x\n", machine().describe_context(), data);
|
||||
LOG("%s: sound_75f0_w %02x\n", machine().describe_context(), data);
|
||||
}
|
||||
|
||||
|
||||
@ -73,7 +76,7 @@ WRITE8_MEMBER(xavix_state::sound_75f1_w)
|
||||
{
|
||||
// expected to return data written
|
||||
m_soundregs[1] = data;
|
||||
logerror("%s: sound_75f1_w %02x\n", machine().describe_context(), data);
|
||||
LOG("%s: sound_75f1_w %02x\n", machine().describe_context(), data);
|
||||
}
|
||||
|
||||
|
||||
@ -81,13 +84,13 @@ WRITE8_MEMBER(xavix_state::sound_75f6_w)
|
||||
{
|
||||
// expected to return data written
|
||||
m_soundregs[6] = data;
|
||||
logerror("%s: sound_75f6_w %02x\n", machine().describe_context(), data);
|
||||
LOG("%s: sound_75f6_w %02x\n", machine().describe_context(), data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(xavix_state::sound_75f7_w)
|
||||
{
|
||||
m_soundregs[7] = data;
|
||||
logerror("%s: sound_75f7_w %02x\n", machine().describe_context(), data);
|
||||
LOG("%s: sound_75f7_w %02x\n", machine().describe_context(), data);
|
||||
}
|
||||
|
||||
|
||||
@ -95,53 +98,53 @@ WRITE8_MEMBER(xavix_state::sound_75f8_w)
|
||||
{
|
||||
// expected to return data written
|
||||
m_soundregs[8] = data;
|
||||
logerror("%s: sound_75f8_w %02x\n", machine().describe_context(), data);
|
||||
LOG("%s: sound_75f8_w %02x\n", machine().describe_context(), data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(xavix_state::sound_75f9_w)
|
||||
{
|
||||
m_soundregs[9] = data;
|
||||
logerror("%s: sound_75f9_w %02x\n", machine().describe_context(), data);
|
||||
LOG("%s: sound_75f9_w %02x\n", machine().describe_context(), data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(xavix_state::sound_75fa_w)
|
||||
{
|
||||
// expected to return data written
|
||||
m_soundregs[10] = data;
|
||||
logerror("%s: sound_75fa_w %02x\n", machine().describe_context(), data);
|
||||
LOG("%s: sound_75fa_w %02x\n", machine().describe_context(), data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(xavix_state::sound_75fb_w)
|
||||
{
|
||||
// expected to return data written
|
||||
m_soundregs[11] = data;
|
||||
logerror("%s: sound_75fb_w %02x\n", machine().describe_context(), data);
|
||||
LOG("%s: sound_75fb_w %02x\n", machine().describe_context(), data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(xavix_state::sound_75fc_w)
|
||||
{
|
||||
// expected to return data written
|
||||
m_soundregs[12] = data;
|
||||
logerror("%s: sound_75fc_w %02x\n", machine().describe_context(), data);
|
||||
LOG("%s: sound_75fc_w %02x\n", machine().describe_context(), data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(xavix_state::sound_75fd_w)
|
||||
{
|
||||
// expected to return data written
|
||||
m_soundregs[13] = data;
|
||||
logerror("%s: sound_75fd_w %02x\n", machine().describe_context(), data);
|
||||
LOG("%s: sound_75fd_w %02x\n", machine().describe_context(), data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(xavix_state::sound_75fe_w)
|
||||
{
|
||||
m_soundregs[14] = data;
|
||||
logerror("%s: sound_75fe_w %02x\n", machine().describe_context(), data);
|
||||
LOG("%s: sound_75fe_w %02x\n", machine().describe_context(), data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(xavix_state::sound_75ff_w)
|
||||
{
|
||||
m_soundregs[15] = data;
|
||||
logerror("%s: sound_75ff_w %02x\n", machine().describe_context(), data);
|
||||
LOG("%s: sound_75ff_w %02x\n", machine().describe_context(), data);
|
||||
}
|
||||
|
||||
READ8_MEMBER(xavix_state::sound_75f4_r)
|
||||
|
@ -281,6 +281,7 @@ WRITE8_MEMBER(xavix_state::arena_end_w)
|
||||
|
||||
READ8_MEMBER(xavix_state::arena_control_r)
|
||||
{
|
||||
m_arena_control ^= 0x40; // unknown, xavtenni expects this to become high, also seems to be running in some kind of interlace mode, so could be a field flag?
|
||||
return m_arena_control;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user