diff options
author | 2012-09-05 10:30:30 +0000 | |
---|---|---|
committer | 2012-09-05 10:30:30 +0000 | |
commit | 913ee29d76c7334fa2a35e344028cd88cce59804 (patch) | |
tree | 585d4bb82abda142bfed890f613c533e5250b67f /src/emu/emuopts.c | |
parent | f6c7aa39ba49bb71f9d46c89182bad85d84474ca (diff) |
Made core able to use bios selection per slot device [Miodrag Milanovic]
Sample of usage :
mess kc85_4 -exp d004gide,bios=v31
Will need to cleanup handling of sub options to make it more robust and able to validate
Diffstat (limited to 'src/emu/emuopts.c')
-rw-r--r-- | src/emu/emuopts.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/emu/emuopts.c b/src/emu/emuopts.c index 193913ab8f4..3b35b59afe0 100644 --- a/src/emu/emuopts.c +++ b/src/emu/emuopts.c @@ -565,3 +565,31 @@ bool emu_options::parse_one_ini(const char *basename, int priority, astring *err return result; } + + +const char *emu_options::main_value(astring &buffer, const char *name) const +{ + buffer = value(name); + int pos = buffer.chr(0,','); + if (pos!=-1) { + buffer = buffer.substr(0,pos); + } + return buffer.cstr(); +} + +const char *emu_options::sub_value(astring &buffer, const char *name, const char *subname) const +{ + astring tmp = ","; + tmp.cat(subname); + tmp.cat("="); + buffer = value(name); + int pos = buffer.find(0,tmp); + if (pos!=-1) { + int endpos = buffer.chr(pos+1,','); + if(endpos==-1) endpos = buffer.len(); + buffer = buffer.substr(pos+tmp.len(),endpos-pos-tmp.len()); + } else { + buffer =""; + } + return buffer.cstr(); +} |