Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Freescale mcf5206e peripherals for Pluto 6 emulation #13261

Open
wants to merge 29 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
fff86ed
Initial work to date on Pluto 6
NaokiS28 Jan 15, 2025
81171b1
Support ColdFire HALT instruction to stop CPU running away
NaokiS28 Jan 19, 2025
084f0e8
Create seperate modules and link them to the CPU.
NaokiS28 Jan 22, 2025
73b1f20
Add basic HALT instruction support for ColdFire MCF6206e
NaokiS28 Jan 22, 2025
ee4947d
Remove GPU support to avoid error message about screens. GPU isnt emu…
NaokiS28 Jan 22, 2025
383e465
Merge remote-tracking branch 'upstream/HEAD' into pluto6
NaokiS28 Jan 22, 2025
dd11cb5
Updated game list to remove pluto 6 video programs
NaokiS28 Jan 22, 2025
68f302c
Update mc68681.cpp to match base
NaokiS28 Jan 22, 2025
8fc3368
Fixed the R and ALU comments in the generated files
NaokiS28 Jan 23, 2025
bdd0cb6
Re-add the ATTR_COLD flags removed by accident
NaokiS28 Jan 23, 2025
f24aa54
Fix checksums for files
NaokiS28 Jan 23, 2025
f07611f
Missed a b
NaokiS28 Jan 23, 2025
d72d7e7
Changed variables to lowercase
NaokiS28 Jan 23, 2025
e95d473
Fix BITWRITE to actually store things.
NaokiS28 Jan 23, 2025
d2c4dc4
Remove PC bios from pl6_cm as per suggestion.
NaokiS28 Jan 23, 2025
41cc92f
Fix register mapping oversights
NaokiS28 Jan 25, 2025
ee47588
Add preliminary DMA module support
NaokiS28 Jan 25, 2025
a44b8dc
Add preliminary GPU slot device support
NaokiS28 Jan 25, 2025
d148010
Merge remote-tracking branch 'master/master' into pluto6
NaokiS28 Jan 25, 2025
debea1e
Preliminary emulation of the ColdFire SIM module interrupt controller…
NaokiS28 Feb 1, 2025
7b6b0c2
Small oversights fixed
NaokiS28 Feb 1, 2025
9e48a3e
Fix warnings to make Clang happy on macOS
NaokiS28 Feb 1, 2025
d1840f9
mc68681.cpp: remove "Device" from device string
happppp Feb 9, 2025
55f4c87
Revert changes to new68k - HALT is not a valid 68k instruction
NaokiS28 Feb 10, 2025
3885a17
Add TODO tag
NaokiS28 Feb 10, 2025
ece64c1
Updated JPM FPGA map with more functions found
NaokiS28 Feb 10, 2025
c6563d7
Fix wrong DUART chip type used in info.
NaokiS28 Feb 10, 2025
f16cdd9
Merge mame.lst
NaokiS28 Feb 10, 2025
e855e98
Merge branch 'master' into pluto6
NaokiS28 Feb 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions scripts/src/machine.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5346,3 +5346,19 @@ if (MACHINES["SCI4"]~=null) then
MAME_DIR .. "src/devices/machine/sci4.h",
}
end

---------------------------------------------------
--
--@src/devices/machine/pl6_fpga.h,MACHINES["HEBER_PLUTO"] = true
--@src/devices/machine/pl6_pic.h,MACHINES["HEBER_PLUTO"] = true
---------------------------------------------------
if (MACHINES["HEBER_PLUTO"]~=null) then
files {
MAME_DIR .. "src/devices/machine/pl6_fpga.cpp",
MAME_DIR .. "src/devices/machine/pl6_fpga.h",
MAME_DIR .. "src/devices/machine/pl6_pic.cpp",
MAME_DIR .. "src/devices/machine/pl6_pic.h",
MAME_DIR .. "src/devices/machine/pl6_exp.cpp",
MAME_DIR .. "src/devices/machine/pl6_exp.h",
}
end
12 changes: 12 additions & 0 deletions scripts/src/video.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1696,3 +1696,15 @@ if (VIDEOS["ZR36110"]~=null) then
MAME_DIR .. "src/devices/video/zr36110.h",
}
end

