seta2.cpp: Add notes for hardware configs, emulation issues in some game

Fix clock for P0-113A PCBs
Fix source file name (.cpp instead .c)
This commit is contained in:
cam900 2020-05-21 21:43:02 +09:00
parent 60592a35f6
commit 6e4b099562
3 changed files with 37 additions and 15 deletions

View File

@ -10,7 +10,7 @@
CPU : TMP68301*
or ColdFire + H8/3007 + PIC12C508 (for EVA2 & EVA3 PCBs)
Video : DX-101
Video : DX-101 or X1-020 (for P0-113A & P0-121A PCBs, compatible?)
DX-102 x3
Sound : X1-010
@ -55,6 +55,10 @@ TODO:
- Fix some graphics imperfections (e.g. color depth selection, "tilemap" sprites) [all done? - NS]
- I added a kludge involving a -0x10 yoffset, this fixes the lifeline in myangel.
I didn't find a better way to do it without breaking pzlbowl's title screen.
- 1 rightmost pixel columns are not drawn when zoomed
gundamex:
- slowdowns, music tempo is incorrect
mj4simai:
- test mode doesn't work correctly, the grid is ok but when you press a key to go to the
@ -2281,7 +2285,7 @@ INTERRUPT_GEN_MEMBER(seta2_state::samshoot_interrupt)
void seta2_state::seta2(machine_config &config)
{
TMP68301(config, m_maincpu, XTAL(50'000'000)/3); // !! TMP68301 !!
TMP68301(config, m_maincpu, XTAL(50'000'000)/3); // Verified on some PCBs
m_maincpu->set_addrmap(AS_PROGRAM, &seta2_state::mj4simai_map);
m_maincpu->set_vblank_int("screen", FUNC(seta2_state::seta2_interrupt));
@ -2304,16 +2308,30 @@ void seta2_state::seta2(machine_config &config)
// sound hardware
SPEAKER(config, "mono").front_center();
x1_010_device &x1snd(X1_010(config, "x1snd", XTAL(50'000'000)/3)); // clock?
x1_010_device &x1snd(X1_010(config, "x1snd", XTAL(50'000'000)/3)); // Verified on some PCBs
x1snd.add_route(ALL_OUTPUTS, "mono", 1.0);
x1snd.set_addrmap(0, &seta2_state::x1_map);
}
/*
P0-113A PCB has different sound/cpu input clock (32.53047MHz / 2, common input clock is 50MHz / 3)
and/or some PCB variant has uses this input clock?
reference:
https://youtu.be/6f-znVzcrmg, https://youtu.be/zJi_d463UQE (gundamex)
https://youtu.be/Ung9XeLisV0 (grdiansa)
*/
void seta2_state::seta2_32m(machine_config &config)
{
m_maincpu->set_clock(XTAL(32'530'470)/2);
subdevice<x1_010_device>("x1snd")->set_clock(XTAL(32'530'470)/2);
}
void seta2_state::gundamex(machine_config &config)
{
seta2(config);
m_maincpu->set_clock(XTAL(32'530'470)/2); // verified
seta2_32m(config);
m_maincpu->set_addrmap(AS_PROGRAM, &seta2_state::gundamex_map);
downcast<tmp68301_device &>(*m_maincpu).in_parallel_callback().set(FUNC(seta2_state::gundamex_eeprom_r));
@ -2323,21 +2341,24 @@ void seta2_state::gundamex(machine_config &config)
// video hardware
m_screen->set_visarea(0x00, 0x180-1, 0x000, 0x0e0-1);
subdevice<x1_010_device>("x1snd")->set_clock(XTAL(32'530'470)/2); // verified; reference : https://youtu.be/6f-znVzcrmg
}
// run in P-FG01-1 PCB, uses common input clock for sound/cpu - 32.53047MHz XTAL not populated
// reference: https://youtu.be/qj-TyKyAAVY
void seta2_state::grdians(machine_config &config)
{
seta2(config);
m_maincpu->set_clock(XTAL(32'530'470)/2); // verified
m_maincpu->set_addrmap(AS_PROGRAM, &seta2_state::grdians_map);
// video hardware
m_screen->set_visarea(0x00, 0x130-1, 0x00, 0xe8 -1);
}
subdevice<x1_010_device>("x1snd")->set_clock(XTAL(32'530'470)/2); // verified; reference : https://youtu.be/Ung9XeLisV0
// run in P0-113A PCB, different sound/cpu input clock compared to P-FG01-1 PCB, same as gundamex?
void seta2_state::grdiansa(machine_config &config)
{
grdians(config);
seta2_32m(config);
}
@ -4385,7 +4406,7 @@ ROM_END
GAME( 1994, gundamex, 0, gundamex, gundamex, seta2_state, empty_init, ROT0, "Banpresto", "Mobile Suit Gundam EX Revue", 0 )
GAME( 1995, grdians, 0, grdians, grdians, seta2_state, empty_init, ROT0, "Winkysoft (Banpresto license)", "Guardians / Denjin Makai II (P-FG01-1 PCB)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
GAME( 1995, grdiansa, grdians, grdians, grdians, seta2_state, empty_init, ROT0, "Winkysoft (Banpresto license)", "Guardians / Denjin Makai II (P0-113A PCB)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
GAME( 1995, grdiansa, grdians, grdiansa, grdians, seta2_state, empty_init, ROT0, "Winkysoft (Banpresto license)", "Guardians / Denjin Makai II (P0-113A PCB)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
GAME( 1996, mj4simai, 0, seta2, mj4simai, mj4simai_state, empty_init, ROT0, "Maboroshi Ware", "Wakakusamonogatari Mahjong Yonshimai (Japan)", MACHINE_NO_COCKTAIL )

View File

@ -43,7 +43,9 @@ public:
{ }
void seta2(machine_config &config);
void seta2_32m(machine_config &config);
void grdians(machine_config &config);
void grdiansa(machine_config &config);
void myangel(machine_config &config);
void penbros(machine_config &config);
void pzlbowl(machine_config &config);
@ -58,6 +60,8 @@ public:
void init_namcostr();
protected:
virtual void machine_start() override;
virtual void video_start() override;
DECLARE_WRITE8_MEMBER(grdians_lockout_w);
@ -112,9 +116,6 @@ protected:
void telpacfl_map(address_map &map);
void x1_map(address_map &map);
virtual void machine_start() override;
virtual void video_start() override;
required_device<cpu_device> m_maincpu;
optional_device<cpu_device> m_sub;
required_device<gfxdecode_device> m_gfxdecode;

View File

@ -95,8 +95,8 @@
Offset: Bits: Value:
0/2/4/6 Horizontal: Sync, Blank, DSPdot, Cycle (same as ssv.c?)
8/a/c/e Vertical : Sync, Blank, DSPdot, Cycle (same as ssv.c?)
0/2/4/6 Horizontal: Sync, Blank, DSPdot, Cycle (same as ssv.cpp?)
8/a/c/e Vertical : Sync, Blank, DSPdot, Cycle (same as ssv.cpp?)
10 Offxet X low bits (sub pixels)
12 Offset X high bits (pixels)