summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author angelosa <lordkale4@gmail.com>2026-05-16 15:00:38 +0200
committer angelosa <lordkale4@gmail.com>2026-05-16 15:00:43 +0200
commit17ea65c1ad0196f2cf7443ca293dede7818329ca (patch)
tree2eb45661ef5a56faf7d3232eddf38370fbe12b5a
parentbf4a723d29f56faacfa1c900d283e36d65742bee (diff)
ces/cesclass.cpp: default NVRAM is 1-filled
-rw-r--r--src/devices/machine/arm_iomd.cpp22
-rw-r--r--src/mame/amiga/cubo.cpp6
-rw-r--r--src/mame/bmc/popobear.cpp4
-rw-r--r--src/mame/ces/cesclass.cpp15
4 files changed, 28 insertions, 19 deletions
diff --git a/src/devices/machine/arm_iomd.cpp b/src/devices/machine/arm_iomd.cpp
index 8053f697949..9dd082407d7 100644
--- a/src/devices/machine/arm_iomd.cpp
+++ b/src/devices/machine/arm_iomd.cpp
@@ -2,17 +2,20 @@
// copyright-holders:Angelo Salese
/**************************************************************************************************
- ARM IOMD device emulation
+ARM IOMD device emulation
- ARM7 SoC or stand-alone device, upgraded version(s) of the IOC found in Acorn Archimedes.
+ARM7 SoC or stand-alone device, upgraded version(s) of the IOC found in Acorn Archimedes.
- TODO:
- - IOCR / IOLINES hookups can be further improved, also DDR bits needs verifying;
- - word-boundary accesses for 8-bit ports;
- - split into different types, add quick notes about where they diverges do in this header;
- - keyboard/mouse interface hookup is wrong for PS/2 and unimplemented for quadrature.
- I guess we can use connectors over a custom handling, with a terminal mock for testing it
- without the overhead of everything else.
+TODO:
+- IOCR / IOLINES hookups can be further improved, also DDR bits needs verifying;
+- word-boundary accesses for 8-bit ports;
+- split into different types, add quick notes about where they diverges do in this header;
+- keyboard/mouse interface hookup is wrong for PS/2 and unimplemented for quadrature.
+ I guess we can use connectors over a custom handling, with a terminal mock for testing it
+ without the overhead of everything else.
+- Make interrupts falling or rising edge (depending on type);
+- tetfight: sets the two timers only as irq sources (no flyback), T0 controls gameplay, T1 to QS1000
+ sound engine. IRQs are unevenly accepted, if latter is disabled makes framerate stable ...
**************************************************************************************************/
@@ -426,6 +429,7 @@ inline u8 arm_iomd_device::update_irqa_type(u8 data)
inline void arm_iomd_device::flush_irq(unsigned Which)
{
+ // TODO: use external setters, don't use pulse_input_line
if (m_irq_status[Which] & m_irq_mask[Which])
m_host_cpu->pulse_input_line(arm7_cpu_device::ARM7_IRQ_LINE, m_host_cpu->minimum_quantum_time());
}
diff --git a/src/mame/amiga/cubo.cpp b/src/mame/amiga/cubo.cpp
index 04b139d030d..cad37f06faa 100644
--- a/src/mame/amiga/cubo.cpp
+++ b/src/mame/amiga/cubo.cpp
@@ -7,6 +7,8 @@
The CuboCD32 is a stock retail CD32 unit with additional hardware to adapt it
for JAMMA use.
+ Hold coin1 at startup for service mode in all games
+
TODO:
- remove m_input_hack functions, needed to make inputs working;
- extra RTC device mapped on i2c bus (shared with the Akiko one?);
@@ -1440,8 +1442,8 @@ GAME( 1995, lasstixx, cubo, cubo, lasstixx, cubo_state, init_lasstixx, ROT0, "C
GAME( 1995, mgnumber, cubo, cubo, mgnumber, cubo_state, init_mgnumber, ROT0, "CD Express", "Magic Number", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
GAME( 1996, mgprem11, cubo, cubo, mgprem11, cubo_state, init_mgprem11, ROT0, "CD Express", "Magic Premium (v1.1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
GAME( 1997, eldoralg, cubo, cubo, eldoralg, cubo_state, init_cubo, ROT0, "Shangai Games", "Eldorado (4.2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // touchscreen is offset and throws errors in calibration menu, joystick buttons aren't recognized properly in places, uses SPRES=3 (SHRES) for roulette ball in attract
-GAME( 1998, odeontw, cubo, cubo, eldoralg, cubo_state, init_cubo, ROT0, "CD Express", "Odeon Twister (v1.4)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // claims invalid RAM config once intialized (i2c RTC?), hangs with NVRAM viewer in service mode
-GAME( 1998, odeontw2, cubo, cubo, eldoralg, cubo_state, init_cubo, ROT0, "CD Express", "Odeon Twister 2 (v202.19)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // "Security checking failed" once initialized
+GAME( 1998, odeontw, cubo, cubo, eldoralg, cubo_state, init_cubo, ROT0, "CD Express", "Odeon Twister (v1.4)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // claims invalid RAM config once intialized (i2c RTC? bp c217e,1,{curpc=c2184;g}), hangs with NVRAM viewer in service mode, no touchscreen inputs in gameplay
+GAME( 1998, odeontw2, cubo, cubo, eldoralg, cubo_state, init_cubo, ROT0, "CD Express", "Odeon Twister 2 (v202.19)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) // PIC "Security checking failed" once initialized
// Laser Gate 2, alt title for Eldorado?
// Lucky Five
// Greyhound Race
diff --git a/src/mame/bmc/popobear.cpp b/src/mame/bmc/popobear.cpp
index b69cee41ac1..3e4db384bd9 100644
--- a/src/mame/bmc/popobear.cpp
+++ b/src/mame/bmc/popobear.cpp
@@ -11,8 +11,8 @@ TODO:
- complete I/Os (BMC-A00211 PCB has 4 banks of DIPs but only 1 is hooked up?);
- Identify what's on $600000 & $620000;
- Uses tas opcode to sync to irq, from VDP?
-- magkengo: doesn't boot, same as popobear would do without the 0x620000 work-around, but it doesn't
- read there.
+- magkengo: doesn't boot, expects $530000 bit 7 to be low but then doesn't upload any
+ meaningful GFX (different bpp? qiwang does the same checks);
- qiwang: uses unhandled GFX features, needs correct I/O
===================================================================================================
diff --git a/src/mame/ces/cesclass.cpp b/src/mame/ces/cesclass.cpp
index 6002cea4785..12b8760904d 100644
--- a/src/mame/ces/cesclass.cpp
+++ b/src/mame/ces/cesclass.cpp
@@ -6,7 +6,7 @@ CES Classic wall games
Notes:
- to play Home Run Classic you have to select a pitcher shot and hold the remote button.
- When you release the strobe, batter does the swing.
+ When you release the strobe, batter does the swing.
TODO:
- artwork;
@@ -18,6 +18,8 @@ TODO:
- hookup m68681 + 2x max232;
- tsclass: runs on a single LCD, needs mods
- tsclass: throws bad U43 and U44 at POST, should also be two roms not one.
+- tsclass: understand how it draws score and trophy segments
+\- cfr. artwork, doesn't seem from lamps?
**************************************************************************************************/
@@ -169,7 +171,7 @@ void cesclassic_state::main_map(address_map &map)
map(0x480000, 0x481fff).ram().share("nvram"); //8k according to schematics (games doesn't use that much tho)
map(0x600000, 0x600001).portr("SYSTEM");
map(0x610000, 0x610001).w(FUNC(cesclassic_state::outputs_w));
-// map(0x640000, 0x640001).nopw();
+// map(0x640000, 0x640001).nopw(); // more lamp strobe? cfr. tsclass test mode
map(0x640040, 0x640041).w(FUNC(cesclassic_state::lamps_w));
map(0x670000, 0x670001).portr("DSW");
map(0x70ff00, 0x70ff01).nopw(); // writes 0xffff at irq 3 end of service, watchdog?
@@ -291,7 +293,8 @@ void cesclassic_state::cesclassic(machine_config &config)
m_maincpu->set_vblank_int("l_lcd", FUNC(cesclassic_state::irq2_line_assert)); // TODO: unknown sources
m_maincpu->set_periodic_int(FUNC(cesclassic_state::irq3_line_assert), attotime::from_hz(60*8));
- NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
+ // tsclass wants 1 fill for init correctly, other games don't seem to care
+ NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
// DS1232 MicroMonitor
@@ -345,6 +348,6 @@ ROM_END
} // anonymous namespace
-GAME(1997, hrclass, 0, cesclassic, cesclassic, cesclassic_state, empty_init, ROT0, "Creative Electronics And Software", "Home Run Classic (v1.21 12-feb-1997)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_REQUIRES_ARTWORK )
-GAME(1997, ccclass, 0, cesclassic, cesclassic, cesclassic_state, empty_init, ROT0, "Creative Electronics And Software", "Country Club Classic (v1.10 03-apr-1997)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_REQUIRES_ARTWORK )
-GAME(1997, tsclass, 0, cesclassic, cesclassic, cesclassic_state, empty_init, ROT0, "Creative Electronics And Software", "Trap Shoot Classic (v1.0 21-mar-1997)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_REQUIRES_ARTWORK )
+GAME(1997, hrclass, 0, cesclassic, cesclassic, cesclassic_state, empty_init, ROT0, "Creative Electronics and Software", "Home Run Classic (v1.21 12-feb-1997)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_REQUIRES_ARTWORK )
+GAME(1997, ccclass, 0, cesclassic, cesclassic, cesclassic_state, empty_init, ROT0, "Creative Electronics and Software", "Country Club Classic (v1.10 03-apr-1997)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_REQUIRES_ARTWORK )
+GAME(1997, tsclass, 0, cesclassic, cesclassic, cesclassic_state, empty_init, ROT0, "Creative Electronics and Software", "Trap Shoot Classic (v1.0 21-mar-1997)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_REQUIRES_ARTWORK )