--------------------------------------------------
--
--@src/devices/video/serialvfd.h,VIDEOS["SERIALVFD"] = true
--------------------------------------------------

if (VIDEOS["SERIALVFD"]~=null) then
files {
MAME_DIR .. "src/devices/video/serialvfd.cpp",
MAME_DIR .. "src/devices/video/serialvfd.h",
}
end
5 changes: 5 additions & 0 deletions src/devices/cpu/m68000/m68k_in.lst
Original file line number Diff line number Diff line change
Expand Up @@ -7796,6 +7796,11 @@ e5c0 ffc0 roxl w A+-DXWL 01:8 7:14 234fc:5

m68ki_write_8(ea, dst | 0x80);

4ac8 ffff halt . . c:0p
m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */
m_icount = 0;
m_stopped = STOP_LEVEL_HALT;


4e40 fff0 trap . . 071234fc:4
/* Trap#n stacks exception frame type 0 */
Expand Down
6 changes: 6 additions & 0 deletions src/devices/cpu/m68000/m68kdasm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1605,6 +1605,11 @@ std::string m68k_disassembler::d68040_fpu()
return util::string_format("FPU (?) ");
}

std::string m68k_disassembler::dcoldfire_halt()
{
return std::string("halt");
}

std::string m68k_disassembler::d68000_jmp()
{
return util::string_format("jmp %s", get_ea_mode_str_32(m_cpu_ir));
Expand Down Expand Up @@ -3283,6 +3288,7 @@ const m68k_disassembler::opcode_struct m68k_disassembler::m_opcode_info[] =
{&m68k_disassembler::d68000_ext_16 , 0xfff8, 0x4880, 0x000},
{&m68k_disassembler::d68000_ext_32 , 0xfff8, 0x48c0, 0x000},
{&m68k_disassembler::d68040_fpu , 0xffc0, 0xf200, 0x000},
{&m68k_disassembler::dcoldfire_halt , 0xffff, 0x4ac8, 0x000},
{&m68k_disassembler::d68000_illegal , 0xffff, 0x4afc, 0x000},
{&m68k_disassembler::d68000_jmp , 0xffc0, 0x4ec0, 0x27b},
{&m68k_disassembler::d68000_jsr , 0xffc0, 0x4e80, 0x27b},
Expand Down
1 change: 1 addition & 0 deletions src/devices/cpu/m68000/m68kdasm.h
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,7 @@ class m68k_disassembler : public util::disasm_interface
std::string d68020_extb_32();
std::string d68881_ftrap();
std::string d68040_fpu();
std::string dcoldfire_halt();
std::string d68000_jmp();
std::string d68000_jsr();
std::string d68000_lea();
Expand Down
19 changes: 10 additions & 9 deletions src/devices/cpu/m68000/m68kops.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30158,7 +30158,6 @@ void m68000_musashi_device::x4ad0_tas_b_ai_071234fc()

m68ki_write_8(ea, dst | 0x80);


}
void m68000_musashi_device::x4ad8_tas_b_pi_071234fc()
{
Expand All @@ -30172,7 +30171,6 @@ void m68000_musashi_device::x4ad8_tas_b_pi_071234fc()

m68ki_write_8(ea, dst | 0x80);


}
void m68000_musashi_device::x4adf_tas_b_pi7_071234fc()
{
Expand All @@ -30186,7 +30184,6 @@ void m68000_musashi_device::x4adf_tas_b_pi7_071234fc()

m68ki_write_8(ea, dst | 0x80);


}
void m68000_musashi_device::x4ae0_tas_b_pd_071234fc()
{
Expand All @@ -30200,7 +30197,6 @@ void m68000_musashi_device::x4ae0_tas_b_pd_071234fc()

m68ki_write_8(ea, dst | 0x80);


}
void m68000_musashi_device::x4ae7_tas_b_pd7_071234fc()
{
Expand All @@ -30214,7 +30210,6 @@ void m68000_musashi_device::x4ae7_tas_b_pd7_071234fc()

m68ki_write_8(ea, dst | 0x80);


}
void m68000_musashi_device::x4ae8_tas_b_di_071234fc()
{
Expand All @@ -30228,7 +30223,6 @@ void m68000_musashi_device::x4ae8_tas_b_di_071234fc()

m68ki_write_8(ea, dst | 0x80);


}
void m68000_musashi_device::x4af0_tas_b_ix_071234fc()
{
Expand All @@ -30242,7 +30236,6 @@ void m68000_musashi_device::x4af0_tas_b_ix_071234fc()

m68ki_write_8(ea, dst | 0x80);


}
void m68000_musashi_device::x4af8_tas_b_aw_071234fc()
{
Expand All @@ -30256,7 +30249,6 @@ void m68000_musashi_device::x4af8_tas_b_aw_071234fc()

m68ki_write_8(ea, dst | 0x80);


}
void m68000_musashi_device::x4af9_tas_b_al_071234fc()
{
Expand All @@ -30270,6 +30262,13 @@ void m68000_musashi_device::x4af9_tas_b_al_071234fc()

m68ki_write_8(ea, dst | 0x80);

}
void m68000_musashi_device::x4ac8_halt_c()
{
m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */
m_icount = 0;
m_stopped = STOP_LEVEL_HALT;


}
void m68000_musashi_device::x4e40_trap_071234fc()
Expand Down Expand Up @@ -32985,6 +32984,7 @@ const m68000_musashi_device::opcode_handler_ptr m68000_musashi_device::m68k_hand
&m68000_musashi_device::x4aba_tst_l_234fc,
&m68000_musashi_device::x4abb_tst_l_234fc,
&m68000_musashi_device::x4abc_tst_l_234fc,
&m68000_musashi_device::x4ac8_halt_c,
&m68000_musashi_device::x4adf_tas_b_pi7_071234fc,
&m68000_musashi_device::x4ae7_tas_b_pd7_071234fc,
&m68000_musashi_device::x4af8_tas_b_aw_071234fc,
Expand Down Expand Up @@ -33244,7 +33244,7 @@ const m68000_musashi_device::opcode_handler_ptr m68000_musashi_device::m68k_hand
&m68000_musashi_device::xeff9_bfins_l_al_234fc,
};

