1
0
mirror of https://github.com/Gehstock/Mist_FPGA.git synced 2026-03-07 03:15:53 +00:00

New MRA , Fix Pop Flamer MRA

This commit is contained in:
Marcel
2026-02-23 05:18:53 +01:00
parent a20c3ee9fc
commit c9b068df54
3 changed files with 61 additions and 1 deletions

View File

@@ -8,7 +8,7 @@
<rbf>NBoy</rbf>
<rom index="1"></rom>
<rom index='0' md5='fdc3e6937e974389705145449ec71d2c' type='merged|nonmerged|split' zip='popflame.zip | popflamea.zip'>
<rom index='0' md5='fdc3e6937e974389705145449ec71d2c' type='merged|nonmerged|split' zip='popflame.zip|popflamea.zip'>
<part crc="5e32bbdf" name="ic86.pop"></part>
<part crc="b77abf3d" name="ic80.pop"></part>
<part crc="945a3c0f" name="ic94.pop"></part>

View File

@@ -0,0 +1,60 @@
void tutankhm_state::main_map(address_map &map)
{
map(0x0000, 0x7fff).ram().share(m_videoram);
//0x8100 -> Custom 089 D9 Pin 15
map(0x8100, 0x8100).mirror(0x000f).ram().share(m_scroll);
/* a read here produces a 1-0-1 write to line 420 (084).
* This most likely resets some sort of timer implemented by the 084 custom chip
* which would on line 419 trigger a reset.
*/
//0x8720 -> Custom 084 F3 Pin 20
map(0x8120, 0x8120).mirror(0x000f).r("watchdog", FUNC(watchdog_timer_device::reset_r));
//0x8740 -> Custom 089 D9 Pin 11 - Unknown, not used
map(0x8160, 0x8160).mirror(0x000f).portr("DSW2"); // DSW2 (inverted bits)
map(0x8180, 0x8180).mirror(0x000f).portr("IN0"); // IN0 I/O: Coin slots, service, 1P/2P buttons
map(0x81a0, 0x81a0).mirror(0x000f).portr("IN1"); // IN1: Player 1 I/O
map(0x81c0, 0x81c0).mirror(0x000f).portr("IN2"); // IN2: Player 2 I/O
map(0x81e0, 0x81e0).mirror(0x000f).portr("DSW1"); // DSW1 (inverted bits)
map(0x8200, 0x8207).mirror(0x00f8).nopr().w("mainlatch", FUNC(ls259_device::write_d0));
map(0x8300, 0x8300).mirror(0x00ff).w(FUNC(tutankhm_state::bankselect_w));
map(0x8600, 0x8600).mirror(0x00ff).w(FUNC(tutankhm_state::sound_on_w));
map(0x8700, 0x8700).mirror(0x00ff).w(m_timeplt_audio, FUNC(timeplt_audio_device::sound_data_w));
map(0x8800, 0x8fff).ram();
map(0x9000, 0x9fff).bankr(m_mainbank);
map(0xa000, 0xffff).rom();
}
void junofrst_state::main_map(address_map &map)
{
map(0x8010, 0x8010).portr("DSW2");
map(0x801c, 0x801c).r("watchdog", FUNC(watchdog_timer_device::reset_r));
map(0x8020, 0x8020).portr("SYSTEM");
map(0x8024, 0x8024).portr("P1");
map(0x8028, 0x8028).portr("P2");
map(0x802c, 0x802c).portr("DSW1");
map(0x8030, 0x8037).w("mainlatch", FUNC(ls259_device::write_d0));
map(0x8040, 0x8040).w(FUNC(junofrst_state::sh_irqtrigger_w));
map(0x8050, 0x8050).w("soundlatch", FUNC(generic_latch_8_device::write));
map(0x8060, 0x8060).w(FUNC(junofrst_state::bankselect_w));
map(0x8070, 0x8073).w(FUNC(junofrst_state::blitter_w));
map(0x8100, 0x8fff).ram();
map(0x9000, 0x9fff).bankr(m_mainbank);
map(0xa000, 0xffff).rom();
}
void junofrst_state::audio_map(address_map &map)
{
map(0x0000, 0x0fff).rom();
map(0x2000, 0x23ff).ram();
map(0x3000, 0x3000).r("soundlatch", FUNC(generic_latch_8_device::read));
map(0x4000, 0x4000).w("aysnd", FUNC(ay8910_device::address_w));
map(0x4001, 0x4001).r("aysnd", FUNC(ay8910_device::data_r));
map(0x4002, 0x4002).w("aysnd", FUNC(ay8910_device::data_w));
map(0x5000, 0x5000).w("soundlatch2", FUNC(generic_latch_8_device::write));
map(0x6000, 0x6000).w(FUNC(junofrst_state::i8039_irq_w));
}

Binary file not shown.