Renamed n2a03 to rp2a03 throughout source tree. (#10343)

This commit is contained in:
0kmg 2022-09-19 11:43:55 -08:00 committed by GitHub
parent 76541e8c81
commit a9b22a67ea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
41 changed files with 773 additions and 769 deletions

View File

@ -26,7 +26,7 @@ The MOS 6502 family has been large and productive. A large number of variants ex
|
+------+--------+--+--+-------+-------+
| | | | | |
6510 deco16 6504 6509 n2a03 65c02
6510 deco16 6504 6509 rp2a03 65c02
| |
+-----+-----+ r65c02
| | | |
@ -46,7 +46,7 @@ The 6504 is a pin and address-bus reduced version.
The 6509 adds internal support for paging.
The n2a03 is the NES variant with the D flag disabled and sound functionality integrated.
The rp2a03 is the NES variant with the D flag disabled and sound functionality integrated.
The 65c02 is the very first cmos variant with some additional instructions, some fixes, and most of the undocumented instructions turned into nops. The R (Rockwell, but eventually produced by WDC too among others) variant adds a number of bitwise instructions and also stp and wai. The SC variant, used by the Lynx portable console, looks identical to the R variant. The 'S' probably indicates a static-ram-cell process allowing full DC-to-max clock control.
@ -374,6 +374,6 @@ Current TO-DO:
- Integrate the I/O subsystems in the 4510
- Possibly integrate the sound subsytem in the n2a03
- Possibly integrate the sound subsytem in the rp2a03
- Add decent hookups for the Apple 3 madness

File diff suppressed because it is too large Load Diff

View File

@ -1555,28 +1555,28 @@ end
--------------------------------------------------
-- Mostek 6502 and its many derivatives
--@src/devices/cpu/m6502/m6502.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/deco16.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m3745x.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m4510.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m65ce02.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m65c02.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/r65c02.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/r65c19.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m65sc02.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m50734.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m5074x.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m6500_1.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m6502.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m6502mtu.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m6504.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m6507.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m6509.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m6510.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m6510t.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m65ce02.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m65c02.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m65sc02.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m740.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m7501.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m8502.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/n2a03.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m740.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m3745x.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m50734.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m5074x.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/m6502mtu.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/r65c02.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/r65c19.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/rp2a03.h,CPUS["M6502"] = true
--@src/devices/cpu/m6502/st2xxx.h,CPUS["ST2XXX"] = true
--@src/devices/cpu/m6502/st2204.h,CPUS["ST2XXX"] = true
--@src/devices/cpu/m6502/st2205u.h,CPUS["ST2XXX"] = true
@ -1590,20 +1590,20 @@ if CPUS["M6502"] then
files {
MAME_DIR .. "src/devices/cpu/m6502/deco16.cpp",
MAME_DIR .. "src/devices/cpu/m6502/deco16.h",
MAME_DIR .. "src/devices/cpu/m6502/m3745x.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m3745x.h",
MAME_DIR .. "src/devices/cpu/m6502/m4510.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m4510.h",
MAME_DIR .. "src/devices/cpu/m6502/m50734.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m50734.h",
MAME_DIR .. "src/devices/cpu/m6502/m5074x.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m5074x.h",
MAME_DIR .. "src/devices/cpu/m6502/m6500_1.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m6500_1.h",
MAME_DIR .. "src/devices/cpu/m6502/m6502.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m6502.h",
MAME_DIR .. "src/devices/cpu/m6502/m6502mtu.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m6502mtu.h",
MAME_DIR .. "src/devices/cpu/m6502/m65c02.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m65c02.h",
MAME_DIR .. "src/devices/cpu/m6502/m65ce02.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m65ce02.h",
MAME_DIR .. "src/devices/cpu/m6502/m65sc02.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m65sc02.h",
MAME_DIR .. "src/devices/cpu/m6502/m6500_1.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m6500_1.h",
MAME_DIR .. "src/devices/cpu/m6502/m6504.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m6504.h",
MAME_DIR .. "src/devices/cpu/m6502/m6507.cpp",
@ -1614,26 +1614,26 @@ if CPUS["M6502"] then
MAME_DIR .. "src/devices/cpu/m6502/m6510.h",
MAME_DIR .. "src/devices/cpu/m6502/m6510t.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m6510t.h",
MAME_DIR .. "src/devices/cpu/m6502/m65c02.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m65c02.h",
MAME_DIR .. "src/devices/cpu/m6502/m65ce02.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m65ce02.h",
MAME_DIR .. "src/devices/cpu/m6502/m65sc02.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m65sc02.h",
MAME_DIR .. "src/devices/cpu/m6502/m740.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m740.h",
MAME_DIR .. "src/devices/cpu/m6502/m7501.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m7501.h",
MAME_DIR .. "src/devices/cpu/m6502/m8502.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m8502.h",
MAME_DIR .. "src/devices/cpu/m6502/n2a03.cpp",
MAME_DIR .. "src/devices/cpu/m6502/n2a03.h",
MAME_DIR .. "src/devices/cpu/m6502/r65c02.cpp",
MAME_DIR .. "src/devices/cpu/m6502/r65c02.h",
MAME_DIR .. "src/devices/cpu/m6502/r65c19.cpp",
MAME_DIR .. "src/devices/cpu/m6502/r65c19.h",
MAME_DIR .. "src/devices/cpu/m6502/rp2a03.cpp",
MAME_DIR .. "src/devices/cpu/m6502/rp2a03.h",
MAME_DIR .. "src/devices/cpu/m6502/w65c02s.cpp",
MAME_DIR .. "src/devices/cpu/m6502/w65c02s.h",
MAME_DIR .. "src/devices/cpu/m6502/m740.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m740.h",
MAME_DIR .. "src/devices/cpu/m6502/m3745x.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m3745x.h",
MAME_DIR .. "src/devices/cpu/m6502/m50734.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m50734.h",
MAME_DIR .. "src/devices/cpu/m6502/m5074x.cpp",
MAME_DIR .. "src/devices/cpu/m6502/m5074x.h",
}
custombuildtask {
@ -1645,10 +1645,10 @@ if CPUS["M6502"] then
{ MAME_DIR .. "src/devices/cpu/m6502/om65ce02.lst", GEN_DIR .. "emu/cpu/m6502/m65ce02.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm65ce02.lst" }, {"@echo Generating m65ce02 instruction source file...", PYTHON .. " $(1) s m65ce02 $(<) $(2) $(@)" }},
{ MAME_DIR .. "src/devices/cpu/m6502/om6509.lst", GEN_DIR .. "emu/cpu/m6502/m6509.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm6509.lst" }, {"@echo Generating m6509 instruction source file...", PYTHON .. " $(1) s m6509 $(<) $(2) $(@)" }},
{ MAME_DIR .. "src/devices/cpu/m6502/om6510.lst", GEN_DIR .. "emu/cpu/m6502/m6510.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm6510.lst" }, {"@echo Generating m6510 instruction source file...", PYTHON .. " $(1) s m6510 $(<) $(2) $(@)" }},
{ MAME_DIR .. "src/devices/cpu/m6502/on2a03.lst", GEN_DIR .. "emu/cpu/m6502/n2a03.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dn2a03.lst" }, {"@echo Generating n2a03 instruction source file...", PYTHON .. " $(1) s n2a03_core $(<) $(2) $(@)" }},
{ MAME_DIR .. "src/devices/cpu/m6502/om740.lst" , GEN_DIR .. "emu/cpu/m6502/m740.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm740.lst" }, {"@echo Generating m740 instruction source file...", PYTHON .. " $(1) s m740 $(<) $(2) $(@)" }},
{ MAME_DIR .. "src/devices/cpu/m6502/dr65c02.lst", GEN_DIR .. "emu/cpu/m6502/r65c02.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", }, {"@echo Generating r65c02 instruction source file...", PYTHON .. " $(1) s r65c02 - $(<) $(@)" }},
{ MAME_DIR .. "src/devices/cpu/m6502/or65c19.lst", GEN_DIR .. "emu/cpu/m6502/r65c19.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dr65c19.lst" }, {"@echo Generating r65c19 instruction source file...", PYTHON .. " $(1) s r65c19 $(<) $(2) $(@)" }},
{ MAME_DIR .. "src/devices/cpu/m6502/orp2a03.lst", GEN_DIR .. "emu/cpu/m6502/rp2a03.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/drp2a03.lst" }, {"@echo Generating rp2a03 instruction source file...", PYTHON .. " $(1) s rp2a03_core $(<) $(2) $(@)" }},
{ MAME_DIR .. "src/devices/cpu/m6502/ow65c02s.lst", GEN_DIR .. "emu/cpu/m6502/w65c02s.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dw65c02s.lst" }, {"@echo Generating w65c02s instruction source file...", PYTHON .. " $(1) s w65c02s $(<) $(2) $(@)" }},
}
@ -1657,15 +1657,15 @@ if CPUS["M6502"] then
{ MAME_DIR .. "src/devices/cpu/m6502/m4510.cpp", GEN_DIR .. "emu/cpu/m6502/m4510.hxx" },
{ MAME_DIR .. "src/devices/cpu/m6502/m6502.cpp", GEN_DIR .. "emu/cpu/m6502/m6502.hxx" },
{ MAME_DIR .. "src/devices/cpu/m6502/m6502mtu.cpp", GEN_DIR .. "emu/cpu/m6502/m6502mtu.hxx" },
{ MAME_DIR .. "src/devices/cpu/m6502/m65c02.cpp", GEN_DIR .. "emu/cpu/m6502/m65c02.hxx" },
{ MAME_DIR .. "src/devices/cpu/m6502/m65ce02.cpp", GEN_DIR .. "emu/cpu/m6502/m65ce02.hxx" },
{ MAME_DIR .. "src/devices/cpu/m6502/m6509.cpp", GEN_DIR .. "emu/cpu/m6502/m6509.hxx" },
{ MAME_DIR .. "src/devices/cpu/m6502/m6510.cpp", GEN_DIR .. "emu/cpu/m6502/m6510.hxx" },
{ MAME_DIR .. "src/devices/cpu/m6502/n2a03.cpp", GEN_DIR .. "emu/cpu/m6502/n2a03.hxx" },
{ MAME_DIR .. "src/devices/cpu/m6502/m65c02.cpp", GEN_DIR .. "emu/cpu/m6502/m65c02.hxx" },
{ MAME_DIR .. "src/devices/cpu/m6502/m65ce02.cpp", GEN_DIR .. "emu/cpu/m6502/m65ce02.hxx" },
{ MAME_DIR .. "src/devices/cpu/m6502/m740.cpp", GEN_DIR .. "emu/cpu/m6502/m740.hxx" },
{ MAME_DIR .. "src/devices/cpu/m6502/r65c02.cpp", GEN_DIR .. "emu/cpu/m6502/r65c02.hxx" },
{ MAME_DIR .. "src/devices/cpu/m6502/r65c19.cpp", GEN_DIR .. "emu/cpu/m6502/r65c19.hxx" },
{ MAME_DIR .. "src/devices/cpu/m6502/rp2a03.cpp", GEN_DIR .. "emu/cpu/m6502/rp2a03.hxx" },
{ MAME_DIR .. "src/devices/cpu/m6502/w65c02s.cpp", GEN_DIR .. "emu/cpu/m6502/w65c02s.hxx" },
{ MAME_DIR .. "src/devices/cpu/m6502/m740.cpp", GEN_DIR .. "emu/cpu/m6502/m740.hxx" },
}
end
@ -1718,22 +1718,22 @@ if opt_tool(CPUS, "M6502") then
table.insert(disasm_custombuildtask, { MAME_DIR .. "src/devices/cpu/m6502/om65ce02.lst", GEN_DIR .. "emu/cpu/m6502/m65ce02d.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm65ce02.lst" }, {"@echo Generating m65ce02 disassembler source file...", PYTHON .. " $(1) d m65ce02 $(<) $(2) $(@)" }})
table.insert(disasm_custombuildtask, { MAME_DIR .. "src/devices/cpu/m6502/om6509.lst", GEN_DIR .. "emu/cpu/m6502/m6509d.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm6509.lst" }, {"@echo Generating m6509 disassembler source file...", PYTHON .. " $(1) d m6509 $(<) $(2) $(@)" }})
table.insert(disasm_custombuildtask, { MAME_DIR .. "src/devices/cpu/m6502/om6510.lst", GEN_DIR .. "emu/cpu/m6502/m6510d.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm6510.lst" }, {"@echo Generating m6510 disassembler source file...", PYTHON .. " $(1) d m6510 $(<) $(2) $(@)" }})
table.insert(disasm_custombuildtask, { MAME_DIR .. "src/devices/cpu/m6502/on2a03.lst", GEN_DIR .. "emu/cpu/m6502/n2a03d.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dn2a03.lst" }, {"@echo Generating n2a03 disassembler source file...", PYTHON .. " $(1) d n2a03 $(<) $(2) $(@)" }})
table.insert(disasm_custombuildtask, { MAME_DIR .. "src/devices/cpu/m6502/om740.lst" , GEN_DIR .. "emu/cpu/m6502/m740d.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm740.lst" }, {"@echo Generating m740 disassembler source file...", PYTHON .. " $(1) d m740 $(<) $(2) $(@)" }})
table.insert(disasm_custombuildtask, { MAME_DIR .. "src/devices/cpu/m6502/dr65c02.lst", GEN_DIR .. "emu/cpu/m6502/r65c02d.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", }, {"@echo Generating r65c02 disassembler source file...", PYTHON .. " $(1) d r65c02 - $(<) $(@)" }})
table.insert(disasm_custombuildtask, { MAME_DIR .. "src/devices/cpu/m6502/or65c19.lst", GEN_DIR .. "emu/cpu/m6502/r65c19d.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dr65c19.lst" }, {"@echo Generating r65c19 disassembler source file...", PYTHON .. " $(1) d r65c19 $(<) $(2) $(@)" }})
table.insert(disasm_custombuildtask, { MAME_DIR .. "src/devices/cpu/m6502/orp2a03.lst", GEN_DIR .. "emu/cpu/m6502/rp2a03d.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/drp2a03.lst" }, {"@echo Generating rp2a03 disassembler source file...", PYTHON .. " $(1) d rp2a03 $(<) $(2) $(@)" }})
table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/deco16d.cpp", GEN_DIR .. "emu/cpu/m6502/deco16d.hxx" })
table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/m4510d.cpp", GEN_DIR .. "emu/cpu/m6502/m4510d.hxx" })
table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/m6502d.cpp", GEN_DIR .. "emu/cpu/m6502/m6502d.hxx" })
table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/m65c02d.cpp", GEN_DIR .. "emu/cpu/m6502/m65c02d.hxx" })
table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/m65ce02d.cpp", GEN_DIR .. "emu/cpu/m6502/m65ce02d.hxx" })
table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/m6509d.cpp", GEN_DIR .. "emu/cpu/m6502/m6509d.hxx" })
table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/m6510d.cpp", GEN_DIR .. "emu/cpu/m6502/m6510d.hxx" })
table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/n2a03d.cpp", GEN_DIR .. "emu/cpu/m6502/n2a03d.hxx" })
table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/m65c02d.cpp", GEN_DIR .. "emu/cpu/m6502/m65c02d.hxx" })
table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/m65ce02d.cpp", GEN_DIR .. "emu/cpu/m6502/m65ce02d.hxx" })
table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/m740d.cpp", GEN_DIR .. "emu/cpu/m6502/m740d.hxx" })
table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/r65c02d.cpp", GEN_DIR .. "emu/cpu/m6502/r65c02d.hxx" })
table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/r65c19d.cpp", GEN_DIR .. "emu/cpu/m6502/r65c19d.hxx" })
table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/m740d.cpp", GEN_DIR .. "emu/cpu/m6502/m740d.hxx" })
table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/rp2a03d.cpp", GEN_DIR .. "emu/cpu/m6502/rp2a03d.hxx" })
table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/deco16d.cpp")
table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/deco16d.h")
@ -1751,12 +1751,12 @@ if opt_tool(CPUS, "M6502") then
table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/m65ce02d.h")
table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/m740d.cpp")
table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/m740d.h")
table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/n2a03d.cpp")
table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/n2a03d.h")
table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/r65c02d.cpp")
table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/r65c02d.h")
table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/r65c19d.cpp")
table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/r65c19d.h")
table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/rp2a03d.cpp")
table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/rp2a03d.h")
end
if opt_tool(CPUS, "XAVIX") then

View File

@ -1,6 +1,6 @@
# license:BSD-3-Clause
# copyright-holders:Olivier Galibert
# n2a03 - D flag is disabled but present in the P register
# rp2a03 - D flag is disabled but present in the P register
brk_imp ora_idx kil_non slo_idx nop_zpg ora_zpg asl_zpg slo_zpg php_imp ora_imm asl_acc anc_imm nop_aba ora_aba asl_aba slo_aba
bpl_rel ora_idy kil_non slo_idy nop_zpx ora_zpx asl_zpx slo_zpx clc_imp ora_aby nop_imp slo_aby nop_abx ora_abx asl_abx slo_abx
jsr_adr and_idx kil_non rla_idx bit_zpg and_zpg rol_zpg rla_zpg plp_imp and_imm rol_acc anc_imm bit_aba and_aba rol_aba rla_aba

View File

@ -52,7 +52,7 @@ no nmi
the above series is opcode compatible (including illegal opcodes)
n2a03 (some arcades, NES)
rp2a03 (some arcades, NES)
-------------------------
(nintendo variant)
NMOS based!

View File

@ -1,121 +0,0 @@
// license:BSD-3-Clause
// copyright-holders:Olivier Galibert
/***************************************************************************
n2a03.cpp
6502, NES variant
***************************************************************************/
#include "emu.h"
#include "n2a03.h"
#include "n2a03d.h"
DEFINE_DEVICE_TYPE(N2A03_CORE, n2a03_core_device, "n2a03_core", "Ricoh N2A03 core") // needed for some VT systems with XOP instead of standard APU
DEFINE_DEVICE_TYPE(N2A03, n2a03_device, "n2a03", "Ricoh N2A03") // earliest version, found in punchout, spnchout, dkong3, VS. systems, and some early Famicoms
DEFINE_DEVICE_TYPE(N2A03G, n2a03g_device, "n2a03g", "Ricoh N2A03G") // later revision, found in front-loader NES
uint8_t n2a03_device::psg1_4014_r()
{
return m_apu->read(0x14);
}
uint8_t n2a03_device::psg1_4015_r()
{
return m_apu->read(0x15);
}
void n2a03_device::psg1_4015_w(uint8_t data)
{
m_apu->write(0x15, data);
}
void n2a03_device::psg1_4017_w(uint8_t data)
{
m_apu->write(0x17, data);
}
// on various drivers output port 0x4014 is used for external hardware (not used by APU?)
// input/output port 0x4016 ^ (not used by APU?)
// input port 0x4017 ^ ( APU_IRQCTRL )
// is there a fall through where every write is seen by other hw, or do these addresses really not touch the APU?? APU_IRQCTRL can definitely be written by can it be read back?
void n2a03_device::n2a03_map(address_map &map)
{
map(0x4000, 0x4013).rw("nesapu", FUNC(nesapu_device::read), FUNC(nesapu_device::write));
map(0x4014, 0x4014).r(FUNC(n2a03_device::psg1_4014_r)); // .w(FUNC(nesapu_device::sprite_dma_0_w));
map(0x4015, 0x4015).rw(FUNC(n2a03_device::psg1_4015_r), FUNC(n2a03_device::psg1_4015_w)); /* PSG status / first control register */
//map(0x4016, 0x4016).rw(FUNC(n2a03_device::vsnes_in0_r), FUNC(n2a03_device::vsnes_in0_w));
map(0x4017, 0x4017) /*.r(FUNC(n2a03_device::vsnes_in1_r))*/ .w(FUNC(n2a03_device::psg1_4017_w));
}
n2a03_core_device::n2a03_core_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
: m6502_device(mconfig, type, tag, owner, clock)
{
}
n2a03_core_device::n2a03_core_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: n2a03_core_device(mconfig, N2A03_CORE, tag, owner, clock)
{
}
n2a03_device::n2a03_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
: n2a03_core_device(mconfig, type, tag, owner, clock)
, device_mixer_interface(mconfig, *this, 1)
, m_apu(*this, "nesapu")
{
program_config.m_internal_map = address_map_constructor(FUNC(n2a03_device::n2a03_map), this);
}
n2a03_device::n2a03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: n2a03_device(mconfig, N2A03, tag, owner, clock)
{
}
n2a03g_device::n2a03g_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: n2a03_device(mconfig, N2A03G, tag, owner, clock)
{
}
std::unique_ptr<util::disasm_interface> n2a03_core_device::create_disassembler()
{
return std::make_unique<n2a03_disassembler>();
}
WRITE_LINE_MEMBER(n2a03_device::apu_irq)
{
// games relying on the APU_IRQ don't seem to work anyway? (nes software list : timelord, mig29sf, firehawk)
set_input_line(N2A03_APU_IRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE);
}
uint8_t n2a03_device::apu_read_mem(offs_t offset)
{
return mintf->program.read_byte(offset);
}
void n2a03_device::device_add_mconfig(machine_config &config)
{
APU_2A03(config, m_apu, DERIVED_CLOCK(1,1));
m_apu->irq().set(FUNC(n2a03_device::apu_irq));
m_apu->mem_read().set(FUNC(n2a03_device::apu_read_mem));
m_apu->add_route(ALL_OUTPUTS, *this, 1.0, AUTO_ALLOC_INPUT, 0);
}
void n2a03g_device::device_add_mconfig(machine_config &config)
{
NES_APU(config, m_apu, DERIVED_CLOCK(1,1));
m_apu->irq().set(FUNC(n2a03g_device::apu_irq));
m_apu->mem_read().set(FUNC(n2a03g_device::apu_read_mem));
m_apu->add_route(ALL_OUTPUTS, *this, 1.0, AUTO_ALLOC_INPUT, 0);
}
#include "cpu/m6502/n2a03.hxx"

View File

@ -1,6 +1,6 @@
# license:BSD-3-Clause
# copyright-holders:Olivier Galibert
# n2a03 opcodes - same as 6502 but with d disabled
# rp2a03 opcodes - same as 6502 but with d disabled
adc_nd_aba
TMP = read_pc();
TMP = set_h(TMP, read_pc());

View File

@ -0,0 +1,121 @@
// license:BSD-3-Clause
// copyright-holders:Olivier Galibert
/***************************************************************************
rp2a03.cpp
6502, NES variant
***************************************************************************/
#include "emu.h"
#include "rp2a03.h"
#include "rp2a03d.h"
DEFINE_DEVICE_TYPE(RP2A03_CORE, rp2a03_core_device, "rp2a03_core", "Ricoh RP2A03 core") // needed for some VT systems with XOP instead of standard APU
DEFINE_DEVICE_TYPE(RP2A03, rp2a03_device, "rp2a03", "Ricoh RP2A03") // earliest version, found in punchout, spnchout, dkong3, VS. systems, and some early Famicoms
DEFINE_DEVICE_TYPE(RP2A03G, rp2a03g_device, "rp2a03g", "Ricoh RP2A03G") // later revision, found in front-loader NES
uint8_t rp2a03_device::psg1_4014_r()
{
return m_apu->read(0x14);
}
uint8_t rp2a03_device::psg1_4015_r()
{
return m_apu->read(0x15);
}
void rp2a03_device::psg1_4015_w(uint8_t data)
{
m_apu->write(0x15, data);
}
void rp2a03_device::psg1_4017_w(uint8_t data)
{
m_apu->write(0x17, data);
}
// on various drivers output port 0x4014 is used for external hardware (not used by APU?)
// input/output port 0x4016 ^ (not used by APU?)
// input port 0x4017 ^ ( APU_IRQCTRL )
// is there a fall through where every write is seen by other hw, or do these addresses really not touch the APU?? APU_IRQCTRL can definitely be written by can it be read back?
void rp2a03_device::rp2a03_map(address_map &map)
{
map(0x4000, 0x4013).rw("nesapu", FUNC(nesapu_device::read), FUNC(nesapu_device::write));
map(0x4014, 0x4014).r(FUNC(rp2a03_device::psg1_4014_r)); // .w(FUNC(nesapu_device::sprite_dma_0_w));
map(0x4015, 0x4015).rw(FUNC(rp2a03_device::psg1_4015_r), FUNC(rp2a03_device::psg1_4015_w)); /* PSG status / first control register */
//map(0x4016, 0x4016).rw(FUNC(rp2a03_device::vsnes_in0_r), FUNC(rp2a03_device::vsnes_in0_w));
map(0x4017, 0x4017) /*.r(FUNC(rp2a03_device::vsnes_in1_r))*/ .w(FUNC(rp2a03_device::psg1_4017_w));
}
rp2a03_core_device::rp2a03_core_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
: m6502_device(mconfig, type, tag, owner, clock)
{
}
rp2a03_core_device::rp2a03_core_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: rp2a03_core_device(mconfig, RP2A03_CORE, tag, owner, clock)
{
}
rp2a03_device::rp2a03_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
: rp2a03_core_device(mconfig, type, tag, owner, clock)
, device_mixer_interface(mconfig, *this, 1)
, m_apu(*this, "nesapu")
{
program_config.m_internal_map = address_map_constructor(FUNC(rp2a03_device::rp2a03_map), this);
}
rp2a03_device::rp2a03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: rp2a03_device(mconfig, RP2A03, tag, owner, clock)
{
}
rp2a03g_device::rp2a03g_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: rp2a03_device(mconfig, RP2A03G, tag, owner, clock)
{
}
std::unique_ptr<util::disasm_interface> rp2a03_core_device::create_disassembler()
{
return std::make_unique<rp2a03_disassembler>();
}
WRITE_LINE_MEMBER(rp2a03_device::apu_irq)
{
// games relying on the APU_IRQ don't seem to work anyway? (nes software list : timelord, mig29sf, firehawk)
set_input_line(RP2A03_APU_IRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE);
}
uint8_t rp2a03_device::apu_read_mem(offs_t offset)
{
return mintf->program.read_byte(offset);
}
void rp2a03_device::device_add_mconfig(machine_config &config)
{
APU_2A03(config, m_apu, DERIVED_CLOCK(1,1));
m_apu->irq().set(FUNC(rp2a03_device::apu_irq));
m_apu->mem_read().set(FUNC(rp2a03_device::apu_read_mem));
m_apu->add_route(ALL_OUTPUTS, *this, 1.0, AUTO_ALLOC_INPUT, 0);
}
void rp2a03g_device::device_add_mconfig(machine_config &config)
{
NES_APU(config, m_apu, DERIVED_CLOCK(1,1));
m_apu->irq().set(FUNC(rp2a03g_device::apu_irq));
m_apu->mem_read().set(FUNC(rp2a03g_device::apu_read_mem));
m_apu->add_route(ALL_OUTPUTS, *this, 1.0, AUTO_ALLOC_INPUT, 0);
}
#include "cpu/m6502/rp2a03.hxx"

View File

