summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/devices/bus/snes/snes_slot.cpp3
-rw-r--r--src/mame/drivers/hh_sm510.cpp82
-rw-r--r--src/mame/drivers/nforcepc.cpp8
-rw-r--r--src/mame/includes/thomson.h5
-rw-r--r--src/mame/machine/thomson.cpp5
-rw-r--r--src/mame/video/thomson.cpp39
6 files changed, 93 insertions, 49 deletions
diff --git a/src/devices/bus/snes/snes_slot.cpp b/src/devices/bus/snes/snes_slot.cpp
index f85f198f257..4276378bf00 100644
--- a/src/devices/bus/snes/snes_slot.cpp
+++ b/src/devices/bus/snes/snes_slot.cpp
@@ -225,7 +225,8 @@ base_sns_cart_slot_device::~base_sns_cart_slot_device()
void base_sns_cart_slot_device::device_start()
{
m_cart = dynamic_cast<device_sns_cart_interface *>(get_card_device());
- m_cart->m_slot = this;
+ if (m_cart != nullptr)
+ m_cart->m_slot = this;
m_irq_callback.resolve_safe();
}
diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp
index 8610c36b809..5f222203968 100644
--- a/src/mame/drivers/hh_sm510.cpp
+++ b/src/mame/drivers/hh_sm510.cpp
@@ -6746,32 +6746,31 @@ void tgoldeye_state::tgoldeye(machine_config &config)
/***************************************************************************
- Tiger Independence Day (model 78-???)
- * Sharp SM510 under epoxy (die label 10 16)
+ Tiger Space Jam (model 78-621)
+ * Sharp SM510 under epoxy (die label KMS10, 23)
* lcd screen with custom segments, 1-bit sound
***************************************************************************/
-class tinday_state : public hh_sm510_state
+class tsjam_state : public hh_sm510_state
{
public:
- tinday_state(const machine_config &mconfig, device_type type, const char *tag)
+ tsjam_state(const machine_config &mconfig, device_type type, const char *tag)
: hh_sm510_state(mconfig, type, tag)
{
m_inp_lines = 5;
m_inp_fixed = 5;
}
- void tinday(machine_config &config);
+ void tsjam(machine_config &config);
};
// config
-static INPUT_PORTS_START( tinday )
+static INPUT_PORTS_START( tsjam )
PORT_START("IN.0") // S1
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Shield")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Fire")
- PORT_BIT( 0x0a, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
+ PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.1") // S2
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
@@ -6779,12 +6778,13 @@ static INPUT_PORTS_START( tinday )
PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.2") // S3
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Alert")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.3") // S4
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Velocity")
- PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Shoot/Block")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Tune/Steal")
+ PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.4") // S5
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Pause")
@@ -6804,10 +6804,10 @@ static INPUT_PORTS_START( tinday )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL")
INPUT_PORTS_END
-void tinday_state::tinday(machine_config &config)
+void tsjam_state::tsjam(machine_config &config)
{
/* basic machine hardware */
- SM510(config, m_maincpu);
+ SM510(config, m_maincpu); // no external XTAL
m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT);
m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w));
m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r));
@@ -6820,8 +6820,8 @@ void tinday_state::tinday(machine_config &config)
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
screen.set_svg_region("svg");
screen.set_refresh_hz(50);
- screen.set_size(1463, 1080);
- screen.set_visarea(0, 1463-1, 0, 1080-1);
+ screen.set_size(1421, 1080);
+ screen.set_visarea(0, 1421-1, 0, 1080-1);
TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1));
@@ -6837,31 +6837,32 @@ void tinday_state::tinday(machine_config &config)
/***************************************************************************
- Tiger Space Jam (model 78-621)
- * Sharp SM510 under epoxy (die label KMS10, 23)
+ Tiger Independence Day (model 78-624)
+ * Sharp SM510 under epoxy (die label 10 16)
* lcd screen with custom segments, 1-bit sound
***************************************************************************/
-class tsjam_state : public hh_sm510_state
+class tinday_state : public hh_sm510_state
{
public:
- tsjam_state(const machine_config &mconfig, device_type type, const char *tag)
+ tinday_state(const machine_config &mconfig, device_type type, const char *tag)
: hh_sm510_state(mconfig, type, tag)
{
m_inp_lines = 5;
m_inp_fixed = 5;
}
- void tsjam(machine_config &config);
+ void tinday(machine_config &config);
};
// config
-static INPUT_PORTS_START( tsjam )
+static INPUT_PORTS_START( tinday )
PORT_START("IN.0") // S1
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
- PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Shield")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Fire")
+ PORT_BIT( 0x0a, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.1") // S2
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
@@ -6869,13 +6870,12 @@ static INPUT_PORTS_START( tsjam )
PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.2") // S3
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Alert")
PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.3") // S4
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Shoot/Block")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Tune/Steal")
- PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Velocity")
+ PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.4") // S5
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Pause")
@@ -6895,10 +6895,10 @@ static INPUT_PORTS_START( tsjam )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL")
INPUT_PORTS_END
-void tsjam_state::tsjam(machine_config &config)
+void tinday_state::tinday(machine_config &config)
{
/* basic machine hardware */
- SM510(config, m_maincpu); // no external XTAL
+ SM510(config, m_maincpu);
m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT);
m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w));
m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r));
@@ -6911,8 +6911,8 @@ void tsjam_state::tsjam(machine_config &config)
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
screen.set_svg_region("svg");
screen.set_refresh_hz(50);
- screen.set_size(1421, 1080);
- screen.set_visarea(0, 1421-1, 0, 1080-1);
+ screen.set_size(1463, 1080);
+ screen.set_visarea(0, 1463-1, 0, 1080-1);
TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1));
@@ -7983,21 +7983,21 @@ ROM_START( tgoldeye )
ROM_END
-ROM_START( tinday )
+ROM_START( tsjam )
ROM_REGION( 0x1000, "maincpu", 0 )
- ROM_LOAD( "10_16", 0x0000, 0x1000, CRC(77c2c2f7) SHA1(06326b26d0f6757180724ba0bdeb4110cc7e29d6) )
+ ROM_LOAD( "10_23", 0x0000, 0x1000, CRC(6eaabfbd) SHA1(f0ecbd6f65fe72ce2d8a452685be2e77a63fc9f0) )
- ROM_REGION( 1162672, "svg", 0)
- ROM_LOAD( "tinday.svg", 0, 1162672, CRC(9b9a8047) SHA1(2aeaa71a54cf897d2a5d91133c733613ca229aae) )
+ ROM_REGION( 1046147, "svg", 0)
+ ROM_LOAD( "tsjam.svg", 0, 1046147, CRC(6d24e1c9) SHA1(ddbfbd85f70ec964c68f982a8ee8070e3786a85e) )
ROM_END
-ROM_START( tsjam )
+ROM_START( tinday )
ROM_REGION( 0x1000, "maincpu", 0 )
- ROM_LOAD( "10_23", 0x0000, 0x1000, CRC(6eaabfbd) SHA1(f0ecbd6f65fe72ce2d8a452685be2e77a63fc9f0) )
+ ROM_LOAD( "10_16", 0x0000, 0x1000, CRC(77c2c2f7) SHA1(06326b26d0f6757180724ba0bdeb4110cc7e29d6) )
- ROM_REGION( 1046147, "svg", 0)
- ROM_LOAD( "tsjam.svg", 0, 1046147, CRC(6d24e1c9) SHA1(ddbfbd85f70ec964c68f982a8ee8070e3786a85e) )
+ ROM_REGION( 1162672, "svg", 0)
+ ROM_LOAD( "tinday.svg", 0, 1162672, CRC(9b9a8047) SHA1(2aeaa71a54cf897d2a5d91133c733613ca229aae) )
ROM_END
@@ -8124,8 +8124,8 @@ CONS( 1995, tbatfor, 0, 0, tbatfor, tbatfor, tbatfor_state,
CONS( 1995, tjdredd, 0, 0, tjdredd, tjdredd, tjdredd_state, empty_init, "Tiger Electronics", "Judge Dredd (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1995, tapollo13, 0, 0, tapollo13, tapollo13, tapollo13_state, empty_init, "Tiger Electronics", "Apollo 13 (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1995, tgoldeye, 0, 0, tgoldeye, tgoldeye, tgoldeye_state, empty_init, "Tiger Electronics", "007: GoldenEye (handheld)", MACHINE_SUPPORTS_SAVE )
-CONS( 1996, tinday, 0, 0, tinday, tinday, tinday_state, empty_init, "Tiger Electronics", "Independence Day (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1996, tsjam, 0, 0, tsjam, tsjam, tsjam_state, empty_init, "Tiger Electronics", "Space Jam (handheld)", MACHINE_SUPPORTS_SAVE )
+CONS( 1996, tinday, 0, 0, tinday, tinday, tinday_state, empty_init, "Tiger Electronics", "Independence Day (handheld)", MACHINE_SUPPORTS_SAVE )
// Tiger 72-xxx models
CONS( 1992, tbatmana, 0, 0, tbatmana, tbatmana, tbatmana_state, empty_init, "Tiger Electronics", "Batman: The Animated Series (handheld)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/nforcepc.cpp b/src/mame/drivers/nforcepc.cpp
index 319740f4b94..68045925368 100644
--- a/src/mame/drivers/nforcepc.cpp
+++ b/src/mame/drivers/nforcepc.cpp
@@ -4,7 +4,7 @@
/*
Computer based on a motherboard utilizing the nForce chipset (also known as CRUSH11 or CRUSH12)
- Start with the following compoents:
+ Start with the following components:
- An Asus A7N266-C motherboard using:
- nForce 415-D northbridge
- nForce MCP-D southbridge (with integrated APU)
@@ -259,9 +259,9 @@ void nforcepc_state::nforcepc(machine_config &config)
ROM_START(nforcepc)
ROM_REGION32_LE(0x40000, ":pci:00.0", 0) /* PC bios */
ROM_SYSTEM_BIOS(0, "a7n266c", "a7n266c") // Motherboard dump. Chip: SST49LF020 Package: PLCC32 Label had 3 lines of text: "A7NC3" "1001.D" "GSQ98"
- ROMX_LOAD("a7n266c.bin", 0, 0x40000, CRC(F4F0E4FC) SHA1(87f11545db178914623e41fb51e328da479a2efc), ROM_BIOS(0))
- ROM_SYSTEM_BIOS(1, "a7n266c1001d", "a7n266c1001d") // bios version 1001.D dwonloaded from Asus website
- ROMX_LOAD("a7nc101d.awd", 0, 0x40000, CRC(EAD1147C) SHA1(27227df98e0c5fb9fecdb4bb6ef72df19766c330), ROM_BIOS(1))
+ ROMX_LOAD("a7n266c.bin", 0, 0x40000, CRC(f4f0e4fc) SHA1(87f11545db178914623e41fb51e328da479a2efc), ROM_BIOS(0))
+ ROM_SYSTEM_BIOS(1, "a7n266c1001d", "a7n266c1001d") // bios version 1001.D downloaded from Asus website
+ ROMX_LOAD("a7nc101d.awd", 0, 0x40000, CRC(ead1147c) SHA1(27227df98e0c5fb9fecdb4bb6ef72df19766c330), ROM_BIOS(1))
ROM_END
static INPUT_PORTS_START(nforcepc)
diff --git a/src/mame/includes/thomson.h b/src/mame/includes/thomson.h
index 5a7ec3760d9..79de6f56b43 100644
--- a/src/mame/includes/thomson.h
+++ b/src/mame/includes/thomson.h
@@ -181,6 +181,7 @@ public:
void overlay_scandraw_16( uint8_t* vram, uint16_t* dst, uint16_t* pal, int org, int len );
void overlayhalf_scandraw_16( uint8_t* vram, uint16_t* dst, uint16_t* pal, int org, int len );
void overlay3_scandraw_16( uint8_t* vram, uint16_t* dst, uint16_t* pal, int org, int len );
+ void bitmap16alt_scandraw_16( uint8_t* vram, uint16_t* dst, uint16_t* pal, int org, int len );
void to770_scandraw_8( uint8_t* vram, uint16_t* dst, uint16_t* pal, int org, int len );
void mo5_scandraw_8( uint8_t* vram, uint16_t* dst, uint16_t* pal, int org, int len );
void mo5alt_scandraw_8( uint8_t* vram, uint16_t* dst, uint16_t* pal, int org, int len );
@@ -196,6 +197,7 @@ public:
void overlay_scandraw_8( uint8_t* vram, uint16_t* dst, uint16_t* pal, int org, int len );
void overlayhalf_scandraw_8( uint8_t* vram, uint16_t* dst, uint16_t* pal, int org, int len );
void overlay3_scandraw_8( uint8_t* vram, uint16_t* dst, uint16_t* pal, int org, int len );
+ void bitmap16alt_scandraw_8( uint8_t* vram, uint16_t* dst, uint16_t* pal, int org, int len );
private:
DECLARE_FLOPPY_FORMATS(cd90_640_formats);
@@ -690,7 +692,8 @@ private:
#define THOM_VMODE_BITMAP4_ALT_HALF 12
#define THOM_VMODE_MO5_ALT 13
#define THOM_VMODE_OVERLAY_HALF 14
-#define THOM_VMODE_NB 15
+#define THOM_VMODE_BITMAP16_ALT 15
+#define THOM_VMODE_NB 16
class to7_io_line_device : public device_t
diff --git a/src/mame/machine/thomson.cpp b/src/mame/machine/thomson.cpp
index 873b15765fd..a64fe99c480 100644
--- a/src/mame/machine/thomson.cpp
+++ b/src/mame/machine/thomson.cpp
@@ -1714,7 +1714,7 @@ void thomson_state::to9_set_video_mode( uint8_t data, int style )
break;
// undocumented, but tested on a real TO8D
- case 0x20: thom_set_video_mode( THOM_VMODE_MO5_ALT ); break;
+ case 0x20: thom_set_video_mode( THOM_VMODE_MO5_ALT ); break;
case 0x21: thom_set_video_mode( THOM_VMODE_BITMAP4 ); break;
@@ -1743,6 +1743,9 @@ void thomson_state::to9_set_video_mode( uint8_t data, int style )
case 0x3f: thom_set_video_mode( THOM_VMODE_OVERLAY3 ); break;
+ // undocumented variant enconding for bitmap16
+ case 0x5b: thom_set_video_mode( THOM_VMODE_BITMAP16_ALT ); break;
+
default:
logerror( "to9_set_video_mode: unknown mode $%02X tr=%i phi=%i mod=%i\n", data, (data >> 5) & 3, (data >> 3) & 2, data & 7 );
}
diff --git a/src/mame/video/thomson.cpp b/src/mame/video/thomson.cpp
index ff72cbfe2d6..377b5a48c4e 100644
--- a/src/mame/video/thomson.cpp
+++ b/src/mame/video/thomson.cpp
@@ -568,6 +568,42 @@ UPDATE_LOW( bitmap16 )
END_UPDATE
+/* 160x200, 16-colors, no constraint, alternate encoding, undocumented, tested */
+
+static const unsigned tbl_bit16[4][4] = {
+ { 0, 2, 8, 10 },
+ { 1, 3, 9, 11 },
+ { 4, 6, 12, 14 },
+ { 5, 7, 13, 15 }
+};
+
+UPDATE_HI( bitmap16alt )
+{
+ unsigned p0 = tbl_bit16[ramb >> 6][rama >> 6];
+ unsigned p1 = tbl_bit16[(ramb >> 4) & 3][(rama >> 4) & 3];
+ unsigned p2 = tbl_bit16[(ramb >> 2) & 3][(rama >> 2) & 3];
+ unsigned p3 = tbl_bit16[ramb & 3][rama & 3];
+ dst[ 0] = dst[ 1] = dst[ 2] = dst[ 3] = pal[ p0 ];
+ dst[ 4] = dst[ 5] = dst[ 6] = dst[ 7] = pal[ p1 ];
+ dst[ 8] = dst[ 9] = dst[10] = dst[11] = pal[ p2 ];
+ dst[12] = dst[13] = dst[14] = dst[15] = pal[ p3 ];
+}
+END_UPDATE
+
+UPDATE_LOW( bitmap16alt )
+{
+ unsigned p0 = tbl_bit16[ramb >> 6][rama >> 6];
+ unsigned p1 = tbl_bit16[(ramb >> 4) & 3][(rama >> 4) & 3];
+ unsigned p2 = tbl_bit16[(ramb >> 2) & 3][(rama >> 2) & 3];
+ unsigned p3 = tbl_bit16[ramb & 3][rama & 3];
+ dst[0] = dst[1] = pal[ p0 ];
+ dst[2] = dst[3] = pal[ p1 ];
+ dst[4] = dst[5] = pal[ p2 ];
+ dst[6] = dst[7] = pal[ p3 ];
+}
+END_UPDATE
+
+
/* 640x200 (80 text column), 2-colors, no constraint */
@@ -785,7 +821,8 @@ static const thom_scandraw thom_scandraw_funcs[THOM_VMODE_NB][2] =
FUN(to770), FUN(mo5), FUN(bitmap4), FUN(bitmap4alt), FUN(mode80),
FUN(bitmap16), FUN(page1), FUN(page2), FUN(overlay), FUN(overlay3),
FUN(to9), FUN(mode80_to9),
- FUN(bitmap4althalf), FUN(mo5alt), FUN(overlayhalf),
+ FUN(bitmap4althalf), FUN(mo5alt), FUN(overlayhalf),
+ FUN(bitmap16alt)
};