mirror of
https://github.com/holub/mame
synced 2025-05-30 17:41:47 +03:00
triviaquiz: Hook up question ROMs
This commit is contained in:
parent
7a09fc9930
commit
36bd4c4cab
@ -24,7 +24,6 @@
|
||||
Norway sport 2
|
||||
|
||||
TODO:
|
||||
* hook up questions ROMs
|
||||
* sound
|
||||
* nvram?
|
||||
* https://www.tvspels-nostalgi.com/pcb_unk.htm shows red background. Faulty PCB adapter or bad emulation?
|
||||
@ -32,6 +31,7 @@
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/tms9900/tms9995.h"
|
||||
#include "machine/bankdev.h"
|
||||
#include "video/tms9928a.h"
|
||||
#include "screen.h"
|
||||
|
||||
@ -40,7 +40,8 @@ class triviaquiz_state : public driver_device
|
||||
public:
|
||||
triviaquiz_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu")
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_bankdev(*this, "bankdev")
|
||||
{ }
|
||||
|
||||
void triviaquiz(machine_config &config);
|
||||
@ -51,8 +52,10 @@ protected:
|
||||
|
||||
private:
|
||||
required_device<tms9995_device> m_maincpu;
|
||||
required_device<address_map_bank_device> m_bankdev;
|
||||
|
||||
void prg_map(address_map &map);
|
||||
void romboard_map(address_map &map);
|
||||
void io_map(address_map &map);
|
||||
};
|
||||
|
||||
@ -60,8 +63,8 @@ private:
|
||||
void triviaquiz_state::prg_map(address_map &map) // TODO: check everything
|
||||
{
|
||||
map(0x0000, 0x5fff).rom().region("maincpu", 0);
|
||||
// map(0x6000, 0x6000).w
|
||||
// map(0x6002, 0x6005).r
|
||||
map(0x6000, 0x7fff).m(m_bankdev, FUNC(address_map_bank_device::amap8));
|
||||
map(0x6000, 0x6000).lw8(NAME([this] (uint8_t data) { m_bankdev->set_bank(data); }));
|
||||
map(0x8000, 0x8000).rw("vdp", FUNC(tms9129_device::vram_read), FUNC(tms9129_device::vram_write));
|
||||
map(0x8002, 0x8002).rw("vdp", FUNC(tms9129_device::register_read), FUNC(tms9129_device::register_write));
|
||||
// map(0x8040, 0x8040).w
|
||||
@ -74,6 +77,16 @@ void triviaquiz_state::prg_map(address_map &map) // TODO: check everything
|
||||
map(0xe000, 0xe7ff).ram();
|
||||
}
|
||||
|
||||
void triviaquiz_state::romboard_map(address_map &map)
|
||||
{
|
||||
map(0x00000, 0x00000).lr8(NAME([]() -> uint8_t { return 0x3e; })); // 00
|
||||
map(0x20000, 0x27fff).rom().region("questions", 0x00000); // 10-13
|
||||
map(0x40000, 0x47fff).rom().region("questions", 0x08000); // 20-23
|
||||
map(0x60000, 0x67fff).rom().region("questions", 0x10000); // 30-33
|
||||
map(0x80000, 0x87fff).rom().region("questions", 0x18000); // 40-43
|
||||
map(0xa0000, 0xa7fff).rom().region("questions", 0x20000); // 50-53
|
||||
}
|
||||
|
||||
void triviaquiz_state::io_map(address_map &map)
|
||||
{
|
||||
}
|
||||
@ -142,6 +155,12 @@ void triviaquiz_state::triviaquiz(machine_config &config)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &triviaquiz_state::prg_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &triviaquiz_state::io_map);
|
||||
|
||||
ADDRESS_MAP_BANK(config, m_bankdev, 0);
|
||||
m_bankdev->set_addrmap(AS_PROGRAM, &triviaquiz_state::romboard_map);
|
||||
m_bankdev->set_data_width(8);
|
||||
m_bankdev->set_addr_width(20);
|
||||
m_bankdev->set_stride(0x2000);
|
||||
|
||||
tms9129_device &vdp(TMS9129(config, "vdp", 10.738635_MHz_XTAL)); //TMS9129NL, 10.73864 XTAL on one PCB, 10.70000 on another
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000); // verified
|
||||
|
Loading…
Reference in New Issue
Block a user