@ -2,22 +2,22 @@
// copyright-holders:Olivier Galibert
/***************************************************************************
n2a03.h
rp2a03.h
6502, NES variant
***************************************************************************/
#ifndef MAME_CPU_M6502_N2A03_H
#define MAME_CPU_M6502_N2A03_H
#ifndef MAME_CPU_M6502_RP2A03_H
#define MAME_CPU_M6502_RP2A03_H
#pragma once
#include "m6502.h"
#include "sound/nes_apu.h"
class n2a03_core_device : public m6502_device {
class rp2a03_core_device : public m6502_device {
public:
n2a03_core_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
rp2a03_core_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
@ -25,11 +25,11 @@ public:
virtual void do_exec_partial() override;
protected:
n2a03_core_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
rp2a03_core_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
#define O(o) void o ## _full(); void o ## _partial()
// n2a03 opcodes - same as 6502 with D disabled
// rp2a03 opcodes - same as 6502 with D disabled
O(adc_nd_aba); O(adc_nd_abx); O(adc_nd_aby); O(adc_nd_idx); O(adc_nd_idy); O(adc_nd_imm); O(adc_nd_zpg); O(adc_nd_zpx);
O(arr_nd_imm);
O(isb_nd_aba); O(isb_nd_abx); O(isb_nd_aby); O(isb_nd_idx); O(isb_nd_idy); O(isb_nd_zpg); O(isb_nd_zpx);
@ -41,19 +41,19 @@ protected:
private:
};
class n2a03_device : public n2a03_core_device, public device_mixer_interface {
class rp2a03_device : public rp2a03_core_device, public device_mixer_interface {
public:
n2a03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
rp2a03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
uint8_t psg1_4014_r();
uint8_t psg1_4015_r();
void psg1_4015_w(uint8_t data);
void psg1_4017_w(uint8_t data);
void n2a03_map(address_map &map);
void rp2a03_map(address_map &map);
protected:
n2a03_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
rp2a03_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
required_device<nesapu_device> m_apu;
@ -63,10 +63,10 @@ protected:
uint8_t apu_read_mem(offs_t offset);
};
class n2a03g_device : public n2a03_device
class rp2a03g_device : public rp2a03_device
{
public:
n2a03g_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
rp2a03g_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
virtual void device_add_mconfig(machine_config &config) override;
@ -76,21 +76,21 @@ protected:
manufacturing throughout the production of the 2A03. PALC_APU_CLOCK is
the clock rate devised by UMC(?) for PAL Famicom clone hardware. */
#define N2A03_NTSC_XTAL XTAL(21'477'272)
#define N2A03_PAL_XTAL XTAL(26'601'712)
#define NTSC_APU_CLOCK (N2A03_NTSC_XTAL/12) /* 1.7897726666... MHz */
#define PAL_APU_CLOCK (N2A03_PAL_XTAL/16) /* 1.662607 MHz */
#define PALC_APU_CLOCK (N2A03_PAL_XTAL/15) /* 1.77344746666... MHz */
#define RP2A03_NTSC_XTAL XTAL(21'477'272)
#define RP2A03_PAL_XTAL XTAL(26'601'712)
#define NTSC_APU_CLOCK (RP2A03_NTSC_XTAL/12) /* 1.7897726666... MHz */
#define PAL_APU_CLOCK (RP2A03_PAL_XTAL/16) /* 1.662607 MHz */
#define PALC_APU_CLOCK (RP2A03_PAL_XTAL/15) /* 1.77344746666... MHz */
enum {
N2A03_IRQ_LINE = m6502_device::IRQ_LINE,
N2A03_APU_IRQ_LINE = m6502_device::APU_IRQ_LINE,
N2A03_NMI_LINE = m6502_device::NMI_LINE,
N2A03_SET_OVERFLOW = m6502_device::V_LINE
RP2A03_IRQ_LINE = m6502_device::IRQ_LINE,
RP2A03_APU_IRQ_LINE = m6502_device::APU_IRQ_LINE,
RP2A03_NMI_LINE = m6502_device::NMI_LINE,
RP2A03_SET_OVERFLOW = m6502_device::V_LINE
};
DECLARE_DEVICE_TYPE(N2A03_CORE, n2a03_core_device)
DECLARE_DEVICE_TYPE(N2A03, n2a03_device)
DECLARE_DEVICE_TYPE(N2A03G, n2a03g_device)
DECLARE_DEVICE_TYPE(RP2A03_CORE, rp2a03_core_device)
DECLARE_DEVICE_TYPE(RP2A03, rp2a03_device)
DECLARE_DEVICE_TYPE(RP2A03G, rp2a03g_device)
#endif // MAME_CPU_M6502_N2A03_H
#endif // MAME_CPU_M6502_RP2A03_H

View File

@ -2,16 +2,16 @@
// copyright-holders:Olivier Galibert
/***************************************************************************
n2a03d.cpp
rp2a03d.cpp
6502, NES variant, disassembler
***************************************************************************/
#include "emu.h"
#include "n2a03d.h"
#include "cpu/m6502/n2a03d.hxx"
#include "rp2a03d.h"
#include "cpu/m6502/rp2a03d.hxx"
n2a03_disassembler::n2a03_disassembler() : m6502_base_disassembler(disasm_entries)
rp2a03_disassembler::rp2a03_disassembler() : m6502_base_disassembler(disasm_entries)
{
}

View File

@ -2,24 +2,24 @@
// copyright-holders:Olivier Galibert
/***************************************************************************
n2a03d.h
rp2a03d.h
6502, NES variant, disassembler
***************************************************************************/
#ifndef MAME_CPU_M6502_N2A03D_H
#define MAME_CPU_M6502_N2A03D_H
#ifndef MAME_CPU_M6502_RP2A03D_H
#define MAME_CPU_M6502_RP2A03D_H
#pragma once
#include "m6502d.h"
class n2a03_disassembler : public m6502_base_disassembler
class rp2a03_disassembler : public m6502_base_disassembler
{
public:
n2a03_disassembler();
virtual ~n2a03_disassembler() = default;
rp2a03_disassembler();
virtual ~rp2a03_disassembler() = default;
private:
static const disasm_entry disasm_entries[0x100];

View File

@ -4,7 +4,7 @@
MAME/MESS NES APU CORE
Based on the Nofrendo/Nosefart NES N2A03 sound emulation core written by
Based on the Nofrendo/Nosefart NES RP2A03 sound emulation core written by
Matthew Conte (matt@conte.com) and redesigned for use in MAME/MESS by
Who Wants to Know? (wwtk@mail.com)
@ -45,7 +45,7 @@
#include "emu.h"
#include "nes_apu.h"
DEFINE_DEVICE_TYPE(NES_APU, nesapu_device, "nesapu", "N2A0X APU")
DEFINE_DEVICE_TYPE(NES_APU, nesapu_device, "nesapu", "RP2A0X APU")
DEFINE_DEVICE_TYPE(APU_2A03, apu2a03_device, "apu2a03", "RP2A03 APU")
nesapu_device::nesapu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock)

View File

@ -4,7 +4,7 @@
MAME/MESS NES APU CORE
Based on the Nofrendo/Nosefart NES N2A03 sound emulation core written by
Based on the Nofrendo/Nosefart NES RP2A03 sound emulation core written by
Matthew Conte (matt@conte.com) and redesigned for use in MAME/MESS by
Who Wants to Know? (wwtk@mail.com)

View File

@ -4,7 +4,7 @@
MAME/MESS NES APU CORE
Based on the Nofrendo/Nosefart NES N2A03 sound emulation core written by
Based on the Nofrendo/Nosefart NES RP2A03 sound emulation core written by
Matthew Conte (matt@conte.com) and redesigned for use in MAME/MESS by
Who Wants to Know? (wwtk@mail.com)

View File

@ -57,8 +57,10 @@ Notes:
*/
#include "emu.h"
#include "cpu/m6502/n2a03.h"
#include "cpu/m6502/rp2a03.h"
#include "video/ppu2c0x.h"
#include "screen.h"
#include "speaker.h"
@ -84,7 +86,7 @@ protected:
virtual void machine_reset() override;
private:
required_device<n2a03_device> m_maincpu;
required_device<rp2a03_device> m_maincpu;
required_device<ppu2c0x_device> m_ppu;
required_memory_bank_array<4> m_nt_page;
@ -250,7 +252,7 @@ void cham24_state::machine_reset()
void cham24_state::cham24(machine_config &config)
{
/* basic machine hardware */
N2A03G(config, m_maincpu, NTSC_APU_CLOCK);
RP2A03G(config, m_maincpu, NTSC_APU_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &cham24_state::cham24_map);
/* video hardware */

View File

@ -732,13 +732,13 @@ void dkong_state::dkong3_2a03_reset_w(uint8_t data)
{
if (data & 1)
{
m_dev_n2a03a->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
m_dev_n2a03b->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
m_dev_rp2a03a->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
m_dev_rp2a03b->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
}
else
{
m_dev_n2a03a->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
m_dev_n2a03b->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
m_dev_rp2a03a->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
m_dev_rp2a03b->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
}
@ -1797,8 +1797,8 @@ void dkong_state::dkong3(machine_config &config)
m_screen->set_screen_update(FUNC(dkong_state::screen_update_dkong));
m_screen->set_palette(m_palette);
m_screen->screen_vblank().set(FUNC(dkong_state::vblank_irq));
m_screen->screen_vblank().append_inputline(m_dev_n2a03a, INPUT_LINE_NMI);
m_screen->screen_vblank().append_inputline(m_dev_n2a03b, INPUT_LINE_NMI);
m_screen->screen_vblank().append_inputline(m_dev_rp2a03a, INPUT_LINE_NMI);
m_screen->screen_vblank().append_inputline(m_dev_rp2a03b, INPUT_LINE_NMI);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_dkong);
PALETTE(config, m_palette, FUNC(dkong_state::dkong3_palette), DK3_PALETTE_LENGTH);
@ -2905,10 +2905,10 @@ ROM_START( dkong3 )
ROM_LOAD( "dk3c.7d", 0x4000, 0x2000, CRC(d22e2921) SHA1(59a4a1a36aaca19ee0a7255d832df9d042ba34fb) )
ROM_LOAD( "dk3c.7e", 0x8000, 0x2000, CRC(615f14b7) SHA1(145674073e95d97c9131b6f2b03303eadb57ca78) )
ROM_REGION( 0x10000, "n2a03a", 0 ) /* sound #1 */
ROM_REGION( 0x10000, "rp2a03a", 0 ) /* sound #1 */
ROM_LOAD( "dk3c.5l", 0xe000, 0x2000, CRC(7ff88885) SHA1(d530581778aab260e21f04c38e57ba34edea7c64) )
ROM_REGION( 0x10000, "n2a03b", 0 ) /* sound #2 */
ROM_REGION( 0x10000, "rp2a03b", 0 ) /* sound #2 */
ROM_LOAD( "dk3c.6h", 0xe000, 0x2000, CRC(36d7200c) SHA1(7965fcb9bc1c0fdcae8a8e79df9c7b7439c506d8) )
ROM_REGION( 0x2000, "gfx1", 0 )
@ -2938,10 +2938,10 @@ ROM_START( dkong3j )
ROM_LOAD( "dk3c.7d", 0x4000, 0x2000, CRC(d22e2921) SHA1(59a4a1a36aaca19ee0a7255d832df9d042ba34fb) )
ROM_LOAD( "dk3cj.7e", 0x8000, 0x2000, CRC(25b5be23) SHA1(43cf2a676922e60d9d637777a7721ab7582129fc) )
ROM_REGION( 0x10000, "n2a03a", 0 ) /* sound #1 */
ROM_REGION( 0x10000, "rp2a03a", 0 ) /* sound #1 */
ROM_LOAD( "dk3c.5l", 0xe000, 0x2000, CRC(7ff88885) SHA1(d530581778aab260e21f04c38e57ba34edea7c64) )
ROM_REGION( 0x10000, "n2a03b", 0 ) /* sound #2 */
ROM_REGION( 0x10000, "rp2a03b", 0 ) /* sound #2 */
ROM_LOAD( "dk3c.6h", 0xe000, 0x2000, CRC(36d7200c) SHA1(7965fcb9bc1c0fdcae8a8e79df9c7b7439c506d8) )
ROM_REGION( 0x2000, "gfx1", 0 )
@ -3008,10 +3008,10 @@ ROM_START( dkong3hs )
ROM_REGION( 0x10000, "braze", 0 )
ROM_LOAD( "dk3_10a.bin", 0x0000, 0x10000, CRC(0008652b) SHA1(f1d90bb18373a6f24634b6d2cd766a28d07ab9f4) ) /* Version 1.0a */
ROM_REGION( 0x10000, "n2a03a", 0 ) /* sound #1 */
ROM_REGION( 0x10000, "rp2a03a", 0 ) /* sound #1 */
ROM_LOAD( "dk3c.5l", 0xe000, 0x2000, CRC(7ff88885) SHA1(d530581778aab260e21f04c38e57ba34edea7c64) )
ROM_REGION( 0x10000, "n2a03b", 0 ) /* sound #2 */
ROM_REGION( 0x10000, "rp2a03b", 0 ) /* sound #2 */
ROM_LOAD( "dk3c.6h", 0xe000, 0x2000, CRC(36d7200c) SHA1(7965fcb9bc1c0fdcae8a8e79df9c7b7439c506d8) )
ROM_REGION( 0x2000, "gfx1", 0 )

View File

@ -10,7 +10,7 @@
#pragma once
#include "cpu/m6502/n2a03.h"
#include "cpu/m6502/rp2a03.h"
#include "cpu/mcs48/mcs48.h"
#include "machine/eepromser.h"
#include "machine/i8257.h"
@ -108,8 +108,8 @@ public:
, m_maincpu(*this, "maincpu")
, m_soundcpu(*this, "soundcpu")
, m_eeprom(*this, "eeprom")
, m_dev_n2a03a(*this, "n2a03a")
, m_dev_n2a03b(*this, "n2a03b")
, m_dev_rp2a03a(*this, "rp2a03a")
, m_dev_rp2a03b(*this, "rp2a03b")
, m_dev_vp2(*this, "virtual_p2")
, m_dev_6h(*this, "ls259.6h")
, m_ls175_3d(*this, "ls175.3d")
@ -181,8 +181,8 @@ private:
required_device<cpu_device> m_maincpu;
optional_device<mcs48_cpu_device> m_soundcpu;
optional_device<eeprom_serial_93cxx_device> m_eeprom;
optional_device<n2a03_device> m_dev_n2a03a; /* dkong3 */
optional_device<n2a03_device> m_dev_n2a03b; /* dkong3 */
optional_device<rp2a03_device> m_dev_rp2a03a; /* dkong3 */
optional_device<rp2a03_device> m_dev_rp2a03b; /* dkong3 */
optional_device<latch8_device> m_dev_vp2; /* dkong2, virtual port 2 */
optional_device<latch8_device> m_dev_6h; /* dkong2 */
optional_device<latch8_device> m_ls175_3d; /* dkong2b_audio */

View File

@ -1428,13 +1428,13 @@ void dkong_state::dkong3_audio(machine_config &config)
{
SPEAKER(config, "mono").front_center();
n2a03_device &n2a03a(N2A03(config, "n2a03a", NTSC_APU_CLOCK));
n2a03a.set_addrmap(AS_PROGRAM, &dkong_state::dkong3_sound1_map);
n2a03a.add_route(ALL_OUTPUTS, "mono", 0.50);
rp2a03_device &rp2a03a(RP2A03(config, "rp2a03a", NTSC_APU_CLOCK));
rp2a03a.set_addrmap(AS_PROGRAM, &dkong_state::dkong3_sound1_map);
rp2a03a.add_route(ALL_OUTPUTS, "mono", 0.50);
n2a03_device &n2a03b(N2A03(config, "n2a03b", NTSC_APU_CLOCK));
n2a03b.set_addrmap(AS_PROGRAM, &dkong_state::dkong3_sound2_map);
n2a03b.add_route(ALL_OUTPUTS, "mono", 0.50);
rp2a03_device &rp2a03b(RP2A03(config, "rp2a03b", NTSC_APU_CLOCK));
rp2a03b.set_addrmap(AS_PROGRAM, &dkong_state::dkong3_sound2_map);
rp2a03b.add_route(ALL_OUTPUTS, "mono", 0.50);
/* sound latches */
LATCH8(config, "latch1");

View File

@ -62,9 +62,11 @@ Notes/ToDo:
***************************************************************************/
#include "emu.h"
#include "video/ppu2c0x.h"
#include "cpu/m6502/n2a03.h"
#include "bus/nes_ctrl/ctrl.h"
#include "cpu/m6502/rp2a03.h"
#include "video/ppu2c0x.h"
#include "debugger.h"
#include "screen.h"
#include "speaker.h"
@ -98,7 +100,7 @@ protected:
virtual void machine_reset() override;
private:
required_device<n2a03_device> m_maincpu;
required_device<rp2a03_device> m_maincpu;
required_device<ppu2c0x_device> m_ppu;
required_device<screen_device> m_screen;
optional_device_array<nes_control_port_device, 3> m_ctrl;
@ -523,7 +525,7 @@ void famibox_state::machine_start()
void famibox_state::famibox(machine_config &config)
{
// basic machine hardware
N2A03G(config, m_maincpu, NTSC_APU_CLOCK);
RP2A03G(config, m_maincpu, NTSC_APU_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &famibox_state::famibox_map);
// video hardware

View File

@ -4,10 +4,10 @@
m6502_swap_op_d5_d6.cpp
6502 / N2A03 with instruction scrambling
6502 / RP2A03 with instruction scrambling
Seen on die marked VH2009, used on polmega, silv35
these are N2A03 derived CPUs used on VTxx systems
these are RP2A03 derived CPUs used on VTxx systems
VT1682 systems with this scrambling currently derive from M6502 type
but this might be incorrect
@ -18,7 +18,7 @@
#include "m6502_swap_op_d5_d6.h"
DEFINE_DEVICE_TYPE(M6502_SWAP_OP_D5_D6, m6502_swap_op_d5_d6, "m6502_swap_op_d5_d6", "M6502 swapped D5/D6")
DEFINE_DEVICE_TYPE(N2A03_CORE_SWAP_OP_D5_D6, n2a03_core_swap_op_d5_d6, "n2a03_core_swap_op_d5_d6", "N2A03 core with swapped D5/D6")
DEFINE_DEVICE_TYPE(RP2A03_CORE_SWAP_OP_D5_D6, rp2a03_core_swap_op_d5_d6, "rp2a03_core_swap_op_d5_d6", "RP2A03 core with swapped D5/D6")
m6502_swap_op_d5_d6::m6502_swap_op_d5_d6(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
m6502_device(mconfig, M6502_SWAP_OP_D5_D6, tag, owner, clock)
@ -82,29 +82,29 @@ u8 m6502_swap_op_d5_d6::disassembler::decrypt8(u8 value, offs_t pc, bool opcode)
n2a03_core_swap_op_d5_d6::n2a03_core_swap_op_d5_d6(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
n2a03_core_device(mconfig, N2A03_CORE_SWAP_OP_D5_D6, tag, owner, clock)
rp2a03_core_swap_op_d5_d6::rp2a03_core_swap_op_d5_d6(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
rp2a03_core_device(mconfig, RP2A03_CORE_SWAP_OP_D5_D6, tag, owner, clock)
{
}
void n2a03_core_swap_op_d5_d6::device_start()
void rp2a03_core_swap_op_d5_d6::device_start()
{
mintf = std::make_unique<mi_decrypt>();
init();
}
void n2a03_core_swap_op_d5_d6::device_reset()
void rp2a03_core_swap_op_d5_d6::device_reset()
{
downcast<mi_decrypt &>(*mintf).m_encryption_enabled = true;
n2a03_core_device::device_reset();
rp2a03_core_device::device_reset();
}
void n2a03_core_swap_op_d5_d6::set_encryption_state(bool state)
void rp2a03_core_swap_op_d5_d6::set_encryption_state(bool state)
{
downcast<mi_decrypt &>(*mintf).m_encryption_enabled = state;
}
uint8_t n2a03_core_swap_op_d5_d6::mi_decrypt::descramble(uint8_t op)
uint8_t rp2a03_core_swap_op_d5_d6::mi_decrypt::descramble(uint8_t op)
{
if (m_encryption_enabled)
return bitswap<8>(op, 7, 5, 6, 4, 3, 2, 1, 0);
@ -112,7 +112,7 @@ uint8_t n2a03_core_swap_op_d5_d6::mi_decrypt::descramble(uint8_t op)
return op;
}
uint8_t n2a03_core_swap_op_d5_d6::mi_decrypt::read_sync(uint16_t adr)
uint8_t rp2a03_core_swap_op_d5_d6::mi_decrypt::read_sync(uint16_t adr)
{
uint8_t res = cprogram.read_byte(adr);
@ -121,21 +121,21 @@ uint8_t n2a03_core_swap_op_d5_d6::mi_decrypt::read_sync(uint16_t adr)
return res;
}
std::unique_ptr<util::disasm_interface> n2a03_core_swap_op_d5_d6::create_disassembler()
std::unique_ptr<util::disasm_interface> rp2a03_core_swap_op_d5_d6::create_disassembler()
{
return std::make_unique<disassembler>(downcast<mi_decrypt *>(mintf.get()));
}
n2a03_core_swap_op_d5_d6::disassembler::disassembler(mi_decrypt *mi) : mintf(mi)
rp2a03_core_swap_op_d5_d6::disassembler::disassembler(mi_decrypt *mi) : mintf(mi)
{
}
u32 n2a03_core_swap_op_d5_d6::disassembler::interface_flags() const
u32 rp2a03_core_swap_op_d5_d6::disassembler::interface_flags() const
{
return SPLIT_DECRYPTION;
}
u8 n2a03_core_swap_op_d5_d6::disassembler::decrypt8(u8 value, offs_t pc, bool opcode) const
u8 rp2a03_core_swap_op_d5_d6::disassembler::decrypt8(u8 value, offs_t pc, bool opcode) const
{
return opcode ? mintf->descramble(value) : value;
}

View File

@ -4,7 +4,7 @@
m6502_swap_op_d5_d6.h
6502 / N2A03 with instruction scrambling
6502 / RP2A03 with instruction scrambling
***************************************************************************/
@ -13,8 +13,8 @@
#pragma once
#include "cpu/m6502/n2a03.h"
#include "cpu/m6502/n2a03d.h"
#include "cpu/m6502/rp2a03.h"
#include "cpu/m6502/rp2a03d.h"
class m6502_swap_op_d5_d6 : public m6502_device {
public:
@ -48,9 +48,9 @@ protected:
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
};
class n2a03_core_swap_op_d5_d6 : public n2a03_core_device {
class rp2a03_core_swap_op_d5_d6 : public rp2a03_core_device {
public:
n2a03_core_swap_op_d5_d6(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
rp2a03_core_swap_op_d5_d6(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
void set_encryption_state(bool state);
protected:
@ -65,7 +65,7 @@ protected:
uint8_t descramble(uint8_t op);
};
class disassembler : public n2a03_disassembler {
class disassembler : public rp2a03_disassembler {
public:
mi_decrypt *mintf;
@ -82,6 +82,6 @@ protected:
DECLARE_DEVICE_TYPE(M6502_SWAP_OP_D5_D6, m6502_swap_op_d5_d6)
DECLARE_DEVICE_TYPE(N2A03_CORE_SWAP_OP_D5_D6, n2a03_core_swap_op_d5_d6)
DECLARE_DEVICE_TYPE(RP2A03_CORE_SWAP_OP_D5_D6, rp2a03_core_swap_op_d5_d6)
#endif // MAME_M6502_SWAP_OP_D5_D6_H

View File

@ -107,7 +107,7 @@ Eproms are 27512,27010,274001
*/
#include "emu.h"
#include "cpu/m6502/n2a03.h"
#include "cpu/m6502/rp2a03.h"
#include "video/ppu2c0x.h"
#include "emupal.h"
#include "screen.h"
@ -147,7 +147,7 @@ protected:
virtual void video_start() override;
private:
required_device<n2a03_device> m_maincpu;
required_device<rp2a03_device> m_maincpu;
required_device<ppu2c0x_device> m_ppu;
required_ioport m_p1;
required_ioport m_p2;
@ -1184,7 +1184,7 @@ MACHINE_START_MEMBER(multigam_state,supergm3)
void multigam_state::multigam(machine_config &config)
{
/* basic machine hardware */
N2A03G(config, m_maincpu, NTSC_APU_CLOCK);
RP2A03G(config, m_maincpu, NTSC_APU_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &multigam_state::multigam_map);
/* video hardware */

View File

@ -15,7 +15,7 @@
#include "emu.h"
#include "nes.h"
#include "cpu/m6502/n2a03.h"
#include "cpu/m6502/rp2a03.h"
#include "softlist_dev.h"
#include "speaker.h"
@ -51,7 +51,7 @@ INPUT_PORTS_END
void nes_state::nes(machine_config &config)
{
// basic machine hardware
n2a03_device &maincpu(N2A03G(config, m_maincpu, NTSC_APU_CLOCK));
rp2a03_device &maincpu(RP2A03G(config, m_maincpu, NTSC_APU_CLOCK));
maincpu.set_addrmap(AS_PROGRAM, &nes_state::nes_map);
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@ -126,7 +126,7 @@ void nes_state::famicomo(machine_config &config)
famicom(config);
// basic machine hardware
n2a03_device &maincpu(N2A03(config.replace(), m_maincpu, NTSC_APU_CLOCK));
rp2a03_device &maincpu(RP2A03(config.replace(), m_maincpu, NTSC_APU_CLOCK));
maincpu.set_addrmap(AS_PROGRAM, &nes_state::nes_map);
// sound hardware

View File

@ -33,7 +33,7 @@
#include "emu.h"
#include "cpu/m6502/n2a03.h"
#include "cpu/m6502/rp2a03.h"
#include "cpu/z80/z80.h"
#include "video/ppu2c0x.h"
@ -56,7 +56,7 @@ public:
void smb3bl(machine_config &config);
private:
required_device<n2a03_device> m_maincpu;
required_device<rp2a03_device> m_maincpu;
required_device<ppu2c0x_device> m_ppu;
void nes_cpu_map(address_map &map);
@ -116,7 +116,7 @@ INPUT_PORTS_END
void nes_arcade_bl_state::smb3bl(machine_config &config)
{
N2A03G(config, m_maincpu, 3.579545_MHz_XTAL / 2); // TODO: verify divider
RP2A03G(config, m_maincpu, 3.579545_MHz_XTAL / 2); // TODO: verify divider, really RP2A03E
m_maincpu->set_addrmap(AS_PROGRAM, &nes_arcade_bl_state::nes_cpu_map);
z80_device &timercpu(Z80(config, "timercpu", 3.579545_MHz_XTAL));

View File

@ -6,7 +6,7 @@
*/
#include "emu.h"
#include "cpu/m6502/n2a03.h"
#include "cpu/m6502/rp2a03.h"
#include "video/ppu2c0x.h"
#include "emupal.h"
#include "screen.h"
@ -46,7 +46,7 @@ protected:
uint8_t* m_mainrom;
int m_mainromsize;
required_device<n2a03_device> m_maincpu;
required_device<rp2a03_device> m_maincpu;
required_device<screen_device> m_screen;
optional_ioport m_io0;
optional_ioport m_io1;
@ -404,7 +404,7 @@ void nes_clone_state::machine_start()
void nes_clone_state::nes_clone(machine_config &config)
{
/* basic machine hardware */
N2A03G(config, m_maincpu, NTSC_APU_CLOCK);
RP2A03G(config, m_maincpu, NTSC_APU_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &nes_clone_state::nes_clone_map);
/* video hardware */
@ -427,7 +427,7 @@ void nes_clone_state::nes_clone(machine_config &config)
void nes_clone_state::nes_clone_pal(machine_config &config)
{
/* basic machine hardware */
N2A03G(config, m_maincpu, PALC_APU_CLOCK);
RP2A03G(config, m_maincpu, PALC_APU_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &nes_clone_state::nes_clone_map);
/* video hardware */

View File

@ -35,7 +35,7 @@
#include "emu.h"
#include "bus/nes_ctrl/ctrl.h"
#include "cpu/m6502/n2a03.h"
#include "cpu/m6502/rp2a03.h"
#include "video/ppu2c0x.h"
#include "screen.h"
@ -72,7 +72,7 @@ protected:
virtual void machine_reset() override;
private:
required_device<n2a03_device> m_maincpu;
required_device<rp2a03_device> m_maincpu;
required_device<ppu2c0x_device> m_ppu;
required_device<screen_device> m_screen;
optional_device_array<nes_control_port_device, 3> m_ctrl;
@ -438,12 +438,12 @@ void m8_state::machine_reset()
void m8_state::nes_m8(machine_config &config)
{
// basic machine hardware
N2A03G(config, m_maincpu, NTSC_APU_CLOCK); // actual model is RP2A03E
RP2A03G(config, m_maincpu, NTSC_APU_CLOCK); // actual model is RP2A03E
m_maincpu->set_addrmap(AS_PROGRAM, &m8_state::m8_map);
// video hardware
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_raw(N2A03_NTSC_XTAL / 4, 341, 0, VISIBLE_SCREEN_WIDTH, ppu2c0x_device::NTSC_SCANLINES_PER_FRAME, 0, VISIBLE_SCREEN_HEIGHT);
m_screen->set_raw(RP2A03_NTSC_XTAL / 4, 341, 0, VISIBLE_SCREEN_WIDTH, ppu2c0x_device::NTSC_SCANLINES_PER_FRAME, 0, VISIBLE_SCREEN_HEIGHT);
m_screen->set_screen_update(m_ppu, FUNC(ppu2c0x_device::screen_update));
PPU_2C02(config, m_ppu);

View File

@ -20,7 +20,7 @@
#include "emu.h"
#include "bus/nes_ctrl/ctrl.h"
#include "cpu/m6502/n2a03.h"
#include "cpu/m6502/rp2a03.h"
#include "video/ppu2c0x.h"
#include "screen.h"
@ -51,7 +51,7 @@ protected:
virtual void machine_reset() override;
private:
required_device<n2a03_device> m_maincpu;
required_device<rp2a03_device> m_maincpu;
required_device<ppu2c0x_device> m_ppu;
required_device<screen_device> m_screen;
optional_device_array<nes_control_port_device, 5> m_ctrl;
@ -195,12 +195,12 @@ void m82_state::machine_reset()
void m82_state::nes_m82(machine_config &config)
{
// basic machine hardware
N2A03G(config, m_maincpu, NTSC_APU_CLOCK);
RP2A03G(config, m_maincpu, NTSC_APU_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &m82_state::m82_map);
// video hardware
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_raw(N2A03_NTSC_XTAL / 4, 341, 0, VISIBLE_SCREEN_WIDTH, ppu2c0x_device::NTSC_SCANLINES_PER_FRAME, 0, VISIBLE_SCREEN_HEIGHT);
m_screen->set_raw(RP2A03_NTSC_XTAL / 4, 341, 0, VISIBLE_SCREEN_WIDTH, ppu2c0x_device::NTSC_SCANLINES_PER_FRAME, 0, VISIBLE_SCREEN_HEIGHT);
m_screen->set_screen_update(m_ppu, FUNC(ppu2c0x_device::screen_update));
PPU_2C02(config, m_ppu);

View File

@ -602,12 +602,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(nes_sh6578_state::timer_expired)
}
// from n2a03.h verify that it actually uses these
#define N2A03_NTSC_XTAL XTAL(21'477'272)
#define N2A03_PAL_XTAL XTAL(26'601'712)
#define NTSC_APU_CLOCK (N2A03_NTSC_XTAL/12) /* 1.7897726666... MHz */
#define PAL_APU_CLOCK (N2A03_PAL_XTAL/16) /* 1.662607 MHz */
#define PALC_APU_CLOCK (N2A03_PAL_XTAL/15) /* 1.77344746666... MHz */
// from rp2a03.h verify that it actually uses these
#define RP2A03_NTSC_XTAL XTAL(21'477'272)
#define RP2A03_PAL_XTAL XTAL(26'601'712)
#define NTSC_APU_CLOCK (RP2A03_NTSC_XTAL/12) /* 1.7897726666... MHz */
#define PAL_APU_CLOCK (RP2A03_PAL_XTAL/16) /* 1.662607 MHz */
#define PALC_APU_CLOCK (RP2A03_PAL_XTAL/15) /* 1.77344746666... MHz */
uint32_t nes_sh6578_state::screen_update(screen_device& screen, bitmap_rgb32& bitmap, const rectangle& cliprect)
{
@ -617,12 +617,12 @@ uint32_t nes_sh6578_state::screen_update(screen_device& screen, bitmap_rgb32& bi
void nes_sh6578_state::nes_sh6578(machine_config& config)
{
/* basic machine hardware */
M6502(config, m_maincpu, NTSC_APU_CLOCK); // regular M6502 core, not N2A03?
M6502(config, m_maincpu, NTSC_APU_CLOCK); // regular M6502 core, not RP2A03?
m_maincpu->set_addrmap(AS_PROGRAM, &nes_sh6578_state::nes_sh6578_map);
ADDRESS_MAP_BANK(config, m_fullrom).set_map(&nes_sh6578_state::rom_map).set_options(ENDIANNESS_NATIVE, 8, 20, 0x100000);
PPU_SH6578(config, m_ppu, N2A03_NTSC_XTAL);
PPU_SH6578(config, m_ppu, RP2A03_NTSC_XTAL);
m_ppu->set_cpu_tag(m_maincpu);
m_ppu->int_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
@ -654,7 +654,7 @@ void nes_sh6578_state::nes_sh6578_pal(machine_config& config)
m_maincpu->set_clock(PALC_APU_CLOCK);
m_apu->set_clock(PALC_APU_CLOCK);
PPU_SH6578PAL(config.replace(), m_ppu, N2A03_PAL_XTAL);
PPU_SH6578PAL(config.replace(), m_ppu, RP2A03_PAL_XTAL);
m_ppu->set_cpu_tag(m_maincpu);
m_ppu->int_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);

View File

@ -6,7 +6,7 @@
#pragma once
#include "nes_vt_soc.h"
#include "cpu/m6502/n2a03.h"
#include "cpu/m6502/rp2a03.h"
#include "sound/nes_apu_vt.h"
#include "m6502_vtscr.h"
#include "m6502_swap_op_d5_d6.h"

View File

@ -29,7 +29,7 @@ void nes_vt32_soc_device::device_add_mconfig(machine_config& config)
{
nes_vt02_vt03_soc_device::device_add_mconfig(config);
M6502_VTSCR(config.replace(), m_maincpu, NTSC_APU_CLOCK); // are these later chips N2A03 core, or 6502 core derived?
M6502_VTSCR(config.replace(), m_maincpu, NTSC_APU_CLOCK); // are these later chips RP2A03 core, or 6502 core derived?
m_maincpu->set_addrmap(AS_PROGRAM, &nes_vt32_soc_device::nes_vt_fp_map);
}

View File

@ -6,7 +6,7 @@
#pragma once
#include "nes_vt09_soc.h"
#include "cpu/m6502/n2a03.h"
#include "cpu/m6502/rp2a03.h"
#include "sound/nes_apu_vt.h"
#include "m6502_vtscr.h"
#include "m6502_swap_op_d5_d6.h"

View File

@ -72,7 +72,7 @@ void nes_vt369_soc_device::device_add_mconfig(machine_config& config)
VT_VT1682_ALU(config, m_alu, 0);
M6502(config, m_soundcpu, N2A03_NTSC_XTAL);
M6502(config, m_soundcpu, RP2A03_NTSC_XTAL);
m_soundcpu->set_addrmap(AS_PROGRAM, &nes_vt369_soc_device::vt369_sound_map);
}
@ -322,9 +322,9 @@ void nes_vt369_alt_soc_device::nes_vt_hh_map(address_map &map)
void nes_vt369_alt_swap_d5_d6_soc_device::encryption_4169_w(uint8_t data)
{
if (data == 0x01)
downcast<n2a03_core_swap_op_d5_d6 &>(*m_maincpu).set_encryption_state(false);
downcast<rp2a03_core_swap_op_d5_d6 &>(*m_maincpu).set_encryption_state(false);
else if (data == 0x00)
downcast<n2a03_core_swap_op_d5_d6 &>(*m_maincpu).set_encryption_state(true);
downcast<rp2a03_core_swap_op_d5_d6 &>(*m_maincpu).set_encryption_state(true);
else
logerror("%s: encryption_4169_w %02x\n", machine().describe_context(), data);
}
@ -342,7 +342,7 @@ void nes_vt369_alt_swap_d5_d6_soc_device::device_add_mconfig(machine_config& con
{
nes_vt02_vt03_soc_device::device_add_mconfig(config);
N2A03_CORE_SWAP_OP_D5_D6(config.replace(), m_maincpu, NTSC_APU_CLOCK);
RP2A03_CORE_SWAP_OP_D5_D6(config.replace(), m_maincpu, NTSC_APU_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &nes_vt369_alt_swap_d5_d6_soc_device::nes_vt_hh_swap_map);
}

View File

@ -6,7 +6,7 @@
#pragma once
#include "nes_vt09_soc.h"
#include "cpu/m6502/n2a03.h"
#include "cpu/m6502/rp2a03.h"
#include "sound/nes_apu_vt.h"
#include "m6502_vtscr.h"
#include "m6502_swap_op_d5_d6.h"

View File

@ -1100,7 +1100,7 @@ void nes_vt02_vt03_soc_device::nes_vt_map(address_map &map)
WRITE_LINE_MEMBER(nes_vt02_vt03_soc_device::apu_irq)
{
// TODO
// set_input_line(N2A03_APU_IRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE);
// set_input_line(RP2A03_APU_IRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE);
}
uint8_t nes_vt02_vt03_soc_device::apu_read_mem(offs_t offset)
@ -1126,7 +1126,7 @@ void nes_vt02_vt03_soc_device::do_pal_timings_and_ppu_replacement(machine_config
{
m_maincpu->set_clock(PALC_APU_CLOCK);
PPU_VT03PAL(config.replace(), m_ppu, N2A03_PAL_XTAL);
PPU_VT03PAL(config.replace(), m_ppu, RP2A03_PAL_XTAL);
m_ppu->set_cpu_tag(m_maincpu);
m_ppu->int_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
m_ppu->read_bg().set(FUNC(nes_vt02_vt03_soc_device::chr_r));
@ -1143,7 +1143,7 @@ void nes_vt02_vt03_soc_device::do_pal_timings_and_ppu_replacement(machine_config
void nes_vt02_vt03_soc_device::device_add_mconfig(machine_config &config)
{
N2A03_CORE(config, m_maincpu, NTSC_APU_CLOCK); // Butterfly Catch in vgpocket confirms N2A03 core type, not 6502
RP2A03_CORE(config, m_maincpu, NTSC_APU_CLOCK); // Butterfly Catch in vgpocket confirms RP2A03 core type, not 6502
m_maincpu->set_addrmap(AS_PROGRAM, &nes_vt02_vt03_soc_device::nes_vt_map);
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@ -1154,7 +1154,7 @@ void nes_vt02_vt03_soc_device::device_add_mconfig(machine_config &config)
m_screen->set_visarea(0*8, 32*8-1, 0*8, 30*8-1);
m_screen->set_screen_update(FUNC(nes_vt02_vt03_soc_device::screen_update));
PPU_VT03(config, m_ppu, N2A03_NTSC_XTAL);
PPU_VT03(config, m_ppu, RP2A03_NTSC_XTAL);
m_ppu->set_cpu_tag(m_maincpu);
m_ppu->int_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
m_ppu->read_bg().set(FUNC(nes_vt02_vt03_soc_device::chr_r));
@ -1185,6 +1185,6 @@ void nes_vt02_vt03_soc_scramble_device::device_add_mconfig(machine_config& confi
{
nes_vt02_vt03_soc_device::device_add_mconfig(config);
N2A03_CORE_SWAP_OP_D5_D6(config.replace(), m_maincpu, NTSC_APU_CLOCK); // Insect Chase in polmega confirms N2A03 core type, not 6502
RP2A03_CORE_SWAP_OP_D5_D6(config.replace(), m_maincpu, NTSC_APU_CLOCK); // Insect Chase in polmega confirms RP2A03 core type, not 6502
m_maincpu->set_addrmap(AS_PROGRAM, &nes_vt02_vt03_soc_scramble_device::nes_vt_map);
}

View File

@ -5,7 +5,7 @@
#pragma once
#include "cpu/m6502/n2a03.h"
#include "cpu/m6502/rp2a03.h"
#include "sound/nes_apu_vt.h"
#include "m6502_vtscr.h"
#include "m6502_swap_op_d5_d6.h"

View File

@ -291,7 +291,7 @@ Notes & Todo:
#include "emu.h"
#include "bus/nes_ctrl/zapper_sensor.h"
#include "cpu/m6502/n2a03.h"
#include "cpu/m6502/rp2a03.h"
#include "cpu/z80/z80.h"
#include "machine/74259.h"
#include "machine/rp5h01.h"
@ -439,7 +439,7 @@ private:
u32 screen_update_playch10_single(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<n2a03_device> m_cartcpu;
required_device<rp2a03_device> m_cartcpu;
required_device<ppu2c0x_device> m_ppu;
optional_device<rp5h01_device> m_rp5h01;
@ -1906,7 +1906,7 @@ void playch10_state::playch10(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &playch10_state::bios_map);
m_maincpu->set_addrmap(AS_IO, &playch10_state::bios_io_map);
N2A03G(config, m_cartcpu, NTSC_APU_CLOCK);
RP2A03G(config, m_cartcpu, NTSC_APU_CLOCK); // really RP2A03E
m_cartcpu->set_addrmap(AS_PROGRAM, &playch10_state::cart_map);
ls259_device &outlatch1(LS259(config, "outlatch1")); // 7D

View File

@ -612,7 +612,7 @@ void punchout_state::punchout(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &punchout_state::punchout_map);
m_maincpu->set_addrmap(AS_IO, &punchout_state::punchout_io_map);
N2A03(config, m_audiocpu, NTSC_APU_CLOCK);
RP2A03(config, m_audiocpu, NTSC_APU_CLOCK);
m_audiocpu->set_addrmap(AS_PROGRAM, &punchout_state::punchout_sound_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@ -657,7 +657,7 @@ void punchout_state::punchout(machine_config &config)
GENERIC_LATCH_8(config, "soundlatch");
GENERIC_LATCH_8(config, "soundlatch2");
VLM5030(config, m_vlm, N2A03_NTSC_XTAL/6);
VLM5030(config, m_vlm, RP2A03_NTSC_XTAL/6);
m_vlm->set_addrmap(0, &punchout_state::punchout_vlm_map);
m_vlm->add_route(ALL_OUTPUTS, "lspeaker", 0.50);
m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0.50);

View File

@ -10,7 +10,7 @@
#pragma once
#include "cpu/m6502/n2a03.h"
#include "cpu/m6502/rp2a03.h"
#include "machine/rp5c01.h"
#include "machine/rp5h01.h"
#include "sound/vlm5030.h"
@ -45,7 +45,7 @@ public:
private:
required_device<cpu_device> m_maincpu;
required_device<n2a03_device> m_audiocpu;
required_device<rp2a03_device> m_audiocpu;
optional_device<rp5c01_device> m_rtc;
optional_device<rp5h01_device> m_rp5h01;
required_device<vlm5030_device> m_vlm;

View File

@ -144,7 +144,7 @@ Changes:
#include "emu.h"
#include "bus/nes_ctrl/zapper_sensor.h"
#include "cpu/m6502/n2a03.h"
#include "cpu/m6502/rp2a03.h"
#include "cpu/z80/z80.h"
#include "machine/nvram.h"
#include "machine/watchdog.h"
@ -2405,14 +2405,14 @@ INPUT_PORTS_END
void vs_uni_state::vsnes(machine_config &config)
{
// basic machine hardware
n2a03_device &maincpu(N2A03(config, m_maincpu, NTSC_APU_CLOCK));
rp2a03_device &maincpu(RP2A03(config, m_maincpu, NTSC_APU_CLOCK));
maincpu.set_addrmap(AS_PROGRAM, &vs_uni_state::vsnes_cpu1_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
// video hardware
screen_device &screen1(SCREEN(config, "screen1", SCREEN_TYPE_RASTER));
screen1.set_raw(N2A03_NTSC_XTAL / 4, 341, 0, VISIBLE_SCREEN_WIDTH, ppu2c0x_device::NTSC_SCANLINES_PER_FRAME, 0, VISIBLE_SCREEN_HEIGHT);
screen1.set_raw(RP2A03_NTSC_XTAL / 4, 341, 0, VISIBLE_SCREEN_WIDTH, ppu2c0x_device::NTSC_SCANLINES_PER_FRAME, 0, VISIBLE_SCREEN_HEIGHT);
screen1.set_screen_update("ppu1", FUNC(ppu2c0x_device::screen_update));
PPU_2C04(config, m_ppu1);
@ -2475,10 +2475,10 @@ void vs_uni_state::topgun(machine_config &config)
void vs_dual_state::vsdual(machine_config &config)
{
// basic machine hardware
n2a03_device &maincpu(N2A03(config, m_maincpu, NTSC_APU_CLOCK));
rp2a03_device &maincpu(RP2A03(config, m_maincpu, NTSC_APU_CLOCK));
maincpu.set_addrmap(AS_PROGRAM, &vs_dual_state::vsnes_cpu1_map);
n2a03_device &subcpu(N2A03(config, m_subcpu, NTSC_APU_CLOCK));
rp2a03_device &subcpu(RP2A03(config, m_subcpu, NTSC_APU_CLOCK));
subcpu.set_addrmap(AS_PROGRAM, &vs_dual_state::vsnes_cpu2_map);
// need high level of interleave to keep screens in sync in Balloon Fight.
@ -2489,11 +2489,11 @@ void vs_dual_state::vsdual(machine_config &config)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
screen_device &screen1(SCREEN(config, "screen1", SCREEN_TYPE_RASTER));
screen1.set_raw(N2A03_NTSC_XTAL / 4, 341, 0, VISIBLE_SCREEN_WIDTH, ppu2c0x_device::NTSC_SCANLINES_PER_FRAME, 0, VISIBLE_SCREEN_HEIGHT);
screen1.set_raw(RP2A03_NTSC_XTAL / 4, 341, 0, VISIBLE_SCREEN_WIDTH, ppu2c0x_device::NTSC_SCANLINES_PER_FRAME, 0, VISIBLE_SCREEN_HEIGHT);
screen1.set_screen_update("ppu1", FUNC(ppu2c0x_device::screen_update));
screen_device &screen2(SCREEN(config, "screen2", SCREEN_TYPE_RASTER));
screen2.set_raw(N2A03_NTSC_XTAL / 4, 341, 0, VISIBLE_SCREEN_WIDTH, ppu2c0x_device::NTSC_SCANLINES_PER_FRAME, 0, VISIBLE_SCREEN_HEIGHT);
screen2.set_raw(RP2A03_NTSC_XTAL / 4, 341, 0, VISIBLE_SCREEN_WIDTH, ppu2c0x_device::NTSC_SCANLINES_PER_FRAME, 0, VISIBLE_SCREEN_HEIGHT);
screen2.set_screen_update("ppu2", FUNC(ppu2c0x_device::screen_update));
PPU_2C04(config, m_ppu1);

View File

@ -11,7 +11,7 @@
#include "imagedev/snapquik.h"
#include "cpu/h6280/h6280.h"
#include "cpu/m6502/n2a03.h"
#include "cpu/m6502/rp2a03.h"
#include "cpu/m68000/m68000.h"
#include "cpu/sh/sh2.h"
#include "sound/ay8910.h"
@ -500,7 +500,7 @@ private:
required_device<sega_32x_ntsc_device> m_sega32x;
required_device_array<ay8910_device, 2> m_ay8910;
required_device_array<gameboy_sound_device, 2> m_dmg;
required_device_array<n2a03_device, 2> m_nescpu;
required_device_array<rp2a03_device, 2> m_nescpu;
required_device_array<multipcm_device, 2> m_multipcm;
required_device_array<upd7759_device, 2> m_upd7759;
required_device_array<okim6258_device, 2> m_okim6258;
@ -3845,13 +3845,13 @@ void vgmplay_state::vgmplay(machine_config &config)
m_dmg[1]->add_route(0, m_mixer, 1, AUTO_ALLOC_INPUT, 0);
m_dmg[1]->add_route(0, m_mixer, 1, AUTO_ALLOC_INPUT, 1);
N2A03G(config, m_nescpu[0], 0);
RP2A03G(config, m_nescpu[0], 0);
m_nescpu[0]->set_addrmap(AS_PROGRAM, &vgmplay_state::nescpu_map<0>);
m_nescpu[0]->set_disable();
m_nescpu[0]->add_route(ALL_OUTPUTS, m_mixer, 0.50, AUTO_ALLOC_INPUT, 0);
m_nescpu[0]->add_route(ALL_OUTPUTS, m_mixer, 0.50, AUTO_ALLOC_INPUT, 1);
N2A03G(config, m_nescpu[1], 0);
RP2A03G(config, m_nescpu[1], 0);
m_nescpu[1]->set_addrmap(AS_PROGRAM, &vgmplay_state::nescpu_map<1>);
m_nescpu[1]->set_disable();
m_nescpu[1]->add_route(ALL_OUTPUTS, m_mixer, 0.50, AUTO_ALLOC_INPUT, 0);

View File

@ -417,7 +417,7 @@ static const std::map<std::string, const gdb_register_map &> gdb_register_maps =
{ "m68000", gdb_register_map_m68000 },
{ "z80", gdb_register_map_z80 },
{ "m6502", gdb_register_map_m6502 },
{ "n2a03", gdb_register_map_m6502 },
{ "rp2a03", gdb_register_map_m6502 },
{ "m6809", gdb_register_map_m6809 },
{ "score7", gdb_register_map_score7 },
};