diff --git a/hash/mz700_cass.xml b/hash/mz700_cass.xml
index 52a080336ba..8579f47992c 100644
--- a/hash/mz700_cass.xml
+++ b/hash/mz700_cass.xml
@@ -721,7 +721,7 @@ Easidata (English Version)
Michael Gartner
-
+
@@ -732,7 +732,7 @@ Easidata (English Version)
1982
Apollo Software
-
+
@@ -1352,7 +1352,7 @@ Easidata (English Version)
-
+
diff --git a/hash/mz800_cass.xml b/hash/mz800_cass.xml
index 64f23dc34d5..f21f1148838 100644
--- a/hash/mz800_cass.xml
+++ b/hash/mz800_cass.xml
@@ -52,7 +52,7 @@ MZ-821 Sharp BASIC Trainer (Germany): Account Manager: Einnahmen/Ausgaben-Verw
19??
Proton Software
-
+
diff --git a/hash/sorcerer_cass.xml b/hash/sorcerer_cass.xml
index d6569db411a..b6db7dd7b12 100644
--- a/hash/sorcerer_cass.xml
+++ b/hash/sorcerer_cass.xml
@@ -9,8 +9,8 @@
Chomp
1981
W. S. King
-
-
+
+
@@ -20,8 +20,8 @@
Eliza
19??
<unknown>
-
-
+
+
@@ -31,8 +31,8 @@
Galaxians
19??
<unknown>
-
-
+
+
diff --git a/src/emu/softlist.c b/src/emu/softlist.c
index 9c007d78b60..72beb43a4a2 100644
--- a/src/emu/softlist.c
+++ b/src/emu/softlist.c
@@ -686,7 +686,7 @@ static void start_handler(void *data, const char *tagname, const char **attribut
unknown_attribute(swlist, attributes[0]);
}
- if ( str_name && str_interface )
+ if ( str_name && str_interface && strcmp(str_name, "") && strcmp(str_interface, "") )
{
if ( swlist->softinfo )
{
@@ -709,7 +709,7 @@ static void start_handler(void *data, const char *tagname, const char **attribut
}
else
{
- /* Incomplete/incorrect part definition */
+ /* Incomplete/incorrect part definition ("" names are invalid too) */
parse_error(&swlist->state, "%s: Incomplete part definition (line %lu)\n",
swlist->file->filename(),XML_GetCurrentLineNumber(swlist->state.parser));
}
@@ -738,7 +738,7 @@ static void start_handler(void *data, const char *tagname, const char **attribut
else
unknown_attribute(swlist, attributes[0]);
}
- if ( str_name && str_size )
+ if ( str_name && str_size && strcmp(str_name, "") && strcmp(str_size, "") )
{
if ( swlist->softinfo )
{
@@ -756,7 +756,7 @@ static void start_handler(void *data, const char *tagname, const char **attribut
}
else
{
- /* Missing dataarea name or size */
+ /* Missing dataarea name or size ("" are invalid too) */
parse_error(&swlist->state, "%s: Incomplete dataarea definition (line %lu)\n",
swlist->file->filename(),XML_GetCurrentLineNumber(swlist->state.parser));
}