From e969c4106584c66ad9c82d71157e1b10b9699c8d Mon Sep 17 00:00:00 2001 From: hap Date: Fri, 23 Feb 2024 13:23:45 +0100 Subject: primo: correct ram mirror --- src/mame/novag/primo.cpp | 13 +++++++------ src/mame/novag/vip.cpp | 5 +++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/mame/novag/primo.cpp b/src/mame/novag/primo.cpp index 05d07b632f2..e4f14d60f0e 100644 --- a/src/mame/novag/primo.cpp +++ b/src/mame/novag/primo.cpp @@ -12,12 +12,13 @@ TODO: - if/when MAME supports an exit callback, hook up power-off switch to that - unmapped reads from 0x3c/0x3d (primo/supremo) or 0x33/0x34 (nsnova) - supremo unmapped writes to 0x2000/0x6000, always 0? -- is "Aquamarine / Super Nova" the same rom as nsnova and just a redesign? - is the 1st version of supremo(black plastic) the same ROM? +- is "Aquamarine / Super Nova" the same ROM as nsnova and just a redesign? BTANB: - primo has the same bug as nvip, where if the user presses Go right after - entering a move, the CPU opponent will answer by playing a move with white + entering a move during the opening, the CPU opponent will answer by playing + a move with white ================================================================================ @@ -177,7 +178,7 @@ void primo_state::standby(int state) INPUT_CHANGED_MEMBER(primo_state::snova_power_off) { - // NMI at power-off, which will trigger standby mode + // nsnova NMI at power-off, which will trigger standby mode if (newval && !m_maincpu->standby()) m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero); } @@ -270,12 +271,12 @@ void primo_state::p6_w(u8 data) void primo_state::primo_map(address_map &map) { - map(0x4000, 0x47ff).ram().share("nvram"); + map(0x4000, 0x47ff).mirror(0x3800).ram().share("nvram"); } void primo_state::supremo_map(address_map &map) { - primo_map(map); + map(0x4000, 0x47ff).mirror(0x1800).ram().share("nvram"); map(0x8000, 0xffff).rom(); } @@ -348,7 +349,7 @@ static INPUT_PORTS_START( snova ) PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_NAME("Random / Auto Clock") PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_CODE(KEYCODE_N) PORT_NAME("New Game") - PORT_START("POWER") + PORT_START("POWER") // needs to be triggered for nvram to work PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, primo_state, snova_power_off, 0) PORT_NAME("Power Off") INPUT_PORTS_END diff --git a/src/mame/novag/vip.cpp b/src/mame/novag/vip.cpp index 6ddc1b9a00d..b7249fc24df 100644 --- a/src/mame/novag/vip.cpp +++ b/src/mame/novag/vip.cpp @@ -18,8 +18,9 @@ TODO: - unmapped reads from 0x3* range, same as snova driver BTANB: -- on nvip, if you press GO right after entering a move, it will reply by moving - one of your pieces, taken from the board layout before your move +- on nvip, if you press GO right after entering a move (during the opening book), + it will reply by moving one of your pieces, taken from the board layout before + your move - just for fun, I'll mention that on many (not all) batches of Super VIP, the white text label under the Knight button says "Into" instead of "Info" -- cgit v1.2.3