trunk/src/mame/drivers/metro.c
| r19999 | r20000 | |
| 46 | 46 | 96 Sankokushi MTR5260-A I4220 |
| 47 | 47 | 99 Battle Bubble v2.00 LM2D-Y I4220 No sound CPU |
| 48 | 48 | |
| 49 | | 95 Mahjong Doukyuhsei VG330-B I4300 No sound CPU |
| 49 | 95 Mahjong Doukyuusei VG330-B I4300 No sound CPU |
| 50 | 50 | 95 Mahjong Doukyuusei Special VG340-A I4300 No sound CPU |
| 51 | 51 | 96 Mouja VG410-B I4300 No sound CPU |
| 52 | 52 | 97 Mahjong Gakuensai VG340-A I4300 No sound CPU |
| r19999 | r20000 | |
| 55 | 55 | ----------------------------------------------------------------------------- |
| 56 | 56 | |
| 57 | 57 | Mouse Shooter GoGo, Bal Cube, Bang Bang Ball & Daitoride (YMF278B) PCBs have |
| 58 | | no PCB number but all look identical to each other. |
| 58 | no PCB number but all look identical to each other. |
| 59 | 59 | |
| 60 | 60 | Not dumped yet: |
| 61 | 61 | 94 Toride II |
| 62 | 62 | |
| 63 | 63 | To Do: |
| 64 | 64 | |
| 65 | - Wrong color bars in service mode (e.g. balcube, toride2g). |
| 66 | They use solid color tiles (80xx), but the right palette is not at 00-ff. |
| 67 | Related to the unknown table in the RAM mapped just before the palette? |
| 68 | - Most games, in service mode, seem to require that you press start1&2 *exactly at once* |
| 69 | in order to advance to the next screen (e.g. holding 1 then pressing 2 doesn't work). |
| 65 | 70 | - Coin lockout |
| 66 | | - Some gfx problems in ladykill, 3kokushi, puzzli, gakusai |
| 67 | | - Seems related to how we handle windows and wrapping |
| 71 | - Some gfx problems in ladykill, 3kokushi, puzzli, gakusai, |
| 72 | seem related to how we handle windows and wrapping |
| 68 | 73 | - Are the 16x16 tiles used by Mouja a Imagetek I4300-only feature? |
| 69 | 74 | - Interrupt timing needs figuring out properly, having it incorrect |
| 70 | 75 | causes scrolling glitches in some games. Test cases Mouse Go Go |
| r19999 | r20000 | |
| 76 | 81 | |
| 77 | 82 | Notes: |
| 78 | 83 | |
| 79 | | - To enter service mode in Lady Killer, toggle the dip switch and reset |
| 80 | | keeping start 2 pressed. |
| 84 | - To enter service mode in ladykill, 3kokishi: toggle the dip switch and reset |
| 85 | keeping start 2 pressed. |
| 81 | 86 | - Sprite zoom in Mouja at the end of a match looks wrong, but it's been verified |
| 82 | 87 | to be the same on the original board |
| 83 | 88 | |
| r19999 | r20000 | |
| 190 | 195 | |
| 191 | 196 | INTERRUPT_GEN_MEMBER(metro_state::metro_vblank_interrupt) |
| 192 | 197 | { |
| 193 | | |
| 194 | 198 | m_requested_int[m_vblank_bit] = 1; |
| 195 | 199 | update_irq_state(machine()); |
| 196 | 200 | } |
| 197 | 201 | |
| 198 | 202 | INTERRUPT_GEN_MEMBER(metro_state::metro_periodic_interrupt) |
| 199 | 203 | { |
| 200 | | |
| 201 | 204 | m_requested_int[4] = 1; |
| 202 | 205 | update_irq_state(machine()); |
| 203 | 206 | } |
| r19999 | r20000 | |
| 210 | 213 | /* lev 2-7 (lev 1 seems sound related) */ |
| 211 | 214 | INTERRUPT_GEN_MEMBER(metro_state::karatour_interrupt) |
| 212 | 215 | { |
| 213 | | |
| 214 | 216 | m_requested_int[m_vblank_bit] = 1; |
| 215 | 217 | |
| 216 | 218 | /* write to scroll registers, the duration is a guess */ |
| r19999 | r20000 | |
| 222 | 224 | |
| 223 | 225 | TIMER_CALLBACK_MEMBER(metro_state::mouja_irq_callback) |
| 224 | 226 | { |
| 225 | | |
| 226 | 227 | m_requested_int[0] = 1; |
| 227 | 228 | update_irq_state(machine()); |
| 228 | 229 | } |
| r19999 | r20000 | |
| 236 | 237 | |
| 237 | 238 | INTERRUPT_GEN_MEMBER(metro_state::puzzlet_interrupt) |
| 238 | 239 | { |
| 239 | | |
| 240 | 240 | m_requested_int[m_vblank_bit] = 1; |
| 241 | 241 | update_irq_state(machine()); |
| 242 | 242 | |
| r19999 | r20000 | |
| 769 | 769 | |
| 770 | 770 | |
| 771 | 771 | static ADDRESS_MAP_START( balcube_map, AS_PROGRAM, 16, metro_state ) |
| 772 | | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 773 | | AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM |
| 774 | | AM_RANGE(0x300000, 0x300001) AM_DEVREAD8_LEGACY("ymf", ymf278b_r, 0x00ff) // Sound |
| 775 | | AM_RANGE(0x300000, 0x30000b) AM_DEVWRITE8_LEGACY("ymf", ymf278b_w, 0x00ff) // Sound |
| 772 | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 773 | AM_RANGE(0x300000, 0x300001) AM_DEVREAD8_LEGACY("ymf", ymf278b_r, 0x00ff) // Sound |
| 774 | AM_RANGE(0x300000, 0x30000b) AM_DEVWRITE8_LEGACY("ymf", ymf278b_w, 0x00ff) // Sound |
| 776 | 775 | AM_RANGE(0x400000, 0x41ffff) AM_READ(balcube_dsw_r) // DSW x 3 |
| 777 | 776 | AM_RANGE(0x500000, 0x500001) AM_READ_PORT("IN0") // Inputs |
| 778 | 777 | AM_RANGE(0x500002, 0x500003) AM_READ_PORT("IN1") // |
| 779 | | AM_RANGE(0x500006, 0x500007) AM_READNOP // |
| 780 | | AM_RANGE(0x500002, 0x500009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 778 | AM_RANGE(0x500006, 0x500007) AM_READNOP // |
| 779 | AM_RANGE(0x500002, 0x500009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 781 | 780 | AM_RANGE(0x600000, 0x61ffff) AM_RAM_WRITE(metro_vram_0_w) AM_SHARE("vram_0") // Layer 0 |
| 782 | 781 | AM_RANGE(0x620000, 0x63ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 |
| 783 | 782 | AM_RANGE(0x640000, 0x65ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 |
| 784 | 783 | AM_RANGE(0x660000, 0x66ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 785 | | AM_RANGE(0x670000, 0x673fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 786 | | AM_RANGE(0x674000, 0x674fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 787 | | AM_RANGE(0x678000, 0x6787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 784 | AM_RANGE(0x670000, 0x671fff) AM_RAM // ??? |
| 785 | AM_RANGE(0x672000, 0x673fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 786 | AM_RANGE(0x674000, 0x674fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 787 | AM_RANGE(0x678000, 0x6787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 788 | 788 | AM_RANGE(0x678840, 0x67884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 789 | 789 | AM_RANGE(0x678860, 0x67886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 790 | | AM_RANGE(0x678870, 0x67887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 790 | AM_RANGE(0x678870, 0x67887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 791 | 791 | AM_RANGE(0x678880, 0x678881) AM_WRITENOP // ? increasing |
| 792 | 792 | AM_RANGE(0x678890, 0x678891) AM_WRITENOP // ? increasing |
| 793 | | AM_RANGE(0x6788a2, 0x6788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 794 | | AM_RANGE(0x6788a4, 0x6788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 795 | | AM_RANGE(0x6788aa, 0x6788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 796 | | AM_RANGE(0x6788ac, 0x6788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 797 | | AM_RANGE(0x679700, 0x679713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 793 | AM_RANGE(0x6788a2, 0x6788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 794 | AM_RANGE(0x6788a4, 0x6788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 795 | AM_RANGE(0x6788aa, 0x6788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 796 | AM_RANGE(0x6788ac, 0x6788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 797 | AM_RANGE(0x679700, 0x679713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 798 | AM_RANGE(0xf00000, 0xf0ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 798 | 799 | ADDRESS_MAP_END |
| 799 | 800 | |
| 800 | 801 | |
| 801 | 802 | /*************************************************************************** |
| 802 | | Daitoride (alt hardware) |
| 803 | Daitoride (YMF278B version) |
| 803 | 804 | ***************************************************************************/ |
| 804 | 805 | |
| 805 | 806 | |
| 806 | 807 | static ADDRESS_MAP_START( daitoa_map, AS_PROGRAM, 16, metro_state ) |
| 807 | | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 808 | | AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM |
| 809 | | AM_RANGE(0x400000, 0x400001) AM_DEVREAD8_LEGACY("ymf", ymf278b_r, 0x00ff) // Sound |
| 810 | | AM_RANGE(0x400000, 0x40000b) AM_DEVWRITE8_LEGACY("ymf", ymf278b_w, 0x00ff) // Sound |
| 811 | | AM_RANGE(0x300000, 0x31ffff) AM_READ(balcube_dsw_r) // DSW x 3 |
| 808 | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 812 | 809 | AM_RANGE(0x100000, 0x11ffff) AM_RAM_WRITE(metro_vram_0_w) AM_SHARE("vram_0") // Layer 0 |
| 813 | 810 | AM_RANGE(0x120000, 0x13ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 |
| 814 | 811 | AM_RANGE(0x140000, 0x15ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 |
| 815 | 812 | AM_RANGE(0x160000, 0x16ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 816 | | AM_RANGE(0x170000, 0x173fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 817 | | AM_RANGE(0x174000, 0x174fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 818 | | AM_RANGE(0x178000, 0x1787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 813 | AM_RANGE(0x170000, 0x171fff) AM_RAM // ??? |
| 814 | AM_RANGE(0x172000, 0x173fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 815 | AM_RANGE(0x174000, 0x174fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 816 | AM_RANGE(0x178000, 0x1787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 819 | 817 | AM_RANGE(0x178840, 0x17884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 820 | 818 | AM_RANGE(0x178860, 0x17886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 821 | | AM_RANGE(0x178870, 0x17887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 819 | AM_RANGE(0x178870, 0x17887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 822 | 820 | AM_RANGE(0x178880, 0x178881) AM_WRITENOP // ? increasing |
| 823 | 821 | AM_RANGE(0x178890, 0x178891) AM_WRITENOP // ? increasing |
| 824 | | AM_RANGE(0x1788a2, 0x1788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 825 | | AM_RANGE(0x1788a4, 0x1788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 826 | | AM_RANGE(0x1788aa, 0x1788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 827 | | AM_RANGE(0x1788ac, 0x1788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 828 | | AM_RANGE(0x179700, 0x179713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 822 | AM_RANGE(0x1788a2, 0x1788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 823 | AM_RANGE(0x1788a4, 0x1788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 824 | AM_RANGE(0x1788aa, 0x1788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 825 | AM_RANGE(0x1788ac, 0x1788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 826 | AM_RANGE(0x179700, 0x179713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 829 | 827 | AM_RANGE(0x200000, 0x200001) AM_READ_PORT("IN0") // Inputs |
| 830 | 828 | AM_RANGE(0x200002, 0x200003) AM_READ_PORT("IN1") // |
| 831 | | AM_RANGE(0x200006, 0x200007) AM_READNOP // |
| 832 | | AM_RANGE(0x200002, 0x200009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 829 | AM_RANGE(0x200006, 0x200007) AM_READNOP // |
| 830 | AM_RANGE(0x200002, 0x200009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 831 | AM_RANGE(0x300000, 0x31ffff) AM_READ(balcube_dsw_r) // DSW x 3 |
| 832 | AM_RANGE(0x400000, 0x400001) AM_DEVREAD8_LEGACY("ymf", ymf278b_r, 0x00ff) // Sound |
| 833 | AM_RANGE(0x400000, 0x40000b) AM_DEVWRITE8_LEGACY("ymf", ymf278b_w, 0x00ff) // Sound |
| 834 | AM_RANGE(0xf00000, 0xf0ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 833 | 835 | ADDRESS_MAP_END |
| 834 | 836 | |
| 835 | 837 | |
| r19999 | r20000 | |
| 838 | 840 | ***************************************************************************/ |
| 839 | 841 | |
| 840 | 842 | static ADDRESS_MAP_START( bangball_map, AS_PROGRAM, 16, metro_state ) |
| 841 | | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 842 | | AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM |
| 843 | | AM_RANGE(0xf10000, 0xf10fff) AM_RAM // RAM (bug in the ram test routine) |
| 844 | | AM_RANGE(0xb00000, 0xb00001) AM_DEVREAD8_LEGACY("ymf", ymf278b_r, 0x00ff) // Sound |
| 845 | | AM_RANGE(0xb00000, 0xb0000b) AM_DEVWRITE8_LEGACY("ymf", ymf278b_w, 0x00ff) // Sound |
| 843 | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 844 | AM_RANGE(0xb00000, 0xb00001) AM_DEVREAD8_LEGACY("ymf", ymf278b_r, 0x00ff) // Sound |
| 845 | AM_RANGE(0xb00000, 0xb0000b) AM_DEVWRITE8_LEGACY("ymf", ymf278b_w, 0x00ff) // Sound |
| 846 | 846 | AM_RANGE(0xc00000, 0xc1ffff) AM_READ(balcube_dsw_r) // DSW x 3 |
| 847 | 847 | AM_RANGE(0xd00000, 0xd00001) AM_READ_PORT("IN0") // Inputs |
| 848 | 848 | AM_RANGE(0xd00002, 0xd00003) AM_READ_PORT("IN1") // |
| 849 | | AM_RANGE(0xd00006, 0xd00007) AM_READNOP // |
| 850 | | AM_RANGE(0xd00002, 0xd00009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 849 | AM_RANGE(0xd00006, 0xd00007) AM_READNOP // |
| 850 | AM_RANGE(0xd00002, 0xd00009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 851 | 851 | AM_RANGE(0xe00000, 0xe1ffff) AM_RAM_WRITE(metro_vram_0_w) AM_SHARE("vram_0") // Layer 0 |
| 852 | 852 | AM_RANGE(0xe20000, 0xe3ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 |
| 853 | 853 | AM_RANGE(0xe40000, 0xe5ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 |
| 854 | 854 | AM_RANGE(0xe60000, 0xe6ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 855 | | AM_RANGE(0xe70000, 0xe73fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 856 | | AM_RANGE(0xe74000, 0xe74fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 857 | | AM_RANGE(0xe78000, 0xe787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 855 | AM_RANGE(0xe70000, 0xe71fff) AM_RAM // ??? |
| 856 | AM_RANGE(0xe72000, 0xe73fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 857 | AM_RANGE(0xe74000, 0xe74fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 858 | AM_RANGE(0xe78000, 0xe787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 858 | 859 | AM_RANGE(0xe78840, 0xe7884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 859 | 860 | AM_RANGE(0xe78860, 0xe7886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 860 | | AM_RANGE(0xe78870, 0xe7887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 861 | AM_RANGE(0xe78870, 0xe7887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 861 | 862 | AM_RANGE(0xe78880, 0xe78881) AM_WRITENOP // ? increasing |
| 862 | 863 | AM_RANGE(0xe78890, 0xe78891) AM_WRITENOP // ? increasing |
| 863 | | AM_RANGE(0xe788a2, 0xe788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 864 | | AM_RANGE(0xe788a4, 0xe788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 865 | | AM_RANGE(0xe788aa, 0xe788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 866 | | AM_RANGE(0xe788ac, 0xe788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 867 | | AM_RANGE(0xe79700, 0xe79713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 864 | AM_RANGE(0xe788a2, 0xe788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 865 | AM_RANGE(0xe788a4, 0xe788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 866 | AM_RANGE(0xe788aa, 0xe788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 867 | AM_RANGE(0xe788ac, 0xe788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 868 | AM_RANGE(0xe79700, 0xe79713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 869 | AM_RANGE(0xf00000, 0xf0ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 868 | 870 | ADDRESS_MAP_END |
| 869 | 871 | |
| 870 | 872 | |
| r19999 | r20000 | |
| 873 | 875 | ***************************************************************************/ |
| 874 | 876 | |
| 875 | 877 | static ADDRESS_MAP_START( batlbubl_map, AS_PROGRAM, 16, metro_state ) |
| 876 | | AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM |
| 878 | AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM |
| 877 | 879 | AM_RANGE(0x100000, 0x11ffff) AM_RAM_WRITE(metro_vram_0_w) AM_SHARE("vram_0") // Layer 0 |
| 878 | 880 | AM_RANGE(0x120000, 0x13ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 |
| 879 | 881 | AM_RANGE(0x140000, 0x15ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 |
| 880 | 882 | AM_RANGE(0x160000, 0x16ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 881 | | AM_RANGE(0x170000, 0x173fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 882 | | AM_RANGE(0x174000, 0x174fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 883 | | AM_RANGE(0x178000, 0x1787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 883 | AM_RANGE(0x170000, 0x171fff) AM_RAM // ??? |
| 884 | AM_RANGE(0x172000, 0x173fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 885 | AM_RANGE(0x174000, 0x174fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 886 | AM_RANGE(0x178000, 0x1787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 884 | 887 | AM_RANGE(0x178840, 0x17884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 885 | 888 | AM_RANGE(0x178860, 0x17886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 886 | | AM_RANGE(0x178870, 0x17887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 889 | AM_RANGE(0x178870, 0x17887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 887 | 890 | AM_RANGE(0x178880, 0x178881) AM_WRITENOP // ? increasing |
| 888 | 891 | AM_RANGE(0x178890, 0x178891) AM_WRITENOP // ? increasing |
| 889 | | AM_RANGE(0x1788a2, 0x1788a3) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 890 | | AM_RANGE(0x1788a4, 0x1788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 891 | | AM_RANGE(0x1788aa, 0x1788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 892 | | AM_RANGE(0x1788ac, 0x1788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 893 | | AM_RANGE(0x179700, 0x179713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 894 | | AM_RANGE(0x200000, 0x200001) AM_READ_PORT("IN1") |
| 895 | | AM_RANGE(0x200002, 0x200003) AM_READ_PORT("DSW0") |
| 896 | | AM_RANGE(0x200004, 0x200005) AM_READ_PORT("IN0") |
| 897 | | AM_RANGE(0x200006, 0x200007) AM_READ_PORT("IN2") |
| 898 | | AM_RANGE(0x200002, 0x200009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 892 | AM_RANGE(0x1788a2, 0x1788a3) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 893 | AM_RANGE(0x1788a4, 0x1788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 894 | AM_RANGE(0x1788aa, 0x1788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 895 | AM_RANGE(0x1788ac, 0x1788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 896 | AM_RANGE(0x179700, 0x179713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 897 | AM_RANGE(0x200000, 0x200001) AM_READ_PORT("IN1") // Inputs |
| 898 | AM_RANGE(0x200002, 0x200003) AM_READ_PORT("DSW0") // |
| 899 | AM_RANGE(0x200004, 0x200005) AM_READ_PORT("IN0") // |
| 900 | AM_RANGE(0x200006, 0x200007) AM_READ_PORT("IN2") // |
| 901 | AM_RANGE(0x200002, 0x200009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 899 | 902 | AM_RANGE(0x300000, 0x31ffff) AM_READ(balcube_dsw_r) // read but ignored? |
| 900 | | AM_RANGE(0x400000, 0x400001) AM_DEVREAD8_LEGACY("ymf", ymf278b_r, 0x00ff) // Sound |
| 901 | | AM_RANGE(0x400000, 0x40000b) AM_DEVWRITE8_LEGACY("ymf", ymf278b_w, 0x00ff) // |
| 902 | | AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM |
| 903 | | AM_RANGE(0xf10000, 0xf10fff) AM_RAM // RAM (bug in the ram test routine) |
| 903 | AM_RANGE(0x400000, 0x400001) AM_DEVREAD8_LEGACY("ymf", ymf278b_r, 0x00ff) // Sound |
| 904 | AM_RANGE(0x400000, 0x40000b) AM_DEVWRITE8_LEGACY("ymf", ymf278b_w, 0x00ff) // |
| 905 | AM_RANGE(0xf00000, 0xf0ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 904 | 906 | ADDRESS_MAP_END |
| 905 | 907 | |
| 906 | 908 | |
| r19999 | r20000 | |
| 909 | 911 | ***************************************************************************/ |
| 910 | 912 | |
| 911 | 913 | static ADDRESS_MAP_START( msgogo_map, AS_PROGRAM, 16, metro_state ) |
| 912 | | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 914 | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 913 | 915 | AM_RANGE(0x100000, 0x11ffff) AM_RAM_WRITE(metro_vram_0_w) AM_SHARE("vram_0") // Layer 0 |
| 914 | 916 | AM_RANGE(0x120000, 0x13ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 |
| 915 | 917 | AM_RANGE(0x140000, 0x15ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 |
| 916 | 918 | AM_RANGE(0x160000, 0x16ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 917 | | AM_RANGE(0x170000, 0x173fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 918 | | AM_RANGE(0x174000, 0x174fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 919 | | AM_RANGE(0x178000, 0x1787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 919 | AM_RANGE(0x170000, 0x171fff) AM_RAM // ??? |
| 920 | AM_RANGE(0x172000, 0x173fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 921 | AM_RANGE(0x174000, 0x174fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 922 | AM_RANGE(0x178000, 0x1787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 920 | 923 | AM_RANGE(0x178840, 0x17884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 921 | 924 | AM_RANGE(0x178860, 0x17886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 922 | | AM_RANGE(0x178870, 0x17887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 925 | AM_RANGE(0x178870, 0x17887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 923 | 926 | AM_RANGE(0x178880, 0x178881) AM_WRITENOP // ? increasing |
| 924 | 927 | AM_RANGE(0x178890, 0x178891) AM_WRITENOP // ? increasing |
| 925 | | AM_RANGE(0x1788a2, 0x1788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 926 | | AM_RANGE(0x1788a4, 0x1788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 927 | | AM_RANGE(0x1788aa, 0x1788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 928 | | AM_RANGE(0x1788ac, 0x1788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 929 | | AM_RANGE(0x179700, 0x179713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 928 | AM_RANGE(0x1788a2, 0x1788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 929 | AM_RANGE(0x1788a4, 0x1788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 930 | AM_RANGE(0x1788aa, 0x1788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 931 | AM_RANGE(0x1788ac, 0x1788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 932 | AM_RANGE(0x179700, 0x179713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 930 | 933 | AM_RANGE(0x200000, 0x200001) AM_READ_PORT("COINS") // Inputs |
| 931 | 934 | AM_RANGE(0x200002, 0x200003) AM_READ_PORT("JOYS") // |
| 932 | | AM_RANGE(0x200006, 0x200007) AM_READNOP // |
| 933 | | AM_RANGE(0x200002, 0x200009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 935 | AM_RANGE(0x200006, 0x200007) AM_READNOP // |
| 936 | AM_RANGE(0x200002, 0x200009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 934 | 937 | AM_RANGE(0x300000, 0x31ffff) AM_READ(balcube_dsw_r) // 3 x DSW |
| 935 | | AM_RANGE(0x400000, 0x400001) AM_DEVREAD8_LEGACY("ymf", ymf278b_r, 0x00ff) // Sound |
| 936 | | AM_RANGE(0x400000, 0x40000b) AM_DEVWRITE8_LEGACY("ymf", ymf278b_w, 0x00ff) // |
| 937 | | AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM |
| 938 | AM_RANGE(0x400000, 0x400001) AM_DEVREAD8_LEGACY("ymf", ymf278b_r, 0x00ff) // Sound |
| 939 | AM_RANGE(0x400000, 0x40000b) AM_DEVWRITE8_LEGACY("ymf", ymf278b_w, 0x00ff) // |
| 940 | AM_RANGE(0xf00000, 0xf0ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 938 | 941 | ADDRESS_MAP_END |
| 939 | 942 | |
| 940 | 943 | /*************************************************************************** |
| r19999 | r20000 | |
| 942 | 945 | ***************************************************************************/ |
| 943 | 946 | |
| 944 | 947 | static ADDRESS_MAP_START( daitorid_map, AS_PROGRAM, 16, metro_state ) |
| 945 | | AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM |
| 946 | | AM_RANGE(0x800000, 0x80ffff) AM_RAM // RAM |
| 948 | AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM |
| 947 | 949 | AM_RANGE(0x400000, 0x41ffff) AM_RAM_WRITE(metro_vram_0_w) AM_SHARE("vram_0") // Layer 0 |
| 948 | 950 | AM_RANGE(0x420000, 0x43ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 |
| 949 | 951 | AM_RANGE(0x440000, 0x45ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 |
| 950 | 952 | AM_RANGE(0x460000, 0x46ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 951 | | AM_RANGE(0x470000, 0x473fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 952 | | AM_RANGE(0x474000, 0x474fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 953 | | AM_RANGE(0x478000, 0x4787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 953 | AM_RANGE(0x470000, 0x471fff) AM_RAM // ??? |
| 954 | AM_RANGE(0x472000, 0x473fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 955 | AM_RANGE(0x474000, 0x474fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 956 | AM_RANGE(0x478000, 0x4787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 954 | 957 | AM_RANGE(0x478840, 0x47884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 955 | 958 | AM_RANGE(0x478860, 0x47886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 956 | | AM_RANGE(0x478870, 0x47887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 959 | AM_RANGE(0x478870, 0x47887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 957 | 960 | AM_RANGE(0x478880, 0x478881) AM_WRITENOP // ? increasing |
| 958 | 961 | AM_RANGE(0x478890, 0x478891) AM_WRITENOP // ? increasing |
| 959 | | AM_RANGE(0x4788a2, 0x4788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 960 | | AM_RANGE(0x4788a4, 0x4788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 961 | | AM_RANGE(0x4788a8, 0x4788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 962 | | AM_RANGE(0x4788aa, 0x4788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 963 | | AM_RANGE(0x4788ac, 0x4788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 964 | | AM_RANGE(0x479700, 0x479713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 965 | | AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") AM_WRITE(metro_soundstatus_w) // To Sound CPU |
| 966 | | AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1") |
| 967 | | AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("DSW0") |
| 968 | | AM_RANGE(0xc00006, 0xc00007) AM_READ_PORT("IN2") |
| 969 | | AM_RANGE(0xc00002, 0xc00009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 962 | AM_RANGE(0x4788a2, 0x4788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 963 | AM_RANGE(0x4788a4, 0x4788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 964 | AM_RANGE(0x4788a8, 0x4788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 965 | AM_RANGE(0x4788aa, 0x4788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 966 | AM_RANGE(0x4788ac, 0x4788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 967 | AM_RANGE(0x479700, 0x479713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 968 | AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 969 | AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") AM_WRITE(metro_soundstatus_w) // To Sound CPU |
| 970 | AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1") // |
| 971 | AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("DSW0") // |
| 972 | AM_RANGE(0xc00006, 0xc00007) AM_READ_PORT("IN2") // |
| 973 | AM_RANGE(0xc00002, 0xc00009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 970 | 974 | ADDRESS_MAP_END |
| 971 | 975 | |
| 972 | 976 | |
| r19999 | r20000 | |
| 975 | 979 | ***************************************************************************/ |
| 976 | 980 | |
| 977 | 981 | static ADDRESS_MAP_START( dharma_map, AS_PROGRAM, 16, metro_state ) |
| 978 | | AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM |
| 979 | | AM_RANGE(0x400000, 0x40ffff) AM_RAM // RAM |
| 982 | AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM |
| 983 | AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 980 | 984 | AM_RANGE(0x800000, 0x81ffff) AM_RAM_WRITE(metro_vram_0_w) AM_SHARE("vram_0") // Layer 0 |
| 981 | 985 | AM_RANGE(0x820000, 0x83ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 |
| 982 | 986 | AM_RANGE(0x840000, 0x85ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 |
| 983 | 987 | AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 984 | | AM_RANGE(0x870000, 0x873fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 985 | | AM_RANGE(0x874000, 0x874fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 986 | | AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 988 | AM_RANGE(0x870000, 0x871fff) AM_RAM // ??? |
| 989 | AM_RANGE(0x872000, 0x873fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 990 | AM_RANGE(0x874000, 0x874fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 991 | AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 987 | 992 | AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 988 | 993 | AM_RANGE(0x878860, 0x87886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 989 | | AM_RANGE(0x878870, 0x87887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs |
| 994 | AM_RANGE(0x878870, 0x87887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs |
| 990 | 995 | AM_RANGE(0x878880, 0x878881) AM_WRITENOP // ? increasing |
| 991 | 996 | AM_RANGE(0x878890, 0x878891) AM_WRITENOP // ? increasing |
| 992 | | AM_RANGE(0x8788a4, 0x8788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 993 | | AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 994 | | AM_RANGE(0x8788aa, 0x8788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 995 | | AM_RANGE(0x8788ac, 0x8788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 996 | | AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 997 | | AM_RANGE(0x879700, 0x879713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 998 | | AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") AM_WRITE(metro_soundstatus_w) // To Sound CPU |
| 999 | | AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1") |
| 1000 | | AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("DSW0") |
| 1001 | | AM_RANGE(0xc00006, 0xc00007) AM_READ_PORT("IN2") |
| 1002 | | AM_RANGE(0xc00002, 0xc00009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 997 | AM_RANGE(0x8788a4, 0x8788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 998 | AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 999 | AM_RANGE(0x8788aa, 0x8788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1000 | AM_RANGE(0x8788ac, 0x8788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1001 | AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1002 | AM_RANGE(0x879700, 0x879713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1003 | AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") AM_WRITE(metro_soundstatus_w) // To Sound CPU |
| 1004 | AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1") // |
| 1005 | AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("DSW0") // |
| 1006 | AM_RANGE(0xc00006, 0xc00007) AM_READ_PORT("IN2") // |
| 1007 | AM_RANGE(0xc00002, 0xc00009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 1003 | 1008 | ADDRESS_MAP_END |
| 1004 | 1009 | |
| 1005 | 1010 | |
| r19999 | r20000 | |
| 1022 | 1027 | WRITE16_MEMBER(metro_state::karatour_vram_2_w){ metro_vram_2_w(space, KARATOUR_OFFS(offset), data, mem_mask); } |
| 1023 | 1028 | |
| 1024 | 1029 | static ADDRESS_MAP_START( karatour_map, AS_PROGRAM, 16, metro_state ) |
| 1025 | | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 1026 | | AM_RANGE(0xffc000, 0xffffff) AM_RAM // RAM |
| 1027 | | AM_RANGE(0x400000, 0x400001) AM_READWRITE(metro_soundstatus_r, metro_soundstatus_w) // From Sound CPU |
| 1030 | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 1031 | AM_RANGE(0x400000, 0x400001) AM_READWRITE(metro_soundstatus_r, metro_soundstatus_w) // From Sound CPU |
| 1028 | 1032 | AM_RANGE(0x400002, 0x400003) AM_READ_PORT("IN0") // Inputs |
| 1029 | | AM_RANGE(0x400002, 0x400003) AM_WRITE(metro_coin_lockout_1word_w) // Coin Lockout |
| 1033 | AM_RANGE(0x400002, 0x400003) AM_WRITE(metro_coin_lockout_1word_w) // Coin Lockout |
| 1030 | 1034 | AM_RANGE(0x400004, 0x400005) AM_READ_PORT("IN1") // |
| 1031 | 1035 | AM_RANGE(0x400006, 0x400007) AM_READ_PORT("DSW0") // |
| 1032 | 1036 | AM_RANGE(0x40000a, 0x40000b) AM_READ_PORT("DSW1") // |
| 1033 | 1037 | AM_RANGE(0x40000c, 0x40000d) AM_READ_PORT("IN2") // |
| 1034 | 1038 | AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 1035 | | AM_RANGE(0x870000, 0x873fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1036 | | AM_RANGE(0x874000, 0x874fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1037 | | AM_RANGE(0x875000, 0x875fff) AM_READWRITE(karatour_vram_0_r, karatour_vram_0_w) // Layer 0 (Part of) |
| 1038 | | AM_RANGE(0x876000, 0x876fff) AM_READWRITE(karatour_vram_1_r, karatour_vram_1_w) // Layer 1 (Part of) |
| 1039 | | AM_RANGE(0x877000, 0x877fff) AM_READWRITE(karatour_vram_2_r, karatour_vram_2_w) // Layer 2 (Part of) |
| 1040 | | AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1041 | | AM_RANGE(0x878800, 0x878813) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1039 | AM_RANGE(0x870000, 0x871fff) AM_RAM // ??? |
| 1040 | AM_RANGE(0x872000, 0x873fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1041 | AM_RANGE(0x874000, 0x874fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1042 | AM_RANGE(0x875000, 0x875fff) AM_READWRITE(karatour_vram_0_r, karatour_vram_0_w) // Layer 0 (Part of) |
| 1043 | AM_RANGE(0x876000, 0x876fff) AM_READWRITE(karatour_vram_1_r, karatour_vram_1_w) // Layer 1 (Part of) |
| 1044 | AM_RANGE(0x877000, 0x877fff) AM_READWRITE(karatour_vram_2_r, karatour_vram_2_w) // Layer 2 (Part of) |
| 1045 | AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1046 | AM_RANGE(0x878800, 0x878813) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1042 | 1047 | AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 1043 | 1048 | AM_RANGE(0x878860, 0x87886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 1044 | | AM_RANGE(0x878870, 0x87887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 1049 | AM_RANGE(0x878870, 0x87887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 1045 | 1050 | AM_RANGE(0x878880, 0x878881) AM_WRITENOP // ? increasing |
| 1046 | 1051 | AM_RANGE(0x878890, 0x878891) AM_WRITENOP // ? increasing |
| 1047 | | AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1048 | | AM_RANGE(0x8788a4, 0x8788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1049 | | AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 1050 | | AM_RANGE(0x8788aa, 0x8788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1051 | | AM_RANGE(0x8788ac, 0x8788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1052 | AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1053 | AM_RANGE(0x8788a4, 0x8788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1054 | AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 1055 | AM_RANGE(0x8788aa, 0x8788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1056 | AM_RANGE(0x8788ac, 0x8788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1057 | AM_RANGE(0xf00000, 0xf0ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 1052 | 1058 | ADDRESS_MAP_END |
| 1053 | 1059 | |
| 1054 | 1060 | |
| r19999 | r20000 | |
| 1059 | 1065 | /* same limited tilemap access as karatour */ |
| 1060 | 1066 | |
| 1061 | 1067 | static ADDRESS_MAP_START( kokushi_map, AS_PROGRAM, 16, metro_state ) |
| 1062 | | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 1063 | | AM_RANGE(0x7fc000, 0x7fffff) AM_RAM // RAM |
| 1064 | | AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 1065 | | AM_RANGE(0x870000, 0x873fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1066 | | AM_RANGE(0x874000, 0x874fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1067 | | AM_RANGE(0x875000, 0x875fff) AM_READWRITE(karatour_vram_0_r, karatour_vram_0_w) // Layer 0 (Part of) |
| 1068 | | AM_RANGE(0x876000, 0x876fff) AM_READWRITE(karatour_vram_1_r, karatour_vram_1_w) // Layer 1 (Part of) |
| 1069 | | AM_RANGE(0x877000, 0x877fff) AM_READWRITE(karatour_vram_2_r, karatour_vram_2_w) // Layer 2 (Part of) |
| 1070 | | AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1068 | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 1069 | AM_RANGE(0x700000, 0x70ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 1070 | AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 1071 | AM_RANGE(0x870000, 0x871fff) AM_RAM // ??? |
| 1072 | AM_RANGE(0x872000, 0x873fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1073 | AM_RANGE(0x874000, 0x874fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1074 | AM_RANGE(0x875000, 0x875fff) AM_READWRITE(karatour_vram_0_r, karatour_vram_0_w) // Layer 0 (Part of) |
| 1075 | AM_RANGE(0x876000, 0x876fff) AM_READWRITE(karatour_vram_1_r, karatour_vram_1_w) // Layer 1 (Part of) |
| 1076 | AM_RANGE(0x877000, 0x877fff) AM_READWRITE(karatour_vram_2_r, karatour_vram_2_w) // Layer 2 (Part of) |
| 1077 | AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1071 | 1078 | AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 1072 | | AM_RANGE(0x878860, 0x87886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 1073 | | AM_RANGE(0x878870, 0x87887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs - WRONG |
| 1074 | | // AM_RANGE(0x878880, 0x878881) AM_WRITENOP // ? increasing |
| 1075 | | AM_RANGE(0x878890, 0x878891) AM_WRITENOP // ? increasing |
| 1076 | | AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1077 | | AM_RANGE(0x8788a4, 0x8788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1079 | AM_RANGE(0x878860, 0x87886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 1080 | AM_RANGE(0x878870, 0x87887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs - WRONG |
| 1081 | // AM_RANGE(0x878880, 0x878881) AM_WRITENOP // ? increasing |
| 1082 | AM_RANGE(0x878890, 0x878891) AM_WRITENOP // ? increasing |
| 1083 | AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1084 | AM_RANGE(0x8788a4, 0x8788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1078 | 1085 | AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 1079 | | AM_RANGE(0x8788aa, 0x8788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1080 | | AM_RANGE(0x8788ac, 0x8788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1081 | | AM_RANGE(0x879700, 0x879713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1082 | | AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") AM_WRITE(metro_soundstatus_w) // To Sound CPU |
| 1083 | | AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1") // Inputs |
| 1084 | | AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("DSW0") |
| 1085 | | AM_RANGE(0xc00002, 0xc00009) AM_WRITE(metro_coin_lockout_4words_w ) // Coin Lockout |
| 1086 | AM_RANGE(0x8788aa, 0x8788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1087 | AM_RANGE(0x8788ac, 0x8788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1088 | AM_RANGE(0x879700, 0x879713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1089 | AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") AM_WRITE(metro_soundstatus_w) // To Sound CPU |
| 1090 | AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1") // Inputs |
| 1091 | AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("DSW0") // |
| 1092 | AM_RANGE(0xc00002, 0xc00009) AM_WRITE(metro_coin_lockout_4words_w ) // Coin Lockout |
| 1086 | 1093 | ADDRESS_MAP_END |
| 1087 | 1094 | |
| 1088 | 1095 | |
| r19999 | r20000 | |
| 1091 | 1098 | ***************************************************************************/ |
| 1092 | 1099 | |
| 1093 | 1100 | static ADDRESS_MAP_START( lastfort_map, AS_PROGRAM, 16, metro_state ) |
| 1094 | | AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM |
| 1095 | | AM_RANGE(0x400000, 0x40ffff) AM_RAM // RAM |
| 1101 | AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM |
| 1102 | AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 1096 | 1103 | AM_RANGE(0x800000, 0x81ffff) AM_RAM_WRITE(metro_vram_0_w) AM_SHARE("vram_0") // Layer 0 |
| 1097 | 1104 | AM_RANGE(0x820000, 0x83ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 |
| 1098 | 1105 | AM_RANGE(0x840000, 0x85ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 |
| 1099 | 1106 | AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 1100 | | AM_RANGE(0x870000, 0x873fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1101 | | AM_RANGE(0x874000, 0x874fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1102 | | AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1103 | | AM_RANGE(0x878800, 0x878813) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1107 | AM_RANGE(0x870000, 0x871fff) AM_RAM // ??? |
| 1108 | AM_RANGE(0x872000, 0x873fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1109 | AM_RANGE(0x874000, 0x874fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1110 | AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1111 | AM_RANGE(0x878800, 0x878813) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1104 | 1112 | AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 1105 | 1113 | AM_RANGE(0x878860, 0x87886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 1106 | | AM_RANGE(0x878870, 0x87887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 1114 | AM_RANGE(0x878870, 0x87887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 1107 | 1115 | AM_RANGE(0x878880, 0x878881) AM_WRITENOP // ? increasing |
| 1108 | 1116 | AM_RANGE(0x878890, 0x878891) AM_WRITENOP // ? increasing |
| 1109 | | AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1110 | | AM_RANGE(0x8788a4, 0x8788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1111 | | AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 1112 | | AM_RANGE(0x8788aa, 0x8788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1113 | | AM_RANGE(0x8788ac, 0x8788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1114 | | AM_RANGE(0xc00000, 0xc00001) AM_READWRITE(metro_soundstatus_r, metro_soundstatus_w) // From / To Sound CPU |
| 1115 | | AM_RANGE(0xc00002, 0xc00003) AM_WRITE(metro_coin_lockout_1word_w) // Coin Lockout |
| 1117 | AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1118 | AM_RANGE(0x8788a4, 0x8788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1119 | AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 1120 | AM_RANGE(0x8788aa, 0x8788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1121 | AM_RANGE(0x8788ac, 0x8788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1122 | AM_RANGE(0xc00000, 0xc00001) AM_READWRITE(metro_soundstatus_r, metro_soundstatus_w) // From / To Sound CPU |
| 1123 | AM_RANGE(0xc00002, 0xc00003) AM_WRITE(metro_coin_lockout_1word_w) // Coin Lockout |
| 1116 | 1124 | AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("IN0") // Inputs |
| 1117 | 1125 | AM_RANGE(0xc00006, 0xc00007) AM_READ_PORT("IN1") // |
| 1118 | 1126 | AM_RANGE(0xc00008, 0xc00009) AM_READ_PORT("IN2") // |
| r19999 | r20000 | |
| 1125 | 1133 | |
| 1126 | 1134 | /* todo: clean up input reads etc. */ |
| 1127 | 1135 | static ADDRESS_MAP_START( lastforg_map, AS_PROGRAM, 16, metro_state ) |
| 1128 | | AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM |
| 1129 | | AM_RANGE(0x400000, 0x400001) AM_READWRITE(metro_soundstatus_r, metro_soundstatus_w) // From / To Sound CPU |
| 1136 | AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM |
| 1137 | AM_RANGE(0x400000, 0x400001) AM_READWRITE(metro_soundstatus_r, metro_soundstatus_w) // From / To Sound CPU |
| 1130 | 1138 | AM_RANGE(0x400002, 0x400003) AM_READ_PORT("IN0") // Inputs |
| 1131 | | AM_RANGE(0x400002, 0x400003) AM_WRITE(metro_coin_lockout_1word_w) // Coin Lockout |
| 1139 | AM_RANGE(0x400002, 0x400003) AM_WRITE(metro_coin_lockout_1word_w) // Coin Lockout |
| 1132 | 1140 | AM_RANGE(0x400004, 0x400005) AM_READ_PORT("IN1") // |
| 1133 | 1141 | AM_RANGE(0x400006, 0x400007) AM_READ_PORT("DSW0") // |
| 1134 | 1142 | AM_RANGE(0x40000a, 0x40000b) AM_READ_PORT("DSW1") // |
| r19999 | r20000 | |
| 1137 | 1145 | AM_RANGE(0x8a0000, 0x8bffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 |
| 1138 | 1146 | AM_RANGE(0x8c0000, 0x8dffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 |
| 1139 | 1147 | AM_RANGE(0x8e0000, 0x8effff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 1140 | | AM_RANGE(0x8f0000, 0x8f3fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1141 | | AM_RANGE(0x8f4000, 0x8f4fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1142 | | AM_RANGE(0x8f8000, 0x8f87ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1143 | | AM_RANGE(0x8f8800, 0x8f8813) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1148 | AM_RANGE(0x8f0000, 0x8f1fff) AM_RAM // ??? |
| 1149 | AM_RANGE(0x8f2000, 0x8f3fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1150 | AM_RANGE(0x8f4000, 0x8f4fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1151 | AM_RANGE(0x8f8000, 0x8f87ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1152 | AM_RANGE(0x8f8800, 0x8f8813) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1144 | 1153 | AM_RANGE(0x8f8840, 0x8f884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 1145 | 1154 | AM_RANGE(0x8f8860, 0x8f886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 1146 | | AM_RANGE(0x8f8870, 0x8f887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 1155 | AM_RANGE(0x8f8870, 0x8f887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 1147 | 1156 | AM_RANGE(0x8f8880, 0x8f8881) AM_WRITENOP // ? increasing |
| 1148 | 1157 | AM_RANGE(0x8f8890, 0x8f8891) AM_WRITENOP // ? increasing |
| 1149 | | AM_RANGE(0x8f88a2, 0x8f88a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1150 | | AM_RANGE(0x8f88a4, 0x8f88a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1151 | | AM_RANGE(0x8f88a8, 0x8f88a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 1152 | | AM_RANGE(0x8f88aa, 0x8f88ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1153 | | AM_RANGE(0x8f88ac, 0x8f88ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1154 | | AM_RANGE(0xc00000, 0xc0ffff) AM_RAM // RAM |
| 1158 | AM_RANGE(0x8f88a2, 0x8f88a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1159 | AM_RANGE(0x8f88a4, 0x8f88a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1160 | AM_RANGE(0x8f88a8, 0x8f88a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 1161 | AM_RANGE(0x8f88aa, 0x8f88ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1162 | AM_RANGE(0x8f88ac, 0x8f88ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1163 | AM_RANGE(0xc00000, 0xc0ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 1155 | 1164 | ADDRESS_MAP_END |
| 1156 | 1165 | |
| 1157 | 1166 | |
| r19999 | r20000 | |
| 1227 | 1236 | } |
| 1228 | 1237 | |
| 1229 | 1238 | static ADDRESS_MAP_START( gakusai_map, AS_PROGRAM, 16, metro_state ) |
| 1230 | | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 1231 | | AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM |
| 1239 | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 1232 | 1240 | AM_RANGE(0x200000, 0x21ffff) AM_RAM_WRITE(metro_vram_0_w) AM_SHARE("vram_0") // Layer 0 |
| 1233 | 1241 | AM_RANGE(0x220000, 0x23ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 |
| 1234 | 1242 | AM_RANGE(0x240000, 0x25ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 |
| 1235 | 1243 | AM_RANGE(0x260000, 0x26ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 1236 | | AM_RANGE(0x270000, 0x273fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1237 | | AM_RANGE(0x274000, 0x274fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1238 | | AM_RANGE(0x278000, 0x2787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1239 | | AM_RANGE(0x27880e, 0x27880f) AM_RAM AM_SHARE("screenctrl") // Screen Control |
| 1240 | | AM_RANGE(0x278810, 0x27881f) AM_WRITEONLY AM_SHARE("irq_levels") // IRQ Levels |
| 1241 | | AM_RANGE(0x278820, 0x27882f) AM_WRITEONLY AM_SHARE("irq_vectors") // IRQ Vectors |
| 1242 | | AM_RANGE(0x278830, 0x278831) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1243 | | AM_RANGE(0x278832, 0x278833) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1244 | | AM_RANGE(0x278880, 0x278881) AM_READ(gakusai_input_r) // Inputs |
| 1244 | AM_RANGE(0x270000, 0x271fff) AM_RAM // ??? |
| 1245 | AM_RANGE(0x272000, 0x273fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1246 | AM_RANGE(0x274000, 0x274fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1247 | AM_RANGE(0x278000, 0x2787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1248 | AM_RANGE(0x27880e, 0x27880f) AM_RAM AM_SHARE("screenctrl") // Screen Control |
| 1249 | AM_RANGE(0x278810, 0x27881f) AM_WRITEONLY AM_SHARE("irq_levels") // IRQ Levels |
| 1250 | AM_RANGE(0x278820, 0x27882f) AM_WRITEONLY AM_SHARE("irq_vectors") // IRQ Vectors |
| 1251 | AM_RANGE(0x278830, 0x278831) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1252 | AM_RANGE(0x278832, 0x278833) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1253 | AM_RANGE(0x278880, 0x278881) AM_READ(gakusai_input_r) // Inputs |
| 1245 | 1254 | AM_RANGE(0x278882, 0x278883) AM_READ_PORT("IN0") // |
| 1246 | | AM_RANGE(0x278836, 0x278837) AM_WRITE(watchdog_reset16_w) // Watchdog |
| 1255 | AM_RANGE(0x278836, 0x278837) AM_WRITE(watchdog_reset16_w) // Watchdog |
| 1247 | 1256 | AM_RANGE(0x278840, 0x27884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 1248 | 1257 | AM_RANGE(0x278860, 0x27886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 1249 | | AM_RANGE(0x278850, 0x27885b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs |
| 1250 | | AM_RANGE(0x278870, 0x278871) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1251 | | AM_RANGE(0x278888, 0x278889) AM_WRITEONLY AM_SHARE("input_sel") // Inputs |
| 1252 | | AM_RANGE(0x279700, 0x279713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1258 | AM_RANGE(0x278850, 0x27885b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs |
| 1259 | AM_RANGE(0x278870, 0x278871) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1260 | AM_RANGE(0x278888, 0x278889) AM_WRITEONLY AM_SHARE("input_sel") // Inputs |
| 1261 | AM_RANGE(0x279700, 0x279713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1253 | 1262 | AM_RANGE(0x400000, 0x400001) AM_WRITENOP // ? 5 |
| 1254 | 1263 | AM_RANGE(0x500000, 0x500001) AM_WRITE(gakusai_oki_bank_lo_w) // Sound |
| 1255 | 1264 | AM_RANGE(0x600000, 0x600003) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff) |
| 1256 | | AM_RANGE(0x700000, 0x700001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound |
| 1265 | AM_RANGE(0x700000, 0x700001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound |
| 1257 | 1266 | AM_RANGE(0xc00000, 0xc00001) AM_READWRITE(gakusai_eeprom_r, gakusai_eeprom_w) // EEPROM |
| 1258 | 1267 | AM_RANGE(0xd00000, 0xd00001) AM_WRITE(gakusai_oki_bank_hi_w) |
| 1268 | AM_RANGE(0xf00000, 0xf0ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 1259 | 1269 | ADDRESS_MAP_END |
| 1260 | 1270 | |
| 1261 | 1271 | |
| r19999 | r20000 | |
| 1264 | 1274 | ***************************************************************************/ |
| 1265 | 1275 | |
| 1266 | 1276 | static ADDRESS_MAP_START( gakusai2_map, AS_PROGRAM, 16, metro_state ) |
| 1267 | | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 1268 | | AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM |
| 1277 | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 1269 | 1278 | AM_RANGE(0x600000, 0x61ffff) AM_RAM_WRITE(metro_vram_0_w) AM_SHARE("vram_0") // Layer 0 |
| 1270 | 1279 | AM_RANGE(0x620000, 0x63ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 |
| 1271 | 1280 | AM_RANGE(0x640000, 0x65ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 |
| 1272 | 1281 | AM_RANGE(0x660000, 0x66ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 1273 | | AM_RANGE(0x670000, 0x673fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1274 | | AM_RANGE(0x674000, 0x674fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1275 | | AM_RANGE(0x675000, 0x675fff) AM_RAM // Sprites? |
| 1276 | | AM_RANGE(0x678000, 0x6787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1277 | | AM_RANGE(0x67880e, 0x67880f) AM_RAM AM_SHARE("screenctrl") // Screen Control |
| 1278 | | AM_RANGE(0x678810, 0x67881f) AM_WRITEONLY AM_SHARE("irq_levels") // IRQ Levels |
| 1279 | | AM_RANGE(0x678820, 0x67882f) AM_WRITEONLY AM_SHARE("irq_vectors") // IRQ Vectors |
| 1280 | | AM_RANGE(0x678830, 0x678831) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1281 | | AM_RANGE(0x678832, 0x678833) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1282 | | AM_RANGE(0x678836, 0x678837) AM_WRITE(watchdog_reset16_w) // Watchdog |
| 1282 | AM_RANGE(0x670000, 0x671fff) AM_RAM // ??? |
| 1283 | AM_RANGE(0x672000, 0x673fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1284 | AM_RANGE(0x674000, 0x674fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1285 | AM_RANGE(0x675000, 0x675fff) AM_RAM // Sprites? |
| 1286 | AM_RANGE(0x678000, 0x6787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1287 | AM_RANGE(0x67880e, 0x67880f) AM_RAM AM_SHARE("screenctrl") // Screen Control |
| 1288 | AM_RANGE(0x678810, 0x67881f) AM_WRITEONLY AM_SHARE("irq_levels") // IRQ Levels |
| 1289 | AM_RANGE(0x678820, 0x67882f) AM_WRITEONLY AM_SHARE("irq_vectors") // IRQ Vectors |
| 1290 | AM_RANGE(0x678830, 0x678831) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1291 | AM_RANGE(0x678832, 0x678833) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1292 | AM_RANGE(0x678836, 0x678837) AM_WRITE(watchdog_reset16_w) // Watchdog |
| 1283 | 1293 | AM_RANGE(0x678840, 0x67884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 1284 | 1294 | AM_RANGE(0x678860, 0x67886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 1285 | | AM_RANGE(0x678880, 0x678881) AM_READ(gakusai_input_r) // Inputs |
| 1295 | AM_RANGE(0x678880, 0x678881) AM_READ(gakusai_input_r) // Inputs |
| 1286 | 1296 | AM_RANGE(0x678882, 0x678883) AM_READ_PORT("IN0") // |
| 1287 | | AM_RANGE(0x678850, 0x67885b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs |
| 1288 | | AM_RANGE(0x678870, 0x678871) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1289 | | AM_RANGE(0x678888, 0x678889) AM_WRITEONLY AM_SHARE("input_sel") // Inputs |
| 1290 | | AM_RANGE(0x679700, 0x679713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1297 | AM_RANGE(0x678850, 0x67885b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs |
| 1298 | AM_RANGE(0x678870, 0x678871) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1299 | AM_RANGE(0x678888, 0x678889) AM_WRITEONLY AM_SHARE("input_sel") // Inputs |
| 1300 | AM_RANGE(0x679700, 0x679713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1291 | 1301 | AM_RANGE(0x800000, 0x800001) AM_WRITENOP // ? 5 |
| 1292 | 1302 | AM_RANGE(0x900000, 0x900001) AM_WRITE(gakusai_oki_bank_lo_w) // Sound bank |
| 1293 | | AM_RANGE(0xa00000, 0xa00001) AM_WRITE(gakusai_oki_bank_hi_w) |
| 1294 | | AM_RANGE(0xb00000, 0xb00001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound |
| 1303 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE(gakusai_oki_bank_hi_w) // |
| 1304 | AM_RANGE(0xb00000, 0xb00001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound |
| 1295 | 1305 | AM_RANGE(0xc00000, 0xc00003) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff) |
| 1296 | | AM_RANGE(0xe00000, 0xe00001) AM_READWRITE(gakusai_eeprom_r,gakusai_eeprom_w) // EEPROM |
| 1306 | AM_RANGE(0xe00000, 0xe00001) AM_READWRITE(gakusai_eeprom_r,gakusai_eeprom_w) // EEPROM |
| 1307 | AM_RANGE(0xf00000, 0xf0ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 1297 | 1308 | ADDRESS_MAP_END |
| 1298 | 1309 | |
| 1299 | 1310 | |
| r19999 | r20000 | |
| 1339 | 1350 | } |
| 1340 | 1351 | |
| 1341 | 1352 | static ADDRESS_MAP_START( dokyusp_map, AS_PROGRAM, 16, metro_state ) |
| 1342 | | AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM |
| 1343 | | AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM |
| 1353 | AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM |
| 1344 | 1354 | AM_RANGE(0x200000, 0x21ffff) AM_RAM_WRITE(metro_vram_0_w) AM_SHARE("vram_0") // Layer 0 |
| 1345 | 1355 | AM_RANGE(0x220000, 0x23ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 |
| 1346 | 1356 | AM_RANGE(0x240000, 0x25ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 |
| 1347 | 1357 | AM_RANGE(0x260000, 0x26ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 1348 | | AM_RANGE(0x270000, 0x273fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1349 | | AM_RANGE(0x274000, 0x274fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1350 | | AM_RANGE(0x278000, 0x2787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1351 | | AM_RANGE(0x278810, 0x27881f) AM_WRITEONLY AM_SHARE("irq_levels") // IRQ Levels |
| 1352 | | AM_RANGE(0x278820, 0x27882f) AM_WRITEONLY AM_SHARE("irq_vectors") // IRQ Vectors |
| 1353 | | AM_RANGE(0x278830, 0x278831) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1354 | | AM_RANGE(0x278832, 0x278833) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1355 | | AM_RANGE(0x278836, 0x278837) AM_WRITE(watchdog_reset16_w) // Watchdog |
| 1358 | AM_RANGE(0x270000, 0x271fff) AM_RAM // ??? |
| 1359 | AM_RANGE(0x272000, 0x273fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1360 | AM_RANGE(0x274000, 0x274fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1361 | AM_RANGE(0x278000, 0x2787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1362 | AM_RANGE(0x278810, 0x27881f) AM_WRITEONLY AM_SHARE("irq_levels") // IRQ Levels |
| 1363 | AM_RANGE(0x278820, 0x27882f) AM_WRITEONLY AM_SHARE("irq_vectors") // IRQ Vectors |
| 1364 | AM_RANGE(0x278830, 0x278831) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1365 | AM_RANGE(0x278832, 0x278833) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1366 | AM_RANGE(0x278836, 0x278837) AM_WRITE(watchdog_reset16_w) // Watchdog |
| 1356 | 1367 | AM_RANGE(0x278840, 0x27884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 1357 | 1368 | AM_RANGE(0x278860, 0x27886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 1358 | | AM_RANGE(0x278850, 0x27885b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs |
| 1359 | | AM_RANGE(0x278870, 0x278871) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1360 | | AM_RANGE(0x278880, 0x278881) AM_READ(gakusai_input_r) // Inputs |
| 1369 | AM_RANGE(0x278850, 0x27885b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs |
| 1370 | AM_RANGE(0x278870, 0x278871) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1371 | AM_RANGE(0x278880, 0x278881) AM_READ(gakusai_input_r) // Inputs |
| 1361 | 1372 | AM_RANGE(0x278882, 0x278883) AM_READ_PORT("IN0") // |
| 1362 | | AM_RANGE(0x278888, 0x278889) AM_WRITEONLY AM_SHARE("input_sel") // Inputs |
| 1363 | | AM_RANGE(0x27880e, 0x27880f) AM_RAM AM_SHARE("screenctrl") // Screen Control |
| 1364 | | AM_RANGE(0x279700, 0x279713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1373 | AM_RANGE(0x278888, 0x278889) AM_WRITEONLY AM_SHARE("input_sel") // |
| 1374 | AM_RANGE(0x27880e, 0x27880f) AM_RAM AM_SHARE("screenctrl") // Screen Control |
| 1375 | AM_RANGE(0x279700, 0x279713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1365 | 1376 | AM_RANGE(0x400000, 0x400001) AM_WRITENOP // ? 5 |
| 1366 | 1377 | AM_RANGE(0x500000, 0x500001) AM_WRITE(gakusai_oki_bank_lo_w) // Sound |
| 1367 | 1378 | AM_RANGE(0x600000, 0x600003) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff) |
| 1368 | | AM_RANGE(0x700000, 0x700001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound |
| 1369 | | AM_RANGE(0xc00000, 0xc00001) AM_WRITE(dokyusp_eeprom_reset_w) // EEPROM |
| 1379 | AM_RANGE(0x700000, 0x700001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound |
| 1380 | AM_RANGE(0xc00000, 0xc00001) AM_WRITE(dokyusp_eeprom_reset_w) // EEPROM |
| 1370 | 1381 | AM_RANGE(0xd00000, 0xd00001) AM_READWRITE(dokyusp_eeprom_r, dokyusp_eeprom_bit_w) // EEPROM |
| 1382 | AM_RANGE(0xf00000, 0xf0ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 1371 | 1383 | ADDRESS_MAP_END |
| 1372 | 1384 | |
| 1373 | 1385 | |
| r19999 | r20000 | |
| 1376 | 1388 | ***************************************************************************/ |
| 1377 | 1389 | |
| 1378 | 1390 | static ADDRESS_MAP_START( dokyusei_map, AS_PROGRAM, 16, metro_state ) |
| 1379 | | AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM |
| 1380 | | AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM |
| 1391 | AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM |
| 1381 | 1392 | AM_RANGE(0x400000, 0x41ffff) AM_RAM_WRITE(metro_vram_0_w) AM_SHARE("vram_0") // Layer 0 |
| 1382 | 1393 | AM_RANGE(0x420000, 0x43ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 |
| 1383 | 1394 | AM_RANGE(0x440000, 0x45ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 |
| 1384 | 1395 | AM_RANGE(0x460000, 0x46ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 1385 | 1396 | AM_RANGE(0x460000, 0x46ffff) AM_WRITENOP // DSW Selection |
| 1386 | | AM_RANGE(0x470000, 0x473fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1387 | | AM_RANGE(0x474000, 0x474fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1388 | | AM_RANGE(0x478000, 0x4787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1389 | | AM_RANGE(0x47880e, 0x47880f) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1390 | | AM_RANGE(0x478810, 0x47881f) AM_WRITEONLY AM_SHARE("irq_levels") // IRQ Levels |
| 1391 | | AM_RANGE(0x478820, 0x47882f) AM_WRITEONLY AM_SHARE("irq_vectors") // IRQ Vectors |
| 1392 | | AM_RANGE(0x478830, 0x478831) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1393 | | // AM_RANGE(0x478832, 0x478833) AM_READ(metro_irq_cause_r) // IRQ Cause |
| 1394 | | AM_RANGE(0x478832, 0x478833) AM_WRITE(metro_irq_cause_w) // IRQ Acknowledge |
| 1397 | AM_RANGE(0x470000, 0x471fff) AM_RAM // ??? |
| 1398 | AM_RANGE(0x472000, 0x473fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1399 | AM_RANGE(0x474000, 0x474fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1400 | AM_RANGE(0x478000, 0x4787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1401 | AM_RANGE(0x47880e, 0x47880f) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1402 | AM_RANGE(0x478810, 0x47881f) AM_WRITEONLY AM_SHARE("irq_levels") // IRQ Levels |
| 1403 | AM_RANGE(0x478820, 0x47882f) AM_WRITEONLY AM_SHARE("irq_vectors") // IRQ Vectors |
| 1404 | AM_RANGE(0x478830, 0x478831) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1405 | // AM_RANGE(0x478832, 0x478833) AM_READ(metro_irq_cause_r) // IRQ Cause |
| 1406 | AM_RANGE(0x478832, 0x478833) AM_WRITE(metro_irq_cause_w) // IRQ Acknowledge |
| 1395 | 1407 | AM_RANGE(0x478836, 0x478837) AM_WRITENOP // ? watchdog ? |
| 1396 | 1408 | AM_RANGE(0x478840, 0x47884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 1397 | | AM_RANGE(0x478850, 0x47885b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs |
| 1409 | AM_RANGE(0x478850, 0x47885b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs |
| 1398 | 1410 | AM_RANGE(0x478860, 0x47886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 1399 | | AM_RANGE(0x478870, 0x478871) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1400 | | AM_RANGE(0x479700, 0x479713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1401 | | AM_RANGE(0x478888, 0x478889) AM_WRITEONLY AM_SHARE("input_sel") // Inputs |
| 1402 | | AM_RANGE(0x478880, 0x478881) AM_READ(gakusai_input_r) // Inputs |
| 1411 | AM_RANGE(0x478870, 0x478871) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1412 | AM_RANGE(0x479700, 0x479713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1413 | AM_RANGE(0x478888, 0x478889) AM_WRITEONLY AM_SHARE("input_sel") // Inputs |
| 1414 | AM_RANGE(0x478880, 0x478881) AM_READ(gakusai_input_r) // Inputs |
| 1403 | 1415 | AM_RANGE(0x478882, 0x478883) AM_READ_PORT("IN0") // |
| 1404 | 1416 | AM_RANGE(0x478884, 0x478885) AM_READ_PORT("DSW0") // 2 x DSW |
| 1405 | 1417 | AM_RANGE(0x478886, 0x478887) AM_READ_PORT("DSW1") // |
| 1406 | 1418 | AM_RANGE(0x800000, 0x800001) AM_WRITE(gakusai_oki_bank_hi_w) // Samples Bank? |
| 1407 | 1419 | AM_RANGE(0x900000, 0x900001) AM_WRITENOP // ? 4 |
| 1408 | 1420 | AM_RANGE(0xa00000, 0xa00001) AM_WRITE(gakusai_oki_bank_lo_w) // Samples Bank |
| 1409 | | AM_RANGE(0xc00000, 0xc00003) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff) // |
| 1410 | | AM_RANGE(0xd00000, 0xd00001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound |
| 1421 | AM_RANGE(0xc00000, 0xc00003) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff) // |
| 1422 | AM_RANGE(0xd00000, 0xd00001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound |
| 1423 | AM_RANGE(0xf00000, 0xf0ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 1411 | 1424 | ADDRESS_MAP_END |
| 1412 | 1425 | |
| 1413 | 1426 | |
| r19999 | r20000 | |
| 1416 | 1429 | ***************************************************************************/ |
| 1417 | 1430 | |
| 1418 | 1431 | static ADDRESS_MAP_START( pangpoms_map, AS_PROGRAM, 16, metro_state ) |
| 1419 | | AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM |
| 1420 | | AM_RANGE(0xc00000, 0xc0ffff) AM_RAM // RAM |
| 1432 | AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM |
| 1421 | 1433 | AM_RANGE(0x400000, 0x41ffff) AM_RAM_WRITE(metro_vram_0_w) AM_SHARE("vram_0") // Layer 0 |
| 1422 | 1434 | AM_RANGE(0x420000, 0x43ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 |
| 1423 | 1435 | AM_RANGE(0x440000, 0x45ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 |
| 1424 | 1436 | AM_RANGE(0x460000, 0x46ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 1425 | | AM_RANGE(0x470000, 0x473fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1426 | | AM_RANGE(0x474000, 0x474fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1427 | | AM_RANGE(0x478000, 0x4787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1428 | | AM_RANGE(0x478800, 0x478813) AM_RAM AM_SHARE("videoregs") // Video Registers |
| 1437 | AM_RANGE(0x470000, 0x471fff) AM_RAM // ??? |
| 1438 | AM_RANGE(0x472000, 0x473fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1439 | AM_RANGE(0x474000, 0x474fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1440 | AM_RANGE(0x478000, 0x4787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1441 | AM_RANGE(0x478800, 0x478813) AM_RAM AM_SHARE("videoregs") // Video Registers |
| 1429 | 1442 | AM_RANGE(0x478840, 0x47884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 1430 | 1443 | AM_RANGE(0x478860, 0x47886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 1431 | | AM_RANGE(0x478870, 0x47887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs |
| 1444 | AM_RANGE(0x478870, 0x47887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs |
| 1432 | 1445 | AM_RANGE(0x478880, 0x478881) AM_WRITENOP // ? increasing |
| 1433 | 1446 | AM_RANGE(0x478890, 0x478891) AM_WRITENOP // ? increasing |
| 1434 | | AM_RANGE(0x4788a2, 0x4788a3) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1435 | | AM_RANGE(0x4788a4, 0x4788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1436 | | AM_RANGE(0x4788a8, 0x4788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 1437 | | AM_RANGE(0x4788aa, 0x4788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1438 | | AM_RANGE(0x4788ac, 0x4788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1439 | | AM_RANGE(0x800000, 0x800001) AM_READWRITE(metro_soundstatus_r,metro_soundstatus_w) // From / To Sound CPU |
| 1440 | | AM_RANGE(0x800002, 0x800003) AM_READNOP AM_WRITE(metro_coin_lockout_1word_w) // Coin Lockout |
| 1447 | AM_RANGE(0x4788a2, 0x4788a3) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1448 | AM_RANGE(0x4788a4, 0x4788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1449 | AM_RANGE(0x4788a8, 0x4788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 1450 | AM_RANGE(0x4788aa, 0x4788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1451 | AM_RANGE(0x4788ac, 0x4788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1452 | AM_RANGE(0x800000, 0x800001) AM_READWRITE(metro_soundstatus_r,metro_soundstatus_w) // From / To Sound CPU |
| 1453 | AM_RANGE(0x800002, 0x800003) AM_READNOP AM_WRITE(metro_coin_lockout_1word_w) // Coin Lockout |
| 1441 | 1454 | AM_RANGE(0x800004, 0x800005) AM_READ_PORT("IN0") // Inputs |
| 1442 | 1455 | AM_RANGE(0x800006, 0x800007) AM_READ_PORT("IN1") // |
| 1443 | 1456 | AM_RANGE(0x800008, 0x800009) AM_READ_PORT("IN2") // |
| 1444 | 1457 | AM_RANGE(0x80000a, 0x80000b) AM_READ_PORT("DSW0") // |
| 1445 | 1458 | AM_RANGE(0x80000c, 0x80000d) AM_READ_PORT("DSW1") // |
| 1446 | 1459 | AM_RANGE(0x80000e, 0x80000f) AM_READ_PORT("IN3") // |
| 1460 | AM_RANGE(0xc00000, 0xc0ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 1447 | 1461 | ADDRESS_MAP_END |
| 1448 | 1462 | |
| 1449 | 1463 | |
| r19999 | r20000 | |
| 1452 | 1466 | ***************************************************************************/ |
| 1453 | 1467 | |
| 1454 | 1468 | static ADDRESS_MAP_START( poitto_map, AS_PROGRAM, 16, metro_state ) |
| 1455 | | AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM |
| 1456 | | AM_RANGE(0x400000, 0x40ffff) AM_RAM // RAM |
| 1469 | AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM |
| 1470 | AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 1471 | AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN0") AM_WRITE(metro_soundstatus_w) // To Sound CPU |
| 1472 | AM_RANGE(0x800002, 0x800003) AM_READ_PORT("IN1") // |
| 1473 | AM_RANGE(0x800004, 0x800005) AM_READ_PORT("DSW0") // |
| 1474 | AM_RANGE(0x800006, 0x800007) AM_READ_PORT("IN2") // |
| 1475 | AM_RANGE(0x800002, 0x800009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 1457 | 1476 | AM_RANGE(0xc00000, 0xc1ffff) AM_RAM_WRITE(metro_vram_0_w) AM_SHARE("vram_0") // Layer 0 |
| 1458 | 1477 | AM_RANGE(0xc20000, 0xc3ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 |
| 1459 | 1478 | AM_RANGE(0xc40000, 0xc5ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 |
| 1460 | 1479 | AM_RANGE(0xc60000, 0xc6ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 1461 | | AM_RANGE(0xc70000, 0xc73fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1462 | | AM_RANGE(0xc74000, 0xc74fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1463 | | AM_RANGE(0xc78000, 0xc787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1464 | | AM_RANGE(0xc78800, 0xc78813) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1480 | AM_RANGE(0xc70000, 0xc71fff) AM_RAM // ??? |
| 1481 | AM_RANGE(0xc72000, 0xc73fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1482 | AM_RANGE(0xc74000, 0xc74fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1483 | AM_RANGE(0xc78000, 0xc787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1484 | AM_RANGE(0xc78800, 0xc78813) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1465 | 1485 | AM_RANGE(0xc78840, 0xc7884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 1466 | 1486 | AM_RANGE(0xc78860, 0xc7886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 1467 | | AM_RANGE(0xc78870, 0xc7887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs |
| 1487 | AM_RANGE(0xc78870, 0xc7887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs |
| 1468 | 1488 | AM_RANGE(0xc78880, 0xc78881) AM_WRITENOP // ? increasing |
| 1469 | 1489 | AM_RANGE(0xc78890, 0xc78891) AM_WRITENOP // ? increasing |
| 1470 | | AM_RANGE(0xc788a2, 0xc788a3) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1471 | | AM_RANGE(0xc788a4, 0xc788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1472 | | AM_RANGE(0xc788a8, 0xc788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 1473 | | AM_RANGE(0xc788aa, 0xc788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1474 | | AM_RANGE(0xc788ac, 0xc788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1475 | | AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN0") AM_WRITE(metro_soundstatus_w) // To Sound CPU |
| 1476 | | AM_RANGE(0x800002, 0x800003) AM_READ_PORT("IN1") |
| 1477 | | AM_RANGE(0x800004, 0x800005) AM_READ_PORT("DSW0") |
| 1478 | | AM_RANGE(0x800006, 0x800007) AM_READ_PORT("IN2") |
| 1479 | | AM_RANGE(0x800002, 0x800009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 1490 | AM_RANGE(0xc788a2, 0xc788a3) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1491 | AM_RANGE(0xc788a4, 0xc788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1492 | AM_RANGE(0xc788a8, 0xc788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 1493 | AM_RANGE(0xc788aa, 0xc788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1494 | AM_RANGE(0xc788ac, 0xc788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1480 | 1495 | ADDRESS_MAP_END |
| 1481 | 1496 | |
| 1482 | 1497 | |
| r19999 | r20000 | |
| 1485 | 1500 | ***************************************************************************/ |
| 1486 | 1501 | |
| 1487 | 1502 | static ADDRESS_MAP_START( skyalert_map, AS_PROGRAM, 16, metro_state ) |
| 1488 | | AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM |
| 1489 | | AM_RANGE(0xc00000, 0xc0ffff) AM_RAM // RAM |
| 1503 | AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM |
| 1504 | AM_RANGE(0x400000, 0x400001) AM_READWRITE(metro_soundstatus_r,metro_soundstatus_w) // From / To Sound CPU |
| 1505 | AM_RANGE(0x400002, 0x400003) AM_READNOP AM_WRITE(metro_coin_lockout_1word_w) // Coin Lockout |
| 1506 | AM_RANGE(0x400004, 0x400005) AM_READ_PORT("IN0") // Inputs |
| 1507 | AM_RANGE(0x400006, 0x400007) AM_READ_PORT("IN1") // |
| 1508 | AM_RANGE(0x400008, 0x400009) AM_READ_PORT("IN2") // |
| 1509 | AM_RANGE(0x40000a, 0x40000b) AM_READ_PORT("DSW0") // |
| 1510 | AM_RANGE(0x40000c, 0x40000d) AM_READ_PORT("DSW1") // |
| 1511 | AM_RANGE(0x40000e, 0x40000f) AM_READ_PORT("IN3") // |
| 1490 | 1512 | AM_RANGE(0x800000, 0x81ffff) AM_RAM_WRITE(metro_vram_0_w) AM_SHARE("vram_0") // Layer 0 |
| 1491 | 1513 | AM_RANGE(0x820000, 0x83ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 |
| 1492 | 1514 | AM_RANGE(0x840000, 0x85ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 |
| 1493 | 1515 | AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 1494 | | AM_RANGE(0x870000, 0x873fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1495 | | AM_RANGE(0x874000, 0x874fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1496 | | AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1497 | | AM_RANGE(0x878800, 0x878813) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1516 | AM_RANGE(0x870000, 0x871fff) AM_RAM // ??? |
| 1517 | AM_RANGE(0x872000, 0x873fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1518 | AM_RANGE(0x874000, 0x874fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1519 | AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1520 | AM_RANGE(0x878800, 0x878813) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1498 | 1521 | AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 1499 | 1522 | AM_RANGE(0x878860, 0x87886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 1500 | | AM_RANGE(0x878870, 0x87887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 1523 | AM_RANGE(0x878870, 0x87887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 1501 | 1524 | AM_RANGE(0x878880, 0x878881) AM_WRITENOP // ? increasing |
| 1502 | 1525 | AM_RANGE(0x878890, 0x878891) AM_WRITENOP // ? increasing |
| 1503 | | AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1504 | | AM_RANGE(0x8788a4, 0x8788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1505 | | AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 1506 | | AM_RANGE(0x8788aa, 0x8788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1507 | | AM_RANGE(0x8788ac, 0x8788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1508 | | AM_RANGE(0x400000, 0x400001) AM_READWRITE(metro_soundstatus_r,metro_soundstatus_w) // From / To Sound CPU |
| 1509 | | AM_RANGE(0x400002, 0x400003) AM_READNOP AM_WRITE(metro_coin_lockout_1word_w) // Coin Lockout |
| 1510 | | AM_RANGE(0x400004, 0x400005) AM_READ_PORT("IN0") // Inputs |
| 1511 | | AM_RANGE(0x400006, 0x400007) AM_READ_PORT("IN1") // |
| 1512 | | AM_RANGE(0x400008, 0x400009) AM_READ_PORT("IN2") // |
| 1513 | | AM_RANGE(0x40000a, 0x40000b) AM_READ_PORT("DSW0") // |
| 1514 | | AM_RANGE(0x40000c, 0x40000d) AM_READ_PORT("DSW1") // |
| 1515 | | AM_RANGE(0x40000e, 0x40000f) AM_READ_PORT("IN3") // |
| 1526 | AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1527 | AM_RANGE(0x8788a4, 0x8788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1528 | AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 1529 | AM_RANGE(0x8788aa, 0x8788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1530 | AM_RANGE(0x8788ac, 0x8788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1531 | AM_RANGE(0xc00000, 0xc0ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 1516 | 1532 | ADDRESS_MAP_END |
| 1517 | 1533 | |
| 1518 | 1534 | |
| r19999 | r20000 | |
| 1521 | 1537 | ***************************************************************************/ |
| 1522 | 1538 | |
| 1523 | 1539 | static ADDRESS_MAP_START( pururun_map, AS_PROGRAM, 16, metro_state ) |
| 1524 | | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 1525 | | AM_RANGE(0x800000, 0x80ffff) AM_RAM // RAM |
| 1540 | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 1541 | AM_RANGE(0x400000, 0x400001) AM_READ_PORT("IN0") AM_WRITE(metro_soundstatus_w) // To Sound CPU |
| 1542 | AM_RANGE(0x400002, 0x400003) AM_READ_PORT("IN1") // |
| 1543 | AM_RANGE(0x400004, 0x400005) AM_READ_PORT("DSW0") // |
| 1544 | AM_RANGE(0x400006, 0x400007) AM_READ_PORT("IN2") // |
| 1545 | AM_RANGE(0x400002, 0x400009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 1546 | AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 1526 | 1547 | AM_RANGE(0xc00000, 0xc1ffff) AM_RAM_WRITE(metro_vram_0_w) AM_SHARE("vram_0") // Layer 0 |
| 1527 | 1548 | AM_RANGE(0xc20000, 0xc3ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 |
| 1528 | 1549 | AM_RANGE(0xc40000, 0xc5ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 |
| 1529 | 1550 | AM_RANGE(0xc60000, 0xc6ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 1530 | | AM_RANGE(0xc70000, 0xc73fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1531 | | AM_RANGE(0xc74000, 0xc74fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1532 | | AM_RANGE(0xc78000, 0xc787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1551 | AM_RANGE(0xc70000, 0xc71fff) AM_RAM // ??? |
| 1552 | AM_RANGE(0xc72000, 0xc73fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1553 | AM_RANGE(0xc74000, 0xc74fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1554 | AM_RANGE(0xc78000, 0xc787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1533 | 1555 | AM_RANGE(0xc78840, 0xc7884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 1534 | 1556 | AM_RANGE(0xc78860, 0xc7886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 1535 | | AM_RANGE(0xc78870, 0xc7887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs |
| 1557 | AM_RANGE(0xc78870, 0xc7887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs |
| 1536 | 1558 | AM_RANGE(0xc78880, 0xc78881) AM_WRITENOP // ? increasing |
| 1537 | 1559 | AM_RANGE(0xc78890, 0xc78891) AM_WRITENOP // ? increasing |
| 1538 | | AM_RANGE(0xc788a2, 0xc788a3) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1539 | | AM_RANGE(0xc788a4, 0xc788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1540 | | AM_RANGE(0xc788a8, 0xc788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 1541 | | AM_RANGE(0xc788aa, 0xc788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1542 | | AM_RANGE(0xc788ac, 0xc788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1543 | | AM_RANGE(0xc79700, 0xc79713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1544 | | AM_RANGE(0x400000, 0x400001) AM_READ_PORT("IN0") AM_WRITE(metro_soundstatus_w) // To Sound CPU |
| 1545 | | AM_RANGE(0x400002, 0x400003) AM_READ_PORT("IN1") |
| 1546 | | AM_RANGE(0x400004, 0x400005) AM_READ_PORT("DSW0") |
| 1547 | | AM_RANGE(0x400006, 0x400007) AM_READ_PORT("IN2") |
| 1548 | | AM_RANGE(0x400002, 0x400009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 1560 | AM_RANGE(0xc788a2, 0xc788a3) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1561 | AM_RANGE(0xc788a4, 0xc788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1562 | AM_RANGE(0xc788a8, 0xc788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 1563 | AM_RANGE(0xc788aa, 0xc788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1564 | AM_RANGE(0xc788ac, 0xc788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1565 | AM_RANGE(0xc79700, 0xc79713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1549 | 1566 | ADDRESS_MAP_END |
| 1550 | 1567 | |
| 1551 | 1568 | |
| r19999 | r20000 | |
| 1554 | 1571 | ***************************************************************************/ |
| 1555 | 1572 | |
| 1556 | 1573 | static ADDRESS_MAP_START( toride2g_map, AS_PROGRAM, 16, metro_state ) |
| 1557 | | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 1558 | | AM_RANGE(0x400000, 0x4cffff) AM_RAM // RAM (4xc000-4xffff mirrored?) |
| 1574 | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 1575 | AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 1576 | AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN0") AM_WRITE(metro_soundstatus_w) // Watchdog (R)? / To Sound CPU (W) |
| 1577 | AM_RANGE(0x800002, 0x800003) AM_READ_PORT("IN1") // |
| 1578 | AM_RANGE(0x800004, 0x800005) AM_READ_PORT("DSW0") // |
| 1579 | AM_RANGE(0x800006, 0x800007) AM_READ_PORT("IN2") // |
| 1580 | AM_RANGE(0x800002, 0x800009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 1559 | 1581 | AM_RANGE(0xc00000, 0xc1ffff) AM_RAM_WRITE(metro_vram_0_w) AM_SHARE("vram_0") // Layer 0 |
| 1560 | 1582 | AM_RANGE(0xc20000, 0xc3ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 |
| 1561 | 1583 | AM_RANGE(0xc40000, 0xc5ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 |
| 1562 | 1584 | AM_RANGE(0xc60000, 0xc6ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 1563 | | AM_RANGE(0xc70000, 0xc73fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1564 | | AM_RANGE(0xc74000, 0xc74fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1565 | | AM_RANGE(0xc78000, 0xc787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1585 | AM_RANGE(0xc70000, 0xc71fff) AM_RAM // ??? |
| 1586 | AM_RANGE(0xc72000, 0xc73fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1587 | AM_RANGE(0xc74000, 0xc74fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1588 | AM_RANGE(0xc78000, 0xc787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1566 | 1589 | AM_RANGE(0xc78840, 0xc7884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 1567 | 1590 | AM_RANGE(0xc78860, 0xc7886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 1568 | | AM_RANGE(0xc78870, 0xc7887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs |
| 1591 | AM_RANGE(0xc78870, 0xc7887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs |
| 1569 | 1592 | AM_RANGE(0xc78880, 0xc78881) AM_WRITENOP // ? increasing |
| 1570 | 1593 | AM_RANGE(0xc78890, 0xc78891) AM_WRITENOP // ? increasing |
| 1571 | | AM_RANGE(0xc788a2, 0xc788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1572 | | AM_RANGE(0xc788a4, 0xc788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1573 | | AM_RANGE(0xc788a8, 0xc788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 1574 | | AM_RANGE(0xc788aa, 0xc788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1575 | | AM_RANGE(0xc788ac, 0xc788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1576 | | AM_RANGE(0xc79700, 0xc79713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1577 | | |
| 1578 | | AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN0") AM_WRITE(metro_soundstatus_w) // To Sound CPU |
| 1579 | | AM_RANGE(0x800002, 0x800003) AM_READ_PORT("IN1") |
| 1580 | | AM_RANGE(0x800004, 0x800005) AM_READ_PORT("DSW0") |
| 1581 | | AM_RANGE(0x800006, 0x800007) AM_READ_PORT("IN2") |
| 1582 | | AM_RANGE(0x800002, 0x800009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 1583 | | |
| 1594 | AM_RANGE(0xc788a2, 0xc788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1595 | AM_RANGE(0xc788a4, 0xc788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1596 | AM_RANGE(0xc788a8, 0xc788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU |
| 1597 | AM_RANGE(0xc788aa, 0xc788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1598 | AM_RANGE(0xc788ac, 0xc788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1599 | AM_RANGE(0xc79700, 0xc79713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1584 | 1600 | ADDRESS_MAP_END |
| 1585 | 1601 | |
| 1586 | 1602 | |
| r19999 | r20000 | |
| 1590 | 1606 | |
| 1591 | 1607 | WRITE16_MEMBER(metro_state::blzntrnd_sound_w) |
| 1592 | 1608 | { |
| 1593 | | |
| 1594 | 1609 | soundlatch_byte_w(space, offset, data >> 8); |
| 1595 | 1610 | m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); |
| 1596 | 1611 | } |
| r19999 | r20000 | |
| 1629 | 1644 | ADDRESS_MAP_END |
| 1630 | 1645 | |
| 1631 | 1646 | static ADDRESS_MAP_START( blzntrnd_map, AS_PROGRAM, 16, metro_state ) |
| 1632 | | AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM |
| 1633 | | AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM |
| 1634 | | // AM_RANGE(0x300000, 0x300001) AM_READNOP // Sound |
| 1647 | AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM |
| 1635 | 1648 | AM_RANGE(0x200000, 0x21ffff) AM_RAM_WRITE(metro_vram_0_w) AM_SHARE("vram_0") // Layer 0 |
| 1636 | 1649 | AM_RANGE(0x220000, 0x23ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 |
| 1637 | 1650 | AM_RANGE(0x240000, 0x25ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 |
| 1638 | 1651 | AM_RANGE(0x260000, 0x26ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 1639 | 1652 | AM_RANGE(0x260000, 0x26ffff) AM_WRITENOP // ?????? |
| 1640 | | AM_RANGE(0x270000, 0x273fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1641 | | AM_RANGE(0x274000, 0x274fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1642 | | AM_RANGE(0x278000, 0x2787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1653 | AM_RANGE(0x270000, 0x271fff) AM_RAM // ??? |
| 1654 | AM_RANGE(0x272000, 0x273fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1655 | AM_RANGE(0x274000, 0x274fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1656 | AM_RANGE(0x278000, 0x2787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1643 | 1657 | AM_RANGE(0x278860, 0x27886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 1644 | | AM_RANGE(0x278870, 0x27887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 1658 | AM_RANGE(0x278870, 0x27887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 1645 | 1659 | AM_RANGE(0x278890, 0x278891) AM_WRITENOP // ? increasing |
| 1646 | | AM_RANGE(0x2788a2, 0x2788a3) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1647 | | AM_RANGE(0x2788a4, 0x2788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1648 | | AM_RANGE(0x2788aa, 0x2788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1649 | | AM_RANGE(0x2788ac, 0x2788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1650 | | AM_RANGE(0x279700, 0x279713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1660 | AM_RANGE(0x2788a2, 0x2788a3) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1661 | AM_RANGE(0x2788a4, 0x2788a5) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1662 | AM_RANGE(0x2788aa, 0x2788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1663 | AM_RANGE(0x2788ac, 0x2788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1664 | AM_RANGE(0x279700, 0x279713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1665 | // AM_RANGE(0x300000, 0x300001) AM_READNOP // Sound |
| 1651 | 1666 | |
| 1652 | 1667 | AM_RANGE(0x400000, 0x43ffff) AM_RAM_WRITE(metro_k053936_w) AM_SHARE("k053936_ram") // 053936 |
| 1653 | | AM_RANGE(0x500000, 0x500fff) AM_DEVWRITE_LEGACY("k053936", k053936_linectrl_w) // 053936 line control |
| 1654 | | AM_RANGE(0x600000, 0x60001f) AM_DEVWRITE_LEGACY("k053936", k053936_ctrl_w) // 053936 control |
| 1668 | AM_RANGE(0x500000, 0x500fff) AM_DEVWRITE_LEGACY("k053936", k053936_linectrl_w) // 053936 line control |
| 1669 | AM_RANGE(0x600000, 0x60001f) AM_DEVWRITE_LEGACY("k053936", k053936_ctrl_w) // 053936 control |
| 1655 | 1670 | |
| 1656 | | AM_RANGE(0xe00000, 0xe00001) AM_READ_PORT("DSW0") AM_WRITENOP // Inputs |
| 1657 | | AM_RANGE(0xe00002, 0xe00003) AM_READ_PORT("DSW1") AM_WRITE(blzntrnd_sound_w) // |
| 1671 | AM_RANGE(0xe00000, 0xe00001) AM_READ_PORT("DSW0") AM_WRITENOP // Inputs |
| 1672 | AM_RANGE(0xe00002, 0xe00003) AM_READ_PORT("DSW1") AM_WRITE(blzntrnd_sound_w) // |
| 1658 | 1673 | AM_RANGE(0xe00004, 0xe00005) AM_READ_PORT("IN0") // |
| 1659 | 1674 | AM_RANGE(0xe00006, 0xe00007) AM_READ_PORT("IN1") // |
| 1660 | 1675 | AM_RANGE(0xe00008, 0xe00009) AM_READ_PORT("IN2") // |
| 1676 | AM_RANGE(0xf00000, 0xf0ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 1661 | 1677 | ADDRESS_MAP_END |
| 1662 | 1678 | |
| 1663 | 1679 | |
| r19999 | r20000 | |
| 1672 | 1688 | } |
| 1673 | 1689 | |
| 1674 | 1690 | static ADDRESS_MAP_START( mouja_map, AS_PROGRAM, 16, metro_state ) |
| 1675 | | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 1676 | | AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM |
| 1691 | AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM |
| 1677 | 1692 | AM_RANGE(0x400000, 0x41ffff) AM_RAM_WRITE(metro_vram_0_w) AM_SHARE("vram_0") // Layer 0 |
| 1678 | 1693 | AM_RANGE(0x420000, 0x43ffff) AM_RAM_WRITE(metro_vram_1_w) AM_SHARE("vram_1") // Layer 1 |
| 1679 | 1694 | AM_RANGE(0x440000, 0x45ffff) AM_RAM_WRITE(metro_vram_2_w) AM_SHARE("vram_2") // Layer 2 |
| 1680 | | AM_RANGE(0x470000, 0x473fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1681 | | AM_RANGE(0x474000, 0x474fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1682 | | AM_RANGE(0x478000, 0x4787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1683 | | AM_RANGE(0x47880e, 0x47880f) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1684 | | AM_RANGE(0x478810, 0x47881f) AM_WRITEONLY AM_SHARE("irq_levels") // IRQ Levels |
| 1685 | | AM_RANGE(0x478820, 0x47882f) AM_WRITEONLY AM_SHARE("irq_vectors") // IRQ Vectors |
| 1686 | | AM_RANGE(0x478830, 0x478831) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1687 | | AM_RANGE(0x478832, 0x478833) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1688 | | AM_RANGE(0x478834, 0x478835) AM_WRITE(mouja_irq_timer_ctrl_w) // IRQ set timer count |
| 1689 | | AM_RANGE(0x478836, 0x478837) AM_WRITE(watchdog_reset16_w) // Watchdog |
| 1690 | | AM_RANGE(0x478850, 0x47885b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs |
| 1695 | AM_RANGE(0x470000, 0x471fff) AM_RAM // ??? |
| 1696 | AM_RANGE(0x472000, 0x473fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1697 | AM_RANGE(0x474000, 0x474fff) AM_RAM AM_SHARE("spriteram") // Sprites |
| 1698 | AM_RANGE(0x478000, 0x4787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1699 | AM_RANGE(0x47880e, 0x47880f) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1700 | AM_RANGE(0x478810, 0x47881f) AM_WRITEONLY AM_SHARE("irq_levels") // IRQ Levels |
| 1701 | AM_RANGE(0x478820, 0x47882f) AM_WRITEONLY AM_SHARE("irq_vectors") // IRQ Vectors |
| 1702 | AM_RANGE(0x478830, 0x478831) AM_WRITEONLY AM_SHARE("irq_enable") // IRQ Enable |
| 1703 | AM_RANGE(0x478832, 0x478833) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge |
| 1704 | AM_RANGE(0x478834, 0x478835) AM_WRITE(mouja_irq_timer_ctrl_w) // IRQ set timer count |
| 1705 | AM_RANGE(0x478836, 0x478837) AM_WRITE(watchdog_reset16_w) // Watchdog |
| 1706 | AM_RANGE(0x478850, 0x47885b) AM_WRITEONLY AM_SHARE("scroll") // Scroll Regs |
| 1691 | 1707 | AM_RANGE(0x478860, 0x47886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 1692 | 1708 | AM_RANGE(0x478880, 0x478881) AM_READ_PORT("IN0") // Inputs |
| 1693 | 1709 | AM_RANGE(0x478882, 0x478883) AM_READ_PORT("IN1") // |
| 1694 | 1710 | AM_RANGE(0x478884, 0x478885) AM_READ_PORT("DSW0") // |
| 1695 | 1711 | AM_RANGE(0x478886, 0x478887) AM_READ_PORT("IN2") // |
| 1696 | 1712 | AM_RANGE(0x478888, 0x478889) AM_WRITENOP // ?? |
| 1697 | | AM_RANGE(0x479700, 0x479713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1713 | AM_RANGE(0x479700, 0x479713) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1698 | 1714 | AM_RANGE(0x800000, 0x800001) AM_WRITE(mouja_sound_rombank_w) |
| 1699 | 1715 | AM_RANGE(0xc00000, 0xc00003) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff) |
| 1700 | 1716 | AM_RANGE(0xd00000, 0xd00001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0xffff) |
| 1717 | AM_RANGE(0xf00000, 0xf0ffff) AM_RAM AM_MIRROR(0x0f0000) // RAM (mirrored) |
| 1701 | 1718 | #if 0 |
| 1702 | 1719 | AM_RANGE(0x460000, 0x46ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 1703 | 1720 | AM_RANGE(0x478840, 0x47884d) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 1704 | | AM_RANGE(0x47883a, 0x47883b) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1705 | | AM_RANGE(0x800002, 0x800009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 1721 | AM_RANGE(0x47883a, 0x47883b) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1722 | AM_RANGE(0x800002, 0x800009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout |
| 1706 | 1723 | #endif |
| 1707 | 1724 | ADDRESS_MAP_END |
| 1708 | 1725 | |
| r19999 | r20000 | |
| 1762 | 1779 | |
| 1763 | 1780 | AM_RANGE(0x760000, 0x76ffff) AM_READ(metro_bankedrom_r) // Banked ROM |
| 1764 | 1781 | |
| 1782 | AM_RANGE(0x770000, 0x771fff) AM_RAM // ??? |
| 1765 | 1783 | // AM_RANGE(0x772000, 0x773fff) AM_RAM |
| 1766 | | AM_RANGE(0x770000, 0x773fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1784 | AM_RANGE(0x772000, 0x773fff) AM_RAM_WRITE(paletteram_GGGGGRRRRRBBBBBx_word_w) AM_SHARE("paletteram") // Palette |
| 1767 | 1785 | |
| 1768 | 1786 | AM_RANGE(0x775000, 0x775fff) AM_RAM_WRITE(vram_0_clr_w) |
| 1769 | 1787 | AM_RANGE(0x776000, 0x776fff) AM_RAM_WRITE(vram_1_clr_w) |
| 1770 | 1788 | AM_RANGE(0x777000, 0x777fff) AM_RAM_WRITE(vram_2_clr_w) |
| 1771 | 1789 | |
| 1772 | | AM_RANGE(0x778000, 0x7787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1773 | | AM_RANGE(0x778800, 0x778813) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1790 | AM_RANGE(0x778000, 0x7787ff) AM_RAM AM_SHARE("tiletable") // Tiles Set |
| 1791 | AM_RANGE(0x778800, 0x778813) AM_WRITEONLY AM_SHARE("videoregs") // Video Registers |
| 1774 | 1792 | AM_RANGE(0x778840, 0x77884f) AM_WRITE(metro_blitter_w) AM_SHARE("blitter_regs") // Tiles Blitter |
| 1775 | 1793 | AM_RANGE(0x778860, 0x77886b) AM_WRITE(metro_window_w) AM_SHARE("window") // Tilemap Window |
| 1776 | | AM_RANGE(0x778870, 0x77887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 1794 | AM_RANGE(0x778870, 0x77887b) AM_WRITEONLY AM_SHARE("scroll") // Scroll |
| 1777 | 1795 | AM_RANGE(0x778890, 0x778891) AM_WRITENOP // ? increasing |
| 1778 | 1796 | AM_RANGE(0x7788a2, 0x7788a3) AM_WRITE(metro_irq_cause_w) // IRQ Cause |
| 1779 | 1797 | AM_RANGE(0x7788a4, 0x7788a5) AM_WRITE(puzzlet_irq_enable_w) AM_SHARE("irq_enable") // IRQ Enable |
| 1780 | 1798 | |
| 1781 | | AM_RANGE(0x7788aa, 0x7788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1782 | | AM_RANGE(0x7788ac, 0x7788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1799 | AM_RANGE(0x7788aa, 0x7788ab) AM_WRITEONLY AM_SHARE("rombank") // Rom Bank |
| 1800 | AM_RANGE(0x7788ac, 0x7788ad) AM_WRITEONLY AM_SHARE("screenctrl") // Screen Control |
| 1783 | 1801 | |
| 1784 | 1802 | AM_RANGE(0x7f2000, 0x7f3fff) AM_RAM |
| 1785 | 1803 | |
| r19999 | r20000 | |
| 2570 | 2588 | COINS |
| 2571 | 2589 | |
| 2572 | 2590 | PORT_START("DSW0") // $400006 |
| 2573 | | PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") |
| 2591 | PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") |
| 2574 | 2592 | PORT_DIPSETTING( 0x0001, "1" ) |
| 2575 | 2593 | PORT_DIPSETTING( 0x0000, "2" ) |
| 2576 | 2594 | PORT_DIPSETTING( 0x0003, "3" ) |
| r19999 | r20000 | |
| 2580 | 2598 | PORT_DIPSETTING( 0x000c, DEF_STR( Normal ) ) |
| 2581 | 2599 | PORT_DIPSETTING( 0x0004, DEF_STR( Hard ) ) |
| 2582 | 2600 | PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) ) |
| 2583 | | PORT_DIPNAME( 0x0010, 0x0000, "Nudity" ) PORT_DIPLOCATION("SW2:5") /* Manual calls this "Sexy Version" ;-) */ |
| 2601 | PORT_DIPNAME( 0x0010, 0x0000, "Nudity" ) PORT_DIPLOCATION("SW2:5") // Manual calls this "Sexy Version" |
| 2584 | 2602 | PORT_DIPSETTING( 0x0010, "Partial" ) |
| 2585 | 2603 | PORT_DIPSETTING( 0x0000, "Full" ) |
| 2586 | | PORT_SERVICE_DIPLOC( 0x0020, IP_ACTIVE_LOW, "SW2:6" ) /* Manual states "Don't Change" */ |
| 2604 | PORT_DIPNAME( 0x0020, 0x0020, "Service Mode / Free Play" ) PORT_DIPLOCATION("SW2:6") // Keep Start2 pressed during boot - Manual states "Don't Change" |
| 2605 | PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) |
| 2606 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 2587 | 2607 | PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:7") |
| 2588 | 2608 | PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) |
| 2589 | 2609 | PORT_DIPSETTING( 0x0040, DEF_STR( Yes ) ) |
| r19999 | r20000 | |
| 3103 | 3123 | PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:5") |
| 3104 | 3124 | PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) |
| 3105 | 3125 | PORT_DIPSETTING( 0x1000, DEF_STR( Yes ) ) |
| 3106 | | PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:6") |
| 3126 | PORT_DIPNAME( 0x2000, 0x2000, "Service Mode / Free Play" ) PORT_DIPLOCATION("SW2:6") // Keep Start2 pressed during boot |
| 3107 | 3127 | PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) |
| 3108 | 3128 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 3109 | | PORT_DIPNAME( 0xc000, 0xc000, "Helps" ) PORT_DIPLOCATION("SW2:7,8") |
| 3129 | PORT_DIPNAME( 0xc000, 0xc000, "Helps" ) PORT_DIPLOCATION("SW2:7,8") |
| 3110 | 3130 | PORT_DIPSETTING( 0x0000, "1" ) |
| 3111 | 3131 | PORT_DIPSETTING( 0x4000, "2" ) |
| 3112 | 3132 | PORT_DIPSETTING( 0xc000, "3" ) |
| r19999 | r20000 | |
| 3330 | 3350 | }; |
| 3331 | 3351 | |
| 3332 | 3352 | static GFXDECODE_START( i4100 ) |
| 3333 | | GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x4, 0x0, 0x200 ) // [0] 4 Bit Tiles |
| 3353 | GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x4, 0x0, 0x100 ) // [0] 4 Bit Tiles |
| 3334 | 3354 | GFXDECODE_END |
| 3335 | 3355 | |
| 3336 | 3356 | static GFXDECODE_START( i4220 ) |
| 3337 | | GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x4, 0x0, 0x200 ) // [0] 4 Bit Tiles |
| 3338 | | GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x8h, 0x0, 0x20 ) // [1] 8 Bit Tiles |
| 3357 | GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x4, 0x0, 0x100 ) // [0] 4 Bit Tiles |
| 3358 | GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x8h, 0x0, 0x10 ) // [1] 8 Bit Tiles |
| 3339 | 3359 | GFXDECODE_END |
| 3340 | 3360 | |
| 3341 | 3361 | static GFXDECODE_START( blzntrnd ) |
| 3342 | | GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x4, 0x0, 0x200 ) // [0] 4 Bit Tiles |
| 3343 | | GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x8h, 0x0, 0x20 ) // [1] 8 Bit Tiles |
| 3344 | | GFXDECODE_ENTRY( "gfx3", 0, layout_053936, 0x0, 0x20 ) // [2] 053936 Tiles |
| 3362 | GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x4, 0x0, 0x100 ) // [0] 4 Bit Tiles |
| 3363 | GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x8h, 0x0, 0x10 ) // [1] 8 Bit Tiles |
| 3364 | GFXDECODE_ENTRY( "gfx3", 0, layout_053936, 0x0, 0x10 ) // [2] 053936 Tiles |
| 3345 | 3365 | GFXDECODE_END |
| 3346 | 3366 | |
| 3347 | 3367 | static GFXDECODE_START( gstrik2 ) |
| 3348 | | GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x4, 0x0, 0x200 ) // [0] 4 Bit Tiles |
| 3349 | | GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x8h, 0x0, 0x20 ) // [1] 8 Bit Tiles |
| 3350 | | GFXDECODE_ENTRY( "gfx3", 0, layout_053936_16,0x0, 0x20 ) // [2] 053936 Tiles |
| 3368 | GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x4, 0x0, 0x100 ) // [0] 4 Bit Tiles |
| 3369 | GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x8h, 0x0, 0x10 ) // [1] 8 Bit Tiles |
| 3370 | GFXDECODE_ENTRY( "gfx3", 0, layout_053936_16,0x0, 0x10 ) // [2] 053936 Tiles |
| 3351 | 3371 | GFXDECODE_END |
| 3352 | 3372 | |
| 3353 | 3373 | static GFXDECODE_START( i4300 ) |
| 3354 | | GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x4, 0x0, 0x200 ) // [0] 4 Bit Tiles |
| 3355 | | GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x8h, 0x0, 0x20 ) // [1] 8 Bit Tiles |
| 3356 | | GFXDECODE_ENTRY( "gfx1", 0, layout_16x16x4q, 0x0, 0x200 ) // [2] 4 Bit Tiles 16x16 |
| 3357 | | GFXDECODE_ENTRY( "gfx1", 0, layout_16x16x8o, 0x0, 0x200 ) // [2] 8 Bit Tiles 16x16 |
| 3374 | GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x4, 0x0, 0x100 ) // [0] 4 Bit Tiles |
| 3375 | GFXDECODE_ENTRY( "gfx1", 0, layout_8x8x8h, 0x0, 0x10 ) // [1] 8 Bit Tiles |
| 3376 | GFXDECODE_ENTRY( "gfx1", 0, layout_16x16x4q, 0x0, 0x100 ) // [2] 4 Bit Tiles 16x16 |
| 3377 | GFXDECODE_ENTRY( "gfx1", 0, layout_16x16x8o, 0x0, 0x100 ) // [2] 8 Bit Tiles 16x16 |
| 3358 | 3378 | GFXDECODE_END |
| 3359 | 3379 | |
| 3360 | 3380 | |
| r19999 | r20000 | |
| 3368 | 3388 | |
| 3369 | 3389 | MACHINE_START_MEMBER(metro_state,metro) |
| 3370 | 3390 | { |
| 3371 | | |
| 3372 | 3391 | save_item(NAME(m_blitter_bit)); |
| 3373 | 3392 | save_item(NAME(m_irq_line)); |
| 3374 | 3393 | save_item(NAME(m_requested_int)); |
| r19999 | r20000 | |
| 3386 | 3405 | |
| 3387 | 3406 | MACHINE_RESET_MEMBER(metro_state,metro) |
| 3388 | 3407 | { |
| 3389 | | |
| 3390 | 3408 | if (m_irq_line == -1) |
| 3391 | 3409 | machine().device("maincpu")->execute().set_irq_acknowledge_callback(metro_irq_callback); |
| 3392 | 3410 | } |
| r19999 | r20000 | |
| 3418 | 3436 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 3419 | 3437 | |
| 3420 | 3438 | MCFG_GFXDECODE(i4220) |
| 3421 | | MCFG_PALETTE_LENGTH(8192) |
| 3439 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220_offset) |
| 3440 | MCFG_PALETTE_LENGTH(0x1000) |
| 3422 | 3441 | |
| 3423 | | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220) |
| 3424 | | |
| 3425 | 3442 | /* sound hardware */ |
| 3426 | 3443 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 3427 | 3444 | |
| r19999 | r20000 | |
| 3452 | 3469 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 3453 | 3470 | |
| 3454 | 3471 | MCFG_GFXDECODE(i4220) |
| 3455 | | MCFG_PALETTE_LENGTH(8192) |
| 3472 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220_offset) |
| 3473 | MCFG_PALETTE_LENGTH(0x1000) |
| 3456 | 3474 | |
| 3457 | | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220) |
| 3458 | | |
| 3459 | 3475 | /* sound hardware */ |
| 3460 | 3476 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 3461 | 3477 | |
| r19999 | r20000 | |
| 3486 | 3502 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 3487 | 3503 | |
| 3488 | 3504 | MCFG_GFXDECODE(i4220) |
| 3489 | | MCFG_PALETTE_LENGTH(8192) |
| 3505 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220_offset) |
| 3506 | MCFG_PALETTE_LENGTH(0x1000) |
| 3490 | 3507 | |
| 3491 | | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220) |
| 3492 | | |
| 3493 | 3508 | /* sound hardware */ |
| 3494 | 3509 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 3495 | 3510 | |
| r19999 | r20000 | |
| 3520 | 3535 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 3521 | 3536 | |
| 3522 | 3537 | MCFG_GFXDECODE(i4220) |
| 3523 | | MCFG_PALETTE_LENGTH(8192) |
| 3538 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220_offset) |
| 3539 | MCFG_PALETTE_LENGTH(0x1000) |
| 3524 | 3540 | |
| 3525 | | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220) |
| 3526 | | |
| 3527 | 3541 | /* sound hardware */ |
| 3528 | 3542 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 3529 | 3543 | |
| r19999 | r20000 | |
| 3554 | 3568 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 3555 | 3569 | |
| 3556 | 3570 | MCFG_GFXDECODE(i4220) |
| 3557 | | MCFG_PALETTE_LENGTH(8192) |
| 3571 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220_offset) |
| 3572 | MCFG_PALETTE_LENGTH(0x1000) |
| 3558 | 3573 | |
| 3559 | | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220) |
| 3560 | | |
| 3561 | 3574 | /* sound hardware */ |
| 3562 | 3575 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 3563 | 3576 | |
| r19999 | r20000 | |
| 3592 | 3605 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 3593 | 3606 | |
| 3594 | 3607 | MCFG_GFXDECODE(i4220) |
| 3595 | | MCFG_PALETTE_LENGTH(8192) |
| 3608 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220_offset) |
| 3609 | MCFG_PALETTE_LENGTH(0x1000) |
| 3596 | 3610 | |
| 3597 | | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220) |
| 3598 | | |
| 3599 | 3611 | /* sound hardware */ |
| 3600 | 3612 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 3601 | 3613 | |
| r19999 | r20000 | |
| 3634 | 3646 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) |
| 3635 | 3647 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 3636 | 3648 | |
| 3637 | | MCFG_GFXDECODE(i4100) |
| 3638 | | MCFG_PALETTE_LENGTH(8192) |
| 3649 | MCFG_GFXDECODE(i4220) |
| 3650 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220) |
| 3651 | MCFG_PALETTE_LENGTH(0x1000) |
| 3639 | 3652 | |
| 3640 | | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100) |
| 3641 | | |
| 3642 | 3653 | /* sound hardware */ |
| 3643 | 3654 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 3644 | 3655 | |
| r19999 | r20000 | |
| 3677 | 3688 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 3678 | 3689 | |
| 3679 | 3690 | MCFG_GFXDECODE(i4100) |
| 3680 | | MCFG_PALETTE_LENGTH(8192) |
| 3681 | | |
| 3682 | 3691 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100) |
| 3692 | MCFG_PALETTE_LENGTH(0x1000) |
| 3683 | 3693 | |
| 3684 | 3694 | /* sound hardware */ |
| 3685 | 3695 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| r19999 | r20000 | |
| 3719 | 3729 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 3720 | 3730 | |
| 3721 | 3731 | MCFG_GFXDECODE(i4220) |
| 3722 | | MCFG_PALETTE_LENGTH(8192) |
| 3723 | | |
| 3724 | 3732 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220) |
| 3733 | MCFG_PALETTE_LENGTH(0x1000) |
| 3725 | 3734 | |
| 3726 | 3735 | /* sound hardware */ |
| 3727 | 3736 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| r19999 | r20000 | |
| 3761 | 3770 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 3762 | 3771 | |
| 3763 | 3772 | MCFG_GFXDECODE(i4100) |
| 3764 | | MCFG_PALETTE_LENGTH(8192) |
| 3765 | | |
| 3766 | 3773 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100) |
| 3774 | MCFG_PALETTE_LENGTH(0x1000) |
| 3767 | 3775 | |
| 3768 | 3776 | /* sound hardware */ |
| 3769 | 3777 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| r19999 | r20000 | |
| 3802 | 3810 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 3803 | 3811 | |
| 3804 | 3812 | MCFG_GFXDECODE(i4100) |
| 3805 | | MCFG_PALETTE_LENGTH(8192) |
| 3806 | | |
| 3807 | 3813 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100) |
| 3814 | MCFG_PALETTE_LENGTH(0x1000) |
| 3808 | 3815 | |
| 3809 | 3816 | /* sound hardware */ |
| 3810 | 3817 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| r19999 | r20000 | |
| 3837 | 3844 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 3838 | 3845 | |
| 3839 | 3846 | MCFG_GFXDECODE(i4300) |
| 3840 | | MCFG_PALETTE_LENGTH(8192) |
| 3841 | | |
| 3842 | 3847 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300) |
| 3848 | MCFG_PALETTE_LENGTH(0x1000) |
| 3843 | 3849 | |
| 3844 | 3850 | /* sound hardware */ |
| 3845 | 3851 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| r19999 | r20000 | |
| 3873 | 3879 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 3874 | 3880 | |
| 3875 | 3881 | MCFG_GFXDECODE(i4300) |
| 3876 | | MCFG_PALETTE_LENGTH(8192) |
| 3877 | | |
| 3878 | 3882 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300) |
| 3883 | MCFG_PALETTE_LENGTH(0x1000) |
| 3879 | 3884 | |
| 3880 | 3885 | /* sound hardware */ |
| 3881 | 3886 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| r19999 | r20000 | |
| 3910 | 3915 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 3911 | 3916 | |
| 3912 | 3917 | MCFG_GFXDECODE(i4300) |
| 3913 | | MCFG_PALETTE_LENGTH(8192) |
| 3914 | | |
| 3915 | 3918 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300) |
| 3919 | MCFG_PALETTE_LENGTH(0x1000) |
| 3916 | 3920 | |
| 3917 | 3921 | /* sound hardware */ |
| 3918 | 3922 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| r19999 | r20000 | |
| 3947 | 3951 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 3948 | 3952 | |
| 3949 | 3953 | MCFG_GFXDECODE(i4300) |
| 3950 | | MCFG_PALETTE_LENGTH(8192) |
| 3951 | | |
| 3952 | 3954 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300) |
| 3955 | MCFG_PALETTE_LENGTH(0x1000) |
| 3953 | 3956 | |
| 3954 | 3957 | /* sound hardware */ |
| 3955 | 3958 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| r19999 | r20000 | |
| 3989 | 3992 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 3990 | 3993 | |
| 3991 | 3994 | MCFG_GFXDECODE(i4100) |
| 3992 | | MCFG_PALETTE_LENGTH(8192) |
| 3993 | | |
| 3994 | 3995 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100) |
| 3996 | MCFG_PALETTE_LENGTH(0x1000) |
| 3995 | 3997 | |
| 3996 | 3998 | /* sound hardware */ |
| 3997 | 3999 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| r19999 | r20000 | |
| 4031 | 4033 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 4032 | 4034 | |
| 4033 | 4035 | MCFG_GFXDECODE(i4100) |
| 4034 | | MCFG_PALETTE_LENGTH(8192) |
| 4035 | | |
| 4036 | 4036 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100) |
| 4037 | MCFG_PALETTE_LENGTH(0x1000) |
| 4037 | 4038 | |
| 4038 | 4039 | /* sound hardware */ |
| 4039 | 4040 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| r19999 | r20000 | |
| 4072 | 4073 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) |
| 4073 | 4074 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 4074 | 4075 | |
| 4075 | | MCFG_GFXDECODE(i4100) |
| 4076 | | MCFG_PALETTE_LENGTH(8192) |
| 4076 | MCFG_GFXDECODE(i4220) |
| 4077 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220) |
| 4078 | MCFG_PALETTE_LENGTH(0x1000) |
| 4077 | 4079 | |
| 4078 | | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100) |
| 4079 | | |
| 4080 | 4080 | /* sound hardware */ |
| 4081 | 4081 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 4082 | 4082 | |
| r19999 | r20000 | |
| 4116 | 4116 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 4117 | 4117 | |
| 4118 | 4118 | MCFG_GFXDECODE(i4100) |
| 4119 | | MCFG_PALETTE_LENGTH(8192) |
| 4120 | | |
| 4121 | 4119 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100) |
| 4120 | MCFG_PALETTE_LENGTH(0x1000) |
| 4122 | 4121 | |
| 4123 | 4122 | /* sound hardware */ |
| 4124 | 4123 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| r19999 | r20000 | |
| 4157 | 4156 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) |
| 4158 | 4157 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 4159 | 4158 | |
| 4160 | | MCFG_GFXDECODE(i4100) |
| 4161 | | MCFG_PALETTE_LENGTH(8192) |
| 4159 | MCFG_GFXDECODE(i4220) |
| 4160 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4220) |
| 4161 | MCFG_PALETTE_LENGTH(0x1000) |
| 4162 | 4162 | |
| 4163 | | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4100) |
| 4164 | | |
| 4165 | 4163 | /* sound hardware */ |
| 4166 | 4164 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 4167 | 4165 | |
| r19999 | r20000 | |
| 4194 | 4192 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 4195 | 4193 | |
| 4196 | 4194 | MCFG_GFXDECODE(i4300) |
| 4197 | | MCFG_PALETTE_LENGTH(8192) |
| 4198 | | |
| 4199 | 4195 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300) |
| 4196 | MCFG_PALETTE_LENGTH(0x1000) |
| 4200 | 4197 | |
| 4201 | 4198 | /* sound hardware */ |
| 4202 | 4199 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| r19999 | r20000 | |
| 4239 | 4236 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 4240 | 4237 | |
| 4241 | 4238 | MCFG_GFXDECODE(blzntrnd) |
| 4242 | | MCFG_PALETTE_LENGTH(8192) |
| 4243 | | |
| 4244 | 4239 | MCFG_VIDEO_START_OVERRIDE(metro_state,blzntrnd) |
| 4240 | MCFG_PALETTE_LENGTH(0x1000) |
| 4245 | 4241 | |
| 4246 | 4242 | MCFG_K053936_ADD("k053936", blzntrnd_k053936_intf) |
| 4247 | 4243 | |
| r19999 | r20000 | |
| 4287 | 4283 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 4288 | 4284 | |
| 4289 | 4285 | MCFG_GFXDECODE(gstrik2) |
| 4290 | | MCFG_PALETTE_LENGTH(8192) |
| 4291 | | |
| 4292 | 4286 | MCFG_VIDEO_START_OVERRIDE(metro_state,gstrik2) |
| 4287 | MCFG_PALETTE_LENGTH(0x1000) |
| 4293 | 4288 | |
| 4294 | 4289 | MCFG_K053936_ADD("k053936", gstrik2_k053936_intf) |
| 4295 | 4290 | |
| r19999 | r20000 | |
| 4325 | 4320 | MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro) |
| 4326 | 4321 | |
| 4327 | 4322 | MCFG_GFXDECODE(i4300) |
| 4328 | | MCFG_PALETTE_LENGTH(8192) |
| 4329 | | |
| 4330 | 4323 | MCFG_VIDEO_START_OVERRIDE(metro_state,metro_i4300) |
| 4324 | MCFG_PALETTE_LENGTH(0x1000) |
| 4331 | 4325 | |
| 4332 | 4326 | /* sound hardware */ |
| 4333 | 4327 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| r19999 | r20000 | |
| 5196 | 5190 | |
| 5197 | 5191 | /*************************************************************************** |
| 5198 | 5192 | |
| 5199 | | Mahjong Doukyuhsei (JPN Ver.) |
| 5193 | Mahjong Doukyuusei (JPN Ver.) |
| 5200 | 5194 | |
| 5201 | 5195 | (c)1995 make software/elf/media trading corp. |
| 5202 | 5196 | |
| r19999 | r20000 | |
| 6023 | 6017 | /* Unscramble the GFX ROMs */ |
| 6024 | 6018 | DRIVER_INIT_MEMBER(metro_state,balcube) |
| 6025 | 6019 | { |
| 6026 | | |
| 6027 | 6020 | const size_t len = memregion("gfx1")->bytes(); |
| 6028 | 6021 | UINT8 *src = memregion("gfx1")->base(); |
| 6029 | 6022 | UINT8 *end = src + len; |
| r19999 | r20000 | |
| 6107 | 6100 | GAME( 1992, skyalert, 0, skyalert, skyalert, metro_state, metro, ROT270, "Metro", "Sky Alert", GAME_SUPPORTS_SAVE ) |
| 6108 | 6101 | GAME( 1993, ladykill, 0, karatour, ladykill, metro_state, karatour, ROT90, "Yanyaka (Mitchell license)", "Lady Killer", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 6109 | 6102 | GAME( 1993, moegonta, ladykill, karatour, moegonta, metro_state, karatour, ROT90, "Yanyaka", "Moeyo Gonta!! (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 6110 | | GAME( 1993, poitto, 0, poitto, poitto, metro_state, metro, ROT0, "Metro / Able Corp.", "Poitto!", GAME_SUPPORTS_SAVE ) |
| 6103 | GAME( 1993, poitto, 0, poitto, poitto, metro_state, metro, ROT0, "Metro / Able Corp.", "Poitto!", GAME_SUPPORTS_SAVE ) |
| 6111 | 6104 | GAME( 1994, blzntrnd, 0, blzntrnd, blzntrnd, metro_state, blzntrnd, ROT0, "Human Amusement", "Blazing Tornado", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 6112 | | GAME( 1994, dharma, 0, dharma, dharma, metro_state, metro, ROT0, "Metro", "Dharma Doujou", GAME_SUPPORTS_SAVE ) |
| 6113 | | GAME( 1994, dharmak, dharma, dharma, dharma, metro_state, dharmak, ROT0, "Metro", "Dharma Doujou (Korea)", GAME_SUPPORTS_SAVE ) |
| 6105 | GAME( 1994, dharma, 0, dharma, dharma, metro_state, metro, ROT0, "Metro", "Dharma Doujou", GAME_SUPPORTS_SAVE ) |
| 6106 | GAME( 1994, dharmak, dharma, dharma, dharma, metro_state, dharmak, ROT0, "Metro", "Dharma Doujou (Korea)", GAME_SUPPORTS_SAVE ) |
| 6114 | 6107 | GAME( 1994, lastfort, 0, lastfort, lastfort, metro_state, metro, ROT0, "Metro", "Last Fortress - Toride", GAME_SUPPORTS_SAVE ) |
| 6115 | 6108 | GAME( 1994, lastforte, lastfort, lastfort, lastfero, metro_state, metro, ROT0, "Metro", "Last Fortress - Toride (Erotic, Rev C)", GAME_SUPPORTS_SAVE ) |
| 6116 | 6109 | GAME( 1994, lastfortea,lastfort, lastfort, lastfero, metro_state, metro, ROT0, "Metro", "Last Fortress - Toride (Erotic, Rev A)", GAME_SUPPORTS_SAVE ) |
| r19999 | r20000 | |
| 6120 | 6113 | GAME( 1994, toride2gg, toride2g, toride2g, toride2g, metro_state, metro, ROT0, "Metro", "Toride II Adauchi Gaiden (German)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 6121 | 6114 | GAME( 1994, toride2gk, toride2g, toride2g, toride2g, metro_state, metro, ROT0, "Metro", "Toride II Bok Su Oi Jeon Adauchi Gaiden (Korea)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 6122 | 6115 | GAME( 1994, toride2j, toride2g, toride2g, toride2g, metro_state, metro, ROT0, "Metro", "Toride II (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 6123 | | GAME( 1994, gunmast, 0, pururun, gunmast, metro_state, daitorid, ROT0, "Metro", "Gun Master", GAME_SUPPORTS_SAVE ) |
| 6116 | GAME( 1994, gunmast, 0, pururun, gunmast, metro_state, daitorid, ROT0, "Metro", "Gun Master", GAME_SUPPORTS_SAVE ) |
| 6124 | 6117 | GAME( 1995, daitorid, 0, daitorid, daitorid, metro_state, daitorid, ROT0, "Metro", "Daitoride", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 6125 | 6118 | GAME( 1996, daitorida, daitorid, daitoa, daitorid, metro_state, balcube, ROT0, "Metro", "Daitoride (YMF278B version)", GAME_SUPPORTS_SAVE ) |
| 6126 | 6119 | GAME( 1995, dokyusei, 0, dokyusei, dokyusei, metro_state, gakusai, ROT0, "Make Software / Elf / Media Trading", "Mahjong Doukyuusei", GAME_SUPPORTS_SAVE ) |
| 6127 | | GAME( 1995, dokyusp, 0, dokyusp, gakusai, metro_state, gakusai, ROT0, "Make Software / Elf / Media Trading", "Mahjong Doukyuusei Special", GAME_SUPPORTS_SAVE ) |
| 6128 | | GAME( 1995, msgogo, 0, msgogo, msgogo, metro_state, balcube, ROT0, "Metro", "Mouse Shooter GoGo", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 6129 | | GAME( 1995, pururun, 0, pururun, pururun, metro_state, daitorid, ROT0, "Metro / Banpresto", "Pururun", GAME_SUPPORTS_SAVE ) |
| 6130 | | GAME( 1995, puzzli, 0, daitorid, puzzli, metro_state, daitorid, ROT0, "Metro / Banpresto", "Puzzli", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 6120 | GAME( 1995, dokyusp, 0, dokyusp, gakusai, metro_state, gakusai, ROT0, "Make Software / Elf / Media Trading", "Mahjong Doukyuusei Special", GAME_SUPPORTS_SAVE ) |
| 6121 | GAME( 1995, msgogo, 0, msgogo, msgogo, metro_state, balcube, ROT0, "Metro", "Mouse Shooter GoGo", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 6122 | GAME( 1995, pururun, 0, pururun, pururun, metro_state, daitorid, ROT0, "Metro / Banpresto", "Pururun", GAME_SUPPORTS_SAVE ) |
| 6123 | GAME( 1995, puzzli, 0, daitorid, puzzli, metro_state, daitorid, ROT0, "Metro / Banpresto", "Puzzli", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 6131 | 6124 | GAME( 1996, 3kokushi, 0, 3kokushi, 3kokushi, metro_state, karatour, ROT0, "Mitchell", "Sankokushi (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 6132 | | GAME( 1996, balcube, 0, balcube, balcube, metro_state, balcube, ROT0, "Metro", "Bal Cube", GAME_SUPPORTS_SAVE ) |
| 6125 | GAME( 1996, balcube, 0, balcube, balcube, metro_state, balcube, ROT0, "Metro", "Bal Cube", GAME_SUPPORTS_SAVE ) |
| 6133 | 6126 | GAME( 1996, bangball, 0, bangball, bangball, metro_state, balcube, ROT0, "Banpresto / Kunihiko Tashiro+Goodhouse", "Bang Bang Ball (v1.05)", GAME_SUPPORTS_SAVE ) |
| 6134 | | GAME( 1996, gstrik2, 0, gstrik2, gstrik2, metro_state, blzntrnd, ROT0, "Human Amusement", "Grand Striker 2 (Europe and Oceania)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 6135 | | GAME( 1996, gstrik2j, gstrik2, gstrik2, gstrik2, metro_state, blzntrnd, ROT0, "Human Amusement", "Grand Striker 2 (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // priority between rounds |
| 6127 | GAME( 1996, gstrik2, 0, gstrik2, gstrik2, metro_state, blzntrnd, ROT0, "Human Amusement", "Grand Striker 2 (Europe and Oceania)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 6128 | GAME( 1996, gstrik2j, gstrik2, gstrik2, gstrik2, metro_state, blzntrnd, ROT0, "Human Amusement", "Grand Striker 2 (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // priority between rounds |
| 6136 | 6129 | GAME( 1999, batlbubl, bangball, batlbubl, batlbubl, metro_state, balcube, ROT0, "Banpresto (Limenko license?)", "Battle Bubble (v2.00)", GAME_SUPPORTS_SAVE ) // or bootleg? |
| 6137 | | GAME( 1996, mouja, 0, mouja, mouja, metro_state, mouja, ROT0, "Etona", "Mouja (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 6138 | | GAME( 1997, gakusai, 0, gakusai, gakusai, metro_state, gakusai, ROT0, "MakeSoft", "Mahjong Gakuensai (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 6139 | | GAME( 1998, gakusai2, 0, gakusai2, gakusai, metro_state, gakusai, ROT0, "MakeSoft", "Mahjong Gakuensai 2 (Japan)", GAME_SUPPORTS_SAVE ) |
| 6140 | | GAME( 2000, puzzlet, 0, puzzlet, puzzlet, metro_state, puzzlet, ROT0, "Unies Corporation", "Puzzlet (Japan)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) |
| 6130 | GAME( 1996, mouja, 0, mouja, mouja, metro_state, mouja, ROT0, "Etona", "Mouja (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 6131 | GAME( 1997, gakusai, 0, gakusai, gakusai, metro_state, gakusai, ROT0, "MakeSoft", "Mahjong Gakuensai (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 6132 | GAME( 1998, gakusai2, 0, gakusai2, gakusai, metro_state, gakusai, ROT0, "MakeSoft", "Mahjong Gakuensai 2 (Japan)", GAME_SUPPORTS_SAVE ) |
| 6133 | GAME( 2000, puzzlet, 0, puzzlet, puzzlet, metro_state, puzzlet, ROT0, "Unies Corporation", "Puzzlet (Japan)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) |