Skip to content

Commit cdbd9e0

Browse files
committed
mame2bml: better softwarelist export
1 parent 745e41a commit cdbd9e0

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

tools/mame2bml/mame2bml.cpp

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ auto Mame2BML::main(Arguments arguments) -> void {
2222
vector<string> driverNames = {};
2323
if(!markupName.endsWith(".xml")) return print("error: arguments in incorrect order\n");
2424
if(!outputName.endsWith(".bml")) return print("error: arguments in incorrect order\n");
25+
if(arguments.size() == 0) return print("error: mame driver or ares core name required\n");
2526

2627
while(arguments.size()) {
2728
string driverName = arguments.take();
@@ -35,11 +36,6 @@ auto Mame2BML::main(Arguments arguments) -> void {
3536

3637
output.print("database\n");
3738
output.print(" revision: ", chrono::local::date(), "\n");
38-
output.print(" drivers: ");
39-
for(auto driver : driverNames) {
40-
output.print(driver, ", ");
41-
}
42-
output.print("\n");
4339

4440
pathname = Location::path(markupName);
4541
auto document = XML::unserialize(markup);
@@ -48,6 +44,11 @@ auto Mame2BML::main(Arguments arguments) -> void {
4844
// machine list xml (from mame.exe -listxml)
4945
if(header.name() == "mame") {
5046
output.print(" romset: ", header["build"].string(), "\n");
47+
output.print(" drivers: ");
48+
for(auto driver : driverNames) {
49+
output.print(driver, ", ");
50+
}
51+
output.print("\n");
5152

5253
for(auto machine : header) {
5354
if(machine.name() != "machine") continue;
@@ -71,7 +72,7 @@ auto Mame2BML::main(Arguments arguments) -> void {
7172
for(auto rom : machine) {
7273
if(rom.name() == "rom") {
7374
if(rom["region"].string() != region) {
74-
region = rom["region"].string().replace(":", "");
75+
region = rom["region"].string().replace(":", "-");
7576
output.print(" ", region, "\n");
7677
}
7778

@@ -99,7 +100,9 @@ auto Mame2BML::main(Arguments arguments) -> void {
99100
output.print(" title: ", software["description"].string(), "\n");
100101
output.print(" board: ", driverNames.first(), "\n");
101102

102-
for(auto sub : software["part"]){
103+
print("found ", software["name"].string(), " (", software["description"].string(), ")\n");
104+
105+
for(auto sub : software["part"]) {
103106
if(sub.name() == "feature") {
104107
output.print(" feature\n");
105108
output.print(" name: ", sub["name"].string(), "\n");
@@ -108,7 +111,7 @@ auto Mame2BML::main(Arguments arguments) -> void {
108111
}
109112

110113
if(sub.name() != "dataarea") continue;
111-
output.print(" ", sub["name"].string().replace(":", ""), "\n");
114+
output.print(" ", sub["name"].string().replace(":", "-"), "\n");
112115
output.print(" size: ", sub["size"].natural(), "\n");
113116

114117
for(auto rom : sub) {

0 commit comments

Comments
 (0)