const u16 m68000_musashi_device::m68k_state_illegal = 1797;
const u16 m68000_musashi_device::m68k_state_illegal = 1798;

const m68000_musashi_device::opcode_handler_struct m68000_musashi_device::m68k_opcode_table[] =
{
Expand Down Expand Up @@ -35042,6 +35042,7 @@ const m68000_musashi_device::opcode_handler_struct m68000_musashi_device::m68k_o
{ 0x4aba, 0xffff, {255, 255, 255, 7, 7, 7, 7, 7}},
{ 0x4abb, 0xffff, {255, 255, 255, 9, 9, 9, 9, 9}},
{ 0x4abc, 0xffff, {255, 255, 255, 6, 6, 6, 6, 6}},
{ 0x4ac8, 0xffff, {255, 255, 255, 255, 255, 255, 255, 0}},
{ 0x4adf, 0xffff, { 18, 19, 18, 16, 16, 16, 16, 12}},
{ 0x4ae7, 0xffff, { 20, 21, 20, 17, 17, 17, 17, 12}},
{ 0x4af8, 0xffff, { 22, 23, 22, 16, 16, 16, 16, 12}},
Expand Down
1 change: 1 addition & 0 deletions src/devices/cpu/m68000/m68kops.h
Original file line number Diff line number Diff line change
Expand Up @@ -1954,6 +1954,7 @@ void x4ae8_tas_b_di_071234fc();
void x4af0_tas_b_ix_071234fc();
void x4af8_tas_b_aw_071234fc();
void x4af9_tas_b_al_071234fc();
void x4ac8_halt_c();
void x4e40_trap_071234fc();
void x50fc_trapt_234fc();
void x50fa_trapt_w_234fc();
Expand Down
Loading
Loading