mirror of
https://github.com/holub/mame
synced 2025-07-03 00:56:03 +03:00
nintendo/nes.cpp: Added an RGB capable Famicom clone. (#10200)
New working clones ------------------ Sharp My Computer Terebi C1 [kmg]
This commit is contained in:
parent
3c411bf0b6
commit
465487cf1d
20
hash/nes.xml
20
hash/nes.xml
@ -44521,26 +44521,6 @@ We should eventually add it to MAME as a separate driver with a NES CPU and a GB
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- This might be the dump of the bios. Investigate... -->
|
||||
<software name="myctv">
|
||||
<description>My Computer TV C1 (Japan)</description>
|
||||
<year>1983</year>
|
||||
<publisher>Sharp</publisher>
|
||||
<info name="alt_title" value="マイコンピュータテレビC1"/>
|
||||
<part name="cart" interface="nes_cart">
|
||||
<feature name="slot" value="nrom" />
|
||||
<feature name="pcb" value="NES-NROM-128" />
|
||||
<feature name="mirroring" value="horizontal" />
|
||||
<dataarea name="chr" size="8192">
|
||||
<rom name="my computer tv c1 (j).chr" size="8192" crc="9cba4524" sha1="2bd833f8049bf7a14ce337c3cde35f2140242a18" offset="00000" status="baddump" />
|
||||
</dataarea>
|
||||
<dataarea name="prg" size="32768">
|
||||
<rom name="my computer tv c1 (j).prg" size="16384" crc="7fd48dad" sha1="08af18a6d42e5ab2a288e347ab1fd4bc52441d71" offset="00000" status="baddump" />
|
||||
<rom size="16384" offset="0x4000" loadflag="reload" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- from cah4e3 -->
|
||||
<software name="kbtrans">
|
||||
<description>Keyboard Transformer (Rus)</description>
|
||||
|
@ -33317,6 +33317,7 @@ dendy2 // Dendy Classic 2 (Russian import of IQ-502 fam
|
||||
sb486 // Subor/Xiao Ba Wang SB-486
|
||||
drpcjr // Bung Doctor PC Jr
|
||||
famicom // Nintendo Family Computer (a.k.a. Famicom)
|
||||
famitvc1 // Sharp My Computer Terebi C1
|
||||
famitwin // Sharp Famicom Twin System
|
||||
fds // Nintendo Family Computer (a.k.a. Famicom) + Disk System add-on
|
||||
gchinatv // Golden China TV Game Centre (Chinese famiclone)
|
||||
|
@ -228,6 +228,39 @@ void nes_state::fds(machine_config &config)
|
||||
config.device_remove("famibox_list");
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER( nes_state, famitvc1 )
|
||||
{
|
||||
// TODO: supposedly the C1 used the cartridge connector audio pins to detect
|
||||
// the presence of a cart and picks the builtin ROM accordingly. If so, the C1
|
||||
// should not support Famicom expansion audio chips.
|
||||
|
||||
// Reset the mapper variables. Will also mark the char-gen ram as dirty
|
||||
if (m_cartslot->exists())
|
||||
{
|
||||
m_cartslot->pcb_reset();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_maincpu->space(AS_PROGRAM).install_rom(0x8000, 0x9fff, 0x6000, memregion("canvas_prg")->base());
|
||||
m_ppu->space(AS_PROGRAM).install_rom(0x0000, 0x1fff, memregion("canvas_chr")->base());
|
||||
}
|
||||
|
||||
m_maincpu->reset();
|
||||
}
|
||||
|
||||
void nes_state::famitvc1(machine_config &config)
|
||||
{
|
||||
famicom(config);
|
||||
|
||||
MCFG_MACHINE_RESET_OVERRIDE( nes_state, famitvc1 )
|
||||
|
||||
PPU_2C03B(config.replace(), m_ppu);
|
||||
m_ppu->set_cpu_tag(m_maincpu);
|
||||
m_ppu->int_callback().set_inputline("maincpu", INPUT_LINE_NMI);
|
||||
|
||||
m_cartslot->set_must_be_loaded(false);
|
||||
}
|
||||
|
||||
MACHINE_START_MEMBER( nes_state, famitwin )
|
||||
{
|
||||
// start the base nes stuff
|
||||
@ -281,6 +314,17 @@ ROM_START( famicom )
|
||||
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) // Main RAM
|
||||
ROM_END
|
||||
|
||||
ROM_START( famitvc1 )
|
||||
ROM_REGION( 0x2000, "canvas_prg", 0 )
|
||||
ROM_LOAD( "ix0402ce.ic109", 0x0000, 0x2000, CRC(96456b13) SHA1(a4dcb3c4f2be5077f0d197e870a26414287ce189) ) // dump needs verified
|
||||
|
||||
ROM_REGION( 0x2000, "canvas_chr", 0 )
|
||||
ROM_LOAD( "ix0403ce.ic110", 0x0000, 0x2000, CRC(9cba4524) SHA1(2bd833f8049bf7a14ce337c3cde35f2140242a18) ) // dump needs verified
|
||||
|
||||
ROM_REGION( 0xc0, "ppu:palette", 0 )
|
||||
ROM_LOAD( "rp2c0x.pal", 0x00, 0xc0, CRC(48de65dc) SHA1(d10acafc8da9ff479c270ec01180cca61efe62f5) )
|
||||
ROM_END
|
||||
|
||||
#define rom_fds rom_famicom
|
||||
|
||||
ROM_START( famitwin )
|
||||
@ -354,7 +398,8 @@ CONS( 198?, m82p, nes, 0, nespal, nes, nes_state, empty_init,
|
||||
|
||||
// Famicom hardware
|
||||
CONS( 1983, famicom, 0, nes, famicom, famicom, nes_state, init_famicom, "Nintendo", "Famicom", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1983, fds, famicom, 0, fds, famicom, nes_state, init_famicom, "Nintendo", "Famicom (w/ Disk System add-on)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1983, famitvc1, famicom, 0, famitvc1, famicom, nes_state, init_famicom, "Sharp", "My Computer Terebi C1", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1986, fds, famicom, 0, fds, famicom, nes_state, init_famicom, "Nintendo", "Famicom (w/ Disk System add-on)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1986, famitwin, famicom, 0, famitwin, famicom, nes_state, init_famicom, "Sharp", "Famicom Twin", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
// Clone hardware
|
||||
|
@ -79,11 +79,13 @@ public:
|
||||
DECLARE_MACHINE_START(famitwin);
|
||||
DECLARE_MACHINE_RESET(fds);
|
||||
DECLARE_MACHINE_RESET(famitwin);
|
||||
DECLARE_MACHINE_RESET(famitvc1);
|
||||
void setup_disk(nes_disksys_device *slot);
|
||||
|
||||
void suborkbd(machine_config &config);
|
||||
void famipalc(machine_config &config);
|
||||
void famicom(machine_config &config);
|
||||
void famitvc1(machine_config &config);
|
||||
void famitwin(machine_config &config);
|
||||
void nespal(machine_config &config);
|
||||
void nespalc(machine_config &config);
|
||||
|
Loading…
Reference in New Issue
Block a user