summaryrefslogtreecommitdiffstats
path: root/src/mame/includes/xavix.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/includes/xavix.h')
-rw-r--r--src/mame/includes/xavix.h47
1 files changed, 32 insertions, 15 deletions
diff --git a/src/mame/includes/xavix.h b/src/mame/includes/xavix.h
index e56d50f1fbc..aaf553f6c36 100644
--- a/src/mame/includes/xavix.h
+++ b/src/mame/includes/xavix.h
@@ -199,7 +199,7 @@ protected:
private:
// screen updates
- uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
void xavix_map(address_map &map);
@@ -534,11 +534,11 @@ private:
required_device<gfxdecode_device> m_gfxdecode;
void update_pen(int pen, uint8_t shval, uint8_t lval);
- void draw_tile_line(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int tile, int bpp, int xpos, int ypos, int drawheight, int drawwidth, int flipx, int flipy, int pal, int zval, int line);
- void draw_tilemap(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int which);
- void draw_tilemap_line(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int line);
- void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- void draw_sprites_line(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int line);
+ void draw_tile_line(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int tile, int bpp, int xpos, int ypos, int drawheight, int drawwidth, int flipx, int flipy, int pal, int zval, int line);
+ void draw_tilemap(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int which);
+ void draw_tilemap_line(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int which, int line);
+ void draw_sprites(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void draw_sprites_line(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int line);
void decode_inline_header(int &flipx, int &flipy, int &test, int& pal, int debug_packets);
bitmap_ind16 m_zbuffer;
@@ -752,17 +752,18 @@ protected:
class xavix_cart_state : public xavix_state
{
public:
- xavix_cart_state(const machine_config &mconfig, device_type type, const char *tag)
- : xavix_state(mconfig, type, tag),
+ xavix_cart_state(const machine_config &mconfig, device_type type, const char *tag) :
+ xavix_state(mconfig, type, tag),
m_cartslot(*this, "cartslot")
- { }
+ {
+ m_cartlimit = 0x400000;
+ }
void xavix_cart(machine_config &config);
void xavix_cart_ekara(machine_config &config);
void xavix_cart_popira(machine_config &config);
void xavix_cart_ddrfammt(machine_config &config);
void xavix_cart_evio(machine_config &config);
- void xavix_cart_gcslottv(machine_config &config);
protected:
@@ -772,7 +773,7 @@ protected:
{
if (offset & 0x8000)
{
- if (offset & 0x400000)
+ if ((offset & 0x7fffff) >= m_cartlimit)
{
return m_rgn[(offset) & (m_rgnlen - 1)];
}
@@ -796,7 +797,7 @@ protected:
virtual uint8_t opcodes_800000_r(offs_t offset) override
{
- if (offset & 0x400000)
+ if ((offset & 0x7fffff) >= m_cartlimit)
{
return m_rgn[(offset) & (m_rgnlen - 1)];
}
@@ -839,7 +840,7 @@ protected:
}
else
{
- if (offset & 0x400000)
+ if ((offset & 0x7fffff) >= m_cartlimit)
{
return m_rgn[(offset) & (m_rgnlen - 1)];
}
@@ -882,7 +883,7 @@ protected:
if (databank >= 0x80)
{
- if (offset & 0x400000)
+ if ((offset & 0x7fffff) >= m_cartlimit)
{
return m_rgn[(offset) & (m_rgnlen - 1)];
}
@@ -902,7 +903,7 @@ protected:
{
if ((offset & 0xffff) >= 0x8000)
{
- if (offset & 0x400000)
+ if ((offset & 0x7fffff) >= m_cartlimit)
{
return m_rgn[(offset) & (m_rgnlen - 1)];
}
@@ -925,9 +926,25 @@ protected:
}
}
+ int m_cartlimit;
required_device<ekara_cart_slot_device> m_cartslot;
};
+
+class xavix_cart_gcslottv_state : public xavix_cart_state
+{
+public:
+ xavix_cart_gcslottv_state(const machine_config &mconfig, device_type type, const char *tag) :
+ xavix_cart_state(mconfig, type, tag)
+ {
+ m_cartlimit = 0x800000;
+ }
+
+ void xavix_cart_gcslottv(machine_config &config);
+
+protected:
+};
+
class xavix_i2c_cart_state : public xavix_cart_state
{
public: