Previous 199869 Revisions Next

r37129 Sunday 12th April, 2015 at 06:05:43 UTC by Miodrag Milanović
There is no implicit conversion to char* in std::string (nw)
[src/emu]addrmap.c audit.c cheat.c cheat.h clifront.c devfind.h device.c device.h diexec.c digfx.c diimage.c diimage.h dimemory.c disound.c distate.c distate.h emuopts.c fileio.c fileio.h hash.c image.c info.c input.c input.h ioport.c ioport.h machine.c machine.h memory.c memory.h output.c parameters.c profiler.c render.c rendfont.c rendlay.c rendlay.h rendutil.c romload.c save.c save.h schedule.c screen.c softlist.c softlist.h sound.c validity.c video.c webengine.c
[src/emu/bus/a1bus]a1cassette.c a1cffa.c
[src/emu/bus/a2bus]a2applicard.c a2cffa.c a2corvus.c a2diskii.c a2diskiing.c a2hsscsi.c a2memexp.c a2pic.c a2scsi.c a2ssc.c a2swyft.c a2thunderclock.c a2ultraterm.c a2videoterm.c a2vulcan.c a2zipdrive.c corvfdc01.c corvfdc02.c mouse.c timemasterho.c
[src/emu/bus/a7800]a78_slot.c
[src/emu/bus/a800]a800_slot.c
[src/emu/bus/apf]slot.c
[src/emu/bus/arcadia]slot.c
[src/emu/bus/astrocde]slot.c
[src/emu/bus/chanf]slot.c
[src/emu/bus/crvision]slot.c
[src/emu/bus/gameboy]gb_slot.c
[src/emu/bus/gba]gba_slot.c
[src/emu/bus/generic]slot.c
[src/emu/bus/intv]ecs.c slot.c
[src/emu/bus/isa]cga.c ega.c hdc.c isa.c mda.c mufdc.c pc1640_iga.c
[src/emu/bus/macpds]macpds.c pds_tpdfpd.c
[src/emu/bus/megadrive]md_slot.c
[src/emu/bus/nes]nes_ines.inc nes_slot.c
[src/emu/bus/nubus]nubus.c nubus_48gc.c nubus_m2hires.c nubus_m2video.c nubus_radiustpd.c nubus_spec8.c nubus_specpdq.c nubus_wsportrait.c pds30_30hr.c pds30_cb264.c pds30_mc30.c pds30_procolor816.c pds30_sigmalview.c
[src/emu/bus/odyssey2]slot.c
[src/emu/bus/oricext]jasmin.c microdisc.c
[src/emu/bus/pce]pce_slot.c
[src/emu/bus/saturn]sat_slot.c
[src/emu/bus/scv]slot.c
[src/emu/bus/sega8]sega8_slot.c
[src/emu/bus/snes]snes_slot.c
[src/emu/bus/vboy]slot.c
[src/emu/bus/vc4000]slot.c
[src/emu/bus/vcs]vcs_slot.c
[src/emu/bus/vectrex]slot.c
[src/emu/bus/wswan]slot.c
[src/emu/bus/x68k]x68k_scsiext.c
[src/emu/cpu]drcbex64.c drcbex86.c drcuml.c uml.c uml.h x86log.c
[src/emu/cpu/adsp2100]adsp2100.c
[src/emu/cpu/asap]asap.c
[src/emu/cpu/cosmac]cosmac.c
[src/emu/cpu/dsp32]dsp32.c
[src/emu/cpu/hd61700]hd61700.c
[src/emu/cpu/i4004]i4004.c
[src/emu/cpu/i8008]i8008.c
[src/emu/cpu/ie15]ie15.c
[src/emu/cpu/m68000]m68kcpu.c
[src/emu/cpu/mcs48]mcs48.c
[src/emu/cpu/tms34010]tms34010.c
[src/emu/cpu/z8]z8.c
[src/emu/debug]debugcmd.c debugcon.c debugcpu.c debugcpu.h debugvw.c debugvw.h dvdisasm.c dvmemory.c dvstate.c express.c express.h
[src/emu/imagedev]chd_cd.c diablo.c floppy.c harddriv.c
[src/emu/machine]laserdsc.c wozfdc.c
[src/emu/sound]2610intf.c fm.c
[src/emu/ui]barcode.c cheatopt.c devopt.c filemngr.c filesel.c imgcntrl.c info.c inputmap.c miscmenu.c selgame.c sliders.c slotopt.c tapectrl.c ui.c videoopt.c
[src/emu/video]pc_vga.c
[src/ldplayer]ldplayer.c
[src/lib/util]astring.h cdrom.c chd.c chdcd.c chdcodec.c harddisk.c hashing.c options.c options.h zippath.c
[src/mame/drivers]cps3.c megatech.c stv.c
[src/mame/machine]atarigen.h
[src/mess/drivers]beta.c cc40.c gameking.c gba.c kyocera.c leapster.c nc.c ngp.c pasogo.c pb1000.c pc2000.c pc6001.c pc8401a.c pockstat.c prestige.c pv1000.c px4.c socrates.c svision.c timex.c tispeak.c tutor.c tvc.c vboy.c vii.c
[src/mess/machine]advision.c amstrad.c bbc.c cuda.c egret.c electron.c gamecom.c primo.c svi318.c vtech2.c
[src/osd/modules]osdmodule.h
[src/osd/modules/debugger]debugint.c
[src/osd/modules/debugger/qt]deviceinformationwindow.c mainwindow.c
[src/osd/modules/debugger/win]consolewininfo.c disasmbasewininfo.c disasmwininfo.c editwininfo.c logwininfo.c memorywininfo.c pointswininfo.c
[src/osd/modules/font]font_windows.c
[src/osd/modules/lib]osdobj_common.h
[src/osd/modules/render/d3d]d3dhlsl.c
[src/osd/sdl]input.c osdsdl.h
[src/osd/windows]winmain.c
[src/tools]chdman.c ldresample.c ldverify.c pngcmp.c regrep.c split.c src2html.c

trunk/src/emu/addrmap.c
r245640r245641
492492      {
493493         astring tag;
494494         owner.subtag(tag, entry->m_read.m_tag);
495         device_t *mapdevice = machine.device(tag);
495         device_t *mapdevice = machine.device(tag.c_str());
496496         if (mapdevice == NULL) {
497497            throw emu_fatalerror("Attempted to submap a non-existent device '%s' in space %d of device '%s'\n", tag.c_str(), m_spacenum, device.basetag());
498498         }
trunk/src/emu/audit.c
r245640r245641
6767astring combinedpath(device->searchpath(), ";", driverpath);
6868if (device->shortname())
6969   combinedpath.cat(";").cat(device->shortname());
70m_searchpath = combinedpath;
70m_searchpath = combinedpath.c_str();
7171
7272         for (const rom_entry *rom = rom_first_file(region); rom; rom = rom_next_file(rom))
7373         {
r245640r245641
195195      locationtag.cat(swinfo->parentname());
196196      combinedpath.cat(";").cat(swinfo->parentname()).cat(";").cat(list_name).cat(PATH_SEPARATOR).cat(swinfo->parentname());
197197   }
198   m_searchpath = combinedpath;
198   m_searchpath = combinedpath.c_str();
199199
200200   int found = 0;
201201   int required = 0;
r245640r245641
226226            // audit a disk
227227            else if (ROMREGION_ISDISKDATA(region))
228228            {
229               record = audit_one_disk(rom, (const char *)locationtag);
229               record = audit_one_disk(rom, locationtag.c_str());
230230            }
231231
232232            // count the number of files that are found.
r245640r245641
284284
285285         // look for the files
286286         emu_file file(m_enumerator.options().sample_path(), OPEN_FLAG_READ | OPEN_FLAG_NO_PRELOAD);
287         path_iterator path(searchpath);
287         path_iterator path(searchpath.c_str());
288288         astring curpath;
289289         while (path.next(curpath, samplename))
290290         {
291291            // attempt to access the file (.flac) or (.wav)
292            file_error filerr = file.open(curpath, ".flac");
292            file_error filerr = file.open(curpath.c_str(), ".flac");
293293            if (filerr != FILERR_NONE)
294               filerr = file.open(curpath, ".wav");
294               filerr = file.open(curpath.c_str(), ".wav");
295295
296296            if (filerr == FILERR_NONE)
297297            {
r245640r245641
429429      // open the file if we can
430430      file_error filerr;
431431      if (has_crc)
432         filerr = file.open(curpath, crc);
432         filerr = file.open(curpath.c_str(), crc);
433433      else
434         filerr = file.open(curpath);
434         filerr = file.open(curpath.c_str());
435435
436436      // if it worked, get the actual length and hashes, then stop
437437      if (filerr == FILERR_NONE)
trunk/src/emu/bus/a1bus/a1cassette.c
r245640r245641
7979   set_a1bus_device();
8080
8181   astring tempstring;
82   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, CASSETTE_ROM_REGION))->base();
82   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, CASSETTE_ROM_REGION).c_str())->base();
8383
8484   install_device(0xc000, 0xc0ff, read8_delegate(FUNC(a1bus_cassette_device::cassette_r), this), write8_delegate(FUNC(a1bus_cassette_device::cassette_w), this));
8585   install_bank(0xc100, 0xc1ff, 0, 0, (char *)"bank_a1cas", m_rom);
trunk/src/emu/bus/a1bus/a1cffa.c
r245640r245641
7474   set_a1bus_device();
7575
7676   astring tempstring;
77   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, CFFA_ROM_REGION))->base();
77   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, CFFA_ROM_REGION).c_str())->base();
7878
7979   install_device(0xafe0, 0xafff, read8_delegate(FUNC(a1bus_cffa_device::cffa_r), this), write8_delegate(FUNC(a1bus_cffa_device::cffa_w), this));
8080   install_bank(0x9000, 0xafdf, 0, 0, (char *)"bank_cffa1", m_rom);
trunk/src/emu/bus/a2bus/a2applicard.c
r245640r245641
9898
9999   // locate Z80 ROM
100100   astring tempstring;
101   m_z80rom = device().machine().root_device().memregion(this->subtag(tempstring, Z80_ROM_REGION))->base();
101   m_z80rom = device().machine().root_device().memregion(this->subtag(tempstring, Z80_ROM_REGION).c_str())->base();
102102
103103   save_item(NAME(m_bROMAtZ80Zero));
104104   save_item(NAME(m_z80stat));
trunk/src/emu/bus/a2bus/a2cffa.c
r245640r245641
110110   set_a2bus_device();
111111
112112   astring tempstring;
113   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, CFFA2_ROM_REGION))->base();
113   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, CFFA2_ROM_REGION).c_str())->base();
114114
115115   // patch default setting so slave device is enabled and up to 13 devices on both connectors
116116   m_rom[0x800] = 13;
trunk/src/emu/bus/a2bus/a2corvus.c
r245640r245641
123123   set_a2bus_device();
124124
125125   astring tempstring;
126   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, CORVUS_ROM_REGION))->base();
126   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, CORVUS_ROM_REGION).c_str())->base();
127127}
128128
129129void a2bus_corvus_device::device_reset()
trunk/src/emu/bus/a2bus/a2diskii.c
r245640r245641
115115   set_a2bus_device();
116116
117117   astring tempstring;
118   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, DISKII_ROM_REGION))->base();
118   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, DISKII_ROM_REGION).c_str())->base();
119119}
120120
121121void a2bus_floppy_device::device_reset()
trunk/src/emu/bus/a2bus/a2diskiing.c
r245640r245641
8585   set_a2bus_device();
8686
8787   astring tempstring;
88   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, DISKII_ROM_REGION))->base();
88   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, DISKII_ROM_REGION).c_str())->base();
8989}
9090
9191void a2bus_diskiing_device::device_reset()
trunk/src/emu/bus/a2bus/a2hsscsi.c
r245640r245641
137137   set_a2bus_device();
138138
139139   astring tempstring;
140   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, SCSI_ROM_REGION))->base();
140   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, SCSI_ROM_REGION).c_str())->base();
141141
142142   memset(m_ram, 0, 8192);
143143
trunk/src/emu/bus/a2bus/a2memexp.c
r245640r245641
103103   set_a2bus_device();
104104
105105   astring tempstring;
106   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, MEMEXP_ROM_REGION))->base();
106   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, MEMEXP_ROM_REGION).c_str())->base();
107107
108108   memset(m_ram, 0xff, 1024*1024*sizeof(UINT8));
109109
trunk/src/emu/bus/a2bus/a2pic.c
r245640r245641
128128   set_a2bus_device();
129129
130130   astring tempstring;
131   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, PIC_ROM_REGION))->base();
131   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, PIC_ROM_REGION).c_str())->base();
132132
133133   m_timer = timer_alloc(0, NULL);
134134   m_timer->adjust(attotime::never);
trunk/src/emu/bus/a2bus/a2scsi.c
r245640r245641
130130   set_a2bus_device();
131131
132132   astring tempstring;
133   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, SCSI_ROM_REGION))->base();
133   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, SCSI_ROM_REGION).c_str())->base();
134134
135135   memset(m_ram, 0, 8192);
136136
trunk/src/emu/bus/a2bus/a2ssc.c
r245640r245641
155155   set_a2bus_device();
156156
157157   astring tempstring;
158   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, SSC_ROM_REGION))->base();
158   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, SSC_ROM_REGION).c_str())->base();
159159}
160160
161161void a2bus_ssc_device::device_reset()
trunk/src/emu/bus/a2bus/a2swyft.c
r245640r245641
6565   set_a2bus_device();
6666
6767   astring tempstring;
68   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, SWYFT_ROM_REGION))->base();
68   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, SWYFT_ROM_REGION).c_str())->base();
6969
7070   save_item(NAME(m_rombank));
7171}
trunk/src/emu/bus/a2bus/a2thunderclock.c
r245640r245641
9898   set_a2bus_device();
9999
100100   astring tempstring;
101   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, THUNDERCLOCK_ROM_REGION))->base();
101   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, THUNDERCLOCK_ROM_REGION).c_str())->base();
102102
103103   save_item(NAME(m_dataout));
104104}
trunk/src/emu/bus/a2bus/a2ultraterm.c
r245640r245641
163163   set_a2bus_device();
164164
165165   astring tempstring;
166   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, ULTRATERM_ROM_REGION))->base();
166   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, ULTRATERM_ROM_REGION).c_str())->base();
167167
168168   astring tempstring2;
169   m_chrrom = device().machine().root_device().memregion(this->subtag(tempstring2, ULTRATERM_GFX_REGION))->base();
169   m_chrrom = device().machine().root_device().memregion(this->subtag(tempstring2, ULTRATERM_GFX_REGION).c_str())->base();
170170
171171   memset(m_ram, 0, 256*16);
172172
trunk/src/emu/bus/a2bus/a2videoterm.c
r245640r245641
218218   set_a2bus_device();
219219
220220   astring tempstring;
221   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, VIDEOTERM_ROM_REGION))->base();
221   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, VIDEOTERM_ROM_REGION).c_str())->base();
222222
223223   astring tempstring2;
224   m_chrrom = device().machine().root_device().memregion(this->subtag(tempstring2, VIDEOTERM_GFX_REGION))->base();
224   m_chrrom = device().machine().root_device().memregion(this->subtag(tempstring2, VIDEOTERM_GFX_REGION).c_str())->base();
225225
226226   memset(m_ram, 0, 4*512);
227227
trunk/src/emu/bus/a2bus/a2vulcan.c
r245640r245641
139139   set_a2bus_device();
140140
141141   astring tempstring;
142   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, VULCAN_ROM_REGION))->base();
142   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, VULCAN_ROM_REGION).c_str())->base();
143143
144144   save_item(NAME(m_lastdata));
145145   save_item(NAME(m_ram));
trunk/src/emu/bus/a2bus/a2zipdrive.c
r245640r245641
8989   set_a2bus_device();
9090
9191   astring tempstring;
92   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, ZIPDRIVE_ROM_REGION))->base();
92   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, ZIPDRIVE_ROM_REGION).c_str())->base();
9393
9494   save_item(NAME(m_lastdata));
9595}
trunk/src/emu/bus/a2bus/corvfdc01.c
r245640r245641
140140   set_a2bus_device();
141141
142142   astring tempstring;
143   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, FDC01_ROM_REGION))->base();
143   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, FDC01_ROM_REGION).c_str())->base();
144144
145145   save_item(NAME(m_fdc_local_status));
146146   save_item(NAME(m_fdc_local_command));
trunk/src/emu/bus/a2bus/corvfdc02.c
r245640r245641
109109   set_a2bus_device();
110110
111111   astring tempstring;
112   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, FDC02_ROM_REGION))->base();
112   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, FDC02_ROM_REGION).c_str())->base();
113113
114114   m_timer = timer_alloc(0);
115115
trunk/src/emu/bus/a2bus/mouse.c
r245640r245641
206206   set_a2bus_device();
207207
208208   astring tempstring;
209   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, MOUSE_ROM_REGION))->base();
209   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, MOUSE_ROM_REGION).c_str())->base();
210210
211211   // allocate two timers: one for the 68705, one for the quadrature magic
212212   m_timer = timer_alloc(TIMER_68705, NULL);
trunk/src/emu/bus/a2bus/timemasterho.c
r245640r245641
149149   set_a2bus_device();
150150
151151   astring tempstring;
152   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, TIMEMASTER_ROM_REGION))->base();
152   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, TIMEMASTER_ROM_REGION).c_str())->base();
153153}
154154
155155void a2bus_timemasterho_device::device_reset()
trunk/src/emu/bus/a7800/a78_slot.c
r245640r245641
6868   {
6969      astring tempstring(tag);
7070      tempstring.cat(A78SLOT_ROM_REGION_TAG);
71      m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
71      m_rom = device().machine().memory().region_alloc(tempstring.c_str(), size, 1, ENDIANNESS_LITTLE)->base();
7272      m_rom_size = size;
7373
7474      // setup other helpers
trunk/src/emu/bus/a800/a800_slot.c
r245640r245641
6565   {
6666      astring tempstring(tag);
6767      tempstring.cat(A800SLOT_ROM_REGION_TAG);
68      m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
68      m_rom = device().machine().memory().region_alloc(tempstring.c_str(), size, 1, ENDIANNESS_LITTLE)->base();
6969      m_rom_size = size;
7070
7171      // setup other helpers
trunk/src/emu/bus/apf/slot.c
r245640r245641
5151   {
5252      astring tempstring(tag);
5353      tempstring.cat(APFSLOT_ROM_REGION_TAG);
54      m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
54      m_rom = device().machine().memory().region_alloc(tempstring.c_str(), size, 1, ENDIANNESS_LITTLE)->base();
5555      m_rom_size = size;
5656   }
5757}
trunk/src/emu/bus/arcadia/slot.c
r245640r245641
5151   {
5252      astring tempstring(tag);
5353      tempstring.cat(EA2001SLOT_ROM_REGION_TAG);
54      m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
54      m_rom = device().machine().memory().region_alloc(tempstring.c_str(), size, 1, ENDIANNESS_LITTLE)->base();
5555      m_rom_size = size;
5656   }
5757}
trunk/src/emu/bus/astrocde/slot.c
r245640r245641
5151   {
5252      astring tempstring(tag);
5353      tempstring.cat(ASTROCADESLOT_ROM_REGION_TAG);
54      m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
54      m_rom = device().machine().memory().region_alloc(tempstring.c_str(), size, 1, ENDIANNESS_LITTLE)->base();
5555      m_rom_size = size;
5656   }
5757}
trunk/src/emu/bus/chanf/slot.c
r245640r245641
5151   {
5252      astring tempstring(tag);
5353      tempstring.cat(CHANFSLOT_ROM_REGION_TAG);
54      m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
54      m_rom = device().machine().memory().region_alloc(tempstring.c_str(), size, 1, ENDIANNESS_LITTLE)->base();
5555      m_rom_size = size;
5656   }
5757}
trunk/src/emu/bus/crvision/slot.c
r245640r245641
5151   {
5252      astring tempstring(tag);
5353      tempstring.cat(CRVSLOT_ROM_REGION_TAG);
54      m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
54      m_rom = device().machine().memory().region_alloc(tempstring.c_str(), size, 1, ENDIANNESS_LITTLE)->base();
5555      m_rom_size = size;
5656   }
5757}
trunk/src/emu/bus/gameboy/gb_slot.c
r245640r245641
6363   {
6464      astring tempstring(tag);
6565      tempstring.cat(GBSLOT_ROM_REGION_TAG);
66      m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
66      m_rom = device().machine().memory().region_alloc(tempstring.c_str(), size, 1, ENDIANNESS_LITTLE)->base();
6767      m_rom_size = size;
6868   }
6969}
trunk/src/emu/bus/gba/gba_slot.c
r245640r245641
5151      astring tempstring(tag);
5252      tempstring.cat(GBASLOT_ROM_REGION_TAG);
5353      // we always alloc 32MB of rom region!
54      m_rom = (UINT32 *)device().machine().memory().region_alloc(tempstring, 0x2000000, 4, ENDIANNESS_LITTLE)->base();
54      m_rom = (UINT32 *)device().machine().memory().region_alloc(tempstring.c_str(), 0x2000000, 4, ENDIANNESS_LITTLE)->base();
5555      m_rom_size = size;
5656   }
5757}
trunk/src/emu/bus/generic/slot.c
r245640r245641
6161   {
6262      astring tempstring(tag);
6363      tempstring.cat(GENERIC_ROM_REGION_TAG);
64      m_rom = device().machine().memory().region_alloc(tempstring, size, width, endian)->base();
64      m_rom = device().machine().memory().region_alloc(tempstring.c_str(), size, width, endian)->base();
6565      m_rom_size = size;
6666   }
6767}
trunk/src/emu/bus/intv/ecs.c
r245640r245641
5555   if (m_rom == NULL)
5656   {
5757      astring region_tag;
58      m_rom = memregion(region_tag.cpy(tag()).cat(":ecs"))->base();
58      m_rom = memregion(region_tag.cpy(tag()).cat(":ecs").c_str())->base();
5959   }
6060   if (!m_ram.count())
6161   {
trunk/src/emu/bus/intv/slot.c
r245640r245641
120120   {
121121      astring tempstring(tag);
122122      tempstring.cat(INTVSLOT_ROM_REGION_TAG);
123      m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
123      m_rom = device().machine().memory().region_alloc(tempstring.c_str(), size, 1, ENDIANNESS_LITTLE)->base();
124124      memset(m_rom, 0xff, size);
125125      m_rom_size = size;
126126   }
trunk/src/emu/bus/isa/cga.c
r245640r245641
363363   }
364364
365365   astring tempstring;
366   m_chr_gen_base = memregion(subtag(tempstring, "gfx1"))->base();
366   m_chr_gen_base = memregion(subtag(tempstring, "gfx1").c_str())->base();
367367   m_chr_gen = m_chr_gen_base + m_chr_gen_offset[1];
368368
369369   save_item(NAME(m_framecnt));
trunk/src/emu/bus/isa/ega.c
r245640r245641
608608
609609   if(m_default_bios_tag != "iskr3104")
610610   {
611      UINT8   *dst = memregion(subtag(tempstring, "user2" ))->base() + 0x0000;
612      UINT8   *src = memregion(subtag(tempstring, "user1" ))->base() + 0x3fff;
611      UINT8   *dst = memregion(subtag(tempstring, "user2").c_str())->base() + 0x0000;
612      UINT8   *src = memregion(subtag(tempstring, "user1").c_str())->base() + 0x3fff;
613613      int     i;
614614
615615      /* Perform the EGA bios address line swaps */
r245640r245641
619619      }
620620   }
621621   else
622      memcpy(memregion(subtag(tempstring, "user2" ))->base(), memregion(subtag(tempstring, "user1" ))->base(), 0x4000);
622      memcpy(memregion(subtag(tempstring, "user2").c_str())->base(), memregion(subtag(tempstring, "user1").c_str())->base(), 0x4000);
623623
624624   /* Install 256KB Video ram on our EGA card */
625   m_vram = machine().memory().region_alloc(subtag(tempstring,"vram"), 256*1024, 1, ENDIANNESS_LITTLE);
625   m_vram = machine().memory().region_alloc(subtag(tempstring, "vram").c_str(), 256 * 1024, 1, ENDIANNESS_LITTLE);
626626
627627   m_videoram = m_vram->base();
628628   m_plane[0] = m_videoram + 0x00000;
trunk/src/emu/bus/isa/hdc.c
r245640r245641
261261   switch( id )
262262   {
263263   case 0:
264      img = dynamic_cast<harddisk_image_device *>(machine().device(subtag(tempstring,"primary")));
264      img = dynamic_cast<harddisk_image_device *>(machine().device(subtag(tempstring, "primary").c_str()));
265265      break;
266266   case 1:
267      img = dynamic_cast<harddisk_image_device *>(machine().device(subtag(tempstring,"slave")));
267      img = dynamic_cast<harddisk_image_device *>(machine().device(subtag(tempstring, "slave").c_str()));
268268      break;
269269   }
270270   if ( img == NULL )
trunk/src/emu/bus/isa/isa.c
r245640r245641
337337   } else {
338338      m_prgspace->install_read_bank(start, end, mask, mirror, tag);
339339      m_prgspace->unmap_write(start, end, mask, mirror);
340      machine().root_device().membank(tag)->set_base(machine().root_device().memregion(dev->subtag(tempstring, region))->base());
340      machine().root_device().membank(tag)->set_base(machine().root_device().memregion(dev->subtag(tempstring, region).c_str())->base());
341341   }
342342}
343343
trunk/src/emu/bus/isa/mda.c
r245640r245641
196196   m_pixel = 0;
197197
198198   astring tempstring;
199   m_chr_gen = memregion(subtag(tempstring, "gfx1"))->base();
199   m_chr_gen = memregion(subtag(tempstring, "gfx1").c_str())->base();
200200}
201201
202202/***************************************************************************
r245640r245641
613613   m_configuration_switch = 0;
614614
615615   astring tempstring;
616   m_chr_gen = memregion(subtag(tempstring, "gfx1"))->base();
616   m_chr_gen = memregion(subtag(tempstring, "gfx1").c_str())->base();
617617}
618618
619619/***************************************************************************
trunk/src/emu/bus/isa/mufdc.c
r245640r245641
163163
164164void mufdc_device::device_reset()
165165{
166   m_isa->install_rom(this, 0xc8000, 0xc9fff, 0, 0, m_shortname, "option");
166   m_isa->install_rom(this, 0xc8000, 0xc9fff, 0, 0, m_shortname.c_str(), "option");
167167   m_isa->install_device(0x3f0, 0x3f7, *m_fdc, &pc_fdc_interface::map);
168168   m_isa->set_dma_channel(2, this, true);
169169}
trunk/src/emu/bus/isa/pc1640_iga.c
r245640r245641
9999   }
100100
101101   /* Install 256KB Video ram on our EGA card */
102   m_vram = machine().memory().region_alloc(subtag(tempstring,"vram"), 256*1024, 1, ENDIANNESS_LITTLE);
102   m_vram = machine().memory().region_alloc(subtag(tempstring, "vram").c_str(), 256 * 1024, 1, ENDIANNESS_LITTLE);
103103
104104   m_videoram = m_vram->base();
105105   m_plane[0] = m_videoram + 0x00000;
trunk/src/emu/bus/macpds/macpds.c
r245640r245641
188188void device_macpds_card_interface::install_rom(device_t *dev, const char *romregion, UINT32 addr)
189189{
190190   astring tempstring;
191   UINT8 *rom = device().machine().root_device().memregion(dev->subtag(tempstring, romregion))->base();
192   UINT32 romlen = device().machine().root_device().memregion(dev->subtag(tempstring, romregion))->bytes();
191   UINT8 *rom = device().machine().root_device().memregion(dev->subtag(tempstring, romregion).c_str())->base();
192   UINT32 romlen = device().machine().root_device().memregion(dev->subtag(tempstring, romregion).c_str())->bytes();
193193   char bankname[128];
194194   sprintf(bankname, "rom_%x", addr);
195195
trunk/src/emu/bus/macpds/pds_tpdfpd.c
r245640r245641
8989      device_macpds_card_interface(mconfig, *this),
9090      m_assembled_tag(tag, ":", SEDISPLAY_SCREEN_NAME)
9191{
92   m_screen_tag = m_assembled_tag;
92   m_screen_tag = m_assembled_tag.c_str();
9393}
9494
9595macpds_sedisplay_device::macpds_sedisplay_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) :
r245640r245641
9898      device_macpds_card_interface(mconfig, *this),
9999      m_assembled_tag(tag, ":", SEDISPLAY_SCREEN_NAME)
100100{
101   m_screen_tag = m_assembled_tag;
101   m_screen_tag = m_assembled_tag.c_str();
102102}
103103
104104//-------------------------------------------------
trunk/src/emu/bus/megadrive/md_slot.c
r245640r245641
8787   {
8888      astring tempstring(tag);
8989      tempstring.cat(MDSLOT_ROM_REGION_TAG);
90      m_rom = (UINT16 *)device().machine().memory().region_alloc(tempstring, size, 2, ENDIANNESS_LITTLE)->base();
90      m_rom = (UINT16 *)device().machine().memory().region_alloc(tempstring.c_str(), size, 2, ENDIANNESS_LITTLE)->base();
9191      m_rom_size = size;
9292   }
9393}
trunk/src/emu/bus/nes/nes_ines.inc
r245640r245641
379379   // use info from nes.hsi if available!
380380   if (hashfile_extrainfo(*this, mapinfo))
381381   {
382      if (4 == sscanf(mapinfo,"%d %d %d %d", &mapint1, &mapint2, &mapint3, &mapint4))
382      if (4 == sscanf(mapinfo.c_str(),"%d %d %d %d", &mapint1, &mapint2, &mapint3, &mapint4))
383383      {
384384         /* image is present in nes.hsi: overwrite the header settings with these */
385385         mapper = mapint1;
r245640r245641
837837   // use info from nes.hsi if available!
838838   if (hashfile_extrainfo(*this, mapinfo))
839839   {
840      if (4 == sscanf(mapinfo,"%d %d %d %d", &mapint1, &mapint2, &mapint3, &mapint4))
840      if (4 == sscanf(mapinfo.c_str(),"%d %d %d %d", &mapint1, &mapint2, &mapint3, &mapint4))
841841      {
842842         /* image is present in nes.hsi: overwrite the header settings with these */
843843         mapper = mapint1;
trunk/src/emu/bus/nes/nes_slot.c
r245640r245641
150150   {
151151      astring tempstring(tag);
152152      tempstring.cat(NESSLOT_PRGROM_REGION_TAG);
153      m_prg = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
153      m_prg = device().machine().memory().region_alloc(tempstring.c_str(), size, 1, ENDIANNESS_LITTLE)->base();
154154      m_prg_size = size;
155155      m_prg_chunks = size / 0x4000;
156156      if (size % 0x2000)
r245640r245641
219219   {
220220      astring tempstring(tag);
221221      tempstring.cat(NESSLOT_CHRROM_REGION_TAG);
222      m_vrom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
222      m_vrom = device().machine().memory().region_alloc(tempstring.c_str(), size, 1, ENDIANNESS_LITTLE)->base();
223223      m_vrom_size = size;
224224      m_vrom_chunks = size / 0x2000;
225225   }
trunk/src/emu/bus/nubus/nubus.c
r245640r245641
326326   bool inverted = false;
327327
328328   astring tempstring;
329   UINT8 *rom = device().machine().root_device().memregion(dev->subtag(tempstring, romregion))->base();
330   UINT32 romlen = device().machine().root_device().memregion(dev->subtag(tempstring, romregion))->bytes();
329   UINT8 *rom = device().machine().root_device().memregion(dev->subtag(tempstring, romregion).c_str())->base();
330   UINT32 romlen = device().machine().root_device().memregion(dev->subtag(tempstring, romregion).c_str())->bytes();
331331
332332//  printf("ROM length is %x, last bytes are %02x %02x\n", romlen, rom[romlen-2], rom[romlen-1]);
333333
trunk/src/emu/bus/nubus/nubus_48gc.c
r245640r245641
8080      device_nubus_card_interface(mconfig, *this),
8181      m_assembled_tag(tag, ":", GC48_SCREEN_NAME)
8282{
83   m_screen_tag = m_assembled_tag;
83   m_screen_tag = m_assembled_tag.c_str();
8484}
8585
8686nubus_48gc_device::nubus_48gc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
trunk/src/emu/bus/nubus/nubus_m2hires.c
r245640r245641
6969      device_nubus_card_interface(mconfig, *this),
7070      m_assembled_tag(tag, ":", M2HIRES_SCREEN_NAME)
7171{
72   m_screen_tag = m_assembled_tag;
72   m_screen_tag = m_assembled_tag.c_str();
7373}
7474
7575nubus_m2hires_device::nubus_m2hires_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) :
r245640r245641
7878      device_nubus_card_interface(mconfig, *this),
7979      m_assembled_tag(tag, ":", M2HIRES_SCREEN_NAME)
8080{
81   m_screen_tag = m_assembled_tag;
81   m_screen_tag = m_assembled_tag.c_str();
8282}
8383
8484//-------------------------------------------------
trunk/src/emu/bus/nubus/nubus_m2video.c
r245640r245641
7070      device_nubus_card_interface(mconfig, *this),
7171      m_assembled_tag(tag, ":", M2VIDEO_SCREEN_NAME)
7272{
73   m_screen_tag = m_assembled_tag;
73   m_screen_tag = m_assembled_tag.c_str();
7474}
7575
7676nubus_m2video_device::nubus_m2video_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) :
r245640r245641
7979      device_nubus_card_interface(mconfig, *this),
8080      m_assembled_tag(tag, ":", M2VIDEO_SCREEN_NAME)
8181{
82   m_screen_tag = m_assembled_tag;
82   m_screen_tag = m_assembled_tag.c_str();
8383}
8484
8585//-------------------------------------------------
trunk/src/emu/bus/nubus/nubus_radiustpd.c
r245640r245641
6969      device_nubus_card_interface(mconfig, *this),
7070      m_assembled_tag(tag, ":", RADIUSTPD_SCREEN_NAME)
7171{
72   m_screen_tag = m_assembled_tag;
72   m_screen_tag = m_assembled_tag.c_str();
7373}
7474
7575nubus_radiustpd_device::nubus_radiustpd_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) :
r245640r245641
7878      device_nubus_card_interface(mconfig, *this),
7979      m_assembled_tag(tag, ":", RADIUSTPD_SCREEN_NAME)
8080{
81   m_screen_tag = m_assembled_tag;
81   m_screen_tag = m_assembled_tag.c_str();
8282}
8383
8484//-------------------------------------------------
trunk/src/emu/bus/nubus/nubus_spec8.c
r245640r245641
7171      device_nubus_card_interface(mconfig, *this),
7272      m_assembled_tag(tag, ":", SPEC8S3_SCREEN_NAME)
7373{
74   m_screen_tag = m_assembled_tag;
74   m_screen_tag = m_assembled_tag.c_str();
7575}
7676
7777nubus_spec8s3_device::nubus_spec8s3_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) :
r245640r245641
8080      device_nubus_card_interface(mconfig, *this),
8181      m_assembled_tag(tag, ":", SPEC8S3_SCREEN_NAME)
8282{
83   m_screen_tag = m_assembled_tag;
83   m_screen_tag = m_assembled_tag.c_str();
8484}
8585
8686//-------------------------------------------------
trunk/src/emu/bus/nubus/nubus_specpdq.c
r245640r245641
8787      m_assembled_tag(tag, ":", SPECPDQ_SCREEN_NAME),
8888      m_palette(*this, "palette")
8989{
90   m_screen_tag = m_assembled_tag;
90   m_screen_tag = m_assembled_tag.c_str();
9191}
9292
9393nubus_specpdq_device::nubus_specpdq_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) :
r245640r245641
9797      m_assembled_tag(tag, ":", SPECPDQ_SCREEN_NAME),
9898      m_palette(*this, "palette")
9999{
100   m_screen_tag = m_assembled_tag;
100   m_screen_tag = m_assembled_tag.c_str();
101101}
102102
103103//-------------------------------------------------
trunk/src/emu/bus/nubus/nubus_wsportrait.c
r245640r245641
7272      device_nubus_card_interface(mconfig, *this),
7373      m_assembled_tag(tag, ":", WSPORTRAIT_SCREEN_NAME)
7474{
75   m_screen_tag = m_assembled_tag;
75   m_screen_tag = m_assembled_tag.c_str();
7676}
7777
7878nubus_wsportrait_device::nubus_wsportrait_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) :
r245640r245641
8181      device_nubus_card_interface(mconfig, *this),
8282      m_assembled_tag(tag, ":", WSPORTRAIT_SCREEN_NAME)
8383{
84   m_screen_tag = m_assembled_tag;
84   m_screen_tag = m_assembled_tag.c_str();
8585}
8686
8787//-------------------------------------------------
trunk/src/emu/bus/nubus/pds30_30hr.c
r245640r245641
7272      device_nubus_card_interface(mconfig, *this),
7373      m_assembled_tag(tag, ":", XCEED30HR_SCREEN_NAME)
7474{
75   m_screen_tag = m_assembled_tag;
75   m_screen_tag = m_assembled_tag.c_str();
7676}
7777
7878nubus_xceed30hr_device::nubus_xceed30hr_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) :
r245640r245641
8181      device_nubus_card_interface(mconfig, *this),
8282      m_assembled_tag(tag, ":", XCEED30HR_SCREEN_NAME)
8383{
84   m_screen_tag = m_assembled_tag;
84   m_screen_tag = m_assembled_tag.c_str();
8585}
8686
8787//-------------------------------------------------
trunk/src/emu/bus/nubus/pds30_cb264.c
r245640r245641
6565      device_nubus_card_interface(mconfig, *this),
6666      m_assembled_tag(tag, ":", CB264SE30_SCREEN_NAME)
6767{
68   m_screen_tag = m_assembled_tag;
68   m_screen_tag = m_assembled_tag.c_str();
6969}
7070
7171nubus_cb264se30_device::nubus_cb264se30_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) :
r245640r245641
7474      device_nubus_card_interface(mconfig, *this),
7575      m_assembled_tag(tag, ":", CB264SE30_SCREEN_NAME)
7676{
77   m_screen_tag = m_assembled_tag;
77   m_screen_tag = m_assembled_tag.c_str();
7878}
7979
8080//-------------------------------------------------
trunk/src/emu/bus/nubus/pds30_mc30.c
r245640r245641
6868      device_nubus_card_interface(mconfig, *this),
6969      m_assembled_tag(tag, ":", XCEEDMC30_SCREEN_NAME)
7070{
71   m_screen_tag = m_assembled_tag;
71   m_screen_tag = m_assembled_tag.c_str();
7272}
7373
7474nubus_xceedmc30_device::nubus_xceedmc30_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) :
r245640r245641
7777      device_nubus_card_interface(mconfig, *this),
7878      m_assembled_tag(tag, ":", XCEEDMC30_SCREEN_NAME)
7979{
80   m_screen_tag = m_assembled_tag;
80   m_screen_tag = m_assembled_tag.c_str();
8181}
8282
8383//-------------------------------------------------
trunk/src/emu/bus/nubus/pds30_procolor816.c
r245640r245641
7171      device_nubus_card_interface(mconfig, *this),
7272      m_assembled_tag(tag, ":", PROCOLOR816_SCREEN_NAME)
7373{
74   m_screen_tag = m_assembled_tag;
74   m_screen_tag = m_assembled_tag.c_str();
7575}
7676
7777nubus_procolor816_device::nubus_procolor816_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) :
r245640r245641
8080      device_nubus_card_interface(mconfig, *this),
8181      m_assembled_tag(tag, ":", PROCOLOR816_SCREEN_NAME)
8282{
83   m_screen_tag = m_assembled_tag;
83   m_screen_tag = m_assembled_tag.c_str();
8484}
8585
8686//-------------------------------------------------
trunk/src/emu/bus/nubus/pds30_sigmalview.c
r245640r245641
6565      device_nubus_card_interface(mconfig, *this),
6666      m_assembled_tag(tag, ":", LVIEW_SCREEN_NAME)
6767{
68   m_screen_tag = m_assembled_tag;
68   m_screen_tag = m_assembled_tag.c_str();
6969}
7070
7171nubus_lview_device::nubus_lview_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) :
r245640r245641
7474      device_nubus_card_interface(mconfig, *this),
7575      m_assembled_tag(tag, ":", LVIEW_SCREEN_NAME)
7676{
77   m_screen_tag = m_assembled_tag;
77   m_screen_tag = m_assembled_tag.c_str();
7878}
7979
8080//-------------------------------------------------
trunk/src/emu/bus/odyssey2/slot.c
r245640r245641
5151   {
5252      astring tempstring(tag);
5353      tempstring.cat(O2SLOT_ROM_REGION_TAG);
54      m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
54      m_rom = device().machine().memory().region_alloc(tempstring.c_str(), size, 1, ENDIANNESS_LITTLE)->base();
5555      m_rom_size = size;
5656   }
5757}
trunk/src/emu/bus/oricext/jasmin.c
r245640r245641
5454{
5555   oricext_device::device_start();
5656   astring tempstring;
57   jasmin_rom = device().machine().root_device().memregion(this->subtag(tempstring, "jasmin"))->base();
57   jasmin_rom = device().machine().root_device().memregion(this->subtag(tempstring, "jasmin").c_str())->base();
5858   cpu->space(AS_PROGRAM).install_device(0x0000, 0xffff, *this, &jasmin_device::map);
5959
6060   for(int i=0; i<4; i++) {
trunk/src/emu/bus/oricext/microdisc.c
r245640r245641
4949{
5050   oricext_device::device_start();
5151   astring tempstring;
52   microdisc_rom = device().machine().root_device().memregion(this->subtag(tempstring, "microdisc"))->base();
52   microdisc_rom = device().machine().root_device().memregion(this->subtag(tempstring, "microdisc").c_str())->base();
5353   cpu->space(AS_PROGRAM).install_device(0x0000, 0xffff, *this, &microdisc_device::map);
5454
5555   for(int i=0; i<4; i++) {
trunk/src/emu/bus/pce/pce_slot.c
r245640r245641
5353   {
5454      astring tempstring(tag);
5555      tempstring.cat(PCESLOT_ROM_REGION_TAG);
56      m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
56      m_rom = device().machine().memory().region_alloc(tempstring.c_str(), size, 1, ENDIANNESS_LITTLE)->base();
5757      m_rom_size = size;
5858   }
5959}
trunk/src/emu/bus/saturn/sat_slot.c
r245640r245641
6060   {
6161      astring tempstring(tag);
6262      tempstring.cat(SATSLOT_ROM_REGION_TAG);
63      m_rom = (UINT32 *)device().machine().memory().region_alloc(tempstring, size, 4, ENDIANNESS_LITTLE)->base();
63      m_rom = (UINT32 *)device().machine().memory().region_alloc(tempstring.c_str(), size, 4, ENDIANNESS_LITTLE)->base();
6464      m_rom_size = size;
6565   }
6666}
trunk/src/emu/bus/scv/slot.c
r245640r245641
5151   {
5252      astring tempstring(tag);
5353      tempstring.cat(SCVSLOT_ROM_REGION_TAG);
54      m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
54      m_rom = device().machine().memory().region_alloc(tempstring.c_str(), size, 1, ENDIANNESS_LITTLE)->base();
5555      m_rom_size = size;
5656   }
5757}
trunk/src/emu/bus/sega8/sega8_slot.c
r245640r245641
7878   {
7979      astring tempstring(tag);
8080      tempstring.cat(S8SLOT_ROM_REGION_TAG);
81      m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
81      m_rom = device().machine().memory().region_alloc(tempstring.c_str(), size, 1, ENDIANNESS_LITTLE)->base();
8282      m_rom_size = size;
8383      m_rom_page_count = size / 0x4000;
8484      if (!m_rom_page_count)
trunk/src/emu/bus/snes/snes_slot.c
r245640r245641
9292   {
9393      astring tempstring(tag);
9494      tempstring.cat(SNSSLOT_ROM_REGION_TAG);
95      m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
95      m_rom = device().machine().memory().region_alloc(tempstring.c_str(), size, 1, ENDIANNESS_LITTLE)->base();
9696      m_rom_size = size;
9797   }
9898}
r245640r245641
802802      switch (m_addon)
803803      {
804804         case ADDON_DSP1:
805            ROM = machine().root_device().memregion(region)->base();
805            ROM = machine().root_device().memregion(region.c_str())->base();
806806            m_cart->addon_bios_alloc(0x2800);
807807            memcpy(m_cart->get_addon_bios_base(), ROM, 0x2800);
808808            break;
809809         case ADDON_DSP1B:
810            ROM = machine().root_device().memregion(region)->base();
810            ROM = machine().root_device().memregion(region.c_str())->base();
811811            m_cart->addon_bios_alloc(0x2800);
812812            memcpy(m_cart->get_addon_bios_base(), ROM, 0x2800);
813813            break;
814814         case ADDON_DSP2:
815            ROM = machine().root_device().memregion(region)->base();
815            ROM = machine().root_device().memregion(region.c_str())->base();
816816            m_cart->addon_bios_alloc(0x2800);
817817            memcpy(m_cart->get_addon_bios_base(), ROM, 0x2800);
818818            break;
819819         case ADDON_DSP3:
820            ROM = machine().root_device().memregion(region)->base();
820            ROM = machine().root_device().memregion(region.c_str())->base();
821821            m_cart->addon_bios_alloc(0x2800);
822822            memcpy(m_cart->get_addon_bios_base(), ROM, 0x2800);
823823            break;
824824         case ADDON_DSP4:
825            ROM = machine().root_device().memregion(region)->base();
825            ROM = machine().root_device().memregion(region.c_str())->base();
826826            m_cart->addon_bios_alloc(0x2800);
827827            memcpy(m_cart->get_addon_bios_base(), ROM, 0x2800);
828828            break;
829829         case ADDON_ST010:
830            ROM = machine().root_device().memregion(region)->base();
830            ROM = machine().root_device().memregion(region.c_str())->base();
831831            m_cart->addon_bios_alloc(0x11000);
832832            memcpy(m_cart->get_addon_bios_base(), ROM, 0x11000);
833833            break;
834834         case ADDON_ST011:
835            ROM = machine().root_device().memregion(region)->base();
835            ROM = machine().root_device().memregion(region.c_str())->base();
836836            m_cart->addon_bios_alloc(0x11000);
837837            memcpy(m_cart->get_addon_bios_base(), ROM, 0x11000);
838838            break;
trunk/src/emu/bus/vboy/slot.c
r245640r245641
5252   {
5353      astring tempstring(tag);
5454      tempstring.cat(VBOYSLOT_ROM_REGION_TAG);
55      m_rom = (UINT32 *)device().machine().memory().region_alloc(tempstring, size, 4, ENDIANNESS_LITTLE)->base();
55      m_rom = (UINT32 *)device().machine().memory().region_alloc(tempstring.c_str(), size, 4, ENDIANNESS_LITTLE)->base();
5656      m_rom_size = size/4;
5757      m_rom_mask = m_rom_size - 1;
5858   }
trunk/src/emu/bus/vc4000/slot.c
r245640r245641
5151   {
5252      astring tempstring(tag);
5353      tempstring.cat(VC4000SLOT_ROM_REGION_TAG);
54      m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
54      m_rom = device().machine().memory().region_alloc(tempstring.c_str(), size, 1, ENDIANNESS_LITTLE)->base();
5555      m_rom_size = size;
5656   }
5757}
trunk/src/emu/bus/vcs/vcs_slot.c
r245640r245641
5353   {
5454      astring tempstring(tag);
5555      tempstring.cat(A26SLOT_ROM_REGION_TAG);
56      m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
56      m_rom = device().machine().memory().region_alloc(tempstring.c_str(), size, 1, ENDIANNESS_LITTLE)->base();
5757      m_rom_size = size;
5858   }
5959}
trunk/src/emu/bus/vectrex/slot.c
r245640r245641
5151   {
5252      astring tempstring(tag);
5353      tempstring.cat(VECSLOT_ROM_REGION_TAG);
54      m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
54      m_rom = device().machine().memory().region_alloc(tempstring.c_str(), size, 1, ENDIANNESS_LITTLE)->base();
5555      m_rom_size = size;
5656   }
5757}
trunk/src/emu/bus/wswan/slot.c
r245640r245641
5252   {
5353      astring tempstring(tag);
5454      tempstring.cat(WSSLOT_ROM_REGION_TAG);
55      m_rom = device().machine().memory().region_alloc(tempstring, size, 1, ENDIANNESS_LITTLE)->base();
55      m_rom = device().machine().memory().region_alloc(tempstring.c_str(), size, 1, ENDIANNESS_LITTLE)->base();
5656      m_rom_size = size;
5757      m_bank_mask = ((m_rom_size >> 16) - 1);
5858   }
trunk/src/emu/bus/x68k/x68k_scsiext.c
r245640r245641
7070   m_slot = dynamic_cast<x68k_expansion_slot_device *>(owner());
7171   space.install_read_bank(0xea0020,0xea1fff,0,0,"scsi_ext");
7272   space.unmap_write(0xea0020,0xea1fff,0,0);
73   ROM = machine().root_device().memregion(subtag(temp,"scsiexrom"))->base();
73   ROM = machine().root_device().memregion(subtag(temp, "scsiexrom").c_str())->base();
7474   machine().root_device().membank("scsi_ext")->set_base(ROM);
7575   space.install_readwrite_handler(0xea0000,0xea001f,0,0,read8_delegate(FUNC(x68k_scsiext_device::register_r),this),write8_delegate(FUNC(x68k_scsiext_device::register_w),this),0x00ff00ff);
7676}
trunk/src/emu/cheat.c
r245640r245641
122122         string.printf("0x%X", (UINT32)m_value);
123123         break;
124124   }
125   return string;
125   return string.c_str();
126126}
127127
128128
r245640r245641
191191            break;
192192         }
193193   }
194   return m_curtext;
194   return m_curtext.c_str();
195195}
196196
197197
r245640r245641
507507         curarg += arg->values(argindex, &params[curarg]);
508508
509509      // generate the astring
510      manager.get_output_astring(m_line, m_justify).printf(m_format,
510      manager.get_output_astring(m_line, m_justify).printf(m_format.c_str(),
511511         (UINT32)params[0],  (UINT32)params[1],  (UINT32)params[2],  (UINT32)params[3],
512512         (UINT32)params[4],  (UINT32)params[5],  (UINT32)params[6],  (UINT32)params[7],
513513         (UINT32)params[8],  (UINT32)params[9],  (UINT32)params[10], (UINT32)params[11],
r245640r245641
577577      argsprovided += curarg->count();
578578
579579   // now scan the string for valid argument usage
580   const char *p = strchr(m_format, '%');
580   const char *p = strchr(m_format.c_str(), '%');
581581   int argscounted = 0;
582582   while (p != NULL)
583583   {
r245640r245641
711711      m_symbols.add("argindex", symbol_table::READ_ONLY, &m_argindex);
712712      astring tempname;
713713      for (int curtemp = 0; curtemp < tempcount; curtemp++)
714         m_symbols.add(tempname.format("temp%d", curtemp), symbol_table::READ_WRITE);
714         m_symbols.add(tempname.format("temp%d", curtemp).c_str(), symbol_table::READ_WRITE);
715715
716716      // read the first comment node
717717      xml_data_node *commentnode = xml_get_sibling(cheatnode.child, "comment");
r245640r245641
11511151            {
11521152               astring filename;
11531153               filename.printf("%08X", crc);
1154               load_cheats(filename);
1154               load_cheats(filename.c_str());
11551155               break;
11561156            }
11571157         }
r245640r245641
12211221      if (m_output[linenum])
12221222      {
12231223         // output the text
1224         machine().ui().draw_text_full(&container, m_output[linenum],
1224         machine().ui().draw_text_full(&container, m_output[linenum].c_str(),
12251225               0.0f, (float)linenum * machine().ui().get_line_height(), 1.0f,
12261226               m_justify[linenum], WRAP_NEVER, DRAW_OPAQUE,
12271227               ARGB_WHITE, ARGB_BLACK, NULL, NULL);
r245640r245641
12921292   string.replace(0, "<< ", " lshift ");
12931293   string.replace(0, "<<", " lshift ");
12941294
1295   return string;
1295   return string.c_str();
12961296}
12971297
12981298
trunk/src/emu/cheat.h
r245640r245641
104104      // getters
105105      item *next() const { return m_next; }
106106      const number_and_format &value() const { return m_value; }
107      const char *text() const { return m_text; }
107      const char *text() const { return m_text.c_str(); }
108108
109109   private:
110110      // internal state
r245640r245641
221221   cheat_manager &manager() const { return m_manager; }
222222   cheat_entry *next() const { return m_next; }
223223   script_state state() const { return m_state; }
224   const char *description() const { return m_description; }
225   const char *comment() const { return m_comment; }
224   const char *description() const { return m_description.c_str(); }
225   const char *comment() const { return m_comment.c_str(); }
226226
227227   // script detection
228228   bool has_run_script() const { return (m_run_script != NULL); }
trunk/src/emu/clifront.c
r245640r245641
195195
196196      // if we have a command, execute that
197197      if (*(m_options.command()) != 0)
198         execute_commands(exename);
198         execute_commands(exename.c_str());
199199
200200      // otherwise, check for a valid system
201201      else
r245640r245641
16871687         if (entry->type == ENTTYPE_FILE)
16881688         {
16891689            astring curfile(filename, PATH_SEPARATOR, entry->name);
1690            identify(curfile);
1690            identify(curfile.c_str());
16911691         }
16921692
16931693      // close the directory and be done
trunk/src/emu/cpu/adsp2100/adsp2100.c
r245640r245641
546546
547547   astring tempstring;
548548   for (int ireg = 0; ireg < 8; ireg++)
549      state_add(ADSP2100_I0 + ireg, tempstring.format("I%d", ireg), m_i[ireg]).mask(0x3fff).callimport();
549      state_add(ADSP2100_I0 + ireg, tempstring.format("I%d", ireg).c_str(), m_i[ireg]).mask(0x3fff).callimport();
550550
551551   for (int lreg = 0; lreg < 8; lreg++)
552      state_add(ADSP2100_L0 + lreg, tempstring.format("L%d", lreg), m_l[lreg]).mask(0x3fff).callimport();
552      state_add(ADSP2100_L0 + lreg, tempstring.format("L%d", lreg).c_str(), m_l[lreg]).mask(0x3fff).callimport();
553553
554554   for (int mreg = 0; mreg < 8; mreg++)
555      state_add(ADSP2100_M0 + mreg, tempstring.format("M%d", mreg), m_m[mreg]).signed_mask(0x3fff);
555      state_add(ADSP2100_M0 + mreg, tempstring.format("M%d", mreg).c_str(), m_m[mreg]).signed_mask(0x3fff);
556556
557557   state_add(ADSP2100_PX,      "PX",        m_px);
558558   state_add(ADSP2100_CNTR,    "CNTR",      m_cntr).mask(0x3fff);
r245640r245641
571571
572572   for (int irqnum = 0; irqnum < 4; irqnum++)
573573      if (irqnum < 4 || m_chip_type == CHIP_TYPE_ADSP2100)
574         state_add(ADSP2100_IRQSTATE0 + irqnum, tempstring.format("IRQ%d", irqnum), m_irq_state[irqnum]).mask(1).callimport();
574         state_add(ADSP2100_IRQSTATE0 + irqnum, tempstring.format("IRQ%d", irqnum).c_str(), m_irq_state[irqnum]).mask(1).callimport();
575575
576576   state_add(ADSP2100_FLAGIN,  "FLAGIN",    m_flagin).mask(1);
577577   state_add(ADSP2100_FLAGOUT, "FLAGOUT",   m_flagout).mask(1);
trunk/src/emu/cpu/asap/asap.c
r245640r245641
194194   state_add(ASAP_PC,         "PC",        m_pc);
195195   state_add(ASAP_PS,         "PS",        m_flagsio).callimport().callexport();
196196   for (int regnum = 0; regnum < 32; regnum++)
197      state_add(ASAP_R0 + regnum, tempstr.format("R%d", regnum), m_src2val[REGBASE + regnum]);
197      state_add(ASAP_R0 + regnum, tempstr.format("R%d", regnum).c_str(), m_src2val[REGBASE + regnum]);
198198
199199   // register our state for saving
200200   save_item(NAME(m_pc));
trunk/src/emu/cpu/cosmac/cosmac.c
r245640r245641
358358
359359   astring tempstr;
360360   for (int regnum = 0; regnum < 16; regnum++)
361      state_add(COSMAC_R0 + regnum, tempstr.format("R%x", regnum), m_r[regnum]);
361      state_add(COSMAC_R0 + regnum, tempstr.format("R%x", regnum).c_str(), m_r[regnum]);
362362
363363   state_add(COSMAC_DF,    "DF",   m_df).mask(0x1).noshow();
364364   state_add(COSMAC_IE,    "IE",   m_ie).mask(0x1).noshow();
trunk/src/emu/cpu/drcbex64.c
r245640r245641
808808         if (inst.opcode() == OP_HANDLE)
809809            blockname = inst.param(0).handle().string();
810810         else if (inst.opcode() == OP_HASH)
811            blockname = tempstring.format("Code: mode=%d PC=%08X", (UINT32)inst.param(0).immediate(), (offs_t)inst.param(1).immediate());
811            blockname = tempstring.format("Code: mode=%d PC=%08X", (UINT32)inst.param(0).immediate(), (offs_t)inst.param(1).immediate()).c_str();
812812      }
813813
814814      // generate code
trunk/src/emu/cpu/drcbex86.c
r245640r245641
791791         if (inst.opcode() == OP_HANDLE)
792792            blockname = inst.param(0).handle().string();
793793         else if (inst.opcode() == OP_HASH)
794            blockname = tempstring.format("Code: mode=%d PC=%08X", (UINT32)inst.param(0).immediate(), (offs_t)inst.param(1).immediate());
794            blockname = tempstring.format("Code: mode=%d PC=%08X", (UINT32)inst.param(0).immediate(), (offs_t)inst.param(1).immediate()).c_str();
795795      }
796796
797797      // generate code
trunk/src/emu/cpu/drcuml.c
r245640r245641
253253         // return the offset and name
254254         if (offset != NULL)
255255            *offset = search - cursym->m_base;
256         return cursym->m_name;
256         return cursym->m_name.c_str();
257257      }
258258
259259   // not found; return NULL
r245640r245641
396396   char *comment = (char *)m_drcuml.cache().alloc_temporary(temp.len() + 1);
397397   if (comment == NULL)
398398      return;
399   strcpy(comment, temp);
399   strcpy(comment, temp.c_str());
400400
401401   // add an instruction with a pointer
402402   append().comment(comment);
r245640r245641
524524{
525525   // comments return their strings
526526   if (inst.opcode() == OP_COMMENT)
527      return comment.cpy(inst.param(0).string());
527      return comment.cpy(inst.param(0).string()).c_str();
528528
529529   // mapvars comment about their values
530530   else if (inst.opcode() == OP_MAPVAR)
531      return comment.format("m%d = $%X", (int)inst.param(0).mapvar() - MAPVAR_M0, (UINT32)inst.param(1).immediate());
531      return comment.format("m%d = $%X", (int)inst.param(0).mapvar() - MAPVAR_M0, (UINT32)inst.param(1).immediate()).c_str();
532532
533533   // everything else is NULL
534534   return NULL;
trunk/src/emu/cpu/dsp32/dsp32.c
r245640r245641
201201   state_add(STATE_GENFLAGS,  "GENFLAGS",  m_iotemp).callimport().callexport().formatstr("%6s").noshow();
202202   state_add(DSP32_PC,        "PC",        m_r[15]).mask(0xffffff);
203203   for (int regnum = 0; regnum <= 14; regnum++)
204      state_add(DSP32_R0 + regnum, tempstr.format("R%d", regnum), m_r[regnum]).mask(0xffffff);
204      state_add(DSP32_R0 + regnum, tempstr.format("R%d", regnum).c_str(), m_r[regnum]).mask(0xffffff);
205205   state_add(DSP32_R15,       "R15",       m_r[17]).mask(0xffffff);
206206   state_add(DSP32_R16,       "R16",       m_r[18]).mask(0xffffff);
207207   state_add(DSP32_R17,       "R17",       m_r[19]).mask(0xffffff);
trunk/src/emu/cpu/hd61700/hd61700.c
r245640r245641
184184   for (int ireg=0; ireg<32; ireg++)
185185   {
186186      astring tmpstr;
187      state_add(HD61700_MAINREG + ireg, tmpstr.format("R%d", ireg), m_regmain[ireg]).callimport().callexport().formatstr("%02X");
187      state_add(HD61700_MAINREG + ireg, tmpstr.format("R%d", ireg).c_str(), m_regmain[ireg]).callimport().callexport().formatstr("%02X");
188188   }
189189
190190   state_add(STATE_GENPC, "curpc", m_curpc).callimport().callexport().formatstr("%8s").noshow();
trunk/src/emu/cpu/i4004/i4004.c
r245640r245641
422422      astring tempstr;
423423      for (int regnum = 0; regnum < 8; regnum++)
424424      {
425         state_add(I4004_R01 + regnum, tempstr.format("R%X%X", regnum*2, regnum*2+1), m_R[regnum]);
425         state_add(I4004_R01 + regnum, tempstr.format("R%X%X", regnum * 2, regnum * 2 + 1).c_str(), m_R[regnum]);
426426      }
427427
428428      for (int addrnum = 0; addrnum < 4; addrnum++)
429429      {
430         state_add(I4004_ADDR1 + addrnum, tempstr.format("ADDR%d", addrnum + 1), m_ADDR[addrnum].w.l).mask(0xfff);
430         state_add(I4004_ADDR1 + addrnum, tempstr.format("ADDR%d", addrnum + 1).c_str(), m_ADDR[addrnum].w.l).mask(0xfff);
431431      }
432432
433433      state_add(I4004_RAM,   "RAM",   m_RAM.w.l).mask(0x0fff);
trunk/src/emu/cpu/i8008/i8008.c
r245640r245641
9494
9595   astring tempstr;
9696   for (int addrnum = 0; addrnum < 8; addrnum++)
97      state_add(I8008_ADDR1 + addrnum, tempstr.format("ADDR%d", addrnum + 1), m_ADDR[addrnum].w.l).mask(0xfff);
97      state_add(I8008_ADDR1 + addrnum, tempstr.format("ADDR%d", addrnum + 1).c_str(), m_ADDR[addrnum].w.l).mask(0xfff);
9898
9999   init_tables();
100100}
trunk/src/emu/cpu/ie15/ie15.c
r245640r245641
6464
6565   astring tempstring;
6666   for (int ireg = 0; ireg < 32; ireg++)
67      state_add(IE15_R0 + ireg, tempstring.format("R%d", ireg), m_REGS[ireg]);
67      state_add(IE15_R0 + ireg, tempstring.format("R%d", ireg).c_str(), m_REGS[ireg]);
6868}
6969
7070//-------------------------------------------------
trunk/src/emu/cpu/m68000/m68kcpu.c
r245640r245641
17391739
17401740   astring tempstr;
17411741   for (int regnum = 0; regnum < 8; regnum++)
1742      state_add(M68K_D0 + regnum, tempstr.format("D%d", regnum), dar[regnum]);
1742      state_add(M68K_D0 + regnum, tempstr.format("D%d", regnum).c_str(), dar[regnum]);
17431743   for (int regnum = 0; regnum < 8; regnum++)
1744      state_add(M68K_A0 + regnum, tempstr.format("A%d", regnum), dar[8 + regnum]);
1744      state_add(M68K_A0 + regnum, tempstr.format("A%d", regnum).c_str(), dar[8 + regnum]);
17451745
17461746   state_add(M68K_PREF_ADDR,  "PREF_ADDR", pref_addr).mask(addrmask);
17471747   state_add(M68K_PREF_DATA,  "PREF_DATA", pref_data);
r245640r245641
17621762   if (cpu_type & MASK_030_OR_LATER)
17631763   {
17641764      for (int regnum = 0; regnum < 8; regnum++)
1765         state_add(M68K_FP0 + regnum, tempstr.format("FP%d", regnum), iotemp).callimport().callexport().formatstr("%10s");
1765         state_add(M68K_FP0 + regnum, tempstr.format("FP%d", regnum).c_str(), iotemp).callimport().callexport().formatstr("%10s");
17661766      state_add(M68K_FPSR, "FPSR", fpsr);
17671767      state_add(M68K_FPCR, "FPCR", fpcr);
17681768   }
trunk/src/emu/cpu/mcs48/mcs48.c
r245640r245641
978978
979979      astring tempstr;
980980      for (int regnum = 0; regnum < 8; regnum++)
981         state_add(MCS48_R0 + regnum, tempstr.format("R%d", regnum), m_rtemp).callimport().callexport();
981         state_add(MCS48_R0 + regnum, tempstr.format("R%d", regnum).c_str(), m_rtemp).callimport().callexport();
982982
983983      state_add(MCS48_EA,        "EA",        m_ea).mask(0x1);
984984
trunk/src/emu/cpu/tms34010/tms34010.c
r245640r245641
593593      astring tempstr;
594594      for (int regnum = 0; regnum < 15; regnum++)
595595      {
596         state_add(TMS34010_A0 + regnum, tempstr.format("A%d", regnum), m_regs[regnum].reg);
596         state_add(TMS34010_A0 + regnum, tempstr.format("A%d", regnum).c_str(), m_regs[regnum].reg);
597597      }
598598      for (int regnum = 0; regnum < 15; regnum++)
599599      {
600         state_add(TMS34010_B0 + regnum, tempstr.format("B%d", regnum), m_regs[30 - regnum].reg);
600         state_add(TMS34010_B0 + regnum, tempstr.format("B%d", regnum).c_str(), m_regs[30 - regnum].reg);
601601      }
602602   }
603603
trunk/src/emu/cpu/uml.c
r245640r245641
10261026      if (m_flags & FLAG_C)
10271027         buffer.cat('C');
10281028   }
1029   return buffer;
1029   return buffer.c_str();
10301030}
trunk/src/emu/cpu/uml.h
r245640r245641
239239      code_handle *next() const { return m_next; }
240240      drccodeptr codeptr() const { return *m_code; }
241241      drccodeptr *codeptr_addr() { return m_code; }
242      const char *string() const { return m_string; }
242      const char *string() const { return m_string.c_str(); }
243243
244244      // setters
245245      void set_codeptr(drccodeptr code);
trunk/src/emu/cpu/x86log.c
r245640r245641
269269
270270   /* open the file, creating it if necessary */
271271   if (log->file == NULL)
272      log->file = fopen(log->filename, "w");
272      log->file = fopen(log->filename.c_str(), "w");
273273   if (log->file == NULL)
274274      return;
275275
trunk/src/emu/cpu/z8/z8.c
r245640r245641
680680
681681      astring tempstr;
682682      for (int regnum = 0; regnum < 16; regnum++)
683         state_add(Z8_R0 + regnum, tempstr.format("R%d", regnum), m_fake_r[regnum]).callimport().callexport();
683         state_add(Z8_R0 + regnum, tempstr.format("R%d", regnum).c_str(), m_fake_r[regnum]).callimport().callexport();
684684   }
685685
686686   /* find address spaces */
trunk/src/emu/debug/debugcmd.c
r245640r245641
17021702static void execute_statesave(running_machine &machine, int ref, int params, const char *param[])
17031703{
17041704   astring filename(param[0]);
1705   machine.immediate_save(filename);
1705   machine.immediate_save(filename.c_str());
17061706   debug_console_printf(machine, "State save attempted.  Please refer to window message popup for results.\n");
17071707}
17081708
r245640r245641
17141714static void execute_stateload(running_machine &machine, int ref, int params, const char *param[])
17151715{
17161716   astring filename(param[0]);
1717   machine.immediate_load(filename);
1717   machine.immediate_load(filename.c_str());
17181718
17191719   // Clear all PC & memory tracks
17201720   device_iterator iter(machine.root_device());
r245640r245641
25832583      return;
25842584
25852585   /* open the file */
2586   if (core_stricmp(filename, "off") != 0)
2586   if (core_stricmp(filename.c_str(), "off") != 0)
25872587   {
25882588      mode = "w";
25892589
r245640r245641
25942594         filename = filename.substr(2);
25952595      }
25962596
2597      f = fopen(filename, mode);
2597      f = fopen(filename.c_str(), mode);
25982598      if (!f)
25992599      {
26002600         debug_console_printf(machine, "Error opening file '%s'\n", param[0]);
r245640r245641
28352835      if (fname.find(0, ".png") == -1)
28362836         fname.cat(".png");
28372837      emu_file file(machine.options().snapshot_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
2838      file_error filerr = file.open(fname);
2838      file_error filerr = file.open(fname.c_str());
28392839
28402840      if (filerr != FILERR_NONE)
28412841      {
trunk/src/emu/debug/debugcon.c
r245640r245641
482482   buffer.vprintf(format, arg);
483483   va_end(arg);
484484
485   text_buffer_print(console_textbuf, buffer);
485   text_buffer_print(console_textbuf, buffer.c_str());
486486
487487   /* force an update of any console views */
488488   machine.debug_view().update_all(DVT_CONSOLE);
r245640r245641
500500   astring buffer;
501501
502502   buffer.vprintf(format, args);
503   text_buffer_print(console_textbuf, buffer);
503   text_buffer_print(console_textbuf, buffer.c_str());
504504
505505   /* force an update of any console views */
506506   machine.debug_view().update_all(DVT_CONSOLE);
r245640r245641
522522   buffer.vprintf(format, arg);
523523   va_end(arg);
524524
525   text_buffer_print_wrap(console_textbuf, buffer, wrapcol);
525   text_buffer_print_wrap(console_textbuf, buffer.c_str(), wrapcol);
526526
527527   /* force an update of any console views */
528528   machine.debug_view().update_all(DVT_CONSOLE);
trunk/src/emu/debug/debugcpu.c
r245640r245641
11111111   // convert to lowercase then lookup the name (tags are enforced to be all lower case)
11121112   astring fullname(tag);
11131113   fullname.makelower();
1114   return machine.device(fullname);
1114   return machine.device(fullname.c_str());
11151115}
11161116
11171117
r245640r245641
16681668      // add all registers into it
16691669      astring tempstr;
16701670      for (const device_state_entry *entry = m_state->state_first(); entry != NULL; entry = entry->next())
1671         m_symtable.add(tempstr.cpy(entry->symbol()).makelower(), (void *)(FPTR)entry->index(), get_state, set_state);
1671         m_symtable.add(tempstr.cpy(entry->symbol()).makelower().c_str(), (void *)(FPTR)entry->index(), get_state, set_state);
16721672   }
16731673
16741674   // set up execution-related stuff
r245640r245641
26682668   const UINT32 crc = compute_opcode_crc32(addr);
26692669   std::set<dasm_comment>::iterator comment = m_comment_set.find(dasm_comment(addr, crc, "", 0));
26702670   if (comment == m_comment_set.end()) return NULL;
2671   return comment->m_text;
2671   return comment->m_text.c_str();
26722672}
26732673
26742674
r245640r245641
26832683   astring crc_buf;
26842684   for (std::set<dasm_comment>::iterator item = m_comment_set.begin(); item != m_comment_set.end(); ++item)
26852685   {
2686      xml_data_node *datanode = xml_add_child(&curnode, "comment", xml_normalize_string(item->m_text));
2686      xml_data_node *datanode = xml_add_child(&curnode, "comment", xml_normalize_string(item->m_text.c_str()));
26872687      if (datanode == NULL)
26882688         return false;
26892689      xml_set_attribute_int(datanode, "address", item->m_address);
26902690      xml_set_attribute_int(datanode, "color", item->m_color);
26912691      crc_buf.printf("%08X", item->m_crc);
2692      xml_set_attribute(datanode, "crc", crc_buf);
2692      xml_set_attribute(datanode, "crc", crc_buf.c_str());
26932693   }
26942694   return true;
26952695}
r245640r245641
29082908
29092909         // if we hit, evaluate the action
29102910         if (bp->m_action)
2911            debug_console_execute_command(m_device.machine(), bp->m_action, 0);
2911            debug_console_execute_command(m_device.machine(), bp->m_action.c_str(), 0);
29122912
29132913         // print a notification, unless the action made us go again
29142914         if (global->execution_state == EXECUTION_STATE_STOPPED)
r245640r245641
29282928         // if we hit, evaluate the action
29292929         if (rp->m_action)
29302930         {
2931            debug_console_execute_command(m_device.machine(), rp->m_action, 0);
2931            debug_console_execute_command(m_device.machine(), rp->m_action.c_str(), 0);
29322932         }
29332933
29342934         // print a notification, unless the action made us go again
r245640r245641
30373037
30383038         // if we hit, evaluate the action
30393039         if (wp->m_action)
3040            debug_console_execute_command(space.machine(), wp->m_action, 0);
3040            debug_console_execute_command(space.machine(), wp->m_action.c_str(), 0);
30413041
30423042         // print a notification, unless the action made us go again
30433043         if (global->execution_state == EXECUTION_STATE_STOPPED)
r245640r245641
34803480
34813481   // execute any trace actions first
34823482   if (m_action)
3483      debug_console_execute_command(m_debug.m_device.machine(), m_action, 0);
3483      debug_console_execute_command(m_debug.m_device.machine(), m_action.c_str(), 0);
34843484
34853485   // print the address
34863486   astring buffer;
trunk/src/emu/debug/debugcpu.h
r245640r245641
6868      bool enabled() const { return m_enabled; }
6969      offs_t address() const { return m_address; }
7070      const char *condition() const { return m_condition.original_string(); }
71      const char *action() const { return m_action; }
71      const char *action() const { return m_action.c_str(); }
7272
7373      // setters
7474      void setEnabled(bool value) { m_enabled = value; }
r245640r245641
113113      offs_t address() const { return m_address; }
114114      offs_t length() const { return m_length; }
115115      const char *condition() const { return m_condition.original_string(); }
116      const char *action() const { return m_action; }
116      const char *action() const { return m_action.c_str(); }
117117
118118      // setters
119119      void setEnabled(bool value) { m_enabled = value; }
r245640r245641
148148      int index() const { return m_index; }
149149      bool enabled() const { return m_enabled; }
150150      const char *condition() const { return m_condition.original_string(); }
151      const char *action() const { return m_action; }
151      const char *action() const { return m_action.c_str(); }
152152
153153   private:
154154      // internals
trunk/src/emu/debug/debugvw.c
r245640r245641
504504      astring oldstring(m_parsed.original_string());
505505      try
506506      {
507         m_parsed.parse(m_string);
507         m_parsed.parse(m_string.c_str());
508508      }
509509      catch (expression_error &)
510510      {
511         m_parsed.parse(oldstring);
511         m_parsed.parse(oldstring.c_str());
512512      }
513513   }
514514
trunk/src/emu/debug/debugvw.h
r245640r245641
121121   virtual ~debug_view_source();
122122
123123   // getters
124   const char *name() const { return m_name; }
124   const char *name() const { return m_name.c_str(); }
125125   debug_view_source *next() const { return m_next; }
126126   device_t *device() const { return m_device; }
127127   bool is_octal() const { return m_is_octal; }
r245640r245641
266266   bool dirty() const { return m_dirty; }
267267   UINT64 last_value() const { return m_result; }
268268   UINT64 value() { recompute(); return m_result; }
269   const char *string() const { return m_string; }
269   const char *string() const { return m_string.c_str(); }
270270   symbol_table *context() const { return m_parsed.symbols(); }
271271
272272   // setters
trunk/src/emu/debug/dvdisasm.c
r245640r245641
9999   for (device_disasm_interface *dasm = iter.first(); dasm != NULL; dasm = iter.next())
100100   {
101101      name.printf("%s '%s'", dasm->device().name(), dasm->device().tag());
102      m_source_list.append(*global_alloc(debug_view_disasm_source(name, dasm->device())));
102      m_source_list.append(*global_alloc(debug_view_disasm_source(name.c_str(), dasm->device())));
103103   }
104104
105105   // reset the source to a known good entry
trunk/src/emu/debug/dvmemory.c
r245640r245641
138138            {
139139               address_space &space = memintf->space(spacenum);
140140               name.printf("%s '%s' %s space memory", memintf->device().name(), memintf->device().tag(), space.name());
141               m_source_list.append(*global_alloc(debug_view_memory_source(name, space)));
141               m_source_list.append(*global_alloc(debug_view_memory_source(name.c_str(), space)));
142142            }
143143
144144   // then add all the memory regions
145145   for (memory_region *region = machine().memory().first_region(); region != NULL; region = region->next())
146146   {
147147      name.printf("Region '%s'", region->name());
148      m_source_list.append(*global_alloc(debug_view_memory_source(name, *region)));
148      m_source_list.append(*global_alloc(debug_view_memory_source(name.c_str(), *region)));
149149   }
150150
151151   // finally add all global array symbols
r245640r245641
163163      if (strncmp(itemname, "timer/", 6))
164164      {
165165         name.cpy(itemname);
166         m_source_list.append(*global_alloc(debug_view_memory_source(name, base, valsize, valcount)));
166         m_source_list.append(*global_alloc(debug_view_memory_source(name.c_str(), base, valsize, valcount)));
167167      }
168168   }
169169
r245640r245641
245245         char addrtext[20];
246246
247247         // generate the address
248         sprintf(addrtext, m_addrformat, address);
248         sprintf(addrtext, m_addrformat.c_str(), address);
249249         dest = destrow + m_section[0].m_pos + 1;
250250         for (int ch = 0; addrtext[ch] != 0 && ch < m_section[0].m_width - 1; ch++, dest++)
251251            if (dest >= destmin && dest < destmax)
trunk/src/emu/debug/dvstate.c
r245640r245641
7979   for (device_state_interface *state = iter.first(); state != NULL; state = iter.next())
8080   {
8181      name.printf("%s '%s'", state->device().name(), state->device().tag());
82      m_source_list.append(*global_alloc(debug_view_state_source(name, state->device())));
82      m_source_list.append(*global_alloc(debug_view_state_source(name.c_str(), state->device())));
8383   }
8484
8585   // reset the source to a known good entry
trunk/src/emu/debug/express.c
r245640r245641
703703void parsed_expression::parse_string_into_tokens()
704704{
705705   // loop until done
706   const char *stringstart = m_original_string;
706   const char *stringstart = m_original_string.c_str();
707707   const char *string = stringstart;
708708   while (string[0] != 0)
709709   {
r245640r245641
876876   if (string[0] == '@')
877877   {
878878      string += 1;
879      return parse_memory_operator(token, buffer);
879      return parse_memory_operator(token, buffer.c_str());
880880   }
881881
882882   // empty string is automatically invalid
r245640r245641
938938      return parse_number(token, buffer.c_str() + 1, 16, expression_error::INVALID_NUMBER);
939939
940940   // check for a symbol match
941   symbol_entry *symbol = m_symtable->find_deep(buffer);
941   symbol_entry *symbol = m_symtable->find_deep(buffer.c_str());
942942   if (symbol != NULL)
943943   {
944944      token.configure_symbol(*symbol);
r245640r245641
953953   }
954954
955955   // attempt to parse as a number in the default base
956   parse_number(token, buffer, DEFAULT_BASE, expression_error::UNKNOWN_SYMBOL);
956   parse_number(token, buffer.c_str(), DEFAULT_BASE, expression_error::UNKNOWN_SYMBOL);
957957}
958958
959959
r245640r245641
10521052   string++;
10531053
10541054   // make the token
1055   token.configure_string(m_stringlist.append(*global_alloc(expression_string(buffer))));
1055   token.configure_string(m_stringlist.append(*global_alloc(expression_string(buffer.c_str()))));
10561056}
10571057
10581058
trunk/src/emu/debug/express.h
r245640r245641
120120public:
121121   // getters
122122   symbol_entry *next() const { return m_next; }
123   const char *name() const { return m_name; }
123   const char *name() const { return m_name.c_str(); }
124124
125125   // type checking
126126   bool is_function() const { return (m_type == SMT_FUNCTION); }
r245640r245641
221221
222222   // getters
223223   bool is_empty() const { return (m_tokenlist.count() == 0); }
224   const char *original_string() const { return m_original_string; }
224   const char *original_string() const { return m_original_string.c_str(); }
225225   symbol_table *symbols() const { return m_symtable; }
226226
227227   // setters
r245640r245641
335335            m_string(string, (length == 0) ? strlen(string) : length) { }
336336
337337      // operators
338      operator const char *() { return m_string; }
339      operator const char *() const { return m_string; }
338      operator const char *() { return m_string.c_str(); }
339      operator const char *() const { return m_string.c_str(); }
340340
341341   private:
342342      // internal state
trunk/src/emu/devfind.h
r245640r245641
268268   ioport_array_finder(device_t &base, const char *basetag)
269269   {
270270      for (int index = 0; index < _Count; index++)
271         m_array[index].reset(global_alloc(ioport_finder_type(base, m_tag[index].format("%s.%d", basetag, index))));
271         m_array[index].reset(global_alloc(ioport_finder_type(base, m_tag[index].format("%s.%d", basetag, index).c_str())));
272272   }
273273
274274   ioport_array_finder(device_t &base, const char * const *tags)
r245640r245641
436436   shared_ptr_array_finder(device_t &base, const char *basetag, UINT8 width = sizeof(_PointerType) * 8)
437437   {
438438      for (int index = 0; index < _Count; index++)
439         m_array[index].reset(global_alloc(shared_ptr_type(base, m_tag[index].format("%s.%d", basetag, index), width)));
439         m_array[index].reset(global_alloc(shared_ptr_type(base, m_tag[index].format("%s.%d", basetag, index).c_str(), width)));
440440   }
441441
442442   // array accessors
trunk/src/emu/device.c
r245640r245641
130130
131131   // build a fully-qualified name and look it up
132132   astring fullpath;
133   return machine().memory().region(subtag(fullpath, _tag));
133   return machine().memory().region(subtag(fullpath, _tag).c_str());
134134}
135135
136136
r245640r245641
147147
148148   // build a fully-qualified name and look it up
149149   astring fullpath;
150   return machine().memory().shared(subtag(fullpath, _tag));
150   return machine().memory().shared(subtag(fullpath, _tag).c_str());
151151}
152152
153153
r245640r245641
164164
165165   // build a fully-qualified name and look it up
166166   astring fullpath;
167   return machine().memory().bank(subtag(fullpath, _tag));
167   return machine().memory().bank(subtag(fullpath, _tag).c_str());
168168}
169169
170170
r245640r245641
181181
182182   // build a fully-qualified name and look it up
183183   astring fullpath;
184   return machine().ioport().port(subtag(fullpath, tag));
184   return machine().ioport().port(subtag(fullpath, tag).c_str());
185185}
186186
187187
trunk/src/emu/device.h
r245640r245641
111111
112112   // getters
113113   running_machine &machine() const { /*assert(m_machine != NULL);*/ return *m_machine; }
114   const char *tag() const { return m_tag; }
115   const char *basetag() const { return m_basetag; }
114   const char *tag() const { return m_tag.c_str(); }
115   const char *basetag() const { return m_basetag.c_str(); }
116116   device_type type() const { return m_type; }
117   const char *name() const { return m_name; }
118   const char *shortname() const { return m_shortname; }
119   const char *searchpath() const { return m_searchpath; }
120   const char *source() const { return m_source; }
117   const char *name() const { return m_name.c_str(); }
118   const char *shortname() const { return m_shortname.c_str(); }
119   const char *searchpath() const { return m_searchpath.c_str(); }
120   const char *source() const { return m_source.c_str(); }
121121   device_t *owner() const { return m_owner; }
122122   device_t *next() const { return m_next; }
123123   UINT32 configured_clock() const { return m_configured_clock; }
trunk/src/emu/diexec.c
r245640r245641
548548   {
549549      // get the screen that will trigger the VBLANK
550550      astring tempstring;
551      screen_device *screen = downcast<screen_device *>(device().machine().device(device().siblingtag(tempstring,m_vblank_interrupt_screen)));
551      screen_device *screen = downcast<screen_device *>(device().machine().device(device().siblingtag(tempstring, m_vblank_interrupt_screen).c_str()));
552552
553553      assert(screen != NULL);
554554      screen->register_vblank_callback(vblank_state_delegate(FUNC(device_execute_interface::on_vblank), this));
trunk/src/emu/digfx.c
r245640r245641
325325         else
326326            device().owner()->subtag(gfxregion, region);
327327
328         UINT32 region_length = valid.region_length(gfxregion);
328         UINT32 region_length = valid.region_length(gfxregion.c_str());
329329         if (region_length == 0)
330330            osd_printf_error("gfx[%d] references nonexistent region '%s'\n", gfxnum, gfxregion.c_str());
331331
trunk/src/emu/diimage.c
r245640r245641
312312
313313   /* did we successfully identify the directory? */
314314   if (success)
315      zippath_combine(m_working_directory, m_working_directory, subdir);
315      zippath_combine(m_working_directory, m_working_directory.c_str(), subdir);
316316
317317   return success;
318318}
r245640r245641
354354   if (!m_working_directory)
355355      setup_working_directory();
356356
357   return m_working_directory;
357   return m_working_directory.c_str();
358358}
359359
360360
r245640r245641
499499-------------------------------------------------*/
500500void device_image_interface::battery_load(void *buffer, int length, int fill)
501501{
502   astring fname(device().machine().system().name, PATH_SEPARATOR, m_basename_noext, ".nv");
503   image_battery_load_by_name(device().machine().options(), fname, buffer, length, fill);
502   astring fname(device().machine().system().name, PATH_SEPARATOR, m_basename_noext.c_str(), ".nv");
503   image_battery_load_by_name(device().machine().options(), fname.c_str(), buffer, length, fill);
504504}
505505
506506void device_image_interface::battery_load(void *buffer, int length, void *def_buffer)
507507{
508   astring fname(device().machine().system().name, PATH_SEPARATOR, m_basename_noext, ".nv");
509   image_battery_load_by_name(device().machine().options(), fname, buffer, length, def_buffer);
508   astring fname(device().machine().system().name, PATH_SEPARATOR, m_basename_noext.c_str(), ".nv");
509   image_battery_load_by_name(device().machine().options(), fname.c_str(), buffer, length, def_buffer);
510510}
511511
512512/*-------------------------------------------------
r245640r245641
517517-------------------------------------------------*/
518518void device_image_interface::battery_save(const void *buffer, int length)
519519{
520   astring fname(device().machine().system().name, PATH_SEPARATOR, m_basename_noext, ".nv");
520   astring fname(device().machine().system().name, PATH_SEPARATOR, m_basename_noext.c_str(), ".nv");
521521
522   image_battery_save_by_name(device().machine().options(), fname, buffer, length);
522   image_battery_save_by_name(device().machine().options(), fname.c_str(), buffer, length);
523523}
524524
525525//-------------------------------------------------
r245640r245641
614614
615615   /* if successful, set the file name */
616616   if (filerr == FILERR_NONE)
617      set_image_filename(revised_path);
617      set_image_filename(revised_path.c_str());
618618
619619   return err;
620620}
r245640r245641
668668
669669   /* if successful, set the file name */
670670   if (filerr == FILERR_NONE)
671      set_image_filename(revised_path);
671      set_image_filename(revised_path.c_str());
672672
673673   return err;
674674}
r245640r245641
900900            // if we had launched from softlist with a specified part, e.g. "shortname:part"
901901            // we would have recorded the wrong name, so record it again based on software_info
902902            if (m_software_info_ptr && m_full_software_name)
903               m_err = set_image_filename(m_full_software_name);
903               m_err = set_image_filename(m_full_software_name.c_str());
904904
905905            // check if image should be read-only
906906            const char *read_only = get_feature("read_only");
r245640r245641
12181218   {
12191219      if (swlist_name == swlistdev->list_name() || !(swlist_name.len() > 0))
12201220      {
1221         software_info *info = swlistdev->find(swinfo_name);
1221         software_info *info = swlistdev->find(swinfo_name.c_str());
12221222         if (info != NULL)
12231223         {
1224            software_part *part = info->find_part(swpart_name, interface);
1224            software_part *part = info->find_part(swpart_name.c_str(), interface);
12251225            if (part != NULL)
12261226               return part;
12271227         }
r245640r245641
12331233         // gameboy:sml) which is not handled properly by software_name_split
12341234         // since the function cannot distinguish between this and the case
12351235         // path = swinfo_name:swpart_name
1236         software_info *info = swlistdev->find(swpart_name);
1236         software_info *info = swlistdev->find(swpart_name.c_str());
12371237         if (info != NULL)
12381238         {
12391239            software_part *part = info->find_part(NULL, interface);
trunk/src/emu/diimage.h
r245640r245641
8080         m_optspec(optspec)  { }
8181
8282   image_device_format *next() const { return m_next; }
83   const char *name() const { return m_name; }
84   const char *description() const { return m_description; }
85   const char *extensions() const { return m_extensions; }
86   const char *optspec() const { return m_optspec; }
83   const char *name() const { return m_name.c_str(); }
84   const char *description() const { return m_description.c_str(); }
85   const char *extensions() const { return m_extensions.c_str(); }
86   const char *optspec() const { return m_optspec.c_str(); }
8787
8888private:
8989   image_device_format *m_next;
r245640r245641
171171   void message(const char *format, ...) ATTR_PRINTF(2,3);
172172
173173   bool exists() { return m_image_name; }
174   const char *filename() { if (!m_image_name) return NULL; else return m_image_name; }
175   const char *basename() { if (!m_basename) return NULL; else return m_basename; }
176   const char *basename_noext()  { if (!m_basename_noext) return NULL; else return m_basename_noext; }
177   const char *filetype()  { if (!m_filetype) return NULL; else return m_filetype; }
174   const char *filename() { if (!m_image_name) return NULL; else return m_image_name.c_str(); }
175   const char *basename() { if (!m_basename) return NULL; else return m_basename.c_str(); }
176   const char *basename_noext()  { if (!m_basename_noext) return NULL; else return m_basename_noext.c_str(); }
177   const char *filetype()  { if (!m_filetype) return NULL; else return m_filetype.c_str(); }
178178   core_file *image_core_file() { return m_file; }
179179   UINT64 length() { check_for_file(); return core_fsize(m_file); }
180180   bool is_readonly() { return m_readonly; }
r245640r245641
193193   // configuration access
194194   void set_init_phase() { m_init_phase = TRUE; }
195195
196   const char* longname() { return m_longname; }
197   const char* manufacturer() { return m_manufacturer; }
198   const char* year() { return m_year; }
196   const char* longname() { return m_longname.c_str(); }
197   const char* manufacturer() { return m_manufacturer.c_str(); }
198   const char* year() { return m_year.c_str(); }
199199   UINT32 supported() { return m_supported; }
200200
201201   const software_info *software_entry() { return m_software_info_ptr; }
202202   const software_part *part_entry() { return m_software_part_ptr; }
203   const char *software_list_name() { return m_software_list_name; }
203   const char *software_list_name() { return m_software_list_name.c_str(); }
204204
205205   void set_working_directory(const char *working_directory) { m_working_directory = working_directory; }
206206   const char * working_directory();
r245640r245641
221221
222222
223223
224   const char *instance_name() const { return m_instance_name; }
225   const char *brief_instance_name() const { return m_brief_instance_name; }
224   const char *instance_name() const { return m_instance_name.c_str(); }
225   const char *brief_instance_name() const { return m_brief_instance_name.c_str(); }
226226   bool uses_file_extension(const char *file_extension) const;
227227   image_device_format *formatlist() const { return m_formatlist.first(); }
228228
trunk/src/emu/dimemory.c
r245640r245641
327327            if (entry->m_read.m_type == AMH_DEVICE_DELEGATE && entry->m_read.m_tag != NULL)
328328            {
329329               astring temp(entry->m_read.m_tag);
330               if (device().siblingdevice(temp) == NULL)
330               if (device().siblingdevice(temp.c_str()) == NULL)
331331                  osd_printf_error("%s space memory map entry references nonexistant device '%s'\n", spaceconfig->m_name, entry->m_read.m_tag);
332332            }
333333            if (entry->m_write.m_type == AMH_DEVICE_DELEGATE && entry->m_write.m_tag != NULL)
334334            {
335335               astring temp(entry->m_write.m_tag);
336               if (device().siblingdevice(temp) == NULL)
336               if (device().siblingdevice(temp.c_str()) == NULL)
337337                  osd_printf_error("%s space memory map entry references nonexistant device '%s'\n", spaceconfig->m_name, entry->m_write.m_tag);
338338            }
339339
trunk/src/emu/disound.c
r245640r245641
265265      for (const sound_route *route = sound->first_route(); route != NULL; route = route->next())
266266      {
267267         // see if we are the target of this route; if we are, make sure the source device is started
268         device_t *target_device = sound->device().siblingdevice(route->m_target);
268         device_t *target_device = sound->device().siblingdevice(route->m_target.c_str());
269269         if (target_device == &m_device && !sound->device().started())
270270            throw device_missing_dependencies();
271271      }
r245640r245641
279279      for (const sound_route *route = sound->first_route(); route != NULL; route = route->next())
280280      {
281281         // see if we are the target of this route
282         device_t *target_device = sound->device().siblingdevice(route->m_target);
282         device_t *target_device = sound->device().siblingdevice(route->m_target.c_str());
283283         if (target_device == &m_device && route->m_input == AUTO_ALLOC_INPUT)
284284         {
285285            const_cast<sound_route *>(route)->m_input = m_auto_allocated_inputs;
r245640r245641
305305      for (const sound_route *route = sound->first_route(); route != NULL; route = route->next())
306306      {
307307         // if we are the target of this route, hook it up
308         device_t *target_device = sound->device().siblingdevice(route->m_target);
308         device_t *target_device = sound->device().siblingdevice(route->m_target.c_str());
309309         if (target_device == &m_device)
310310         {
311311            // iterate over all outputs, matching any that apply
r245640r245641
421421      for (const sound_route *route = sound->first_route(); route != NULL; route = route->next())
422422      {
423423         // see if we are the target of this route
424         device_t *target_device = sound->device().siblingdevice(route->m_target);
424         device_t *target_device = sound->device().siblingdevice(route->m_target.c_str());
425425         if (target_device == &device() && route->m_input < m_auto_allocated_inputs)
426426         {
427427            int count = (route->m_output == ALL_OUTPUTS) ? sound->outputs() : 1;
trunk/src/emu/distate.c
r245640r245641
175175   bool hitnonzero = false;
176176   bool reset = true;
177177   int width = 0;
178   for (const char *fptr = m_format; *fptr != 0; fptr++)
178   for (const char *fptr = m_format.c_str(); *fptr != 0; fptr++)
179179   {
180180      // reset any accumulated state
181181      if (reset)
r245640r245641
449449      state_string_export(*entry, custom);
450450
451451   // ask the entry to format itself
452   return entry->format(dest, custom);
452   return entry->format(dest, custom.c_str());
453453}
454454
455455
trunk/src/emu/distate.h
r245640r245641
6666   // query information
6767   int index() const { return m_index; }
6868   void *dataptr() const { return m_dataptr.v; }
69   const char *symbol() const { return m_symbol; }
69   const char *symbol() const { return m_symbol.c_str(); }
7070   bool visible() const { return ((m_flags & DSF_NOSHOW) == 0); }
7171   bool divider() const { return m_flags & DSF_DIVIDER; }
7272   device_state_interface *parent_state() const {return m_device_state;}
trunk/src/emu/emuopts.c
r245640r245641
275275         slot->get_default_card_software(defvalue);
276276         if (defvalue.len() > 0)
277277         {
278            set_default_value(name, defvalue);
279            const device_slot_option *option = slot->option(defvalue);
278            set_default_value(name, defvalue.c_str());
279            const device_slot_option *option = slot->option(defvalue.c_str());
280280            set_flag(name, ~OPTION_FLAG_INTERNAL, (option != NULL && !option->selectable()) ? OPTION_FLAG_INTERNAL : 0);
281281         }
282282      }
r245640r245641
317317
318318      // add the option
319319      if (!exists(image->instance_name()))
320         add_entry(option_name, NULL, OPTION_STRING | OPTION_FLAG_DEVICE, NULL, true);
320         add_entry(option_name.c_str(), NULL, OPTION_STRING | OPTION_FLAG_DEVICE, NULL, true);
321321   }
322322}
323323
r245640r245641
444444   // next parse "source/<sourcefile>.ini"; if that doesn't exist, try <sourcefile>.ini
445445   astring sourcename;
446446   core_filename_extract_base(sourcename, cursystem->source_file, true).ins(0, "source" PATH_SEPARATOR);
447   if (!parse_one_ini(sourcename, OPTION_PRIORITY_SOURCE_INI, &error_string))
447   if (!parse_one_ini(sourcename.c_str(), OPTION_PRIORITY_SOURCE_INI, &error_string))
448448   {
449449      core_filename_extract_base(sourcename, cursystem->source_file, true);
450      parse_one_ini(sourcename, OPTION_PRIORITY_SOURCE_INI, &error_string);
450      parse_one_ini(sourcename.c_str(), OPTION_PRIORITY_SOURCE_INI, &error_string);
451451   }
452452
453453   // then parse the grandparent, parent, and system-specific INIs
r245640r245641
472472const game_driver *emu_options::system() const
473473{
474474   astring tempstr;
475   int index = driver_list::find(core_filename_extract_base(tempstr, system_name(), true));
475   int index = driver_list::find(core_filename_extract_base(tempstr, system_name(), true).c_str());
476476   return (index != -1) ? &driver_list::driver(index) : NULL;
477477}
478478
r245640r245641
551551{
552552   astring tmp(",", subname, "=");
553553   buffer = value(name);
554   int pos = buffer.find(0, tmp);
554   int pos = buffer.find(0, tmp.c_str());
555555   if (pos != -1)
556556   {
557557      int endpos = buffer.chr(pos + 1, ',');
trunk/src/emu/fileio.c
r245640r245641
114114            return NULL;
115115
116116         // open the path
117         m_curdir = osd_opendir(m_pathbuffer);
117         m_curdir = osd_opendir(m_pathbuffer.c_str());
118118      }
119119
120120      // get the next entry from the current directory
r245640r245641
241241   // if we have ZIP data, just hash that directly
242242   if (m__7zdata.count() != 0)
243243   {
244      m_hashes.compute(m__7zdata, m__7zdata.count(), needed);
244      m_hashes.compute(m__7zdata, m__7zdata.count(), needed.c_str());
245245      return m_hashes;
246246   }
247247
248248   if (m_zipdata.count() != 0)
249249   {
250      m_hashes.compute(m_zipdata, m_zipdata.count(), needed);
250      m_hashes.compute(m_zipdata, m_zipdata.count(), needed.c_str());
251251      return m_hashes;
252252   }
253253
r245640r245641
257257      return m_hashes;
258258
259259   // compute the hash
260   m_hashes.compute(filedata, core_fsize(m_file), needed);
260   m_hashes.compute(filedata, core_fsize(m_file), needed.c_str());
261261   return m_hashes;
262262}
263263
r245640r245641
282282{
283283   // concatenate the strings and do a standard open
284284   astring name(name1, name2);
285   return open(name);
285   return open(name.c_str());
286286}
287287
288288file_error emu_file::open(const char *name1, const char *name2, const char *name3)
289289{
290290   // concatenate the strings and do a standard open
291291   astring name(name1, name2, name3);
292   return open(name);
292   return open(name.c_str());
293293}
294294
295295file_error emu_file::open(const char *name1, const char *name2, const char *name3, const char *name4)
296296{
297297   // concatenate the strings and do a standard open
298298   astring name(name1, name2, name3, name4);
299   return open(name);
299   return open(name.c_str());
300300}
301301
302302file_error emu_file::open(const char *name, UINT32 crc)
r245640r245641
315315{
316316   // concatenate the strings and do a standard open
317317   astring name(name1, name2);
318   return open(name, crc);
318   return open(name.c_str(), crc);
319319}
320320
321321file_error emu_file::open(const char *name1, const char *name2, const char *name3, UINT32 crc)
322322{
323323   // concatenate the strings and do a standard open
324324   astring name(name1, name2, name3);
325   return open(name, crc);
325   return open(name.c_str(), crc);
326326}
327327
328328file_error emu_file::open(const char *name1, const char *name2, const char *name3, const char *name4, UINT32 crc)
329329{
330330   // concatenate the strings and do a standard open
331331   astring name(name1, name2, name3, name4);
332   return open(name, crc);
332   return open(name.c_str(), crc);
333333}
334334
335335
r245640r245641
346346
347347   // loop over paths
348348   file_error filerr = FILERR_NOT_FOUND;
349   while (m_iterator.next(m_fullpath, m_filename))
349   while (m_iterator.next(m_fullpath, m_filename.c_str()))
350350   {
351351      // attempt to open the file directly
352      filerr = core_fopen(m_fullpath, m_openflags, &m_file);
352      filerr = core_fopen(m_fullpath.c_str(), m_openflags, &m_file);
353353      if (filerr == FILERR_NONE)
354354         break;
355355
r245640r245641
413413   m_zipdata.reset();
414414
415415   if (m_remove_on_close)
416      osd_rmfile(m_fullpath);
416      osd_rmfile(m_fullpath.c_str());
417417   m_remove_on_close = false;
418418
419419   // reset our hashes and path as well
r245640r245641
698698
699699      // attempt to open the ZIP file
700700      zip_file *zip;
701      zip_error ziperr = zip_file_open(m_fullpath, &zip);
701      zip_error ziperr = zip_file_open(m_fullpath.c_str(), &zip);
702702
703703      // chop the .zip back off the filename before continuing
704704      m_fullpath.substr(0, dirsep);
r245640r245641
833833
834834      // attempt to open the _7Z file
835835      _7z_file *_7z;
836      _7z_error _7zerr = _7z_file_open(m_fullpath, &_7z);
836      _7z_error _7zerr = _7z_file_open(m_fullpath.c_str(), &_7z);
837837
838838      // chop the ._7z back off the filename before continuing
839839      m_fullpath.substr(0, dirsep);
trunk/src/emu/fileio.h
r245640r245641
9393   operator core_file *();
9494   operator core_file &();
9595   bool is_open() const { return (m_file != NULL); }
96   const char *filename() const { return m_filename; }
97   const char *fullpath() const { return m_fullpath; }
96   const char *filename() const { return m_filename.c_str(); }
97   const char *fullpath() const { return m_fullpath.c_str(); }
9898   UINT32 openflags() const { return m_openflags; }
9999   hash_collection &hashes(const char *types);
100100   bool restrict_to_mediapath() { return m_restrict_to_mediapath; }
trunk/src/emu/hash.c
r245640r245641
122122      buffer.cat(HASH_CRC);
123123   if (m_has_sha1)
124124      buffer.cat(HASH_SHA1);
125   return buffer;
125   return buffer.c_str();
126126}
127127
128128
r245640r245641
204204      buffer.cat(HASH_SHA1).cat(m_sha1.as_string(temp));
205205
206206   // append flags
207   return buffer.cat(m_flags);
207   return buffer.cat(m_flags).c_str();
208208}
209209
210210
r245640r245641
231231      buffer.cat("NO_DUMP ");
232232   if (flag(FLAG_BAD_DUMP))
233233      buffer.cat("BAD_DUMP ");
234   return buffer.trimspace();
234   return buffer.trimspace().c_str();
235235}
236236
237237
r245640r245641
258258      buffer.cat("status=\"nodump\"" );
259259   if (flag(FLAG_BAD_DUMP))
260260      buffer.cat("status=\"baddump\"" );
261   return buffer.trimspace();
261   return buffer.trimspace().c_str();
262262}
263263
264264
trunk/src/emu/image.c
r245640r245641
143143   {
144144      astring inistring;
145145      options.output_ini(inistring);
146      file.puts(inistring);
146      file.puts(inistring.c_str());
147147      retval = 0;
148148   }
149149   return retval;
trunk/src/emu/imagedev/chd_cd.c
r245640r245641
103103
104104   if (software_entry() == NULL)
105105   {
106      if (strstr(m_image_name,".chd") && is_loaded()) {
106      if (strstr(m_image_name.c_str(), ".chd") && is_loaded()) {
107107         err = m_self_chd.open( *image_core_file() );    /* CDs are never writeable */
108108         if ( err )
109109            goto error;
110110         chd = &m_self_chd;
111111      }
112112   } else {
113      chd = get_disk_handle(device().machine(), device().subtag(tempstring,"cdrom"));
113      chd = get_disk_handle(device().machine(), device().subtag(tempstring, "cdrom").c_str());
114114   }
115115
116116   /* open the CHD file */
117117   if (chd) {
118118      m_cdrom_handle = cdrom_open( chd );
119119   } else {
120      m_cdrom_handle = cdrom_open( m_image_name );
120      m_cdrom_handle = cdrom_open(m_image_name.c_str());
121121   }
122122   if ( ! m_cdrom_handle )
123123      goto error;
trunk/src/emu/imagedev/diablo.c
r245640r245641
175175   /* try to open the diff */
176176   //printf("Opening differencing image file: %s\n", fname.c_str());
177177   emu_file diff_file(options.diff_directory(), OPEN_FLAG_READ | OPEN_FLAG_WRITE);
178   file_error filerr = diff_file.open(fname);
178   file_error filerr = diff_file.open(fname.c_str());
179179   if (filerr == FILERR_NONE)
180180   {
181181      astring fullpath(diff_file.fullpath());
182182      diff_file.close();
183183
184184      //printf("Opening differencing image file: %s\n", fullpath.c_str());
185      return diff_chd.open(fullpath, true, &source);
185      return diff_chd.open(fullpath.c_str(), true, &source);
186186   }
187187
188188   /* didn't work; try creating it instead */
189189   //printf("Creating differencing image: %s\n", fname.c_str());
190190   diff_file.set_openflags(OPEN_FLAG_READ | OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
191   filerr = diff_file.open(fname);
191   filerr = diff_file.open(fname.c_str());
192192   if (filerr == FILERR_NONE)
193193   {
194194      astring fullpath(diff_file.fullpath());
r245640r245641
197197      /* create the CHD */
198198      //printf("Creating differencing image file: %s\n", fullpath.c_str());
199199      chd_codec_type compression[4] = { CHD_CODEC_NONE };
200      chd_error err = diff_chd.create(fullpath, source.logical_bytes(), source.hunk_bytes(), compression, source);
200      chd_error err = diff_chd.create(fullpath.c_str(), source.logical_bytes(), source.hunk_bytes(), compression, source);
201201      if (err != CHDERR_NONE)
202202         return err;
203203
r245640r245641
220220   /* open the CHD file */
221221   if (software_entry() != NULL)
222222   {
223      m_chd = get_disk_handle(device().machine(), device().subtag(tempstring,"harddriv"));
223      m_chd = get_disk_handle(device().machine(), device().subtag(tempstring, "harddriv").c_str());
224224   }
225225   else
226226   {
trunk/src/emu/imagedev/floppy.c
r245640r245641
325325   core_file *fd;
326326   astring revised_path;
327327
328   file_error err = zippath_fopen(filename, OPEN_FLAG_READ, fd, revised_path);
328   file_error err = zippath_fopen(filename.c_str(), OPEN_FLAG_READ, fd, revised_path);
329329   if(err) {
330330      seterror(IMAGE_ERROR_INVALIDIMAGE, "Unable to open the image file");
331331      return 0;
r245640r245641
867867{
868868   floppy_image_device *fd = static_cast<floppy_image_device *>(image);
869869   if(input_filename == "") {
870      int err = fd->create(output_filename, 0, NULL);
870      int err = fd->create(output_filename.c_str(), 0, NULL);
871871      if (err != 0) {
872872         popmessage("Error: %s", fd->error());
873873         return;
874874      }
875875      fd->setup_write(output_format);
876876   } else {
877      int err = fd->load(input_filename);
877      int err = fd->load(input_filename.c_str());
878878      if(!err && output_filename != "")
879         err = fd->reopen_for_write(output_filename);
879         err = fd->reopen_for_write(output_filename.c_str());
880880      if(err != 0) {
881881         popmessage("Error: %s", fd->error());
882882         return;
r245640r245641
891891   if (softlist)
892892   {
893893      popmessage("When loaded from software list, the disk is Read-only.\n");
894      image->load(filename);
894      image->load(filename.c_str());
895895      ui_menu::stack_pop(machine());
896896      return;
897897   }
r245640r245641
912912      astring tmp_path;
913913      core_file *tmp_file;
914914      /* attempt to open the file for writing but *without* create */
915      filerr = zippath_fopen(filename, OPEN_FLAG_READ|OPEN_FLAG_WRITE, tmp_file, tmp_path);
915      filerr = zippath_fopen(filename.c_str(), OPEN_FLAG_READ | OPEN_FLAG_WRITE, tmp_file, tmp_path);
916916      if(!filerr)
917917         core_fclose(tmp_file);
918918      else
r245640r245641
933933      for(floppy_image_format_t *i = fif_list; i; i = i->next) {
934934         if(!i->supports_save())
935935            continue;
936         if(i->extension_matches(current_file))
936         if (i->extension_matches(current_file.c_str()))
937937            format_array[total_usable++] = i;
938938      }
939939      ext_match = total_usable;
940940      for(floppy_image_format_t *i = fif_list; i; i = i->next) {
941941         if(!i->supports_save())
942942            continue;
943         if(!i->extension_matches(current_file))
943         if (!i->extension_matches(current_file.c_str()))
944944            format_array[total_usable++] = i;
945945      }
946946      submenu_result = -1;
r245640r245641
955955         state = START_FILE;
956956         handle();
957957      } else {
958         zippath_combine(output_filename, current_directory, current_file);
958         zippath_combine(output_filename, current_directory.c_str(), current_file.c_str());
959959         output_format = format_array[submenu_result];
960960         do_load_create();
961961         ui_menu::stack_pop(machine());
trunk/src/emu/imagedev/harddriv.c
r245640r245641
181181   /* try to open the diff */
182182   //printf("Opening differencing image file: %s\n", fname.c_str());
183183   emu_file diff_file(options.diff_directory(), OPEN_FLAG_READ | OPEN_FLAG_WRITE);
184   file_error filerr = diff_file.open(fname);
184   file_error filerr = diff_file.open(fname.c_str());
185185   if (filerr == FILERR_NONE)
186186   {
187187      astring fullpath(diff_file.fullpath());
188188      diff_file.close();
189189
190190      //printf("Opening differencing image file: %s\n", fullpath.c_str());
191      return diff_chd.open(fullpath, true, &source);
191      return diff_chd.open(fullpath.c_str(), true, &source);
192192   }
193193
194194   /* didn't work; try creating it instead */
195195   //printf("Creating differencing image: %s\n", fname.c_str());
196196   diff_file.set_openflags(OPEN_FLAG_READ | OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
197   filerr = diff_file.open(fname);
197   filerr = diff_file.open(fname.c_str());
198198   if (filerr == FILERR_NONE)
199199   {
200200      astring fullpath(diff_file.fullpath());
r245640r245641
203203      /* create the CHD */
204204      //printf("Creating differencing image file: %s\n", fullpath.c_str());
205205      chd_codec_type compression[4] = { CHD_CODEC_NONE };
206      chd_error err = diff_chd.create(fullpath, source.logical_bytes(), source.hunk_bytes(), compression, source);
206      chd_error err = diff_chd.create(fullpath.c_str(), source.logical_bytes(), source.hunk_bytes(), compression, source);
207207      if (err != CHDERR_NONE)
208208         return err;
209209
r245640r245641
226226   /* open the CHD file */
227227   if (software_entry() != NULL)
228228   {
229      m_chd = get_disk_handle(device().machine(), device().subtag(tempstring,"harddriv"));
229      m_chd = get_disk_handle(device().machine(), device().subtag(tempstring, "harddriv").c_str());
230230   }
231231   else
232232   {
trunk/src/emu/info.c
r245640r245641
628628      if (strcmp(exec->device().tag(), device.tag()))
629629      {
630630         astring newtag(exec->device().tag()), oldtag(":");
631         newtag.substr(newtag.find(oldtag.cat(root_tag)) + oldtag.len());
631         newtag.substr(newtag.find(oldtag.cat(root_tag).c_str()) + oldtag.len());
632632
633633         fprintf(m_output, "\t\t<chip");
634634         fprintf(m_output, " type=\"cpu\"");
635         fprintf(m_output, " tag=\"%s\"", xml_normalize_string(newtag));
635         fprintf(m_output, " tag=\"%s\"", xml_normalize_string(newtag.c_str()));
636636         fprintf(m_output, " name=\"%s\"", xml_normalize_string(exec->device().name()));
637637         fprintf(m_output, " clock=\"%d\"", exec->device().clock());
638638         fprintf(m_output, "/>\n");
r245640r245641
646646      if (strcmp(sound->device().tag(), device.tag()))
647647      {
648648         astring newtag(sound->device().tag()), oldtag(":");
649         newtag.substr(newtag.find(oldtag.cat(root_tag)) + oldtag.len());
649         newtag.substr(newtag.find(oldtag.cat(root_tag).c_str()) + oldtag.len());
650650
651651         fprintf(m_output, "\t\t<chip");
652652         fprintf(m_output, " type=\"audio\"");
653         fprintf(m_output, " tag=\"%s\"", xml_normalize_string(newtag));
653         fprintf(m_output, " tag=\"%s\"", xml_normalize_string(newtag.c_str()));
654654         fprintf(m_output, " name=\"%s\"", xml_normalize_string(sound->device().name()));
655655         if (sound->device().clock() != 0)
656656            fprintf(m_output, " clock=\"%d\"", sound->device().clock());
r245640r245641
674674      if (strcmp(screendev->tag(), device.tag()))
675675      {
676676         astring newtag(screendev->tag()), oldtag(":");
677         newtag.substr(newtag.find(oldtag.cat(root_tag)) + oldtag.len());
677         newtag.substr(newtag.find(oldtag.cat(root_tag).c_str()) + oldtag.len());
678678
679679         fprintf(m_output, "\t\t<display");
680         fprintf(m_output, " tag=\"%s\"", xml_normalize_string(newtag));
680         fprintf(m_output, " tag=\"%s\"", xml_normalize_string(newtag.c_str()));
681681
682682         switch (screendev->screen_type())
683683         {
r245640r245641
10801080            astring output;
10811081
10821082            astring newtag(port->tag()), oldtag(":");
1083            newtag.substr(newtag.find(oldtag.cat(root_tag)) + oldtag.len());
1083            newtag.substr(newtag.find(oldtag.cat(root_tag).c_str()) + oldtag.len());
10841084
10851085            // output the switch name information
10861086            astring normalized_field_name(xml_normalize_string(field->name()));
1087            astring normalized_newtag(xml_normalize_string(newtag));
1087            astring normalized_newtag(xml_normalize_string(newtag.c_str()));
10881088            output.catprintf("\t\t<%s name=\"%s\" tag=\"%s\" mask=\"%u\">\n", outertag, normalized_field_name.c_str(), normalized_newtag.c_str(), field->mask());
10891089
10901090            // loop over settings
r245640r245641
12111211      if (strcmp(imagedev->device().tag(), device.tag()))
12121212      {
12131213         astring newtag(imagedev->device().tag()), oldtag(":");
1214         newtag.substr(newtag.find(oldtag.cat(root_tag)) + oldtag.len());
1214         newtag.substr(newtag.find(oldtag.cat(root_tag).c_str()) + oldtag.len());
12151215
12161216         // print m_output device type
12171217         fprintf(m_output, "\t\t<device type=\"%s\"", xml_normalize_string(imagedev->image_type_name()));
12181218
12191219         // does this device have a tag?
12201220         if (imagedev->device().tag())
1221            fprintf(m_output, " tag=\"%s\"", xml_normalize_string(newtag));
1221            fprintf(m_output, " tag=\"%s\"", xml_normalize_string(newtag.c_str()));
12221222
12231223         // is this device mandatory?
12241224         if (imagedev->must_be_loaded())
r245640r245641
12691269      if (strcmp(slot->device().tag(), device.tag()))
12701270      {
12711271         astring newtag(slot->device().tag()), oldtag(":");
1272         newtag.substr(newtag.find(oldtag.cat(root_tag)) + oldtag.len());
1272         newtag.substr(newtag.find(oldtag.cat(root_tag).c_str()) + oldtag.len());
12731273
12741274         // print m_output device type
1275         fprintf(m_output, "\t\t<slot name=\"%s\">\n", xml_normalize_string(newtag));
1275         fprintf(m_output, "\t\t<slot name=\"%s\">\n", xml_normalize_string(newtag.c_str()));
12761276
12771277         /*
12781278          if (slot->slot_interface()[0])
r245640r245641
13461346         {
13471347            astring option;
13481348            option.cpysubstr(options, start, (end == -1) ? -1 : end - start);
1349            fprintf(m_output, "\t\t<ramoption>%u</ramoption>\n", ram_device::parse_string(option));
1349            fprintf(m_output, "\t\t<ramoption>%u</ramoption>\n", ram_device::parse_string(option.c_str()));
13501350            if (end == -1)
13511351               break;
13521352         }
trunk/src/emu/input.c
r245640r245641
553553
554554      string.catprintf("\n");
555555   }
556   return string;
556   return string.c_str();
557557}
558558
559559
r245640r245641
14681468   // if nothing there, return an empty string
14691469   input_device_item *item = item_from_code(code);
14701470   if (item == NULL)
1471      return string;
1471      return string.c_str();
14721472
14731473   // determine the devclass part
14741474   const char *devclass = (*devclass_string_table)[code.device_class()];
r245640r245641
15101510      string.cat(" ").cat(modifier);
15111511
15121512   // delete any leading spaces
1513   return string.trimspace();
1513   return string.trimspace().c_str();
15141514}
15151515
15161516
r245640r245641
15511551      string.cat("_").cat(modifier);
15521552   if (itemclass[0] != 0)
15531553      string.cat("_").cat(itemclass);
1554   return string;
1554   return string.c_str();
15551555}
15561556
15571557
r245640r245641
15851585
15861586   // second token might be index; look for number
15871587   int devindex = 0;
1588   if (numtokens > 2 && sscanf(token[curtok], "%d", &devindex) == 1)
1588   if (numtokens > 2 && sscanf(token[curtok].c_str(), "%d", &devindex) == 1)
15891589   {
15901590      curtok++;
15911591      devindex--;
r245640r245641
19461946
19471947   // special case: empty
19481948   if (clean_index == 0)
1949      return string.cpy((seq.length() == 0) ? "None" : "n/a");
1949      return string.cpy((seq.length() == 0) ? "None" : "n/a").c_str();
19501950
19511951   // start with an empty buffer
19521952   string.reset();
r245640r245641
19691969      else
19701970         string.cat(code_name(codestr, code));
19711971   }
1972   return string;
1972   return string.c_str();
19731973}
19741974
19751975
r245640r245641
20042004      else
20052005         string.cat(code_to_token(codestr, code));
20062006   }
2007   return string;
2007   return string.c_str();
20082008}
20092009
20102010
trunk/src/emu/input.h
r245640r245641
500500   input_device &device() const { return m_device; }
501501   input_manager &manager() const;
502502   running_machine &machine() const;
503   const char *name() const { return m_name; }
503   const char *name() const { return m_name.c_str(); }
504504   void *internal() const { return m_internal; }
505505   input_item_id itemid() const { return m_itemid; }
506506   input_item_class itemclass() const { return m_itemclass; }
507   const char *token() const { return m_token; }
507   const char *token() const { return m_token.c_str(); }
508508   INT32 current() const { return m_current; }
509509   INT32 memory() const { return m_memory; }
510510
r245640r245641
549549   input_manager &manager() const;
550550   running_machine &machine() const;
551551   input_device_class devclass() const;
552   const char *name() const { return m_name; }
552   const char *name() const { return m_name.c_str(); }
553553   int devindex() const { return m_devindex; }
554554   input_device_item *item(input_item_id index) const { return m_item[index]; }
555555   input_item_id maxitem() const { return m_maxitem; }
trunk/src/emu/ioport.c
r245640r245641
12641264            buffer.format("U+%04X", unsigned(ch));
12651265         break;
12661266   }
1267   return buffer;
1267   return buffer.c_str();
12681268}
12691269
12701270
r245640r245641
13271327   // otherwise, opt for question marks
13281328   else
13291329      string.cpy("???");
1330   return string;
1330   return string.c_str();
13311331}
13321332
13331333
r245640r245641
15201520{
15211521   // if we have a non-default name, use that
15221522   if (m_live != NULL && m_live->name)
1523      return m_live->name;
1523      return m_live->name.c_str();
15241524   if (m_name != NULL)
15251525      return m_name;
15261526
r245640r245641
20662066      tempstr.cpy(curentry, comma - curentry);
20672067
20682068      // first extract the switch name if present
2069      const char *number = tempstr;
2070      const char *colon = strchr(tempstr, ':');
2069      const char *number = tempstr.c_str();
2070      const char *colon = strchr(tempstr.c_str(), ':');
20712071
20722072      // allocate and copy the name if it is present
20732073      if (colon != NULL)
20742074      {
2075         lastname = name.cpy(number, colon - number);
2075         lastname = name.cpy(number, colon - number).c_str();
20762076         number = colon + 1;
20772077      }
20782078
r245640r245641
21012101         errorbuf.catprintf("Switch location '%s' has invalid format!\n", location);
21022102
21032103      // allocate a new entry
2104      m_diploclist.append(*global_alloc(ioport_diplocation(name, swnum, invert)));
2104      m_diploclist.append(*global_alloc(ioport_diplocation(name.c_str(), swnum, invert)));
21052105      entries++;
21062106
21072107      // advance to the next item
r245640r245641
31763176      machine().input().seq_to_tokens(seqstring, seq);
31773177
31783178   // add the new node
3179   xml_data_node *seqnode = xml_add_child(parentnode, "newseq", seqstring);
3179   xml_data_node *seqnode = xml_add_child(parentnode, "newseq", seqstring.c_str());
31803180   if (seqnode != NULL)
31813181      xml_set_attribute(seqnode, "type", seqtypestrings[type]);
31823182}
r245640r245641
36853685   m_owner.subtag(fulltag, tag);
36863686
36873687   // add it to the list, and reset current field/setting
3688   m_curport = &m_portlist.append(fulltag, *global_alloc(ioport_port(m_owner, fulltag)));
3688   m_curport = &m_portlist.append(fulltag.c_str(), *global_alloc(ioport_port(m_owner, fulltag.c_str())));
36893689   m_curfield = NULL;
36903690   m_cursetting = NULL;
36913691}
r245640r245641
44024402   // look up the port and return the token
44034403   input_type_entry *entry = m_type_to_entry[type][player];
44044404   if (entry != NULL)
4405      return string.cpy(entry->token());
4405      return string.cpy(entry->token()).c_str();
44064406
44074407   // if that fails, carry on
4408   return string.format("TYPE_OTHER(%d,%d)", type, player);
4408   return string.format("TYPE_OTHER(%d,%d)", type, player).c_str();
44094409}
44104410
44114411
trunk/src/emu/ioport.h
r245640r245641
969969
970970   // getters
971971   ioport_diplocation *next() const { return m_next; }
972   const char *name() const { return m_name; }
972   const char *name() const { return m_name.c_str(); }
973973   UINT8 number() const { return m_number; }
974974   bool inverted() const { return m_invert; }
975975
r245640r245641
11971197   device_t &device() const { return m_device; }
11981198   running_machine &machine() const;
11991199   ioport_field *first_field() const { return m_fieldlist.first(); }
1200   const char *tag() const { return m_tag; }
1200   const char *tag() const { return m_tag.c_str(); }
12011201   int modcount() const { return m_modcount; }
12021202   ioport_value active() const { return m_active; }
12031203   ioport_value active_safe(ioport_value defval) const { return (this == NULL) ? defval : active(); }
trunk/src/emu/machine.c
r245640r245641
195195   else
196196      m_context.cpy("(no context)");
197197
198   return m_context;
198   return m_context.c_str();
199199}
200200
201201TIMER_CALLBACK_MEMBER(running_machine::autoboot_callback)
r245640r245641
206206   else if (strlen(options().autoboot_command())!=0) {
207207      astring cmd = astring(options().autoboot_command());
208208      cmd.replace("'","\\'");
209      astring val = astring("emu.keypost('",cmd,"')");
210      manager().lua()->load_string(val);
209      astring val = astring("emu.keypost('", cmd.c_str(), "')").c_str();
210      manager().lua()->load_string(val.c_str());
211211   }
212212}
213213
r245640r245641
560560
561561   // handle %d in the template (for image devices)
562562   astring statename_dev("%d_");
563   int pos = statename_str.find(0, statename_dev);
563   int pos = statename_str.find(0, statename_dev.c_str());
564564
565565   if (pos != -1)
566566   {
567567      // if more %d are found, revert to default and ignore them all
568      if (statename_str.find(pos + 3, statename_dev) != -1)
568      if (statename_str.find(pos + 3, statename_dev.c_str()) != -1)
569569         statename_str.cpy("%g");
570570      // else if there is a single %d, try to create the correct snapname
571571      else
r245640r245641
610610                  astring filename(image->basename_noext());
611611
612612                  // setup snapname and remove the %d_
613                  statename_str.replace(0, devname_str, filename);
613                  statename_str.replace(0, devname_str.c_str(), filename.c_str());
614614                  statename_str.del(pos, 3);
615615                  //printf("check image: %s\n", filename.c_str());
616616
r245640r245641
909909   }
910910
911911   // open the file
912   filerr = file.open(m_saveload_pending_file);
912   filerr = file.open(m_saveload_pending_file.c_str());
913913   if (filerr == FILERR_NONE)
914914   {
915915      // read/write the save state
r245640r245641
12371237   {
12381238      astring filename;
12391239      emu_file file(options().nvram_directory(), OPEN_FLAG_READ);
1240      if (file.open(nvram_filename(filename, nvram->device())) == FILERR_NONE)
1240      if (file.open(nvram_filename(filename, nvram->device()).c_str()) == FILERR_NONE)
12411241      {
12421242         nvram->nvram_load(file);
12431243         file.close();
r245640r245641
12591259   {
12601260      astring filename;
12611261      emu_file file(options().nvram_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
1262      if (file.open(nvram_filename(filename, nvram->device())) == FILERR_NONE)
1262      if (file.open(nvram_filename(filename, nvram->device()).c_str()) == FILERR_NONE)
12631263      {
12641264         nvram->nvram_save(file);
12651265         file.close();
trunk/src/emu/machine.h
r245640r245641
180180   bool paused() const { return m_paused || (m_current_phase != MACHINE_PHASE_RUNNING); }
181181   bool exit_pending() const { return m_exit_pending; }
182182   bool ui_active() const { return m_ui_active; }
183   const char *basename() const { return m_basename; }
183   const char *basename() const { return m_basename.c_str(); }
184184   int sample_rate() const { return m_sample_rate; }
185185   bool save_or_load_pending() const { return m_saveload_pending_file; }
186186   screen_device *first_screen() const { return primary_screen; }
trunk/src/emu/machine/laserdsc.c
r245640r245641
762762
763763      // extract the metadata
764764      int fps, fpsfrac, interlaced, channels;
765      if (sscanf(metadata, AV_METADATA_FORMAT, &fps, &fpsfrac, &m_width, &m_height, &interlaced, &channels, &m_samplerate) != 7)
765      if (sscanf(metadata.c_str(), AV_METADATA_FORMAT, &fps, &fpsfrac, &m_width, &m_height, &interlaced, &channels, &m_samplerate) != 7)
766766         throw emu_fatalerror("Invalid metadata in CHD file");
767767      else
768768         m_fps_times_1million = fps * 1000000 + fpsfrac;
trunk/src/emu/machine/wozfdc.c
r245640r245641
6464void wozfdc_device::device_start()
6565{
6666   astring tempstring;
67   m_rom_p6 = machine().root_device().memregion(this->subtag(tempstring, DISKII_P6_REGION))->base();
67   m_rom_p6 = machine().root_device().memregion(this->subtag(tempstring, DISKII_P6_REGION).c_str())->base();
6868
6969   timer = timer_alloc(0);
7070   delay_timer = timer_alloc(1);
trunk/src/emu/memory.c
r245640r245641
18401840         {
18411841            VPRINTF(("Creating share '%s' of length 0x%X\n", fulltag.c_str(), entry->m_byteend + 1 - entry->m_bytestart));
18421842            memory_share *share = global_alloc(memory_share(m_map->m_databits, entry->m_byteend + 1 - entry->m_bytestart, endianness()));
1843            manager().m_sharelist.append(fulltag, *share);
1843            manager().m_sharelist.append(fulltag.c_str(), *share);
18441844         }
18451845      }
18461846
r245640r245641
18631863         entry->m_devbase.subtag(fulltag, entry->m_region);
18641864
18651865         // find the region
1866         memory_region *region = machine().root_device().memregion(fulltag);
1866         memory_region *region = machine().root_device().memregion(fulltag.c_str());
18671867         if (region == NULL)
18681868            fatalerror("Error: device '%s' %s space memory map entry %X-%X references non-existant region \"%s\"\n", m_device.tag(), m_name, entry->m_addrstart, entry->m_addrend, entry->m_region);
18691869
r245640r245641
22932293   {
22942294      // find the port
22952295      astring fulltag;
2296      ioport_port *port = machine().root_device().ioport(device().siblingtag(fulltag, rtag));
2296      ioport_port *port = machine().root_device().ioport(device().siblingtag(fulltag, rtag).c_str());
22972297      if (port == NULL)
22982298         throw emu_fatalerror("Attempted to map non-existent port '%s' for read in space %s of device '%s'\n", rtag, m_name, m_device.tag());
22992299
r245640r245641
23052305   {
23062306      // find the port
23072307      astring fulltag;
2308      ioport_port *port = machine().root_device().ioport(device().siblingtag(fulltag, wtag));
2308      ioport_port *port = machine().root_device().ioport(device().siblingtag(fulltag, wtag).c_str());
23092309      if (port == NULL)
23102310         fatalerror("Attempted to map non-existent port '%s' for write in space %s of device '%s'\n", wtag, m_name, m_device.tag());
23112311
r245640r245641
23352335   {
23362336      astring fulltag;
23372337      device().siblingtag(fulltag, rtag);
2338      memory_bank &bank = bank_find_or_allocate(fulltag, addrstart, addrend, addrmask, addrmirror, ROW_READ);
2338      memory_bank &bank = bank_find_or_allocate(fulltag.c_str(), addrstart, addrend, addrmask, addrmirror, ROW_READ);
23392339      read().map_range(addrstart, addrend, addrmask, addrmirror, bank.index());
23402340   }
23412341
r245640r245641
23442344   {
23452345      astring fulltag;
23462346      device().siblingtag(fulltag, wtag);
2347      memory_bank &bank = bank_find_or_allocate(fulltag, addrstart, addrend, addrmask, addrmirror, ROW_WRITE);
2347      memory_bank &bank = bank_find_or_allocate(fulltag.c_str(), addrstart, addrend, addrmask, addrmirror, ROW_WRITE);
23482348      write().map_range(addrstart, addrend, addrmask, addrmirror, bank.index());
23492349   }
23502350
r245640r245641
26812681      membank = global_alloc(memory_bank(*this, banknum, bytestart, byteend, tag));
26822682      astring temptag;
26832683      if (tag == NULL)
2684         tag = temptag.format("anon_%p", membank);
2684         tag = temptag.format("anon_%p", membank).c_str();
26852685      manager().m_banklist.append(tag, *membank);
26862686   }
26872687
r245640r245641
38743874      int bytes_per_element = space.data_width() / 8;
38753875      astring name;
38763876      name.printf("%08x-%08x", bytestart, byteend);
3877      space.machine().save().save_memory(NULL, "memory", space.device().tag(), space.spacenum(), name, m_data, bytes_per_element, (UINT32)(byteend + 1 - bytestart) / bytes_per_element);
3877      space.machine().save().save_memory(NULL, "memory", space.device().tag(), space.spacenum(), name.c_str(), m_data, bytes_per_element, (UINT32)(byteend + 1 - bytestart) / bytes_per_element);
38783878   }
38793879}
38803880
r245640r245641
39213921   }
39223922
39233923   if (!m_anonymous && space.machine().save().registration_allowed())
3924      space.machine().save().save_item(NULL, "memory", m_tag, 0, NAME(m_curentry));
3924      space.machine().save().save_item(NULL, "memory", m_tag.c_str(), 0, NAME(m_curentry));
39253925}
39263926
39273927
trunk/src/emu/memory.h
r245640r245641
587587   offs_t bytestart() const { return m_bytestart; }
588588   void *base() const { return *m_baseptr; }
589589   void *base_decrypted() const { return *m_basedptr; }
590   const char *tag() const { return m_tag; }
591   const char *name() const { return m_name; }
590   const char *tag() const { return m_tag.c_str(); }
591   const char *name() const { return m_name.c_str(); }
592592
593593   // compare a range against our range
594594   bool matches_exactly(offs_t bytestart, offs_t byteend) const { return (m_bytestart == bytestart && m_byteend == byteend); }
r245640r245641
695695   UINT8 *base() { return (this != NULL) ? &m_buffer[0] : NULL; }
696696   UINT8 *end() { return (this != NULL) ? base() + m_buffer.count() : NULL; }
697697   UINT32 bytes() const { return (this != NULL) ? m_buffer.count() : 0; }
698   const char *name() const { return m_name; }
698   const char *name() const { return m_name.c_str(); }
699699
700700   // flag expansion
701701   endianness_t endianness() const { return m_endianness; }
trunk/src/emu/output.c
r245640r245641
9999
100100   /* use the hash as a starting point and find an entry */
101101   for (item = itemtable[hash % HASH_SIZE]; item != NULL; item = item->next)
102      if (item->hash == hash && strcmp(string, item->name) == 0)
102      if (item->hash == hash && strcmp(string, item->name.c_str()) == 0)
103103         return item;
104104
105105   return NULL;
r245640r245641
333333   /* remove all items */
334334   for (hash = 0; hash < HASH_SIZE; hash++)
335335      for (item = itemtable[hash]; item != NULL; item = item->next)
336         (*callback)(item->name, item->value, param);
336         (*callback)(item->name.c_str(), item->value, param);
337337}
338338
339339
r245640r245641
367367   for (hash = 0; hash < HASH_SIZE; hash++)
368368      for (item = itemtable[hash]; item != NULL; item = item->next)
369369         if (item->id == id)
370            return item->name;
370            return item->name.c_str();
371371
372372   /* nothing found, return NULL */
373373   return NULL;
trunk/src/emu/parameters.c
r245640r245641
1717
1818astring parameters_manager::lookup(astring tag) const
1919{
20   return m_parameters.find(tag);
20   return m_parameters.find(tag.c_str());
2121}
2222
2323void parameters_manager::add(astring tag, astring value)
2424{
25   m_parameters.add(tag, value);
25   m_parameters.add(tag.c_str(), value);
2626}
trunk/src/emu/profiler.c
r245640r245641
130130   }
131131
132132   stop();
133   return m_text;
133   return m_text.c_str();
134134}
135135
136136
trunk/src/emu/render.c
r245640r245641
15771577
15781578      // attempt to open the file; bail if we can't
15791579      emu_file layoutfile(manager().machine().options().art_path(), OPEN_FLAG_READ);
1580      file_error filerr = layoutfile.open(fname);
1580      file_error filerr = layoutfile.open(fname.c_str());
15811581      if (filerr != FILERR_NONE)
15821582         return false;
15831583
trunk/src/emu/rendfont.c
r245640r245641
392392   // attempt to open the cached version of the font
393393   {
394394      emu_file cachefile(manager().machine().options().font_path(), OPEN_FLAG_READ);
395      filerr = cachefile.open(cachedname);
395      filerr = cachefile.open(cachedname.c_str());
396396      if (filerr == FILERR_NONE)
397397      {
398398         // if we have a cached version, load it
r245640r245641
427427
428428   // if we loaded okay, create a cached one
429429   if (result)
430      save_cached(cachedname, hash);
430      save_cached(cachedname.c_str(), hash);
431431
432432   // close the file
433433   return result;
trunk/src/emu/rendlay.c
r245640r245641
910910
911911   while (1)
912912   {
913      width = font->string_width(bounds.height(), aspect, m_string);
913      width = font->string_width(bounds.height(), aspect, m_string.c_str());
914914      if (width < bounds.width())
915915         break;
916916      aspect *= 0.9f;
r245640r245641
941941   bitmap_argb32 tempbitmap(dest.width(), dest.height());
942942
943943   // loop over characters
944   for (const char *s = m_string; *s != 0; s++)
944   for (const char *s = m_string.c_str(); *s != 0; s++)
945945   {
946946      // get the font bitmap
947947      rectangle chbounds;
r245640r245641
10481048         {
10491049            while (1)
10501050            {
1051               width = font->string_width(ourheight/num_shown, aspect, m_stopnames[fruit]);
1051               width = font->string_width(ourheight / num_shown, aspect, m_stopnames[fruit].c_str());
10521052               if (width < bounds.width())
10531053                  break;
10541054               aspect *= 0.9f;
r245640r245641
11001100               bitmap_argb32 tempbitmap(dest.width(), dest.height());
11011101
11021102               // loop over characters
1103               for (const char *s = m_stopnames[fruit]; *s != 0; s++)
1103               for (const char *s = m_stopnames[fruit].c_str(); *s != 0; s++)
11041104               {
11051105                  // get the font bitmap
11061106                  rectangle chbounds;
r245640r245641
11981198      {
11991199         while (1)
12001200         {
1201            width = font->string_width(dest.height(), aspect, m_stopnames[fruit]);
1201            width = font->string_width(dest.height(), aspect, m_stopnames[fruit].c_str());
12021202            if (width < bounds.width())
12031203               break;
12041204            aspect *= 0.9f;
r245640r245641
12501250            bitmap_argb32 tempbitmap(dest.width(), dest.height());
12511251
12521252            // loop over characters
1253            for (const char *s = m_stopnames[fruit]; *s != 0; s++)
1253            for (const char *s = m_stopnames[fruit].c_str(); *s != 0; s++)
12541254            {
12551255               // get the font bitmap
12561256               rectangle chbounds;
r245640r245641
13101310{
13111311   // load the basic bitmap
13121312   assert(m_file[0] != NULL);
1313   m_hasalpha[0] = render_load_png(m_bitmap[0], *m_file[0], m_dirname, m_imagefile[0]);
1313   m_hasalpha[0] = render_load_png(m_bitmap[0], *m_file[0], m_dirname.c_str(), m_imagefile[0].c_str());
13141314
13151315   // load the alpha bitmap if specified
13161316   if (m_bitmap[0].valid() && m_alphafile[0])
1317      render_load_png(m_bitmap[0], *m_file[0], m_dirname, m_alphafile[0], true);
1317      render_load_png(m_bitmap[0], *m_file[0], m_dirname.c_str(), m_alphafile[0].c_str(), true);
13181318
13191319   // if we can't load the bitmap, allocate a dummy one and report an error
13201320   if (!m_bitmap[0].valid())
r245640r245641
13391339{
13401340   // load the basic bitmap
13411341   assert(m_file != NULL);
1342   /*m_hasalpha[number] = */ render_load_png(m_bitmap[number], *m_file[number], m_dirname, m_imagefile[number]);
1342   /*m_hasalpha[number] = */ render_load_png(m_bitmap[number], *m_file[number], m_dirname.c_str(), m_imagefile[number].c_str());
13431343
13441344   // load the alpha bitmap if specified
13451345   //if (m_bitmap[number].valid() && m_alphafile[number])
r245640r245641
23462346   }
23472347   m_input_mask = xml_get_attribute_int_with_subst(machine, itemnode, "inputmask", 0);
23482348   if (m_output_name[0] != 0 && m_element != NULL)
2349      output_set_value(m_output_name, m_element->default_state());
2349      output_set_value(m_output_name.c_str(), m_element->default_state());
23502350   parse_bounds(machine, xml_get_sibling(itemnode.child, "bounds"), m_rawbounds);
23512351   parse_color(machine, xml_get_sibling(itemnode.child, "color"), m_color);
23522352   parse_orientation(machine, xml_get_sibling(itemnode.child, "orientation"), m_orientation);
r245640r245641
23962396
23972397   // if configured to an output, fetch the output value
23982398   if (m_output_name[0] != 0)
2399      state = output_get_value(m_output_name);
2399      state = output_get_value(m_output_name.c_str());
24002400
24012401   // if configured to an input, fetch the input value
24022402   else if (m_input_tag[0] != 0)
24032403   {
2404      ioport_port *port = m_element->machine().root_device().ioport(m_input_tag);
2404      ioport_port *port = m_element->machine().root_device().ioport(m_input_tag.c_str());
24052405      if (port != NULL)
24062406      {
24072407         ioport_field *field = port->field(m_input_mask);
trunk/src/emu/rendlay.h
r245640r245641
5252
5353   // getters
5454   layout_element *next() const { return m_next; }
55   const char *name() const { return m_name; }
55   const char *name() const { return m_name.c_str(); }
5656   running_machine &machine() const { return m_machine; }
5757   int default_state() const { return m_defstate; }
5858   int maxstate() const { return m_maxstate; }
r245640r245641
208208      int orientation() const { return m_orientation; }
209209      render_container *screen_container(running_machine &machine) const;
210210      bool has_input() const { return bool(m_input_tag); }
211      const char *input_tag_and_mask(ioport_value &mask) const { mask = m_input_mask; return m_input_tag; }
211      const char *input_tag_and_mask(ioport_value &mask) const { mask = m_input_mask; return m_input_tag.c_str(); }
212212
213213      // fetch state based on configured source
214214      int state() const;
r245640r245641
234234   // getters
235235   layout_view *next() const { return m_next; }
236236   item *first_item(item_layer layer) const;
237   const char *name() const { return m_name; }
237   const char *name() const { return m_name.c_str(); }
238238   const render_screen_list &screens() const { return m_screens; }
239239   bool layer_enabled(item_layer layer) const { return m_layenabled[layer]; }
240240
trunk/src/emu/rendutil.c
r245640r245641
542542      fname.cpy(filename);
543543   else
544544      fname.cpy(dirname).cat(PATH_SEPARATOR).cat(filename);
545   file_error filerr = file.open(fname);
545   file_error filerr = file.open(fname.c_str());
546546   if (filerr != FILERR_NONE)
547547      return false;
548548
trunk/src/emu/romload.c
r245640r245641
4444         m_region(region) { }
4545
4646   open_chd *next() const { return m_next; }
47   const char *region() const { return m_region; }
47   const char *region() const { return m_region.c_str(); }
4848   chd_file &chd() { return m_diffchd.opened() ? m_diffchd : m_origchd; }
4949   chd_file &orig_chd() { return m_origchd; }
5050   chd_file &diff_chd() { return m_diffchd; }
r245640r245641
11251125      image_file.close();
11261126
11271127      /* try to open the CHD */
1128      err = image_chd.open(fullpath);
1128      err = image_chd.open(fullpath.c_str());
11291129      if (err == CHDERR_NONE)
11301130         return err;
11311131   }
r245640r245641
11631163                        image_file.close();
11641164
11651165                        /* try to open the CHD */
1166                        err = image_chd.open(fullpath);
1166                        err = image_chd.open(fullpath.c_str());
11671167                        if (err == CHDERR_NONE)
11681168                           return err;
11691169                     }
r245640r245641
11841184   /* try to open the diff */
11851185   LOG(("Opening differencing image file: %s\n", fname.c_str()));
11861186   emu_file diff_file(options.diff_directory(), OPEN_FLAG_READ | OPEN_FLAG_WRITE);
1187   file_error filerr = diff_file.open(fname);
1187   file_error filerr = diff_file.open(fname.c_str());
11881188   if (filerr == FILERR_NONE)
11891189   {
11901190      astring fullpath(diff_file.fullpath());
11911191      diff_file.close();
11921192
11931193      LOG(("Opening differencing image file: %s\n", fullpath.c_str()));
1194      return diff_chd.open(fullpath, true, &source);
1194      return diff_chd.open(fullpath.c_str(), true, &source);
11951195   }
11961196
11971197   /* didn't work; try creating it instead */
11981198   LOG(("Creating differencing image: %s\n", fname.c_str()));
11991199   diff_file.set_openflags(OPEN_FLAG_READ | OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
1200   filerr = diff_file.open(fname);
1200   filerr = diff_file.open(fname.c_str());
12011201   if (filerr == FILERR_NONE)
12021202   {
12031203      astring fullpath(diff_file.fullpath());
r245640r245641
12061206      /* create the CHD */
12071207      LOG(("Creating differencing image file: %s\n", fullpath.c_str()));
12081208      chd_codec_type compression[4] = { CHD_CODEC_NONE };
1209      chd_error err = diff_chd.create(fullpath, source.logical_bytes(), source.hunk_bytes(), compression, source);
1209      chd_error err = diff_chd.create(fullpath.c_str(), source.logical_bytes(), source.hunk_bytes(), compression, source);
12101210      if (err != CHDERR_NONE)
12111211         return err;
12121212
r245640r245641
13931393      /* if this is a device region, override with the device width and endianness */
13941394      endianness_t endianness = ROMREGION_ISBIGENDIAN(region) ? ENDIANNESS_BIG : ENDIANNESS_LITTLE;
13951395      UINT8 width = ROMREGION_GETWIDTH(region) / 8;
1396      memory_region *memregion = romdata->machine().root_device().memregion(regiontag);
1396      memory_region *memregion = romdata->machine().root_device().memregion(regiontag.c_str());
13971397      if (memregion != NULL)
13981398      {
1399         if (romdata->machine().device(regiontag) != NULL)
1400            normalize_flags_for_device(romdata->machine(), regiontag, width, endianness);
1399         if (romdata->machine().device(regiontag.c_str()) != NULL)
1400            normalize_flags_for_device(romdata->machine(), regiontag.c_str(), width, endianness);
14011401
14021402         /* clear old region (todo: should be moved to an image unload function) */
14031403         romdata->machine().memory().region_free(memregion->name());
14041404      }
14051405
14061406      /* remember the base and length */
1407      romdata->region = romdata->machine().memory().region_alloc(regiontag, regionlength, width, endianness);
1407      romdata->region = romdata->machine().memory().region_alloc(regiontag.c_str(), regionlength, width, endianness);
14081408      LOG(("Allocated %X bytes @ %p\n", romdata->region->bytes(), romdata->region->base()));
14091409
14101410      /* clear the region if it's requested */
r245640r245641
14301430
14311431      /* now process the entries in the region */
14321432      if (ROMREGION_ISROMDATA(region))
1433         process_rom_entries(romdata, locationtag, region, region + 1, &device, TRUE);
1433         process_rom_entries(romdata, locationtag.c_str(), region, region + 1, &device, TRUE);
14341434      else if (ROMREGION_ISDISKDATA(region))
1435         process_disk_entries(romdata, regiontag, region, region + 1, locationtag);
1435         process_disk_entries(romdata, regiontag.c_str(), region, region + 1, locationtag.c_str());
14361436   }
14371437
14381438   /* now go back and post-process all the regions */
r245640r245641
14731473            /* if this is a device region, override with the device width and endianness */
14741474            UINT8 width = ROMREGION_GETWIDTH(region) / 8;
14751475            endianness_t endianness = ROMREGION_ISBIGENDIAN(region) ? ENDIANNESS_BIG : ENDIANNESS_LITTLE;
1476            if (romdata->machine().device(regiontag) != NULL)
1477               normalize_flags_for_device(romdata->machine(), regiontag, width, endianness);
1476            if (romdata->machine().device(regiontag.c_str()) != NULL)
1477               normalize_flags_for_device(romdata->machine(), regiontag.c_str(), width, endianness);
14781478
14791479            /* remember the base and length */
1480            romdata->region = romdata->machine().memory().region_alloc(regiontag, regionlength, width, endianness);
1480            romdata->region = romdata->machine().memory().region_alloc(regiontag.c_str(), regionlength, width, endianness);
14811481            LOG(("Allocated %X bytes @ %p\n", romdata->region->bytes(), romdata->region->base()));
14821482
14831483            /* clear the region if it's requested */
r245640r245641
14981498            process_rom_entries(romdata, device->shortname(), region, region + 1, device, FALSE);
14991499         }
15001500         else if (ROMREGION_ISDISKDATA(region))
1501            process_disk_entries(romdata, regiontag, region, region + 1, NULL);
1501            process_disk_entries(romdata, regiontag.c_str(), region, region + 1, NULL);
15021502      }
15031503
15041504   /* now go back and post-process all the regions */
r245640r245641
15061506      for (const rom_entry *region = rom_first_region(*device); region != NULL; region = rom_next_region(region))
15071507      {
15081508         rom_region_name(regiontag, *device, region);
1509         region_post_process(romdata, regiontag, ROMREGION_ISINVERTED(region));
1509         region_post_process(romdata, regiontag.c_str(), ROMREGION_ISINVERTED(region));
15101510      }
15111511
15121512   /* and finally register all per-game parameters */
trunk/src/emu/save.c
r245640r245641
9696   valsize = entry->m_typesize;
9797   valcount = entry->m_typecount;
9898
99   return entry->m_name;
99   return entry->m_name.c_str();
100100}
101101
102102
r245640r245641
183183   }
184184
185185   // insert us into the list
186   m_entry_list.insert_after(*global_alloc(state_entry(val, totalname, device, module, tag ? tag : "", index, valsize, valcount)), insert_after);
186   m_entry_list.insert_after(*global_alloc(state_entry(val, totalname.c_str(), device, module, tag ? tag : "", index, valsize, valcount)), insert_after);
187187}
188188
189189
trunk/src/emu/save.h
r245640r245641
268268inline void save_manager::save_item(device_t *device, const char *module, const char *tag, int index, attotime &value, const char *name)
269269{
270270   astring tempstr(name, ".attoseconds");
271   save_memory(device, module, tag, index, tempstr, &value.attoseconds, sizeof(value.attoseconds));
271   save_memory(device, module, tag, index, tempstr.c_str(), &value.attoseconds, sizeof(value.attoseconds));
272272   tempstr.cpy(name).cat(".seconds");
273   save_memory(device, module, tag, index, tempstr, &value.seconds, sizeof(value.seconds));
273   save_memory(device, module, tag, index, tempstr.c_str(), &value.seconds, sizeof(value.seconds));
274274}
275275
276276
trunk/src/emu/schedule.c
r245640r245641
260260   }
261261
262262   // save the bits
263   machine().save().save_item(m_device, "timer", name, index, NAME(m_param));
264   machine().save().save_item(m_device, "timer", name, index, NAME(m_enabled));
265   machine().save().save_item(m_device, "timer", name, index, NAME(m_period));
266   machine().save().save_item(m_device, "timer", name, index, NAME(m_start));
267   machine().save().save_item(m_device, "timer", name, index, NAME(m_expire));
263   machine().save().save_item(m_device, "timer", name.c_str(), index, NAME(m_param));
264   machine().save().save_item(m_device, "timer", name.c_str(), index, NAME(m_enabled));
265   machine().save().save_item(m_device, "timer", name.c_str(), index, NAME(m_period));
266   machine().save().save_item(m_device, "timer", name.c_str(), index, NAME(m_start));
267   machine().save().save_item(m_device, "timer", name.c_str(), index, NAME(m_expire));
268268}
269269
270270
r245640r245641
755755      // if the configuration specifies a device to make perfect, pick that as the minimum
756756      if (machine().config().m_perfect_cpu_quantum)
757757      {
758         device_t *device = machine().device(machine().config().m_perfect_cpu_quantum);
758         device_t *device = machine().device(machine().config().m_perfect_cpu_quantum.c_str());
759759         if (device == NULL)
760760            fatalerror("Device '%s' specified for perfect interleave is not present!\n", machine().config().m_perfect_cpu_quantum.c_str());
761761
trunk/src/emu/screen.c
r245640r245641
10541054
10551055   // load the file
10561056   emu_file file(machine().options().art_path(), OPEN_FLAG_READ);
1057   render_load_png(m_screen_overlay_bitmap, file, NULL, fullname);
1057   render_load_png(m_screen_overlay_bitmap, file, NULL, fullname.c_str());
10581058   if (m_screen_overlay_bitmap.valid())
10591059      m_container->set_overlay(&m_screen_overlay_bitmap);
10601060   else
trunk/src/emu/softlist.c
r245640r245641
156156   for (int start = 0, end = filt.chr(start, ','); end != -1; start = end + 1, end = filt.chr(start, ','))
157157   {
158158      astring token(filt, start, end - start + 1);
159      if (comp.find(0, token) != -1)
159      if (comp.find(0, token.c_str()) != -1)
160160         return true;
161161   }
162162   return false;
r245640r245641
179179
180180   // then add a comma to the end of our interface and return true if we find it in the list string
181181   astring our_interface(m_interface, ",");
182   return (interfaces.find(0, our_interface) != -1);
182   return (interfaces.find(0, our_interface.c_str()) != -1);
183183}
184184
185185
r245640r245641
476476   m_errors.reset();
477477
478478   // attempt to open the file
479   file_error filerr = m_file.open(m_list_name, ".xml");
479   file_error filerr = m_file.open(m_list_name.c_str(), ".xml");
480480   if (filerr == FILERR_NONE)
481481   {
482482      // parse if no error
r245640r245641
500500{
501501   // add to the global map whenever we check a list so we don't re-check
502502   // it in the future
503   if (valid.already_checked(astring("softlist/", m_list_name.c_str())))
503   if (valid.already_checked(astring("softlist/", m_list_name.c_str()).c_str()))
504504      return;
505505
506506   // do device validation only in case of validate command
r245640r245641
11721172            else if (loadflag != NULL && strcmp(loadflag, "load32_byte") == 0)
11731173               romflags = ROM_SKIP(3);
11741174
1175            add_rom_entry(name, hashdata, offset, length, ROMENTRYTYPE_ROM | romflags);
1175            add_rom_entry(name, hashdata.c_str(), offset, length, ROMENTRYTYPE_ROM | romflags);
11761176         }
11771177         else
11781178            parse_error("Rom name missing");
r245640r245641
12001200         astring hashdata;
12011201         hashdata.printf( "%c%s%s", hash_collection::HASH_SHA1, sha1, (nodump ? NO_DUMP : (baddump ? BAD_DUMP : "")));
12021202
1203         add_rom_entry(name, hashdata, 0, 0, ROMENTRYTYPE_ROM | (writeable ? DISK_READWRITE : DISK_READONLY));
1203         add_rom_entry(name, hashdata.c_str(), 0, 0, ROMENTRYTYPE_ROM | (writeable ? DISK_READWRITE : DISK_READONLY));
12041204      }
12051205      else if (status == NULL || !strcmp(status, "nodump")) // a no_dump chd is not an incomplete entry
12061206         parse_error("Incomplete disk definition");
r245640r245641
12251225
12261226   // <description>
12271227   if (strcmp(tagname, "description") == 0)
1228      m_current_info->m_longname = m_list.add_string(m_data_accum);
1228      m_current_info->m_longname = m_list.add_string(m_data_accum.c_str());
12291229
12301230   // <year>
12311231   else if (strcmp(tagname, "year") == 0)
1232      m_current_info->m_year = m_list.add_string(m_data_accum);
1232      m_current_info->m_year = m_list.add_string(m_data_accum.c_str());
12331233
12341234   // <publisher>
12351235   else if (strcmp(tagname, "publisher") == 0)
1236      m_current_info->m_publisher = m_list.add_string(m_data_accum);
1236      m_current_info->m_publisher = m_list.add_string(m_data_accum.c_str());
12371237
12381238   // </part>
12391239   else if (strcmp(tagname, "part") == 0)
trunk/src/emu/softlist.h
r245640r245641
193193   static void static_set_filter(device_t &device, const char *filter);
194194
195195   // getters
196   const char *list_name() const { return m_list_name; }
196   const char *list_name() const { return m_list_name.c_str(); }
197197   softlist_type list_type() const { return m_list_type; }
198198   const char *filter() const { return m_filter; }
199199   const char *filename() { return m_file.filename(); }
r245640r245641
201201   // getters that may trigger a parse
202202   const char *description() { if (!m_parsed) parse(); return m_description; }
203203   bool valid() { if (!m_parsed) parse(); return m_infolist.count() > 0; }
204   const char *errors_string() { if (!m_parsed) parse(); return m_errors; }
204   const char *errors_string() { if (!m_parsed) parse(); return m_errors.c_str(); }
205205
206206   // operations
207207   software_info *find(const char *look_for, software_info *prev = NULL);
trunk/src/emu/sound.c
r245640r245641
7777   // create a unique tag for saving
7878   astring state_tag;
7979   state_tag.printf("%d", m_device.machine().sound().m_stream_list.count());
80   m_device.machine().save().save_item(&m_device, "stream", state_tag, 0, NAME(m_sample_rate));
80   m_device.machine().save().save_item(&m_device, "stream", state_tag.c_str(), 0, NAME(m_sample_rate));
8181   m_device.machine().save().register_postload(save_prepost_delegate(FUNC(sound_stream::postload), this));
8282
8383   // save the gain of each input and output
8484   for (int inputnum = 0; inputnum < m_input.count(); inputnum++)
8585   {
86      m_device.machine().save().save_item(&m_device, "stream", state_tag, inputnum, NAME(m_input[inputnum].m_gain));
87      m_device.machine().save().save_item(&m_device, "stream", state_tag, inputnum, NAME(m_input[inputnum].m_user_gain));
86      m_device.machine().save().save_item(&m_device, "stream", state_tag.c_str(), inputnum, NAME(m_input[inputnum].m_gain));
87      m_device.machine().save().save_item(&m_device, "stream", state_tag.c_str(), inputnum, NAME(m_input[inputnum].m_user_gain));
8888   }
8989   for (int outputnum = 0; outputnum < m_output.count(); outputnum++)
9090   {
9191      m_output[outputnum].m_stream = this;
92      m_device.machine().save().save_item(&m_device, "stream", state_tag, outputnum, NAME(m_output[outputnum].m_gain));
92      m_device.machine().save().save_item(&m_device, "stream", state_tag.c_str(), outputnum, NAME(m_output[outputnum].m_gain));
9393   }
9494
9595   // Mark synchronous streams as such
r245640r245641
191191            }
192192      }
193193   }
194   return string;
194   return string.c_str();
195195}
196196
197197
trunk/src/emu/sound/2610intf.c
r245640r245641
157157   pcmbufa  = region()->base();
158158   pcmsizea = region()->bytes();
159159   name.printf("%s.deltat", tag());
160   pcmbufb  = (void *)(machine().root_device().memregion(name)->base());
161   pcmsizeb = machine().root_device().memregion(name)->bytes();
160   pcmbufb = (void *)(machine().root_device().memregion(name.c_str())->base());
161   pcmsizeb = machine().root_device().memregion(name.c_str())->bytes();
162162   if (pcmbufb == NULL || pcmsizeb == 0)
163163   {
164164      pcmbufb = pcmbufa;
trunk/src/emu/sound/fm.c
r245640r245641
36783678
36793679   /* setup PCM buffers again */
36803680   name.printf("%s",dev->tag());
3681   F2610->pcmbuf   = (const UINT8 *)dev->machine().root_device().memregion(name)->base();
3682   F2610->pcm_size = dev->machine().root_device().memregion(name)->bytes();
3681   F2610->pcmbuf = (const UINT8 *)dev->machine().root_device().memregion(name.c_str())->base();
3682   F2610->pcm_size = dev->machine().root_device().memregion(name.c_str())->bytes();
36833683   name.printf("%s.deltat",dev->tag());
3684   F2610->deltaT.memory = (UINT8 *)dev->machine().root_device().memregion(name)->base();
3684   F2610->deltaT.memory = (UINT8 *)dev->machine().root_device().memregion(name.c_str())->base();
36853685   if(F2610->deltaT.memory == NULL)
36863686   {
36873687      F2610->deltaT.memory = (UINT8*)F2610->pcmbuf;
36883688      F2610->deltaT.memory_size = F2610->pcm_size;
36893689   }
36903690   else
3691      F2610->deltaT.memory_size = dev->machine().root_device().memregion(name)->bytes();
3691      F2610->deltaT.memory_size = dev->machine().root_device().memregion(name.c_str())->bytes();
36923692
36933693   /* Reset Prescaler */
36943694   OPNSetPres( OPN, 6*24, 6*24, 4*2); /* OPN 1/6 , SSG 1/4 */
trunk/src/emu/ui/barcode.c
r245640r245641
5656      const char *new_barcode;
5757
5858      // selected device
59      item_append(current_display_name(), "", current_display_flags(), ITEMREF_SELECT_READER);
59      item_append(current_display_name().c_str(), "", current_display_flags(), ITEMREF_SELECT_READER);
6060
6161      // append the "New Barcode" item
6262      if (get_selection() == ITEMREF_NEW_BARCODE)
6363      {
6464         buffer.cat(m_barcode_buffer);
65         new_barcode = buffer;
65         new_barcode = buffer.c_str();
6666      }
6767      else
6868      {
trunk/src/emu/ui/cheatopt.c
r245640r245641
115115   {
116116      UINT32 flags;
117117      curcheat->menu_text(text, subtext, flags);
118      item_append(text, subtext, flags, curcheat);
118      item_append(text.c_str(), subtext.c_str(), flags, curcheat);
119119   }
120120
121121   /* add a separator */
trunk/src/emu/ui/devopt.c
r245640r245641
279279      string.cat("[None]\n");
280280
281281   const_cast<machine_config &>(machine().config()).device_remove(&machine().config().root_device(), m_option->name());
282   item_append(string, NULL, MENU_FLAG_MULTILINE, NULL);
282   item_append(string.c_str(), NULL, MENU_FLAG_MULTILINE, NULL);
283283}
284284
285285void ui_menu_device_config::handle()
trunk/src/emu/ui/filemngr.c
r245640r245641
106106
107107   if (m_warnings)
108108   {
109      item_append(m_warnings, NULL, MENU_FLAG_DISABLE, NULL);
109      item_append(m_warnings.c_str(), NULL, MENU_FLAG_DISABLE, NULL);
110110      item_append("", NULL, MENU_FLAG_DISABLE, NULL);
111111   }
112112
r245640r245641
139139                     else
140140                        item_append(MENU_SEPARATOR_ITEM, NULL, 0, NULL);
141141                     buffer.printf("[root%s]", dev->tag());
142                     item_append(buffer, NULL, 0, NULL);
142                     item_append(buffer.c_str(), NULL, 0, NULL);
143143                     tag_appended = true;
144144                  }
145145                  // finally, append the image interface to the menu
146146                  fill_image_line(scan, tmp_inst, tmp_name);
147                  item_append(tmp_inst, tmp_name, 0, (void *) scan);
147                  item_append(tmp_inst.c_str(), tmp_name.c_str(), 0, (void *)scan);
148148               }
149149         }
150150      }
trunk/src/emu/ui/filesel.c
r245640r245641
246246void ui_menu_file_create::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
247247{
248248   extra_text_render(container, top, bottom, origx1, origy1, origx2, origy2,
249      m_current_directory,
249      m_current_directory.c_str(),
250250      NULL);
251251}
252252
r245640r245641
265265   if (get_selection() == ITEMREF_NEW_IMAGE_NAME)
266266   {
267267      buffer.cat(m_filename_buffer).cat("_");
268      new_image_name = buffer;
268      new_image_name = buffer.c_str();
269269   }
270270   else
271271   {
r245640r245641
374374{
375375   extra_text_render(container, top, bottom,
376376      origx1, origy1, origx2, origy2,
377      m_current_directory,
377      m_current_directory.c_str(),
378378      NULL);
379379}
380380
r245640r245641
476476   }
477477
478478   // determine the full path
479   zippath_combine(buffer, m_current_directory, dirent->name);
479   zippath_combine(buffer, m_current_directory.c_str(), dirent->name);
480480
481481   // create the file selector entry
482482   entry = append_entry(
483483      entry_type,
484484      dirent->name,
485      buffer);
485      buffer.c_str());
486486
487487   return entry;
488488}
r245640r245641
544544   const file_selector_entry *selected_entry = NULL;
545545   int i;
546546   const char *volume_name;
547   const char *path = m_current_directory;
547   const char *path = m_current_directory.c_str();
548548
549549   // open the directory
550550   err = zippath_opendir(path, &directory);
r245640r245641
594594               selected_entry = entry;
595595
596596            // do we have to select this file?
597            if (!core_stricmp(m_current_file, dirent->name))
597            if (!core_stricmp(m_current_file.c_str(), dirent->name))
598598               selected_entry = entry;
599599         }
600600      }
trunk/src/emu/ui/imgcntrl.c
r245640r245641
5656      if (image->exists())
5757      {
5858         current_file.cpy(image->filename());
59         zippath_parent(current_directory, current_file);
59         zippath_parent(current_directory, current_file.c_str());
6060      } else
6161         current_directory.cpy(image->working_directory());
6262
6363      /* check to see if the path exists; if not clear it */
64      if (zippath_opendir(current_directory, NULL) != FILERR_NONE)
64      if (zippath_opendir(current_directory.c_str(), NULL) != FILERR_NONE)
6565         current_directory.reset();
6666   }
6767}
r245640r245641
8787   osd_dir_entry_type file_type;
8888
8989   /* assemble the full path */
90   zippath_combine(path, current_directory, current_file);
90   zippath_combine(path, current_directory.c_str(), current_file.c_str());
9191
9292   /* does a file or a directory exist at the path */
93   entry = osd_stat(path);
93   entry = osd_stat(path.c_str());
9494   file_type = (entry != NULL) ? entry->type : ENTTYPE_NONE;
9595
9696   switch(file_type)
r245640r245641
155155void ui_menu_control_device_image::hook_load(astring name, bool softlist)
156156{
157157   if (image->is_reset_on_load()) image->set_init_phase();
158   image->load(name);
158   image->load(name.c_str());
159159   ui_menu::stack_pop(machine());
160160}
161161
r245640r245641
180180      bool can_create = false;
181181      if(image->is_creatable()) {
182182         zippath_directory *directory = NULL;
183         file_error err = zippath_opendir(current_directory, &directory);
183         file_error err = zippath_opendir(current_directory.c_str(), &directory);
184184         can_create = err == FILERR_NONE && !zippath_is_zip(directory);
185185         if(directory)
186186            zippath_closedir(directory);
r245640r245641
215215      break;
216216
217217   case SELECT_PARTLIST:
218      swi = sld->find(software_info_name);
218      swi = sld->find(software_info_name.c_str());
219219      if (!swi)
220220         state = START_SOFTLIST;
221221      else if(swi->has_multiple_parts(image->image_interface()))
r245640r245641
331331
332332   case DO_CREATE: {
333333      astring path;
334      zippath_combine(path, current_directory, current_file);
335      int err = image->create(path, 0, NULL);
334      zippath_combine(path, current_directory.c_str(), current_file.c_str());
335      int err = image->create(path.c_str(), 0, NULL);
336336      if (err != 0)
337337         popmessage("Error: %s", image->error());
338338      ui_menu::stack_pop(machine());
trunk/src/emu/ui/info.c
r245640r245641
3030void ui_menu_game_info::populate()
3131{
3232   astring tempstring;
33   item_append(machine().ui().game_info_astring(tempstring), NULL, MENU_FLAG_MULTILINE, NULL);
33   item_append(machine().ui().game_info_astring(tempstring).c_str(), NULL, MENU_FLAG_MULTILINE, NULL);
3434}
3535
3636void ui_menu_game_info::handle()
r245640r245641
9292
9393         // display manufacturer and year
9494         string.catprintf("%s, %s", image->manufacturer(), image->year());
95         item_append(string, "", MENU_FLAG_DISABLE, NULL);
95         item_append(string.c_str(), "", MENU_FLAG_DISABLE, NULL);
9696
9797         // display supported information, if available
9898         switch (image->supported())
trunk/src/emu/ui/inputmap.c
r245640r245641
421421         else
422422            item_append(MENU_SEPARATOR_ITEM, NULL, 0, NULL);
423423         text.printf("[root%s]", item->owner_name);
424         item_append(text, NULL, 0, NULL);
424         item_append(text.c_str(), NULL, 0, NULL);
425425         prev_owner.cpy(item->owner_name);
426426      }
427427
r245640r245641
442442      }
443443
444444      /* add the item */
445      item_append(text, subtext, flags, item);
445      item_append(text.c_str(), subtext.c_str(), flags, item);
446446   }
447447}
448448
r245640r245641
575575               else
576576                  item_append(MENU_SEPARATOR_ITEM, NULL, 0, NULL);
577577               name.printf("[root%s]", field->device().tag());
578               item_append(name, NULL, 0, NULL);
578               item_append(name.c_str(), NULL, 0, NULL);
579579               prev_owner.cpy(field->device().tag());
580580            }
581581
582582            name.cpy(field->name());
583583
584            item_append(name, field->setting_name(), flags, (void *)field);
584            item_append(name.c_str(), field->setting_name(), flags, (void *)field);
585585
586586            /* for DIP switches, build up the model */
587587            if (type == IPT_DIPSWITCH && field->first_diplocation() != NULL)
r245640r245641
879879                     else
880880                        item_append(MENU_SEPARATOR_ITEM, NULL, 0, NULL);
881881                     name.printf("[root%s]", field->device().tag());
882                     item_append(name, NULL, 0, NULL);
882                     item_append(name.c_str(), NULL, 0, NULL);
883883                     prev_owner.cpy(field->device().tag());
884884                  }
885885
r245640r245641
938938                     flags |= MENU_FLAG_RIGHT_ARROW;
939939
940940                  /* append a menu item */
941                  item_append(text, subtext, flags, data);
941                  item_append(text.c_str(), subtext.c_str(), flags, data);
942942               }
943943         }
944944}
trunk/src/emu/ui/miscmenu.c
r245640r245641
267267   }
268268
269269   /* append the single item */
270   item_append(tempstring, NULL, MENU_FLAG_MULTILINE, NULL);
270   item_append(tempstring.c_str(), NULL, MENU_FLAG_MULTILINE, NULL);
271271}
272272
273273/*-------------------------------------------------
trunk/src/emu/ui/selgame.c
r245640r245641
239239               emulator_info::get_gamesnoun(),
240240               emulator_info::get_configname(),
241241               emulator_info::get_appname(),emulator_info::get_appname() );
242      item_append(txt, NULL, MENU_FLAG_MULTILINE | MENU_FLAG_REDTEXT, NULL);
242      item_append(txt.c_str(), NULL, MENU_FLAG_MULTILINE | MENU_FLAG_REDTEXT, NULL);
243243      return;
244244   }
245245
r245640r245641
293293      tempbuf[0].printf("Type name or select: (random)");
294294
295295   // get the size of the text
296   machine().ui().draw_text_full(container, tempbuf[0], 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
296   machine().ui().draw_text_full(container, tempbuf[0].c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
297297                  DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, NULL);
298298   width += 2 * UI_BOX_LR_BORDER;
299299   maxwidth = MAX(width, origx2 - origx1);
r245640r245641
314314   y2 -= UI_BOX_TB_BORDER;
315315
316316   // draw the text within it
317   machine().ui().draw_text_full(container, tempbuf[0], x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
317   machine().ui().draw_text_full(container, tempbuf[0].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
318318                  DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, NULL, NULL);
319319
320320   // determine the text to render below
r245640r245641
384384   maxwidth = origx2 - origx1;
385385   for (line = 0; line < 4; line++)
386386   {
387      machine().ui().draw_text_full(container, tempbuf[line], 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
387      machine().ui().draw_text_full(container, tempbuf[line].c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
388388                     DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, NULL);
389389      width += 2 * UI_BOX_LR_BORDER;
390390      maxwidth = MAX(maxwidth, width);
r245640r245641
415415   // draw all lines
416416   for (line = 0; line < 4; line++)
417417   {
418      machine().ui().draw_text_full(container, tempbuf[line], x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
418      machine().ui().draw_text_full(container, tempbuf[line].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
419419                     DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, NULL, NULL);
420420      y1 += machine().ui().get_line_height();
421421   }
trunk/src/emu/ui/sliders.c
r245640r245641
141141         flags |= MENU_FLAG_LEFT_ARROW;
142142      if (curval < curslider->maxval)
143143         flags |= MENU_FLAG_RIGHT_ARROW;
144      item_append(curslider->description, tempstring, flags, (void *)curslider);
144      item_append(curslider->description, tempstring.c_str(), flags, (void *)curslider);
145145
146146      if (menuless_mode)
147147         break;
r245640r245641
156156         flags |= MENU_FLAG_LEFT_ARROW;
157157      if (curval < curslider->maxval)
158158         flags |= MENU_FLAG_RIGHT_ARROW;
159      item_append(curslider->description, tempstring, flags, (void *)curslider);
159      item_append(curslider->description, tempstring.c_str(), flags, (void *)curslider);
160160   }
161161
162162   custombottom = 2.0f * machine().ui().get_line_height() + 2.0f * UI_BOX_TB_BORDER;
r245640r245641
200200      y1 += UI_BOX_TB_BORDER;
201201
202202      /* determine the text height */
203      machine().ui().draw_text_full(container, tempstring, 0, 0, x2 - x1 - 2.0f * UI_BOX_LR_BORDER,
203      machine().ui().draw_text_full(container, tempstring.c_str(), 0, 0, x2 - x1 - 2.0f * UI_BOX_LR_BORDER,
204204               JUSTIFY_CENTER, WRAP_TRUNCATE, DRAW_NONE, ARGB_WHITE, ARGB_BLACK, NULL, &text_height);
205205
206206      /* draw the thermometer */
r245640r245641
227227      container->add_line(default_x, bar_bottom, default_x, bar_area_top + bar_area_height, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
228228
229229      /* draw the actual text */
230      machine().ui().draw_text_full(container, tempstring, x1 + UI_BOX_LR_BORDER, y1 + line_height, x2 - x1 - 2.0f * UI_BOX_LR_BORDER,
230      machine().ui().draw_text_full(container, tempstring.c_str(), x1 + UI_BOX_LR_BORDER, y1 + line_height, x2 - x1 - 2.0f * UI_BOX_LR_BORDER,
231231               JUSTIFY_CENTER, WRAP_WORD, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, NULL, &text_height);
232232   }
233233}
trunk/src/emu/ui/slotopt.c
r245640r245641
166166            opt_name.cat(" [internal]");
167167      }
168168
169      item_append(slot->device().tag() + 1, opt_name, (slot->fixed() || slot_get_length(slot) == 0) ? 0 : (MENU_FLAG_LEFT_ARROW | MENU_FLAG_RIGHT_ARROW), (void *)slot);
169      item_append(slot->device().tag() + 1, opt_name.c_str(), (slot->fixed() || slot_get_length(slot) == 0) ? 0 : (MENU_FLAG_LEFT_ARROW | MENU_FLAG_RIGHT_ARROW), (void *)slot);
170170   }
171171   item_append(MENU_SEPARATOR_ITEM, NULL, 0, NULL);
172172   item_append("Reset",  NULL, 0, (void *)1);
trunk/src/emu/ui/tapectrl.c
r245640r245641
5858   if (current_device())
5959   {
6060      // name of tape
61      item_append(current_display_name(), current_device()->exists() ? current_device()->filename() : "No Tape Image loaded", current_display_flags(), TAPECMD_SELECT);
61      item_append(current_display_name().c_str(), current_device()->exists() ? current_device()->filename() : "No Tape Image loaded", current_display_flags(), TAPECMD_SELECT);
6262
6363      if (current_device()->exists())
6464      {
r245640r245641
8686                        ? ((state & CASSETTE_MASK_MOTOR) == CASSETTE_MOTOR_ENABLED ? "playing" : "(playing)")
8787                        : ((state & CASSETTE_MASK_MOTOR) == CASSETTE_MOTOR_ENABLED ? "recording" : "(recording)")
8888                        ),
89                  timepos,
89                        timepos.c_str(),
9090                  tapeflags,
9191                  TAPECMD_SLIDER);
9292
trunk/src/emu/ui/ui.c
r245640r245641
442442
443443   // display any popup messages
444444   if (osd_ticks() < m_popup_text_end)
445      draw_text_box(container, messagebox_text, JUSTIFY_CENTER, 0.5f, 0.9f, messagebox_backcolor);
445      draw_text_box(container, messagebox_text.c_str(), JUSTIFY_CENTER, 0.5f, 0.9f, messagebox_backcolor);
446446   else
447447      m_popup_text_end = 0;
448448
r245640r245641
12531253
12541254UINT32 ui_manager::handler_messagebox(running_machine &machine, render_container *container, UINT32 state)
12551255{
1256   machine.ui().draw_text_box(container, messagebox_text, JUSTIFY_LEFT, 0.5f, 0.5f, messagebox_backcolor);
1256   machine.ui().draw_text_box(container, messagebox_text.c_str(), JUSTIFY_LEFT, 0.5f, 0.5f, messagebox_backcolor);
12571257   return 0;
12581258}
12591259
r245640r245641
12661266UINT32 ui_manager::handler_messagebox_ok(running_machine &machine, render_container *container, UINT32 state)
12671267{
12681268   // draw a standard message window
1269   machine.ui().draw_text_box(container, messagebox_text, JUSTIFY_LEFT, 0.5f, 0.5f, messagebox_backcolor);
1269   machine.ui().draw_text_box(container, messagebox_text.c_str(), JUSTIFY_LEFT, 0.5f, 0.5f, messagebox_backcolor);
12701270
12711271   // an 'O' or left joystick kicks us to the next state
12721272   if (state == 0 && (machine.input().code_pressed_once(KEYCODE_O) || ui_input_pressed(machine, IPT_UI_LEFT)))
r245640r245641
12961296UINT32 ui_manager::handler_messagebox_anykey(running_machine &machine, render_container *container, UINT32 state)
12971297{
12981298   // draw a standard message window
1299   machine.ui().draw_text_box(container, messagebox_text, JUSTIFY_LEFT, 0.5f, 0.5f, messagebox_backcolor);
1299   machine.ui().draw_text_box(container, messagebox_text.c_str(), JUSTIFY_LEFT, 0.5f, 0.5f, messagebox_backcolor);
13001300
13011301   // if the user cancels, exit out completely
13021302   if (ui_input_pressed(machine, IPT_UI_CANCEL))
r245640r245641
14691469   if (machine.ui().show_fps_counter())
14701470   {
14711471      astring tempstring;
1472      machine.ui().draw_text_full(container, machine.video().speed_text(tempstring), 0.0f, 0.0f, 1.0f,
1472      machine.ui().draw_text_full(container, machine.video().speed_text(tempstring).c_str(), 0.0f, 0.0f, 1.0f,
14731473               JUSTIFY_RIGHT, WRAP_WORD, DRAW_OPAQUE, ARGB_WHITE, ARGB_BLACK, NULL, NULL);
14741474   }
14751475
r245640r245641
17641764      ui_select_text.c_str(),
17651765      ui_cancel_text.c_str());
17661766
1767   machine.ui().draw_text_box(container, quit_message, JUSTIFY_CENTER, 0.5f, 0.5f, UI_RED_COLOR);
1767   machine.ui().draw_text_box(container, quit_message.c_str(), JUSTIFY_CENTER, 0.5f, 0.5f, UI_RED_COLOR);
17681768   machine.pause();
17691769
17701770   // if the user press ENTER, quit the game
r245640r245641
18441844
18451845      info.stream->input_name(info.inputnum, string);
18461846      string.cat(" Volume");
1847      *tailptr = slider_alloc(machine, string, 0, defval, maxval, 20, slider_mixervol, (void *)(FPTR)item);
1847      *tailptr = slider_alloc(machine, string.c_str(), 0, defval, maxval, 20, slider_mixervol, (void *)(FPTR)item);
18481848      tailptr = &(*tailptr)->next;
18491849   }
18501850
r245640r245641
18661866      {
18671867         void *param = (void *)&exec->device();
18681868         string.printf("Overclock CPU %s", exec->device().tag());
1869         *tailptr = slider_alloc(machine, string, 10, 1000, 2000, 1, slider_overclock, param);
1869         *tailptr = slider_alloc(machine, string.c_str(), 10, 1000, 2000, 1, slider_overclock, param);
18701870         tailptr = &(*tailptr)->next;
18711871      }
18721872   }
r245640r245641
18851885      if (machine.options().cheat())
18861886      {
18871887         string.printf("%s Refresh Rate", slider_get_screen_desc(*screen));
1888         *tailptr = slider_alloc(machine, string, -10000, 0, 10000, 1000, slider_refresh, param);
1888         *tailptr = slider_alloc(machine, string.c_str(), -10000, 0, 10000, 1000, slider_refresh, param);
18891889         tailptr = &(*tailptr)->next;
18901890      }
18911891
18921892      // add standard brightness/contrast/gamma controls per-screen
18931893      string.printf("%s Brightness", slider_get_screen_desc(*screen));
1894      *tailptr = slider_alloc(machine, string, 100, 1000, 2000, 10, slider_brightness, param);
1894      *tailptr = slider_alloc(machine, string.c_str(), 100, 1000, 2000, 10, slider_brightness, param);
18951895      tailptr = &(*tailptr)->next;
18961896      string.printf("%s Contrast", slider_get_screen_desc(*screen));
1897      *tailptr = slider_alloc(machine, string, 100, 1000, 2000, 50, slider_contrast, param);
1897      *tailptr = slider_alloc(machine, string.c_str(), 100, 1000, 2000, 50, slider_contrast, param);
18981898      tailptr = &(*tailptr)->next;
18991899      string.printf("%s Gamma", slider_get_screen_desc(*screen));
1900      *tailptr = slider_alloc(machine, string, 100, 1000, 3000, 50, slider_gamma, param);
1900      *tailptr = slider_alloc(machine, string.c_str(), 100, 1000, 3000, 50, slider_gamma, param);
19011901      tailptr = &(*tailptr)->next;
19021902
19031903      // add scale and offset controls per-screen
19041904      string.printf("%s Horiz Stretch", slider_get_screen_desc(*screen));
1905      *tailptr = slider_alloc(machine, string, 500, defxscale, 1500, 2, slider_xscale, param);
1905      *tailptr = slider_alloc(machine, string.c_str(), 500, defxscale, 1500, 2, slider_xscale, param);
19061906      tailptr = &(*tailptr)->next;
19071907      string.printf("%s Horiz Position", slider_get_screen_desc(*screen));
1908      *tailptr = slider_alloc(machine, string, -500, defxoffset, 500, 2, slider_xoffset, param);
1908      *tailptr = slider_alloc(machine, string.c_str(), -500, defxoffset, 500, 2, slider_xoffset, param);
19091909      tailptr = &(*tailptr)->next;
19101910      string.printf("%s Vert Stretch", slider_get_screen_desc(*screen));
1911      *tailptr = slider_alloc(machine, string, 500, defyscale, 1500, 2, slider_yscale, param);
1911      *tailptr = slider_alloc(machine, string.c_str(), 500, defyscale, 1500, 2, slider_yscale, param);
19121912      tailptr = &(*tailptr)->next;
19131913      string.printf("%s Vert Position", slider_get_screen_desc(*screen));
1914      *tailptr = slider_alloc(machine, string, -500, defyoffset, 500, 2, slider_yoffset, param);
1914      *tailptr = slider_alloc(machine, string.c_str(), -500, defyoffset, 500, 2, slider_yoffset, param);
19151915      tailptr = &(*tailptr)->next;
19161916   }
19171917
r245640r245641
19291929
19301930         // add scale and offset controls per-overlay
19311931         string.printf("Laserdisc '%s' Horiz Stretch", laserdisc->tag());
1932         *tailptr = slider_alloc(machine, string, 500, (defxscale == 0) ? 1000 : defxscale, 1500, 2, slider_overxscale, param);
1932         *tailptr = slider_alloc(machine, string.c_str(), 500, (defxscale == 0) ? 1000 : defxscale, 1500, 2, slider_overxscale, param);
19331933         tailptr = &(*tailptr)->next;
19341934         string.printf("Laserdisc '%s' Horiz Position", laserdisc->tag());
1935         *tailptr = slider_alloc(machine, string, -500, defxoffset, 500, 2, slider_overxoffset, param);
1935         *tailptr = slider_alloc(machine, string.c_str(), -500, defxoffset, 500, 2, slider_overxoffset, param);
19361936         tailptr = &(*tailptr)->next;
19371937         string.printf("Laserdisc '%s' Vert Stretch", laserdisc->tag());
1938         *tailptr = slider_alloc(machine, string, 500, (defyscale == 0) ? 1000 : defyscale, 1500, 2, slider_overyscale, param);
1938         *tailptr = slider_alloc(machine, string.c_str(), 500, (defyscale == 0) ? 1000 : defyscale, 1500, 2, slider_overyscale, param);
19391939         tailptr = &(*tailptr)->next;
19401940         string.printf("Laserdisc '%s' Vert Position", laserdisc->tag());
1941         *tailptr = slider_alloc(machine, string, -500, defyoffset, 500, 2, slider_overyoffset, param);
1941         *tailptr = slider_alloc(machine, string.c_str(), -500, defyoffset, 500, 2, slider_overyoffset, param);
19421942         tailptr = &(*tailptr)->next;
19431943      }
19441944
r245640r245641
19611961         {
19621962            void *param = (void *)field;
19631963            string.printf("Crosshair Scale %s", (field->crosshair_axis() == CROSSHAIR_AXIS_X) ? "X" : "Y");
1964            *tailptr = slider_alloc(machine, string, -3000, 1000, 3000, 100, slider_crossscale, param);
1964            *tailptr = slider_alloc(machine, string.c_str(), -3000, 1000, 3000, 100, slider_crossscale, param);
19651965            tailptr = &(*tailptr)->next;
19661966            string.printf("Crosshair Offset %s", (field->crosshair_axis() == CROSSHAIR_AXIS_X) ? "X" : "Y");
1967            *tailptr = slider_alloc(machine, string, -3000, 0, 3000, 100, slider_crossoffset, param);
1967            *tailptr = slider_alloc(machine, string.c_str(), -3000, 0, 3000, 100, slider_crossoffset, param);
19681968            tailptr = &(*tailptr)->next;
19691969         }
19701970#endif
trunk/src/emu/ui/videoopt.c
r245640r245641
187187
188188      /* create a string for the item, replacing underscores with spaces */
189189      tempstring.cpy(name).replace(0, "_", " ");
190      item_append(tempstring, NULL, 0, (void *)(FPTR)(VIDEO_ITEM_VIEW + viewnum));
190      item_append(tempstring.c_str(), NULL, 0, (void *)(FPTR)(VIDEO_ITEM_VIEW + viewnum));
191191   }
192192
193193   /* add a separator */
trunk/src/emu/validity.c
r245640r245641
644644
645645            // attempt to add it to the map, reporting duplicates as errors
646646            current_length = ROMREGION_GETLENGTH(romp);
647            if (m_region_map.add(fulltag, current_length, false) == TMERR_DUPLICATE)
647            if (m_region_map.add(fulltag.c_str(), current_length, false) == TMERR_DUPLICATE)
648648               osd_printf_error("Multiple ROM_REGIONs with the same tag '%s' defined\n", fulltag.c_str());
649649         }
650650
r245640r245641
852852   device.subtag(porttag, condition.tag());
853853
854854   // then find a matching port
855   if (port_map.find(porttag) == 0)
855   if (port_map.find(porttag.c_str()) == 0)
856856      osd_printf_error("Condition referencing non-existent ioport tag '%s'\n", condition.tag());
857857}
858858
trunk/src/emu/video.c
r245640r245641
311311   astring text1(emulator_info::get_appname(), " ", build_version);
312312   astring text2(machine().system().manufacturer, " ", machine().system().description);
313313   png_info pnginfo = { 0 };
314   png_add_text(&pnginfo, "Software", text1);
315   png_add_text(&pnginfo, "System", text2);
314   png_add_text(&pnginfo, "Software", text1.c_str());
315   png_add_text(&pnginfo, "System", text2.c_str());
316316
317317   // now do the actual work
318318   const rgb_t *palette = (screen !=NULL && screen->palette() != NULL) ? screen->palette()->palette()->entry_list_adjusted() : NULL;
r245640r245641
417417         m_avi_frame_period = attotime::from_seconds(1000) / info.video_timescale;
418418
419419         // create the file and free the string
420         avi_error avierr = avi_create(fullpath, &info, &m_avi_file);
420         avi_error avierr = avi_create(fullpath.c_str(), &info, &m_avi_file);
421421         if (avierr != AVIERR_NONE)
422422         {
423423            osd_printf_error("Error creating AVI: %s\n", avi_error_string(avierr));
r245640r245641
11261126
11271127   // handle %d in the template (for image devices)
11281128   astring snapdev("%d_");
1129   int pos = snapstr.find(0, snapdev);
1129   int pos = snapstr.find(0, snapdev.c_str());
11301130
11311131   if (pos != -1)
11321132   {
11331133      // if more %d are found, revert to default and ignore them all
1134      if (snapstr.find(pos + 3, snapdev) != -1)
1134      if (snapstr.find(pos + 3, snapdev.c_str()) != -1)
11351135         snapstr.cpy("%g/%i");
11361136      // else if there is a single %d, try to create the correct snapname
11371137      else
r245640r245641
11791179                  filename.substr(0, filename.rchr(0, '.'));
11801180
11811181                  // setup snapname and remove the %d_
1182                  snapstr.replace(0, snapdevname, filename);
1182                  snapstr.replace(0, snapdevname.c_str(), filename.c_str());
11831183                  snapstr.del(pos, 3);
11841184                  //printf("check image: %s\n", filename.c_str());
11851185
r245640r245641
12181218         fname.cpy(snapstr).replace(0, "%i", seqtext.format("%04d", seq).c_str());
12191219
12201220         // try to open the file; stop when we fail
1221         file_error filerr = file.open(fname);
1221         file_error filerr = file.open(fname.c_str());
12221222         if (filerr != FILERR_NONE)
12231223            break;
12241224      }
r245640r245641
12261226
12271227   // create the final file
12281228   file.set_openflags(origflags);
1229   return file.open(fname);
1229   return file.open(fname.c_str());
12301230}
12311231
12321232
r245640r245641
12801280         {
12811281            astring text1(emulator_info::get_appname(), " ", build_version);
12821282            astring text2(machine().system().manufacturer, " ", machine().system().description);
1283            png_add_text(&pnginfo, "Software", text1);
1284            png_add_text(&pnginfo, "System", text2);
1283            png_add_text(&pnginfo, "Software", text1.c_str());
1284            png_add_text(&pnginfo, "System", text2.c_str());
12851285         }
12861286
12871287         // write the next frame
trunk/src/emu/video/pc_vga.c
r245640r245641
331331{
332332   if(m_vga_tag.len() != 0)
333333   {
334      m_vga = machine().device<vga_device>(m_vga_tag);
334      m_vga = machine().device<vga_device>(m_vga_tag.c_str());
335335   }
336336}
337337
trunk/src/emu/webengine.c
r245640r245641
261261int web_engine::begin_request_handler(struct mg_connection *conn)
262262{
263263   astring file_path(mg_get_option(m_server, "document_root"), PATH_SEPARATOR, conn->uri);
264   if (filename_endswith(file_path,".lp"))
264   if (filename_endswith(file_path.c_str(), ".lp"))
265265   {
266266      FILE *fp = NULL;
267      if ((fp = fopen(file_path, "rb")) != NULL) {
267      if ((fp = fopen(file_path.c_str(), "rb")) != NULL) {
268268      fseek (fp, 0, SEEK_END);
269269      size_t size = ftell(fp);
270270      fseek (fp, 0, SEEK_SET);
r245640r245641
442442
443443      astring fname("screenshot.png");
444444      emu_file file(m_machine->options().snapshot_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
445      file_error filerr = file.open(fname);
445      file_error filerr = file.open(fname.c_str());
446446
447447      if (filerr != FILERR_NONE)
448448      {
trunk/src/ldplayer/ldplayer.c
r245640r245641
234234
235235            // try to open the CHD
236236
237            if (set_disk_handle(machine(), "laserdisc", fullpath) == CHDERR_NONE)
237            if (set_disk_handle(machine(), "laserdisc", fullpath.c_str()) == CHDERR_NONE)
238238            {
239239               m_filename.cpy(dir->name);
240240               found = TRUE;
trunk/src/lib/util/astring.h
r245640r245641
7373   operator bool() const { return m_text[0] != 0; }
7474
7575   // C string conversion operators and helpers
76   operator const char *() const { return m_text; }
7776   const char *c_str() const { return m_text; }
7877
7978   // buffer management
trunk/src/lib/util/cdrom.c
r245640r245641
161161
162162   for (i = 0; i < file->cdtoc.numtrks; i++)
163163   {
164      file_error filerr = core_fopen(file->track_info.track[i].fname, OPEN_FLAG_READ, &file->fhandle[i]);
164      file_error filerr = core_fopen(file->track_info.track[i].fname.c_str(), OPEN_FLAG_READ, &file->fhandle[i]);
165165      if (filerr != FILERR_NONE)
166166      {
167167         fprintf(stderr, "Unable to open file: %s\n", file->track_info.track[i].fname.c_str());
r245640r245641
833833         /* parse the metadata */
834834         type[0] = subtype[0] = 0;
835835         pgtype[0] = pgsub[0] = 0;
836         if (sscanf(metadata, CDROM_TRACK_METADATA_FORMAT, &tracknum, type, subtype, &frames) != 4)
836         if (sscanf(metadata.c_str(), CDROM_TRACK_METADATA_FORMAT, &tracknum, type, subtype, &frames) != 4)
837837            return CHDERR_INVALID_DATA;
838838         if (tracknum == 0 || tracknum > CD_MAX_TRACKS)
839839            return CHDERR_INVALID_DATA;
r245640r245641
847847            /* parse the metadata */
848848            type[0] = subtype[0] = 0;
849849            pregap = postgap = 0;
850            if (sscanf(metadata, CDROM_TRACK_METADATA2_FORMAT, &tracknum, type, subtype, &frames, &pregap, pgtype, pgsub, &postgap) != 8)
850            if (sscanf(metadata.c_str(), CDROM_TRACK_METADATA2_FORMAT, &tracknum, type, subtype, &frames, &pregap, pgtype, pgsub, &postgap) != 8)
851851               return CHDERR_INVALID_DATA;
852852            if (tracknum == 0 || tracknum > CD_MAX_TRACKS)
853853               return CHDERR_INVALID_DATA;
r245640r245641
867867               /* parse the metadata */
868868               type[0] = subtype[0] = 0;
869869               pregap = postgap = 0;
870               if (sscanf(metadata, GDROM_TRACK_METADATA_FORMAT, &tracknum, type, subtype, &frames, &padframes, &pregap, pgtype, pgsub, &postgap) != 9)
870               if (sscanf(metadata.c_str(), GDROM_TRACK_METADATA_FORMAT, &tracknum, type, subtype, &frames, &padframes, &pregap, pgtype, pgsub, &postgap) != 9)
871871                  return CHDERR_INVALID_DATA;
872872               if (tracknum == 0 || tracknum > CD_MAX_TRACKS)
873873                  return CHDERR_INVALID_DATA;
trunk/src/lib/util/chd.c
r245640r245641
14111411   // look for hard disk metadata; if found, then the unit size == sector size
14121412   astring metadata;
14131413   int i0, i1, i2, i3;
1414   if (read_metadata(HARD_DISK_METADATA_TAG, 0, metadata) == CHDERR_NONE && sscanf(metadata, HARD_DISK_METADATA_FORMAT, &i0, &i1, &i2, &i3) == 4)
1414   if (read_metadata(HARD_DISK_METADATA_TAG, 0, metadata) == CHDERR_NONE && sscanf(metadata.c_str(), HARD_DISK_METADATA_FORMAT, &i0, &i1, &i2, &i3) == 4)
14151415      return i3;
14161416
14171417   // look for CD-ROM metadata; if found, then the unit size == CD frame size
trunk/src/lib/util/chdcd.c
r245640r245641
679679      }
680680      outinfo.track[trknum].fname.cpy(path).cat(name);
681681
682      sz = get_file_size(outinfo.track[trknum].fname);
682      sz = get_file_size(outinfo.track[trknum].fname.c_str());
683683
684684      outtoc.tracks[trknum].frames = sz/trksize;
685685      outtoc.tracks[trknum].padframes = 0;
r245640r245641
768768            }
769769            else if (!strcmp(token, "WAVE"))
770770            {
771               wavlen = parse_wav_sample(lastfname, &wavoffs);
771               wavlen = parse_wav_sample(lastfname.c_str(), &wavoffs);
772772               if (!wavlen)
773773               {
774774                  printf("ERROR: couldn't read [%s] or not a valid .WAV\n", lastfname.c_str());
r245640r245641
938938            }
939939            else    /* data files are different */
940940            {
941               tlen = get_file_size(outinfo.track[trknum].fname);
941               tlen = get_file_size(outinfo.track[trknum].fname.c_str());
942942               if (tlen == 0)
943943               {
944944                  printf("ERROR: couldn't find bin file [%s]\n", outinfo.track[trknum-1].fname.c_str());
r245640r245641
973973            }
974974            else    /* data files are different */
975975            {
976               tlen = get_file_size(outinfo.track[trknum].fname);
976               tlen = get_file_size(outinfo.track[trknum].fname.c_str());
977977               if (tlen == 0)
978978               {
979979                  printf("ERROR: couldn't find bin file [%s]\n", outinfo.track[trknum].fname.c_str());
trunk/src/lib/util/chdcodec.c
r245640r245641
16261626
16271627   // extract the info
16281628   int fps, fpsfrac, width, height, interlaced, channels, rate;
1629   if (sscanf(metadata, AV_METADATA_FORMAT, &fps, &fpsfrac, &width, &height, &interlaced, &channels, &rate) != 7)
1629   if (sscanf(metadata.c_str(), AV_METADATA_FORMAT, &fps, &fpsfrac, &width, &height, &interlaced, &channels, &rate) != 7)
16301630      throw CHDERR_INVALID_METADATA;
16311631
16321632   // compute the bytes per frame
trunk/src/lib/util/harddisk.c
r245640r245641
5353      return NULL;
5454
5555   /* parse the metadata */
56   if (sscanf(metadata, HARD_DISK_METADATA_FORMAT, &cylinders, &heads, &sectors, &sectorbytes) != 4)
56   if (sscanf(metadata.c_str(), HARD_DISK_METADATA_FORMAT, &cylinders, &heads, &sectors, &sectorbytes) != 4)
5757      return NULL;
5858
5959   /* allocate memory for the hard disk file */
trunk/src/lib/util/hashing.c
r245640r245641
8484   buffer.reset();
8585   for (int i = 0; i < ARRAY_LENGTH(m_raw); i++)
8686      buffer.catformat("%02x", m_raw[i]);
87   return buffer;
87   return buffer.c_str();
8888}
8989
9090
r245640r245641
127127   buffer.reset();
128128   for (int i = 0; i < ARRAY_LENGTH(m_raw); i++)
129129      buffer.catformat("%02x", m_raw[i]);
130   return buffer;
130   return buffer.c_str();
131131}
132132
133133
r245640r245641
168168
169169const char *crc32_t::as_string(astring &buffer) const
170170{
171   return buffer.format("%08x", m_raw);
171   return buffer.format("%08x", m_raw).c_str();
172172}
173173
174174
r245640r245641
220220
221221const char *crc16_t::as_string(astring &buffer) const
222222{
223   return buffer.format("%04x", m_raw);
223   return buffer.format("%04x", m_raw).c_str();
224224}
225225
226226
trunk/src/lib/util/options.c
r245640r245641
532532         }
533533      }
534534   }
535   return buffer;
535   return buffer.c_str();
536536}
537537
538538
r245640r245641
556556      else if (curentry->description() != NULL)
557557         buffer.catprintf("-%-20s%s\n", curentry->name(), curentry->description());
558558   }
559   return buffer;
559   return buffer.c_str();
560560}
561561
562562
r245640r245641
687687
688688         // for boolean options add a "no" variant as well
689689         if (newentry.type() == OPTION_BOOLEAN)
690            m_entrymap.add(astring("no", newentry.name(name)), &newentry);
690            m_entrymap.add(astring("no", newentry.name(name)).c_str(), &newentry);
691691      }
692692}
693693
r245640r245641
702702   // remove all names from the map
703703   for (int name = 0; name < ARRAY_LENGTH(delentry.m_name); name++)
704704      if (delentry.m_name[name])
705         m_entrymap.remove(delentry.m_name[name]);
705         m_entrymap.remove(delentry.m_name[name].c_str());
706706
707707   // remove the entry from the list
708708   m_entrylist.remove(delentry);
r245640r245641
750750   {
751751      // booleans must be 0 or 1
752752      case OPTION_BOOLEAN:
753         if (sscanf(data, "%d", &ival) != 1 || ival < 0 || ival > 1)
753         if (sscanf(data.c_str(), "%d", &ival) != 1 || ival < 0 || ival > 1)
754754         {
755755            error_string.catprintf("Illegal boolean value for %s: \"%s\"; reverting to %s\n", curentry.name(), data.c_str(), curentry.value());
756756            return false;
r245640r245641
759759
760760      // integers must be integral
761761      case OPTION_INTEGER:
762         if (sscanf(data, "%d", &ival) != 1)
762         if (sscanf(data.c_str(), "%d", &ival) != 1)
763763         {
764764            error_string.catprintf("Illegal integer value for %s: \"%s\"; reverting to %s\n", curentry.name(), data.c_str(), curentry.value());
765765            return false;
r245640r245641
773773
774774      // floating-point values must be numeric
775775      case OPTION_FLOAT:
776         if (sscanf(data, "%f", &fval) != 1)
776         if (sscanf(data.c_str(), "%f", &fval) != 1)
777777         {
778778            error_string.catprintf("Illegal float value for %s: \"%s\"; reverting to %s\n", curentry.name(), data.c_str(), curentry.value());
779779            return false;
r245640r245641
798798   }
799799
800800   // set the data
801   curentry.set_value(data, priority);
801   curentry.set_value(data.c_str(), priority);
802802   return true;
803803}
trunk/src/lib/util/options.h
r245640r245641
7777      entry *next() const { return m_next; }
7878      const char *name(int index = 0) const { return (index < ARRAY_LENGTH(m_name) && m_name[index]) ? m_name[index].c_str() : NULL; }
7979      const char *description() const { return m_description; }
80      const char *value() const { return m_data; }
81      const char *default_value() const { return m_defdata; }
82      const char *minimum() const { return m_minimum; }
83      const char *maximum() const { return m_maximum; }
80      const char *value() const { return m_data.c_str(); }
81      const char *default_value() const { return m_defdata.c_str(); }
82      const char *minimum() const { return m_minimum.c_str(); }
83      const char *maximum() const { return m_maximum.c_str(); }
8484      UINT32 seqid() const { return m_seqid; }
8585      int type() const { return (m_flags & OPTION_TYPE_MASK); }
8686      UINT32 flags() const { return m_flags; }
r245640r245641
127127
128128   // getters
129129   entry *first() const { return m_entrylist.first(); }
130   const char *command() const { return m_command; }
130   const char *command() const { return m_command.c_str(); }
131131
132132   // configuration
133133   void add_entry(const char *name, const char *description, UINT32 flags = 0, const char *defvalue = NULL, bool override_existing = false);
trunk/src/lib/util/zippath.c
r245640r245641
263263      && ((openflags == OPEN_FLAG_READ) || (subpath.len() == 0)))
264264   {
265265      /* is the mainpath a ZIP path? */
266      if (is_zip_file(mainpath))
266      if (is_zip_file(mainpath.c_str()))
267267      {
268268         /* this file might be a zip file - lets take a look */
269         ziperr = zip_file_open(mainpath, &zip);
269         ziperr = zip_file_open(mainpath.c_str(), &zip);
270270         if (ziperr == ZIPERR_NONE)
271271         {
272272            /* it is a zip file - error if we're not opening for reading */
r245640r245641
277277            }
278278
279279            if (subpath.len() > 0)
280               header = zippath_find_sub_path(zip, subpath, &entry_type);
280               header = zippath_find_sub_path(zip, subpath.c_str(), &entry_type);
281281            else
282282               header = zip_file_first_file(zip);
283283
r245640r245641
300300            goto done;
301301         }
302302      }
303      else if (is_7z_file(mainpath))
303      else if (is_7z_file(mainpath.c_str()))
304304      {
305305         filerr = FILERR_INVALID_DATA;
306306         goto done;
r245640r245641
316316      {
317317         /* go up a directory */
318318         astring temp;
319         zippath_parent(temp, mainpath);
319         zippath_parent(temp, mainpath.c_str());
320320
321321         /* append to the sub path */
322322         if (subpath.len() > 0)
r245640r245641
342342   if (filerr == FILERR_NONE)
343343   {
344344      /* cannonicalize mainpath */
345      filerr = osd_get_full_path(&alloc_fullpath, mainpath);
345      filerr = osd_get_full_path(&alloc_fullpath, mainpath.c_str());
346346      if (filerr == FILERR_NONE)
347347      {
348348         if (subpath.len() > 0)
r245640r245641
559559      apath_trimmed.cpysubstr(apath, 0, i);
560560
561561      /* stat the path */
562      current_entry = osd_stat(apath_trimmed);
562      current_entry = osd_stat(apath_trimmed.c_str());
563563
564564      /* did we find anything? */
565565      if (current_entry != NULL)
r245640r245641
575575         current_entry_type = ENTTYPE_NONE;
576576         went_up = TRUE;
577577         astring parent;
578         apath.cpy(zippath_parent(parent, apath));
578         apath.cpy(zippath_parent(parent, apath.c_str()));
579579      }
580580   }
581   while (current_entry_type == ENTTYPE_NONE && !is_root(apath));
581   while (current_entry_type == ENTTYPE_NONE && !is_root(apath.c_str()));
582582
583583   /* if we did not find anything, then error out */
584584   if (current_entry_type == ENTTYPE_NONE)
r245640r245641
588588   }
589589
590590   /* is this file a ZIP file? */
591   if ((current_entry_type == ENTTYPE_FILE) && is_zip_file(apath_trimmed)
592      && (zip_file_open(apath_trimmed, &zipfile) == ZIPERR_NONE))
591   if ((current_entry_type == ENTTYPE_FILE) && is_zip_file(apath_trimmed.c_str())
592      && (zip_file_open(apath_trimmed.c_str(), &zipfile) == ZIPERR_NONE))
593593   {
594594      i = strlen(path + apath.len());
595595      while (i > 0 && is_zip_path_separator(path[apath.len() + i - 1]))
r245640r245641
597597      newpath.cpy(path + apath.len(), i);
598598
599599      /* this was a true ZIP path - attempt to identify the type of path */
600      zippath_find_sub_path(zipfile, newpath, &current_entry_type);
600      zippath_find_sub_path(zipfile, newpath.c_str(), &current_entry_type);
601601      if (current_entry_type == ENTTYPE_NONE)
602602      {
603603         err = FILERR_NOT_FOUND;
r245640r245641
719719   int len = directory->zipprefix.len();
720720
721721   if ((len <= strlen(header->filename))
722      && !strncmp(directory->zipprefix, header->filename, len))
722      && !strncmp(directory->zipprefix.c_str(), header->filename, len))
723723   {
724724      result = &header->filename[len];
725725      while(is_zip_file_separator(*result))
r245640r245641
798798               /* a nested entry; loop through returned_dirlist to see if we've returned the parent directory */
799799               for (rdent = directory->returned_dirlist; rdent != NULL; rdent = rdent->next)
800800               {
801                  if (!core_strnicmp(rdent->name, relpath, separator - relpath))
801                  if (!core_strnicmp(rdent->name.c_str(), relpath, separator - relpath))
802802                     break;
803803               }
804804
r245640r245641
812812
813813                  /* ...and return it */
814814                  memset(&directory->returned_entry, 0, sizeof(directory->returned_entry));
815                  directory->returned_entry.name = rdent->name;
815                  directory->returned_entry.name = rdent->name.c_str();
816816                  directory->returned_entry.type = ENTTYPE_DIR;
817817                  result = &directory->returned_entry;
818818               }
trunk/src/mame/drivers/cps3.c
r245640r245641
780780   astring tempstr;
781781   for (int simmnum = 0; simmnum < 7; simmnum++)
782782      for (int chipnum = 0; chipnum < 8; chipnum++)
783         m_simm[simmnum][chipnum] = machine().device<fujitsu_29f016a_device>(tempstr.format("simm%d.%d", simmnum + 1, chipnum));
783         m_simm[simmnum][chipnum] = machine().device<fujitsu_29f016a_device>(tempstr.format("simm%d.%d", simmnum + 1, chipnum).c_str());
784784
785785   m_eeprom = auto_alloc_array(machine(), UINT32, 0x400/4);
786786   machine().device<nvram_device>("eeprom")->set_base(m_eeprom, 0x400);
trunk/src/mame/drivers/megatech.c
r245640r245641
644644
645645   astring region_tag;
646646   if (m_cart1)
647      m_cart_reg[0] = memregion(region_tag.cpy(m_cart1->tag()).cat(GENERIC_ROM_REGION_TAG));
647      m_cart_reg[0] = memregion(region_tag.cpy(m_cart1->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
648648   else
649649      m_cart_reg[0] = memregion("cart");
650650   if (m_cart2)
651      m_cart_reg[1] = memregion(region_tag.cpy(m_cart2->tag()).cat(GENERIC_ROM_REGION_TAG));
651      m_cart_reg[1] = memregion(region_tag.cpy(m_cart2->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
652652   if (m_cart3)
653      m_cart_reg[2] = memregion(region_tag.cpy(m_cart3->tag()).cat(GENERIC_ROM_REGION_TAG));
653      m_cart_reg[2] = memregion(region_tag.cpy(m_cart3->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
654654   if (m_cart4)
655      m_cart_reg[3] = memregion(region_tag.cpy(m_cart4->tag()).cat(GENERIC_ROM_REGION_TAG));
655      m_cart_reg[3] = memregion(region_tag.cpy(m_cart4->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
656656   if (m_cart5)
657      m_cart_reg[4] = memregion(region_tag.cpy(m_cart5->tag()).cat(GENERIC_ROM_REGION_TAG));
657      m_cart_reg[4] = memregion(region_tag.cpy(m_cart5->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
658658   if (m_cart6)
659      m_cart_reg[5] = memregion(region_tag.cpy(m_cart6->tag()).cat(GENERIC_ROM_REGION_TAG));
659      m_cart_reg[5] = memregion(region_tag.cpy(m_cart6->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
660660   if (m_cart7)
661      m_cart_reg[6] = memregion(region_tag.cpy(m_cart7->tag()).cat(GENERIC_ROM_REGION_TAG));
661      m_cart_reg[6] = memregion(region_tag.cpy(m_cart7->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
662662   if (m_cart8)
663      m_cart_reg[7] = memregion(region_tag.cpy(m_cart8->tag()).cat(GENERIC_ROM_REGION_TAG));
663      m_cart_reg[7] = memregion(region_tag.cpy(m_cart8->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
664664
665665   switch_cart(0);
666666}
trunk/src/mame/drivers/stv.c
r245640r245641
12391239
12401240   astring region_tag;
12411241   if (m_cart1)
1242      m_cart_reg[0] = memregion(region_tag.cpy(m_cart1->tag()).cat(GENERIC_ROM_REGION_TAG));
1242      m_cart_reg[0] = memregion(region_tag.cpy(m_cart1->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
12431243   else
12441244      m_cart_reg[0] = memregion("cart");
12451245   if (m_cart2)
1246      m_cart_reg[1] = memregion(region_tag.cpy(m_cart2->tag()).cat(GENERIC_ROM_REGION_TAG));
1246      m_cart_reg[1] = memregion(region_tag.cpy(m_cart2->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
12471247   if (m_cart3)
1248      m_cart_reg[2] = memregion(region_tag.cpy(m_cart3->tag()).cat(GENERIC_ROM_REGION_TAG));
1248      m_cart_reg[2] = memregion(region_tag.cpy(m_cart3->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
12491249   if (m_cart4)
1250      m_cart_reg[3] = memregion(region_tag.cpy(m_cart4->tag()).cat(GENERIC_ROM_REGION_TAG));
1250      m_cart_reg[3] = memregion(region_tag.cpy(m_cart4->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
12511251
12521252   m_en_68k = 0;
12531253   m_NMI_reset = 0;
trunk/src/mame/machine/atarigen.h
r245640r245641
4949
5050#define MCFG_ATARI_VAD_PLAYFIELD(_class, _gfxtag, _getinfo) \
5151   { astring fulltag(device->tag(), ":playfield"); device_t *device; \
52   MCFG_TILEMAP_ADD(fulltag) \
52   MCFG_TILEMAP_ADD(fulltag.c_str()) \
5353   MCFG_TILEMAP_GFXDECODE("^" _gfxtag) \
5454   MCFG_TILEMAP_BYTES_PER_ENTRY(2) \
5555   MCFG_TILEMAP_INFO_CB_DEVICE(DEVICE_SELF_OWNER, _class, _getinfo) \
r245640r245641
5858
5959#define MCFG_ATARI_VAD_PLAYFIELD2(_class, _gfxtag, _getinfo) \
6060   { astring fulltag(device->tag(), ":playfield2"); device_t *device; \
61   MCFG_TILEMAP_ADD(fulltag) \
61   MCFG_TILEMAP_ADD(fulltag.c_str()) \
6262   MCFG_TILEMAP_GFXDECODE("^" _gfxtag) \
6363   MCFG_TILEMAP_BYTES_PER_ENTRY(2) \
6464   MCFG_TILEMAP_INFO_CB_DEVICE(DEVICE_SELF_OWNER, _class, _getinfo) \
r245640r245641
6868
6969#define MCFG_ATARI_VAD_ALPHA(_class, _gfxtag, _getinfo) \
7070   { astring fulltag(device->tag(), ":alpha"); device_t *device; \
71   MCFG_TILEMAP_ADD(fulltag) \
71   MCFG_TILEMAP_ADD(fulltag.c_str()) \
7272   MCFG_TILEMAP_GFXDECODE("^" _gfxtag) \
7373   MCFG_TILEMAP_BYTES_PER_ENTRY(2) \
7474   MCFG_TILEMAP_INFO_CB_DEVICE(DEVICE_SELF_OWNER, _class, _getinfo) \
r245640r245641
7878
7979#define MCFG_ATARI_VAD_MOB(_config, _gfxtag) \
8080   { astring fulltag(device->tag(), ":mob"); device_t *device; \
81   MCFG_ATARI_MOTION_OBJECTS_ADD(fulltag, "^^screen", _config) \
81   MCFG_ATARI_MOTION_OBJECTS_ADD(fulltag.c_str(), "^^screen", _config) \
8282   MCFG_ATARI_MOTION_OBJECTS_GFXDECODE("^" _gfxtag) }
8383
8484
trunk/src/mess/drivers/beta.c
r245640r245641
317317   else
318318   {
319319      astring region_tag;
320      memcpy(m_eprom_rom, memregion(region_tag.cpy(m_eprom->tag()).cat(GENERIC_ROM_REGION_TAG))->base(), 0x800);
320      memcpy(m_eprom_rom, memregion(region_tag.cpy(m_eprom->tag()).cat(GENERIC_ROM_REGION_TAG).c_str())->base(), 0x800);
321321   }
322322
323323   // state saving
trunk/src/mess/drivers/cc40.c
r245640r245641
546546{
547547   // init
548548   astring region_tag;
549   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
549   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
550550
551551   membank("sysbank")->configure_entries(0, 4, memregion("system")->base(), 0x2000);
552552   if (m_cart_rom)
trunk/src/mess/drivers/gameking.c
r245640r245641
119119void gameking_state::machine_start()
120120{
121121   astring region_tag;
122   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
122   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
123123
124124   if (!m_cart_rom)
125125   {
trunk/src/mess/drivers/gba.c
r245640r245641
21182118      m_maincpu->space(AS_PROGRAM).install_read_bank(0x0c000000, 0x0cffffff, 0, 0, "rom3");
21192119
21202120      astring region_tag;
2121      memory_region *cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GBASLOT_ROM_REGION_TAG));
2121      memory_region *cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GBASLOT_ROM_REGION_TAG).c_str());
21222122
21232123      // install ROM accesses
21242124      membank("rom1")->set_base(cart_rom->base());
trunk/src/mess/drivers/kyocera.c
r245640r245641
11691169   address_space &program = m_maincpu->space(AS_PROGRAM);
11701170
11711171   astring region_tag;
1172   m_opt_region = memregion(region_tag.cpy(m_opt_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
1172   m_opt_region = memregion(region_tag.cpy(m_opt_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
11731173
11741174   /* initialize RTC */
11751175   m_rtc->cs_w(1);
r245640r245641
12121212   UINT8 *ram = m_ram->pointer();
12131213
12141214   astring region_tag;
1215   m_opt_region = memregion(region_tag.cpy(m_opt_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
1215   m_opt_region = memregion(region_tag.cpy(m_opt_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
12161216
12171217   /* initialize RTC */
12181218   m_rtc->cs_w(1);
r245640r245641
12461246   address_space &program = m_maincpu->space(AS_PROGRAM);
12471247
12481248   astring region_tag;
1249   m_opt_region = memregion(region_tag.cpy(m_opt_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
1249   m_opt_region = memregion(region_tag.cpy(m_opt_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
12501250
12511251   /* initialize RTC */
12521252   m_rtc->cs_w(1);
r245640r245641
12971297void tandy200_state::machine_start()
12981298{
12991299   astring region_tag;
1300   m_opt_region = memregion(region_tag.cpy(m_opt_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
1300   m_opt_region = memregion(region_tag.cpy(m_opt_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
13011301
13021302   /* configure ROM banking */
13031303   membank("bank1")->configure_entry(0, m_rom->base());
trunk/src/mess/drivers/leapster.c
r245640r245641
270270void leapster_state::machine_start()
271271{
272272   astring region_tag;
273   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
273   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
274274
275275   if (m_cart_rom)
276276   {
trunk/src/mess/drivers/nc.c
r245640r245641
796796   m_type = NC_TYPE_1xx;
797797
798798   astring region_tag;
799   m_card_ram = memregion(region_tag.cpy(m_card->tag()).cat(GENERIC_ROM_REGION_TAG));
799   m_card_ram = memregion(region_tag.cpy(m_card->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
800800   if (m_card_ram)
801801      m_card_size = m_card_ram->bytes();
802802   else
r245640r245641
11401140   m_type = NC_TYPE_200;
11411141
11421142   astring region_tag;
1143   m_card_ram = memregion(region_tag.cpy(m_card->tag()).cat(GENERIC_ROM_REGION_TAG));
1143   m_card_ram = memregion(region_tag.cpy(m_card->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
11441144   if (m_card_ram)
11451145      m_card_size = m_card_ram->bytes();
11461146   else
trunk/src/mess/drivers/ngp.c
r245640r245641
645645   if (m_cart->exists())
646646   {
647647      astring region_tag;
648      UINT8 *cart = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG))->base();
648      UINT8 *cart = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str())->base();
649649
650650      m_maincpu->space(AS_PROGRAM).install_read_bank(0x200000, 0x3fffff, "flash0");
651651      m_maincpu->space(AS_PROGRAM).install_read_bank(0x800000, 0x9fffff, "flash1");
trunk/src/mess/drivers/pasogo.c
r245640r245641
518518{
519519   astring region_tag;
520520   ioport_port *color = ioport("COLOR");
521   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
521   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
522522   if (!m_cart_rom)    // this should never happen, since we make carts mandatory!
523523      m_cart_rom = memregion("maincpu");
524524
trunk/src/mess/drivers/pb1000.c
r245640r245641
461461   astring region_tag;
462462   m_rom_reg = memregion("rom");
463463   if (m_card1)
464      m_card1_reg = memregion(region_tag.cpy(m_card1->tag()).cat(GENERIC_ROM_REGION_TAG));
464      m_card1_reg = memregion(region_tag.cpy(m_card1->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
465465   if (m_card2)
466      m_card2_reg = memregion(region_tag.cpy(m_card2->tag()).cat(GENERIC_ROM_REGION_TAG));
466      m_card2_reg = memregion(region_tag.cpy(m_card2->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
467467
468468   membank("bank1")->set_base(m_rom_reg->base());
469469
trunk/src/mess/drivers/pc2000.c
r245640r245641
742742{
743743   astring region_tag;
744744   UINT8 *bios = memregion("bios")->base();
745   UINT8 *cart = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG))->base();
745   UINT8 *cart = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str())->base();
746746   if (!cart)
747747      cart = memregion("bios")->base();
748748
r245640r245641
756756{
757757   astring region_tag;
758758   UINT8 *bios = memregion("bios")->base();
759   UINT8 *cart = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG))->base();
759   UINT8 *cart = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str())->base();
760760   if (!cart)
761761      cart = memregion("bios")->base();
762762
trunk/src/mess/drivers/pc6001.c
r245640r245641
20792079      m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x5fff, read8_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
20802080
20812081   astring region_tag;
2082   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
2082   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
20832083
20842084   m_port_c_8255=0;
20852085
r245640r245641
20972097   m_video_ram = m_region_maincpu->base() + 0xc000 + 0x28000;
20982098
20992099   astring region_tag;
2100   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
2100   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
21012101   // hackish way to simplify bankswitch handling
21022102   if (m_cart_rom)
21032103      memcpy(m_region_maincpu->base() + 0x48000, m_cart_rom->base(), 0x4000);
r245640r245641
21362136   m_video_ram = m_region_maincpu->base() + 0x70000;
21372137
21382138   astring region_tag;
2139   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
2139   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
21402140   // should this be mirrored into the EXROM regions? hard to tell without an actual cart dump...
21412141
21422142   m_port_c_8255=0;
trunk/src/mess/drivers/pc8401a.c
r245640r245641
489489void pc8401a_state::machine_start()
490490{
491491   astring region_tag;
492   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
492   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
493493
494494   /* initialize RTC */
495495   m_rtc->cs_w(1);
trunk/src/mess/drivers/pockstat.c
r245640r245641
886886   m_rtc_regs.timer->adjust(attotime::from_hz(1), index);
887887
888888   astring region_tag;
889   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
889   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
890890
891891   save_item(NAME(m_ftlb_regs.control));
892892   save_item(NAME(m_ftlb_regs.stat));
trunk/src/mess/drivers/prestige.c
r245640r245641
619619void prestige_state::machine_start()
620620{
621621   astring region_tag;
622   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
622   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
623623
624624   UINT8 *rom = memregion("maincpu")->base();
625625   UINT8 *cart = m_cart_rom->base();
trunk/src/mess/drivers/pv1000.c
r245640r245641
406406
407407      // FIXME: this is needed for gfx decoding, but there is probably a cleaner solution!
408408      astring region_tag;
409      memcpy(memregion("gfxrom")->base(), memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG))->base(), m_cart->get_rom_size());
409      memcpy(memregion("gfxrom")->base(), memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str())->base(), m_cart->get_rom_size());
410410   }
411411
412412   save_item(NAME(m_io_regs));
trunk/src/mess/drivers/px4.c
r245640r245641
12291229void px4_state::machine_start()
12301230{
12311231   astring region_tag;
1232   m_caps1_rom = memregion(region_tag.cpy(m_caps1->tag()).cat(GENERIC_ROM_REGION_TAG));
1233   m_caps2_rom = memregion(region_tag.cpy(m_caps2->tag()).cat(GENERIC_ROM_REGION_TAG));
1232   m_caps1_rom = memregion(region_tag.cpy(m_caps1->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
1233   m_caps2_rom = memregion(region_tag.cpy(m_caps2->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
12341234
12351235   m_nvram->set_base(m_ram->pointer(), 0x10000);
12361236
trunk/src/mess/drivers/socrates.c
r245640r245641
318318void socrates_state::machine_reset()
319319{
320320   astring region_tag;
321   m_cart_reg = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
321   m_cart_reg = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
322322
323323   m_rom_bank = 0xF3; // actually set semi-randomly on real console but we need to initialize it somewhere...
324324   socrates_set_rom_bank();
r245640r245641
897897void iqunlim_state::machine_start()
898898{
899899   astring region_tag;
900   m_cart_reg = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
900   m_cart_reg = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
901901
902902   UINT8 *bios = m_bios_reg->base();
903903   UINT8 *cart = m_cart_reg ? m_cart_reg->base() : m_bios_reg->base();
trunk/src/mess/drivers/svision.c
r245640r245641
469469{
470470   int num_banks;
471471   astring region_tag;
472   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
472   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
473473   num_banks = m_cart_rom->bytes() / 0x4000;
474474
475475   m_bank1 = membank("bank1");
trunk/src/mess/drivers/timex.c
r245640r245641
545545   m_port_f4_data = 0;
546546
547547   astring region_tag;
548   m_dock_crt = memregion(region_tag.cpy(m_dock->tag()).cat(GENERIC_ROM_REGION_TAG));
548   m_dock_crt = memregion(region_tag.cpy(m_dock->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
549549   m_dock_cart_type = m_dock_crt ? TIMEX_CART_DOCK : TIMEX_CART_NONE;
550550
551551   ts2068_update_memory();
trunk/src/mess/drivers/tispeak.c
r245640r245641
355355   if (m_cart != NULL && m_cart->exists())
356356   {
357357      astring region_tag;
358      memory_region *src = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
358      memory_region *src = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
359359      if (src)
360360         memcpy(m_cart_base, src->base(), src->bytes());
361361   }
trunk/src/mess/drivers/tutor.c
r245640r245641
226226void tutor_state::machine_start()
227227{
228228   astring region_tag;
229   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
229   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
230230
231231   m_tape_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(tutor_state::tape_interrupt_handler),this));
232232
trunk/src/mess/drivers/tvc.c
r245640r245641
608608   m_vram = memregion("vram");
609609
610610   astring region_tag;
611   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
611   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
612612}
613613
614614void tvc_state::machine_reset()
trunk/src/mess/drivers/vboy.c
r245640r245641
11741174   if (m_cart->exists())
11751175   {
11761176      astring region_tag;
1177      m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(VBOYSLOT_ROM_REGION_TAG));
1177      m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(VBOYSLOT_ROM_REGION_TAG).c_str());
11781178
11791179      m_maincpu->space(AS_PROGRAM).install_read_bank(0x07000000, 0x071fffff, 0, 0x0e00000, "prog_cart_bank");
11801180      m_maincpu->space(AS_IO).install_read_bank(0x07000000, 0x071fffff, 0, 0x0e00000, "io_cart_bank");
trunk/src/mess/drivers/vii.c
r245640r245641
10241024   if (m_cart && m_cart->exists())
10251025   {
10261026      astring region_tag;
1027      m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
1027      m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
10281028      memcpy(m_p_cart, m_cart_rom->base(), 0x400000 * 2);
10291029   }
10301030   else if (m_spg243_mode == SPG243_VII)   // Vii bios is banked
trunk/src/mess/machine/advision.c
r245640r245641
2828void advision_state::machine_start()
2929{
3030   astring region_tag;
31   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
31   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
3232
3333   /* configure EA banking */
3434   m_bank1->configure_entry(0, memregion(I8048_TAG)->base());
trunk/src/mess/machine/amstrad.c
r245640r245641
30333033   m_centronics->write_data7(0);
30343034
30353035   astring region_tag;
3036   m_region_cart = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
3036   m_region_cart = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
30373037   if (!m_region_cart) // this should never happen, since we make carts mandatory!
30383038      m_region_cart = memregion("maincpu");
30393039}
r245640r245641
30773077   m_system_type = SYSTEM_GX4000;
30783078
30793079   astring region_tag;
3080   m_region_cart = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
3080   m_region_cart = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
30813081   if (!m_region_cart) // this should never happen, since we make carts mandatory!
30823082      m_region_cart = memregion("maincpu");
30833083}
trunk/src/mess/machine/bbc.c
r245640r245641
20362036   astring region_tag;
20372037   memory_region *tmp_reg;
20382038   UINT8 *eprom[4];
2039   if (m_exp1 && (tmp_reg = memregion(region_tag.cpy(m_exp1->tag()).cat(GENERIC_ROM_REGION_TAG))))
2039   if (m_exp1 && (tmp_reg = memregion(region_tag.cpy(m_exp1->tag()).cat(GENERIC_ROM_REGION_TAG).c_str())))
20402040      eprom[0] = tmp_reg->base() + shift;
20412041   else
20422042      eprom[0] = m_region_opt->base() + 0x0000 + shift;
2043   if (m_exp2 && (tmp_reg = memregion(region_tag.cpy(m_exp2->tag()).cat(GENERIC_ROM_REGION_TAG))))
2043   if (m_exp2 && (tmp_reg = memregion(region_tag.cpy(m_exp2->tag()).cat(GENERIC_ROM_REGION_TAG).c_str())))
20442044      eprom[1] = tmp_reg->base() + shift;
20452045   else
20462046      eprom[1] = m_region_opt->base() + 0x4000 + shift;
2047   if (m_exp3 && (tmp_reg = memregion(region_tag.cpy(m_exp3->tag()).cat(GENERIC_ROM_REGION_TAG))))
2047   if (m_exp3 && (tmp_reg = memregion(region_tag.cpy(m_exp3->tag()).cat(GENERIC_ROM_REGION_TAG).c_str())))
20482048      eprom[2] = tmp_reg->base() + shift;
20492049   else
20502050      eprom[2] = m_region_opt->base() + 0x8000 + shift;
2051   if (m_exp4 && (tmp_reg = memregion(region_tag.cpy(m_exp4->tag()).cat(GENERIC_ROM_REGION_TAG))))
2051   if (m_exp4 && (tmp_reg = memregion(region_tag.cpy(m_exp4->tag()).cat(GENERIC_ROM_REGION_TAG).c_str())))
20522052      eprom[3] = tmp_reg->base() + shift;
20532053   else
20542054      eprom[3] = m_region_opt->base() + 0xc000 + shift;
r245640r245641
20702070   astring region_tag;
20712071   memory_region *tmp_reg;
20722072   UINT8 *eprom[2];
2073   if (m_exp1 && (tmp_reg = memregion(region_tag.cpy(m_exp1->tag()).cat(GENERIC_ROM_REGION_TAG))))
2073   if (m_exp1 && (tmp_reg = memregion(region_tag.cpy(m_exp1->tag()).cat(GENERIC_ROM_REGION_TAG).c_str())))
20742074      eprom[0] = tmp_reg->base() + shift;
20752075   else
20762076      eprom[0] = m_region_opt->base() + 0x0000 + shift;
2077   if (m_exp2 && (tmp_reg = memregion(region_tag.cpy(m_exp2->tag()).cat(GENERIC_ROM_REGION_TAG))))
2077   if (m_exp2 && (tmp_reg = memregion(region_tag.cpy(m_exp2->tag()).cat(GENERIC_ROM_REGION_TAG).c_str())))
20782078      eprom[1] = tmp_reg->base() + shift;
20792079   else
20802080      eprom[1] = m_region_opt->base() + 0x8000 + shift;
trunk/src/mess/machine/cuda.c
r245640r245641
439439   save_item(NAME(disk_pram));
440440
441441   astring tempstring;
442   UINT8 *rom = device().machine().root_device().memregion(device().subtag(tempstring, CUDA_CPU_TAG))->base();
442   UINT8 *rom = device().machine().root_device().memregion(device().subtag(tempstring, CUDA_CPU_TAG).c_str())->base();
443443
444444   if (rom)
445445   {
trunk/src/mess/machine/egret.c
r245640r245641
388388   save_item(NAME(disk_pram));
389389
390390   astring tempstring;
391   UINT8 *rom = device().machine().root_device().memregion(device().subtag(tempstring, EGRET_CPU_TAG))->base();
391   UINT8 *rom = device().machine().root_device().memregion(device().subtag(tempstring, EGRET_CPU_TAG).c_str())->base();
392392
393393   if (rom)
394394   {
trunk/src/mess/machine/electron.c
r245640r245641
347347{
348348   UINT8 *lo_rom, *up_rom;
349349   astring region_tag;
350   memory_region *cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
350   memory_region *cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
351351
352352   if (cart_rom)
353353      up_rom = cart_rom->base();
trunk/src/mess/machine/gamecom.c
r245640r245641
2626   m_lcdc_reg = 0xb0;
2727
2828   astring region_tag;
29   m_cart1_rom = memregion(region_tag.cpy(m_cart1->tag()).cat(GENERIC_ROM_REGION_TAG));
30   m_cart2_rom = memregion(region_tag.cpy(m_cart2->tag()).cat(GENERIC_ROM_REGION_TAG));
29   m_cart1_rom = memregion(region_tag.cpy(m_cart1->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
30   m_cart2_rom = memregion(region_tag.cpy(m_cart2->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
3131}
3232
3333void gamecom_state::gamecom_set_mmu(UINT8 mmu, UINT8 data)
trunk/src/mess/machine/primo.c
r245640r245641
243243void primo_state::machine_start()
244244{
245245   astring region_tag;
246   m_cart1_rom = memregion(region_tag.cpy(m_cart1->tag()).cat(GENERIC_ROM_REGION_TAG));
247   m_cart2_rom = memregion(region_tag.cpy(m_cart2->tag()).cat(GENERIC_ROM_REGION_TAG));
246   m_cart1_rom = memregion(region_tag.cpy(m_cart1->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
247   m_cart2_rom = memregion(region_tag.cpy(m_cart2->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
248248}
249249
250250void primo_state::machine_reset()
trunk/src/mess/machine/svi318.c
r245640r245641
422422void svi318_state::machine_start()
423423{
424424   astring region_tag;
425   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
425   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
426426   m_bios_rom = memregion("maincpu");
427427
428428   // 80 column card start
trunk/src/mess/machine/vtech2.c
r245640r245641
7474
7575   // check ROM expansion
7676   astring region_tag;
77   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
77   m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG).c_str());
7878
7979   for (i = 0; i < ARRAY_LENGTH(m_laser_bank); i++)
8080      m_laser_bank[i] = -1;
trunk/src/osd/modules/debugger/debugint.c
r245640r245641
484484   if (!dv->title)
485485      return;
486486
487   for (i=0; i<strlen(dv->title); i++)
487   for (i = 0; i<strlen(dv->title.c_str()); i++)
488488   {
489489      dview_draw_char(dv, RECT_DVIEW_TITLE, i * debug_font_width + BORDER_XTHICKNESS,
490490            BORDER_YTHICKNESS, debug_font_height, //r.max_y - 2 * BORDER_YTHICKNESS,
r245640r245641
11131113
11141114   editor->container->empty();
11151115   /* get the size of the text */
1116   editor->container->manager().machine().ui().draw_text_full(editor->container, editor->str, 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
1116   editor->container->manager().machine().ui().draw_text_full(editor->container, editor->str.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
11171117                  DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, NULL);
11181118   width += 2 * UI_BOX_LR_BORDER;
11191119   maxwidth = MAX(width, 0.5);
r245640r245641
11341134   y2 -= UI_BOX_TB_BORDER;
11351135
11361136   /* draw the text within it */
1137   editor->container->manager().machine().ui().draw_text_full(editor->container, editor->str, x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
1137   editor->container->manager().machine().ui().draw_text_full(editor->container, editor->str.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
11381138                  DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, NULL, NULL);
11391139
11401140}
r245640r245641
11801180      break;
11811181   }
11821182
1183   menu->item_append(title.cat(focus_view->title), NULL, MENU_FLAG_DISABLE, NULL);
1183   menu->item_append(title.cat(focus_view->title).c_str(), NULL, MENU_FLAG_DISABLE, NULL);
11841184   menu->item_append(MENU_SEPARATOR_ITEM, NULL, 0, NULL);
11851185
11861186   switch (focus_view->type)
r245640r245641
13221322         render_editor(cur_editor);
13231323         if (ui_input_pressed(machine, IPT_UI_SELECT))
13241324         {
1325            process_string(focus_view, focus_view->editor.str);
1325            process_string(focus_view, focus_view->editor.str.c_str());
13261326            focus_view->editor.str = "";
13271327            cur_editor = NULL;
13281328         }
trunk/src/osd/modules/debugger/qt/deviceinformationwindow.c
r245640r245641
121121void DeviceInformationWindowQtConfig::addToXmlDataNode(xml_data_node* node) const
122122{
123123   WindowQtConfig::addToXmlDataNode(node);
124   xml_set_attribute(node, "device-tag", m_device_tag);
124   xml_set_attribute(node, "device-tag", m_device_tag.c_str());
125125}
126126
127127
trunk/src/osd/modules/debugger/qt/mainwindow.c
r245640r245641
234234      {
235235         command.printf("bpclear 0x%X", bpindex);
236236      }
237      debug_console_execute_command(*m_machine, command, 1);
237      debug_console_execute_command(*m_machine, command.c_str(), 1);
238238   }
239239
240240   refreshAll();
r245640r245641
259259         INT32 const bpindex = bp->index();
260260         astring command;
261261         command.printf(bp->enabled() ? "bpdisable 0x%X" : "bpenable 0x%X", bpindex);
262         debug_console_execute_command(*m_machine, command, 1);
262         debug_console_execute_command(*m_machine, command.c_str(), 1);
263263      }
264264   }
265265
r245640r245641
275275      offs_t address = downcast<debug_view_disasm*>(dasmView)->selected_address();
276276      astring command;
277277      command.printf("go 0x%X", address);
278      debug_console_execute_command(*m_machine, command, 1);
278      debug_console_execute_command(*m_machine, command.c_str(), 1);
279279   }
280280}
281281
trunk/src/osd/modules/debugger/win/consolewininfo.c
r245640r245641
4646         {
4747            astring temp;
4848            temp.format("%s : %s", img->device().name(), img->exists() ? img->filename() : "[no image]");
49            TCHAR *tc_buf = tstring_from_utf8(temp);
49            TCHAR *tc_buf = tstring_from_utf8(temp.c_str());
5050            if (tc_buf != NULL)
5151            {
5252               AppendMenu(m_devices_menu, MF_ENABLED, 0, tc_buf);
r245640r245641
112112   title.printf("Debug: %s - %s '%s'", device.machine().system().name, device.name(), device.tag());
113113   win_get_window_text_utf8(window(), curtitle, ARRAY_LENGTH(curtitle));
114114   if (title.cmp(curtitle) != 0)
115      win_set_window_text_utf8(window(), title);
115      win_set_window_text_utf8(window(), title.c_str());
116116
117117   // and recompute the children
118118   recompute_children();
r245640r245641
203203
204204         astring temp;
205205         temp.format("%s :%s", img->device().name(), img->exists() ? img->filename() : "[empty slot]");
206         TCHAR *tc_buf = tstring_from_utf8(temp);
206         TCHAR *tc_buf = tstring_from_utf8(temp.c_str());
207207         if (tc_buf != NULL)
208208         {
209209            ModifyMenu(m_devices_menu, cnt, MF_BYPOSITION | MF_POPUP, (UINT_PTR)devicesubmenu, tc_buf);
r245640r245641
229229            {
230230               astring filter;
231231               build_generic_filter(img, false, filter);
232               LPTSTR t_filter = tstring_from_utf8(filter);
232               LPTSTR t_filter = tstring_from_utf8(filter.c_str());
233233               if (t_filter)
234234               {
235235                  // convert a pipe-char delimited string into a NUL delimited string
trunk/src/osd/modules/debugger/win/disasmbasewininfo.c
r245640r245641
200200                  command.printf("bpset 0x%X", address);
201201               else
202202                  command.printf("bpclear 0x%X", bpindex);
203               debug_console_execute_command(machine(), command, 1);
203               debug_console_execute_command(machine(), command.c_str(), 1);
204204            }
205205         }
206206         return true;
r245640r245641
230230               {
231231                  astring command;
232232                  command.printf(bp->enabled() ? "bpdisable 0x%X" : "bpenable 0x%X", (UINT32)bp->index());
233                  debug_console_execute_command(machine(), command, 1);
233                  debug_console_execute_command(machine(), command.c_str(), 1);
234234               }
235235            }
236236         }
r245640r245641
244244            {
245245               astring command;
246246               command.printf("go 0x%X", address);
247               debug_console_execute_command(machine(), command, 1);
247               debug_console_execute_command(machine(), command.c_str(), 1);
248248            }
249249            else
250250            {
trunk/src/osd/modules/debugger/win/disasmwininfo.c
r245640r245641
145145
146146void disasmwin_info::update_caption()
147147{
148   win_set_window_text_utf8(window(), astring("Disassembly: ", m_views[0]->source_name()));
148   win_set_window_text_utf8(window(), astring("Disassembly: ", m_views[0]->source_name()).c_str());
149149}
trunk/src/osd/modules/debugger/win/editwininfo.c
r245640r245641
5151{
5252   if (wnd == m_editwnd)
5353   {
54      set_editwnd_text(m_edit_defstr);
54      set_editwnd_text(m_edit_defstr.c_str());
5555      editwnd_select_all();
5656      return true;
5757   }
r245640r245641
206206                  if (_tcslen(buffer) > 0)
207207                  {
208208                     set_ignore_char_lparam(lparam);
209                     set_editwnd_text(m_edit_defstr);
209                     set_editwnd_text(m_edit_defstr.c_str());
210210                     editwnd_select_all();
211211                  }
212212                  break;
trunk/src/osd/modules/debugger/win/logwininfo.c
r245640r245641
1212
1313
1414logwin_info::logwin_info(debugger_windows_interface &debugger) :
15   debugwin_info(debugger, false, astring("Errorlog: ", debugger.machine().system().description, " [", debugger.machine().system().name, "]"), NULL)
15   debugwin_info(debugger, false, astring("Errorlog: ", debugger.machine().system().description, " [", debugger.machine().system().name, "]").c_str(), NULL)
1616{
1717   if (!window())
1818      return;
trunk/src/osd/modules/debugger/win/memorywininfo.c
r245640r245641
275275
276276void memorywin_info::update_caption()
277277{
278   win_set_window_text_utf8(window(), astring("Memory: ", m_views[0]->source_name()));
278   win_set_window_text_utf8(window(), astring("Memory: ", m_views[0]->source_name()).c_str());
279279}
trunk/src/osd/modules/debugger/win/pointswininfo.c
r245640r245641
1414
1515
1616pointswin_info::pointswin_info(debugger_windows_interface &debugger) :
17   debugwin_info(debugger, false, astring("All Breakpoints"), NULL)
17   debugwin_info(debugger, false, astring("All Breakpoints").c_str(), NULL)
1818{
1919   if (!window())
2020      return;
trunk/src/osd/modules/font/font_windows.c
r245640r245641
6868   logfont.lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;
6969
7070   // copy in the face name
71   TCHAR *face = tstring_from_utf8(name);
71   TCHAR *face = tstring_from_utf8(name.c_str());
7272   _tcsncpy(logfont.lfFaceName, face, sizeof(logfont.lfFaceName) / sizeof(TCHAR));
7373   logfont.lfFaceName[sizeof(logfont.lfFaceName) / sizeof(TCHAR)-1] = 0;
7474   osd_free(face);
r245640r245641
8989
9090   // if it doesn't match our request, fail
9191   char *utf = utf8_from_tstring(realname);
92   int result = core_stricmp(utf, name);
92   int result = core_stricmp(utf, name.c_str());
9393   osd_free(utf);
9494
9595   // if we didn't match, nuke our font and fall back
trunk/src/osd/modules/lib/osdobj_common.h
r245640r245641
113113   const char *aspect() const { return value(OSDOPTION_ASPECT); }
114114   const char *resolution() const { return value(OSDOPTION_RESOLUTION); }
115115   const char *view() const { return value(OSDOPTION_VIEW); }
116   const char *screen(int index) const { astring temp; return value(temp.format("%s%d", OSDOPTION_SCREEN, index)); }
117   const char *aspect(int index) const { astring temp; return value(temp.format("%s%d", OSDOPTION_ASPECT, index)); }
118   const char *resolution(int index) const { astring temp; return value(temp.format("%s%d", OSDOPTION_RESOLUTION, index)); }
119   const char *view(int index) const { astring temp; return value(temp.format("%s%d", OSDOPTION_VIEW, index)); }
116   const char *screen(int index) const { astring temp; return value(temp.format("%s%d", OSDOPTION_SCREEN, index).c_str()); }
117   const char *aspect(int index) const { astring temp; return value(temp.format("%s%d", OSDOPTION_ASPECT, index).c_str()); }
118   const char *resolution(int index) const { astring temp; return value(temp.format("%s%d", OSDOPTION_RESOLUTION, index).c_str()); }
119   const char *view(int index) const { astring temp; return value(temp.format("%s%d", OSDOPTION_VIEW, index).c_str()); }
120120
121121   // full screen options
122122   bool switch_res() const { return bool_value(OSDOPTION_SWITCHRES); }
r245640r245641
136136   bool gl_pbo() const { return bool_value(OSDOPTION_GL_PBO); }
137137   bool gl_glsl() const { return bool_value(OSDOPTION_GL_GLSL); }
138138   bool glsl_filter() const { return bool_value(OSDOPTION_GLSL_FILTER); }
139   const char *shader_mame(int index) const { astring temp; return value(temp.format("%s%d", OSDOPTION_SHADER_MAME, index)); }
140   const char *shader_screen(int index) const { astring temp; return value(temp.format("%s%d", OSDOPTION_SHADER_SCREEN, index)); }
139   const char *shader_mame(int index) const { astring temp; return value(temp.format("%s%d", OSDOPTION_SHADER_MAME, index).c_str()); }
140   const char *shader_screen(int index) const { astring temp; return value(temp.format("%s%d", OSDOPTION_SHADER_SCREEN, index).c_str()); }
141141
142142   // CoreAudio specific options
143143   const char *audio_output() const { return value(OSDOPTION_AUDIO_OUTPUT); }
144   const char *audio_effect(int index) const { astring temp; return value(temp.format("%s%d", OSDOPTION_AUDIO_EFFECT, index)); }
144   const char *audio_effect(int index) const { astring temp; return value(temp.format("%s%d", OSDOPTION_AUDIO_EFFECT, index).c_str()); }
145145
146146private:
147147   static const options_entry s_option_entries[];
r245640r245641
240240   // FIXME: should be elsewhere
241241   osd_module *select_module_options(const core_options &opts, const astring &opt_name)
242242   {
243      astring opt_val = opts.value(opt_name);
243      astring opt_val = opts.value(opt_name.c_str());
244244      if (opt_val == "auto")
245245         opt_val = "";
246      else if (!m_mod_man.type_has_name(opt_name, opt_val))
246      else if (!m_mod_man.type_has_name(opt_name.c_str(), opt_val.c_str()))
247247      {
248248         osd_printf_warning("Value %s not supported for option %s - falling back to auto\n", opt_val.c_str(), opt_name.c_str());
249249         opt_val = "";
250250      }
251      return m_mod_man.select_module(opt_name, opt_val);
251      return m_mod_man.select_module(opt_name.c_str(), opt_val.c_str());
252252   }
253253
254254   template<class C>
trunk/src/osd/modules/osdmodule.h
r245640r245641
3232   {}
3333   virtual ~osd_module() { }
3434
35   const char * name() const { return m_name; }
36   const char * type() const { return m_type; }
35   const char * name() const { return m_name.c_str(); }
36   const char * type() const { return m_type.c_str(); }
3737
3838   virtual bool probe() { return true; }
3939
trunk/src/osd/modules/render/d3d/d3dhlsl.c
r245640r245641
373373         astring text1(emulator_info::get_appname(), " ", build_version);
374374         astring text2(machine->system().manufacturer, " ", machine->system().description);
375375         png_info pnginfo = { 0 };
376         png_add_text(&pnginfo, "Software", text1);
377         png_add_text(&pnginfo, "System", text2);
376         png_add_text(&pnginfo, "Software", text1.c_str());
377         png_add_text(&pnginfo, "System", text2.c_str());
378378
379379         // now do the actual work
380380         png_error error = png_write_bitmap(file, &pnginfo, avi_snap, 1 << 24, NULL);
r245640r245641
567567   if (filerr == FILERR_NONE)
568568   {
569569      // create the file and free the string
570      avi_error avierr = avi_create(fullpath, &info, &avi_output_file);
570      avi_error avierr = avi_create(fullpath.c_str(), &info, &avi_output_file);
571571      if (avierr != AVIERR_NONE)
572572      {
573573         osd_printf_error("Error creating AVI: %s\n", avi_error_string(avierr));
r245640r245641
34023402
34033403   // handle %d in the template (for image devices)
34043404   astring snapdev("%d_");
3405   int pos = snapstr.find(0, snapdev);
3405   int pos = snapstr.find(0, snapdev.c_str());
34063406
34073407   if (pos != -1)
34083408   {
34093409      // if more %d are found, revert to default and ignore them all
3410      if (snapstr.find(pos + 3, snapdev) != -1)
3410      if (snapstr.find(pos + 3, snapdev.c_str()) != -1)
34113411         snapstr.cpy("%g/%i");
34123412      // else if there is a single %d, try to create the correct snapname
34133413      else
r245640r245641
34533453                  filename.substr(0, filename.rchr(0, '.'));
34543454
34553455                  // setup snapname and remove the %d_
3456                  snapstr.replace(0, snapdevname, filename);
3456                  snapstr.replace(0, snapdevname.c_str(), filename.c_str());
34573457                  snapstr.del(pos, 3);
34583458
34593459                  name_found = 1;
r245640r245641
34923492         fname.cpy(snapstr).replace(0, "%i", seqtext.format("%04d_%d", seq, idx).c_str());
34933493
34943494         // try to open the file; stop when we fail
3495         file_error filerr = file.open(fname);
3495         file_error filerr = file.open(fname.c_str());
34963496         if (filerr != FILERR_NONE)
34973497            break;
34983498      }
r245640r245641
35003500
35013501   // create the final file
35023502   file.set_openflags(origflags);
3503   return file.open(fname);
3503   return file.open(fname.c_str());
35043504}
trunk/src/osd/sdl/input.c
r245640r245641
687687      {
688688         sprintf(tempname, "NC%d", index);
689689         devinfo = generic_device_alloc(devlist, tempname);
690         devinfo->device = machine.input().device_class(devclass).add_device(devinfo->name, devinfo);
690         devinfo->device = machine.input().device_class(devclass).add_device(devinfo->name.c_str(), devinfo);
691691      }
692692      return NULL;
693693   }
694694   else
695695   {
696696      devinfo = generic_device_alloc(devlist, devmap->map[index].name);
697      devinfo->device = machine.input().device_class(devclass).add_device(devinfo->name, devinfo);
697      devinfo->device = machine.input().device_class(devclass).add_device(devinfo->name.c_str(), devinfo);
698698   }
699699   return devinfo;
700700}
trunk/src/osd/sdl/osdsdl.h
r245640r245641
119119   const char *ui_mode_key() const { return value(SDLOPTION_UIMODEKEY); }
120120
121121   // joystick mapping
122   const char *joy_index(int index) const { astring temp; return value(temp.format("%s%d", SDLOPTION_JOYINDEX, index)); }
122   const char *joy_index(int index) const { astring temp; return value(temp.format("%s%d", SDLOPTION_JOYINDEX, index).c_str()); }
123123   bool sixaxis() const { return bool_value(SDLOPTION_SIXAXIS); }
124124
125125#if (SDLMAME_SDL2)
126   const char *mouse_index(int index) const { astring temp; return value(temp.format("%s%d", SDLOPTION_MOUSEINDEX, index)); }
127   const char *keyboard_index(int index) const { astring temp; return value(temp.format("%s%d", SDLOPTION_KEYBINDEX, index)); }
126   const char *mouse_index(int index) const { astring temp; return value(temp.format("%s%d", SDLOPTION_MOUSEINDEX, index).c_str()); }
127   const char *keyboard_index(int index) const { astring temp; return value(temp.format("%s%d", SDLOPTION_KEYBINDEX, index).c_str()); }
128128#endif
129129
130130   const char *video_driver() const { return value(SDLOPTION_VIDEODRIVER); }
trunk/src/osd/windows/winmain.c
r245640r245641
591591   for (win_window_info *info = win_window_list; info != NULL; info = info->m_next)
592592   {
593593      tempstring.printf("Orientation(%s)", info->m_monitor->devicename());
594      output_set_value(tempstring, info->m_targetorient);
594      output_set_value(tempstring.c_str(), info->m_targetorient);
595595   }
596596
597597   // hook up the debugger log
r245640r245641
10621062      else
10631063         scan_file_for_address(address, false);
10641064   }
1065   return m_buffer;
1065   return m_buffer.c_str();
10661066}
10671067
10681068
r245640r245641
11161116
11171117#ifdef __GNUC__
11181118   // see if we have a symbol file (gcc only)
1119   srcfile = fopen(m_symfile, "r");
1119   srcfile = fopen(m_symfile.c_str(), "r");
11201120   is_symfile = (srcfile != NULL);
11211121#endif
11221122
11231123   // if not, see if we have a map file
11241124   if (srcfile == NULL)
1125      srcfile = fopen(m_mapfile, "r");
1125      srcfile = fopen(m_mapfile.c_str(), "r");
11261126
11271127   // if not, fail
11281128   if (srcfile == NULL)
r245640r245641
11531153
11541154         // also create a cache entry if we can
11551155         if (create_cache)
1156            m_cache.append(*global_alloc(cache_entry(addr, symbol)));
1156            m_cache.append(*global_alloc(cache_entry(addr, symbol.c_str())));
11571157      }
11581158   }
11591159
r245640r245641
11611161   fclose(srcfile);
11621162
11631163   // format the symbol and remember the last base
1164   format_symbol(best_symbol, address - best_addr);
1164   format_symbol(best_symbol.c_str(), address - best_addr);
11651165   m_last_base = best_addr;
11661166}
11671167
r245640r245641
11881188      }
11891189
11901190   // format the symbol and remember the last base
1191   format_symbol(best_symbol, address - best_addr);
1191   format_symbol(best_symbol.c_str(), address - best_addr);
11921192   m_last_base = best_addr;
11931193}
11941194
trunk/src/tools/chdman.c
r245640r245641
325325               if (m_file != NULL)
326326                  core_fclose(m_file);
327327               m_lastfile = m_info.track[tracknum].fname;
328               file_error filerr = core_fopen(m_lastfile, OPEN_FLAG_READ, &m_file);
328               file_error filerr = core_fopen(m_lastfile.c_str(), OPEN_FLAG_READ, &m_file);
329329               if (filerr != FILERR_NONE)
330330                  report_error(1, "Error opening input file (%s)'", m_lastfile.c_str());
331331            }
r245640r245641
826826{
827827   // 0 is a special case
828828   if (intvalue == 0)
829      return string.cpy("0");
829      return string.cpy("0").c_str();
830830
831831   // loop until all chunks are done
832832   string.reset();
r245640r245641
840840      insert.format((intvalue != 0) ? "%03d" : "%d", chunk);
841841
842842      if (!first)
843         string.ins(0, ",");
843         string.ins(0, ",").c_str();
844844      first = false;
845845      string.ins(0, insert);
846846   }
847   return string;
847   return string.c_str();
848848}
849849
850850
r245640r245641
855855
856856const char *msf_string_from_frames(astring &string, UINT32 frames)
857857{
858   return string.format("%02d:%02d:%02d", frames / (75 * 60), (frames / 75) % 60, frames % 75);
858   return string.format("%02d:%02d:%02d", frames / (75 * 60), (frames / 75) % 60, frames % 75).c_str();
859859}
860860
861861
r245640r245641
899899static void guess_chs(astring *filename, UINT64 filesize, int sectorsize, UINT32 &cylinders, UINT32 &heads, UINT32 &sectors, UINT32 &bps)
900900{
901901   // if this is a direct physical drive read, handle it specially
902   if (filename != NULL && osd_get_physical_drive_geometry(*filename, &cylinders, &heads, &sectors, &bps))
902   if (filename != NULL && osd_get_physical_drive_geometry(filename->c_str(), &cylinders, &heads, &sectors, &bps))
903903      return;
904904
905905   // if we have no length to work with, we can't guess
r245640r245641
938938   astring *input_chd_parent_str = params.find(OPTION_INPUT_PARENT);
939939   if (input_chd_parent_str != NULL)
940940   {
941      chd_error err = input_parent_chd.open(*input_chd_parent_str);
941      chd_error err = input_parent_chd.open(input_chd_parent_str->c_str());
942942      if (err != CHDERR_NONE)
943943         report_error(1, "Error opening parent CHD file (%s): %s", input_chd_parent_str->c_str(), chd_file::error_string(err));
944944   }
r245640r245641
947947   astring *input_chd_str = params.find(OPTION_INPUT);
948948   if (input_chd_str != NULL)
949949   {
950      chd_error err = input_chd.open(*input_chd_str, writeable, input_parent_chd.opened() ? &input_parent_chd : NULL);
950      chd_error err = input_chd.open(input_chd_str->c_str(), writeable, input_parent_chd.opened() ? &input_parent_chd : NULL);
951951      if (err != CHDERR_NONE)
952952         report_error(1, "Error opening CHD file (%s): %s", input_chd_str->c_str(), chd_file::error_string(err));
953953   }
r245640r245641
970970   astring *input_start_hunk_str = params.find(OPTION_INPUT_START_HUNK);
971971   astring *input_start_frame_str = params.find(OPTION_INPUT_START_FRAME);
972972   if (input_start_byte_str != NULL)
973      input_start = parse_number(*input_start_byte_str);
973      input_start = parse_number(input_start_byte_str->c_str());
974974   if (input_start_hunk_str != NULL)
975      input_start = parse_number(*input_start_hunk_str) * hunkbytes;
975      input_start = parse_number(input_start_hunk_str->c_str()) * hunkbytes;
976976   if (input_start_frame_str != NULL)
977      input_start = parse_number(*input_start_frame_str) * framebytes;
977      input_start = parse_number(input_start_frame_str->c_str()) * framebytes;
978978   if (input_start >= input_end)
979979      report_error(1, "Input start offset greater than input file size");
980980
r245640r245641
984984   astring *input_length_frames_str = params.find(OPTION_INPUT_LENGTH_FRAMES);
985985   UINT64 input_length = input_end;
986986   if (input_length_bytes_str != NULL)
987      input_length = parse_number(*input_length_bytes_str);
987      input_length = parse_number(input_length_bytes_str->c_str());
988988   if (input_length_hunks_str != NULL)
989      input_length = parse_number(*input_length_hunks_str) * hunkbytes;
989      input_length = parse_number(input_length_hunks_str->c_str()) * hunkbytes;
990990   if (input_length_frames_str != NULL)
991      input_length = parse_number(*input_length_frames_str) * framebytes;
991      input_length = parse_number(input_length_frames_str->c_str()) * framebytes;
992992   if (input_start + input_length < input_end)
993993      input_end = input_start + input_length;
994994}
r245640r245641
10261026   astring *output_chd_parent_str = params.find(OPTION_OUTPUT_PARENT);
10271027   if (output_chd_parent_str != NULL)
10281028   {
1029      chd_error err = output_parent_chd.open(*output_chd_parent_str);
1029      chd_error err = output_parent_chd.open(output_chd_parent_str->c_str());
10301030      if (err != CHDERR_NONE)
10311031         report_error(1, "Error opening parent CHD file (%s): %s", output_chd_parent_str->c_str(), chd_file::error_string(err));
10321032   }
r245640r245641
10341034   // process output file
10351035   astring *output_chd_str = params.find(OPTION_OUTPUT);
10361036   if (output_chd_str != NULL)
1037      check_existing_output_file(params, *output_chd_str);
1037      check_existing_output_file(params, output_chd_str->c_str());
10381038   return output_chd_str;
10391039}
10401040
r245640r245641
10491049   astring *hunk_size_str = params.find(OPTION_HUNK_SIZE);
10501050   if (hunk_size_str != NULL)
10511051   {
1052      hunk_size = parse_number(*hunk_size_str);
1052      hunk_size = parse_number(hunk_size_str->c_str());
10531053      if (hunk_size < 16 || hunk_size > 1024 * 1024)
10541054         report_error(1, "Invalid hunk size");
10551055      if (hunk_size % required_granularity != 0)
r245640r245641
11101110   if (numprocessors_str == NULL)
11111111      return;
11121112
1113   int count = atoi(*numprocessors_str);
1113   int count = atoi(numprocessors_str->c_str());
11141114   if (count > 0)
11151115   {
11161116      extern int osd_num_processors;
r245640r245641
11291129   // output compression types
11301130   string.reset();
11311131   if (compression[0] == CHD_CODEC_NONE)
1132      return string.cpy("none");
1132      return string.cpy("none").c_str();
11331133
11341134   // iterate over types
11351135   for (int index = 0; index < 4; index++)
r245640r245641
11421142      string.cat((type >> 24) & 0xff).cat((type >> 16) & 0xff).cat((type >> 8) & 0xff).cat(type & 0xff);
11431143      string.cat(" (").cat(chd_codec_list::codec_name(type)).cat(")");
11441144   }
1145   return string;
1145   return string.c_str();
11461146}
11471147
11481148
r245640r245641
15661566   astring *input_file_str = params.find(OPTION_INPUT);
15671567   if (input_file_str != NULL)
15681568   {
1569      file_error filerr = core_fopen(*input_file_str, OPEN_FLAG_READ, &input_file);
1569      file_error filerr = core_fopen(input_file_str->c_str(), OPEN_FLAG_READ, &input_file);
15701570      if (filerr != FILERR_NONE)
15711571         report_error(1, "Unable to open file (%s)", input_file_str->c_str());
15721572   }
r245640r245641
15841584   astring *unit_size_str = params.find(OPTION_UNIT_SIZE);
15851585   if (unit_size_str != NULL)
15861586   {
1587      unit_size = parse_number(*unit_size_str);
1587      unit_size = parse_number(unit_size_str->c_str());
15881588      if (hunk_size % unit_size != 0)
15891589         report_error(1, "Unit size is not an even divisor of the hunk size");
15901590   }
r245640r245641
16251625      chd = new chd_rawfile_compressor(input_file, input_start, input_end);
16261626      chd_error err;
16271627      if (output_parent.opened())
1628         err = chd->create(*output_chd_str, input_end - input_start, hunk_size, compression, output_parent);
1628         err = chd->create(output_chd_str->c_str(), input_end - input_start, hunk_size, compression, output_parent);
16291629      else
1630         err = chd->create(*output_chd_str, input_end - input_start, hunk_size, unit_size, compression);
1630         err = chd->create(output_chd_str->c_str(), input_end - input_start, hunk_size, unit_size, compression);
16311631      if (err != CHDERR_NONE)
16321632         report_error(1, "Error creating CHD file (%s): %s", output_chd_str->c_str(), chd_file::error_string(err));
16331633
r245640r245641
16451645      // delete the output file
16461646      astring *output_chd_str = params.find(OPTION_OUTPUT);
16471647      if (output_chd_str != NULL)
1648         osd_rmfile(*output_chd_str);
1648         osd_rmfile(output_chd_str->c_str());
16491649      throw;
16501650   }
16511651}
r245640r245641
16631663   astring *input_file_str = params.find(OPTION_INPUT);
16641664   if (input_file_str != NULL)
16651665   {
1666      file_error filerr = core_fopen(*input_file_str, OPEN_FLAG_READ, &input_file);
1666      file_error filerr = core_fopen(input_file_str->c_str(), OPEN_FLAG_READ, &input_file);
16671667      if (filerr != FILERR_NONE)
16681668         report_error(1, "Unable to open file (%s)", input_file_str->c_str());
16691669   }
r245640r245641
16791679   {
16801680      if (output_parent.opened())
16811681         report_error(1, "Sector size does not apply when creating a diff from the parent");
1682      sector_size = parse_number(*sectorsize_str);
1682      sector_size = parse_number(sectorsize_str->c_str());
16831683   }
16841684
16851685   // process hunk size (needs to know sector_size)
r245640r245641
17001700      astring *size_str = params.find(OPTION_SIZE);
17011701      if (size_str != NULL)
17021702      {
1703         if (sscanf(*size_str, "%" I64FMT"d", &filesize) != 1)
1703         if (sscanf(size_str->c_str(), "%" I64FMT"d", &filesize) != 1)
17041704            report_error(1, "Invalid size string");
17051705      }
17061706   }
r245640r245641
17261726   {
17271727      if (output_parent.opened())
17281728         report_error(1, "CHS does not apply when creating a diff from the parent");
1729      if (sscanf(*chs_str, "%d,%d,%d", &cylinders, &heads, &sectors) != 3)
1729      if (sscanf(chs_str->c_str(), "%d,%d,%d", &cylinders, &heads, &sectors) != 3)
17301730         report_error(1, "Invalid CHS string; must be of the form <cylinders>,<heads>,<sectors>");
17311731   }
17321732
r245640r245641
17381738   if (ident_str != NULL)
17391739   {
17401740      // load the file
1741      file_error filerr = core_fload(*ident_str, identdata);
1741      file_error filerr = core_fload(ident_str->c_str(), identdata);
17421742      if (filerr != FILERR_NONE)
17431743         report_error(1, "Error reading ident file (%s)", ident_str->c_str());
17441744
r245640r245641
17561756      astring metadata;
17571757      if (output_parent.read_metadata(HARD_DISK_METADATA_TAG, 0, metadata) != CHDERR_NONE)
17581758         report_error(1, "Unable to find hard disk metadata in parent CHD");
1759      if (sscanf(metadata, HARD_DISK_METADATA_FORMAT, &cylinders, &heads, &sectors, &sector_size) != 4)
1759      if (sscanf(metadata.c_str(), HARD_DISK_METADATA_FORMAT, &cylinders, &heads, &sectors, &sector_size) != 4)
17601760         report_error(1, "Error parsing hard disk metadata in parent CHD");
17611761   }
17621762
r245640r245641
18031803      chd = new chd_rawfile_compressor(input_file, input_start, input_end);
18041804      chd_error err;
18051805      if (output_parent.opened())
1806         err = chd->create(*output_chd_str, UINT64(totalsectors) * UINT64(sector_size), hunk_size, compression, output_parent);
1806         err = chd->create(output_chd_str->c_str(), UINT64(totalsectors) * UINT64(sector_size), hunk_size, compression, output_parent);
18071807      else
1808         err = chd->create(*output_chd_str, UINT64(totalsectors) * UINT64(sector_size), hunk_size, sector_size, compression);
1808         err = chd->create(output_chd_str->c_str(), UINT64(totalsectors) * UINT64(sector_size), hunk_size, sector_size, compression);
18091809      if (err != CHDERR_NONE)
18101810         report_error(1, "Error creating CHD file (%s): %s", output_chd_str->c_str(), chd_file::error_string(err));
18111811
r245640r245641
18351835      // delete the output file
18361836      astring *output_chd_str = params.find(OPTION_OUTPUT);
18371837      if (output_chd_str != NULL)
1838         osd_rmfile(*output_chd_str);
1838         osd_rmfile(output_chd_str->c_str());
18391839      throw;
18401840   }
18411841}
r245640r245641
18541854   astring *input_file_str = params.find(OPTION_INPUT);
18551855   if (input_file_str != NULL)
18561856   {
1857      chd_error err = chdcd_parse_toc(*input_file_str, toc, track_info);
1857      chd_error err = chdcd_parse_toc(input_file_str->c_str(), toc, track_info);
18581858      if (err != CHDERR_NONE)
18591859         report_error(1, "Error parsing input file (%s: %s)\n", input_file_str->c_str(), chd_file::error_string(err));
18601860   }
r245640r245641
19061906      chd = new chd_cd_compressor(toc, track_info);
19071907      chd_error err;
19081908      if (output_parent.opened())
1909         err = chd->create(*output_chd_str, UINT64(totalsectors) * UINT64(CD_FRAME_SIZE), hunk_size, compression, output_parent);
1909         err = chd->create(output_chd_str->c_str(), UINT64(totalsectors) * UINT64(CD_FRAME_SIZE), hunk_size, compression, output_parent);
19101910      else
1911         err = chd->create(*output_chd_str, UINT64(totalsectors) * UINT64(CD_FRAME_SIZE), hunk_size, CD_FRAME_SIZE, compression);
1911         err = chd->create(output_chd_str->c_str(), UINT64(totalsectors) * UINT64(CD_FRAME_SIZE), hunk_size, CD_FRAME_SIZE, compression);
19121912      if (err != CHDERR_NONE)
19131913         report_error(1, "Error creating CHD file (%s): %s", output_chd_str->c_str(), chd_file::error_string(err));
19141914
r245640r245641
19271927      // delete the output file
19281928      astring *output_chd_str = params.find(OPTION_OUTPUT);
19291929      if (output_chd_str != NULL)
1930         osd_rmfile(*output_chd_str);
1930         osd_rmfile(output_chd_str->c_str());
19311931      throw;
19321932   }
19331933}
r245640r245641
19451945   astring *input_file_str = params.find(OPTION_INPUT);
19461946   if (input_file_str != NULL)
19471947   {
1948      avi_error avierr = avi_open(*input_file_str, &input_file);
1948      avi_error avierr = avi_open(input_file_str->c_str(), &input_file);
19491949      if (avierr != AVIERR_NONE)
19501950         report_error(1, "Error opening AVI file (%s): %s\n", input_file_str->c_str(), avi_error_string(avierr));
19511951   }
r245640r245641
20242024      chd = new chd_avi_compressor(*input_file, info, input_start, input_end);
20252025      chd_error err;
20262026      if (output_parent.opened())
2027         err = chd->create(*output_chd_str, UINT64(input_end - input_start) * hunk_size, hunk_size, compression, output_parent);
2027         err = chd->create(output_chd_str->c_str(), UINT64(input_end - input_start) * hunk_size, hunk_size, compression, output_parent);
20282028      else
2029         err = chd->create(*output_chd_str, UINT64(input_end - input_start) * hunk_size, hunk_size, info.bytes_per_frame, compression);
2029         err = chd->create(output_chd_str->c_str(), UINT64(input_end - input_start) * hunk_size, hunk_size, info.bytes_per_frame, compression);
20302030      if (err != CHDERR_NONE)
20312031         report_error(1, "Error creating CHD file (%s): %s", output_chd_str->c_str(), chd_file::error_string(err));
20322032
r245640r245641
20552055      // delete the output file
20562056      astring *output_chd_str = params.find(OPTION_OUTPUT);
20572057      if (output_chd_str != NULL)
2058         osd_rmfile(*output_chd_str);
2058         osd_rmfile(output_chd_str->c_str());
20592059      throw;
20602060   }
20612061}
r245640r245641
21332133      chd = new chd_chdfile_compressor(input_chd, input_start, input_end);
21342134      chd_error err;
21352135      if (output_parent.opened())
2136         err = chd->create(*output_chd_str, input_end - input_start, hunk_size, compression, output_parent);
2136         err = chd->create(output_chd_str->c_str(), input_end - input_start, hunk_size, compression, output_parent);
21372137      else
2138         err = chd->create(*output_chd_str, input_end - input_start, hunk_size, input_chd.unit_bytes(), compression);
2138         err = chd->create(output_chd_str->c_str(), input_end - input_start, hunk_size, input_chd.unit_bytes(), compression);
21392139      if (err != CHDERR_NONE)
21402140         report_error(1, "Error creating CHD file (%s): %s", output_chd_str->c_str(), chd_file::error_string(err));
21412141
r245640r245641
21912191      // delete the output file
21922192      astring *output_chd_str = params.find(OPTION_OUTPUT);
21932193      if (output_chd_str != NULL)
2194         osd_rmfile(*output_chd_str);
2194         osd_rmfile(output_chd_str->c_str());
21952195      throw;
21962196   }
21972197}
r245640r245641
22172217   // verify output file doesn't exist
22182218   astring *output_file_str = params.find(OPTION_OUTPUT);
22192219   if (output_file_str != NULL)
2220      check_existing_output_file(params, *output_file_str);
2220      check_existing_output_file(params, output_file_str->c_str());
22212221
22222222   // print some info
22232223   astring tempstr;
r245640r245641
22342234   try
22352235   {
22362236      // process output file
2237      file_error filerr = core_fopen(*output_file_str, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE, &output_file);
2237      file_error filerr = core_fopen(output_file_str->c_str(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE, &output_file);
22382238      if (filerr != FILERR_NONE)
22392239         report_error(1, "Unable to open file (%s)", output_file_str->c_str());
22402240
r245640r245641
22692269      if (output_file != NULL)
22702270      {
22712271         core_fclose(output_file);
2272         osd_rmfile(*output_file_str);
2272         osd_rmfile(output_file_str->c_str());
22732273      }
22742274      throw;
22752275   }
r245640r245641
22972297   // verify output file doesn't exist
22982298   astring *output_file_str = params.find(OPTION_OUTPUT);
22992299   if (output_file_str != NULL)
2300      check_existing_output_file(params, *output_file_str);
2300      check_existing_output_file(params, output_file_str->c_str());
23012301
23022302   // verify output BIN file doesn't exist
23032303   astring *output_bin_file_str = params.find(OPTION_OUTPUT_BIN);
r245640r245641
23102310   default_name.cat(".bin");
23112311   if (output_bin_file_str == NULL)
23122312      output_bin_file_str = &default_name;
2313   check_existing_output_file(params, *output_bin_file_str);
2313   check_existing_output_file(params, output_bin_file_str->c_str());
23142314
23152315   // print some info
23162316   astring tempstr;
r245640r245641
23352335      }
23362336
23372337      // process output file
2338      file_error filerr = core_fopen(*output_file_str, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_NO_BOM, &output_toc_file);
2338      file_error filerr = core_fopen(output_file_str->c_str(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_NO_BOM, &output_toc_file);
23392339      if (filerr != FILERR_NONE)
23402340         report_error(1, "Unable to open file (%s)", output_file_str->c_str());
23412341
23422342      // process output BIN file
23432343      if (mode != MODE_GDI)
23442344      {
2345         filerr = core_fopen(*output_bin_file_str, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE, &output_bin_file);
2345         filerr = core_fopen(output_bin_file_str->c_str(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE, &output_bin_file);
23462346         if (filerr != FILERR_NONE)
23472347            report_error(1, "Unable to open file (%s)", output_bin_file_str->c_str());
23482348      }
r245640r245641
23822382               output_bin_file = NULL;
23832383            }
23842384
2385            filerr = core_fopen(trackbin_name, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE, &output_bin_file);
2385            filerr = core_fopen(trackbin_name.c_str(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE, &output_bin_file);
23862386            if (filerr != FILERR_NONE)
23872387               report_error(1, "Unable to open file (%s)", trackbin_name.c_str());
23882388
r245640r245641
23942394         astring temp;
23952395         if (mode == MODE_GDI)
23962396         {
2397            output_track_metadata(mode, output_toc_file, tracknum, trackinfo, core_filename_extract_base(temp,trackbin_name), discoffs, outputoffs);
2397            output_track_metadata(mode, output_toc_file, tracknum, trackinfo, core_filename_extract_base(temp, trackbin_name.c_str()).c_str(), discoffs, outputoffs);
23982398         }
23992399         else
24002400         {
2401            output_track_metadata(mode, output_toc_file, tracknum, trackinfo, core_filename_extract_base(temp,*output_bin_file_str), discoffs, outputoffs);
2401            output_track_metadata(mode, output_toc_file, tracknum, trackinfo, core_filename_extract_base(temp, output_bin_file_str->c_str()).c_str(), discoffs, outputoffs);
24022402         }
24032403
24042404         // If this is bin/cue output and the CHD contains subdata, warn the user and don't include
r245640r245641
24702470         core_fclose(output_bin_file);
24712471      if (output_toc_file != NULL)
24722472         core_fclose(output_toc_file);
2473      osd_rmfile(*output_bin_file_str);
2474      osd_rmfile(*output_file_str);
2473      osd_rmfile(output_bin_file_str->c_str());
2474      osd_rmfile(output_file_str->c_str());
24752475      throw;
24762476   }
24772477}
r245640r245641
25072507   {
25082508      int fps;
25092509      int fpsfrac;
2510      if (sscanf(metadata, AV_METADATA_FORMAT, &fps, &fpsfrac, &width, &height, &interlaced, &channels, &rate) != 7)
2510      if (sscanf(metadata.c_str(), AV_METADATA_FORMAT, &fps, &fpsfrac, &width, &height, &interlaced, &channels, &rate) != 7)
25112511         report_error(1, "Improperly formatted A/V metadata found");
25122512      fps_times_1million = fps * 1000000 + fpsfrac;
25132513   }
r245640r245641
25442544   // verify output file doesn't exist
25452545   astring *output_file_str = params.find(OPTION_OUTPUT);
25462546   if (output_file_str != NULL)
2547      check_existing_output_file(params, *output_file_str);
2547      check_existing_output_file(params, output_file_str->c_str());
25482548
25492549   // print some info
25502550   astring tempstr;
r245640r245641
25612561   try
25622562   {
25632563      // process output file
2564      avi_error avierr = avi_create(*output_file_str, &info, &output_file);
2564      avi_error avierr = avi_create(output_file_str->c_str(), &info, &output_file);
25652565      if (avierr != AVIERR_NONE)
25662566         report_error(1, "Unable to open file (%s)", output_file_str->c_str());
25672567
r245640r245641
26212621      // delete the output file
26222622      if (output_file != NULL)
26232623         avi_close(output_file);
2624      osd_rmfile(*output_file_str);
2624      osd_rmfile(output_file_str->c_str());
26252625      throw;
26262626   }
26272627}
r245640r245641
26522652   UINT32 index = 0;
26532653   astring *index_str = params.find(OPTION_INDEX);
26542654   if (index_str != NULL)
2655      index = atoi(*index_str);
2655      index = atoi(index_str->c_str());
26562656
26572657   // process text input
26582658   astring *text_str = params.find(OPTION_VALUE_TEXT);
r245640r245641
26692669   dynamic_buffer file;
26702670   if (file_str != NULL)
26712671   {
2672      file_error filerr = core_fload(*file_str, file);
2672      file_error filerr = core_fload(file_str->c_str(), file);
26732673      if (filerr != FILERR_NONE)
26742674         report_error(1, "Error reading metadata file (%s)", file_str->c_str());
26752675   }
r245640r245641
27322732   UINT32 index = 0;
27332733   astring *index_str = params.find(OPTION_INDEX);
27342734   if (index_str != NULL)
2735      index = atoi(*index_str);
2735      index = atoi(index_str->c_str());
27362736
27372737   // print some info
27382738   astring tempstr;
r245640r245641
27632763   // verify output file doesn't exist
27642764   astring *output_file_str = params.find(OPTION_OUTPUT);
27652765   if (output_file_str != NULL)
2766      check_existing_output_file(params, *output_file_str);
2766      check_existing_output_file(params, output_file_str->c_str());
27672767
27682768   // process tag
27692769   chd_metadata_tag tag = CHD_MAKE_TAG('?','?','?','?');
r245640r245641
27782778   UINT32 index = 0;
27792779   astring *index_str = params.find(OPTION_INDEX);
27802780   if (index_str != NULL)
2781      index = atoi(*index_str);
2781      index = atoi(index_str->c_str());
27822782
27832783   // write the metadata
27842784   dynamic_buffer buffer;
r245640r245641
27932793      // create the file
27942794      if (output_file_str != NULL)
27952795      {
2796         file_error filerr = core_fopen(*output_file_str, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE, &output_file);
2796         file_error filerr = core_fopen(output_file_str->c_str(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE, &output_file);
27972797         if (filerr != FILERR_NONE)
27982798            report_error(1, "Unable to open file (%s)", output_file_str->c_str());
27992799
r245640r245641
28202820      // delete the output file
28212821      if (output_file != NULL)
28222822         core_fclose(output_file);
2823      osd_rmfile(*output_file_str);
2823      osd_rmfile(output_file_str->c_str());
28242824      throw;
28252825   }
28262826}
trunk/src/tools/ldresample.c
r245640r245641
177177
178178   // extract the info
179179   int fps, fpsfrac, width, height, interlaced, channels, rate;
180   if (sscanf(metadata, AV_METADATA_FORMAT, &fps, &fpsfrac, &width, &height, &interlaced, &channels, &rate) != 7)
180   if (sscanf(metadata.c_str(), AV_METADATA_FORMAT, &fps, &fpsfrac, &width, &height, &interlaced, &channels, &rate) != 7)
181181   {
182182      fprintf(stderr, "Improperly formatted metadata\n");
183183      return CHDERR_INVALID_DATA;
trunk/src/tools/ldverify.c
r245640r245641
194194
195195   // extract the info
196196   int fps, fpsfrac, width, height, interlaced, channels, rate;
197   if (sscanf(metadata, AV_METADATA_FORMAT, &fps, &fpsfrac, &width, &height, &interlaced, &channels, &rate) != 7)
197   if (sscanf(metadata.c_str(), AV_METADATA_FORMAT, &fps, &fpsfrac, &width, &height, &interlaced, &channels, &rate) != 7)
198198   {
199199      fprintf(stderr, "Improperly formatted metadata\n");
200200      delete chd;
trunk/src/tools/pngcmp.c
r245640r245641
8080   int x, y;
8181
8282   /* open the source image */
83   filerr = core_fopen(imgfile1, OPEN_FLAG_READ, &file);
83   filerr = core_fopen(imgfile1.c_str(), OPEN_FLAG_READ, &file);
8484   if (filerr != FILERR_NONE)
8585   {
8686      printf("Could not open %s (%d)\n", imgfile1.c_str(), filerr);
r245640r245641
9797   }
9898
9999   /* open the source image */
100   filerr = core_fopen(imgfile2, OPEN_FLAG_READ, &file);
100   filerr = core_fopen(imgfile2.c_str(), OPEN_FLAG_READ, &file);
101101   if (filerr != FILERR_NONE)
102102   {
103103      printf("Could not open %s (%d)\n", imgfile2.c_str(), filerr);
r245640r245641
170170      }
171171
172172      /* write the final PNG */
173      filerr = core_fopen(outfilename, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE, &file);
173      filerr = core_fopen(outfilename.c_str(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE, &file);
174174      if (filerr != FILERR_NONE)
175175      {
176176         printf("Could not open %s (%d)\n", outfilename.c_str(), filerr);
r245640r245641
193193
194194error:
195195   if (error == -1)
196      osd_rmfile(outfilename);
196      osd_rmfile(outfilename.c_str());
197197   return error;
198198}
trunk/src/tools/regrep.c
r245640r245641
235235
236236   /* read the template file into an astring */
237237   astring tempheader;
238   if (core_fload(tempfilename, &buffer, &bufsize) == FILERR_NONE)
238   if (core_fload(tempfilename.c_str(), &buffer, &bufsize) == FILERR_NONE)
239239   {
240240      tempheader.cpy((const char *)buffer, bufsize);
241241      osd_free(buffer);
r245640r245641
565565   core_file *file;
566566
567567   /* create the indexfile */
568   if (core_fopen(filename, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS | OPEN_FLAG_NO_BOM, &file) != FILERR_NONE)
568   if (core_fopen(filename.c_str(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS | OPEN_FLAG_NO_BOM, &file) != FILERR_NONE)
569569      return NULL;
570570
571571   /* print a header */
572572   astring modified(templatefile);
573   modified.replace("<!--TITLE-->", title);
573   modified.replace("<!--TITLE-->", title.c_str());
574574   core_fwrite(file, modified.c_str(), modified.len());
575575
576576   /* return the file */
r245640r245641
586586static void output_footer_and_close_file(core_file *file, astring &templatefile, astring &title)
587587{
588588   astring modified(templatefile);
589   modified.replace(0, "<!--TITLE-->", title);
589   modified.replace(0, "<!--TITLE-->", title.c_str());
590590   core_fwrite(file, modified.c_str(), modified.len());
591591   core_fclose(file);
592592}
r245640r245641
735735         fullname.printf("%s" PATH_SEPARATOR "snap" PATH_SEPARATOR "%s" PATH_SEPARATOR "final.png", lists[listnum].dir, curfile->name);
736736
737737         /* open the file */
738         filerr = core_fopen(fullname, OPEN_FLAG_READ, &file);
738         filerr = core_fopen(fullname.c_str(), OPEN_FLAG_READ, &file);
739739
740740         /* if that failed, look in the old location */
741741         if (filerr != FILERR_NONE)
r245640r245641
744744            fullname.printf("%s" PATH_SEPARATOR "snap" PATH_SEPARATOR "_%s.png", lists[listnum].dir, curfile->name);
745745
746746            /* open the file */
747            filerr = core_fopen(fullname, OPEN_FLAG_READ, &file);
747            filerr = core_fopen(fullname.c_str(), OPEN_FLAG_READ, &file);
748748         }
749749
750750         /* if that worked, load the file */
r245640r245641
853853         tempname.printf("%s" PATH_SEPARATOR "%s", lists[listnum].dir, srcimgname.c_str());
854854
855855         /* open the source image */
856         filerr = core_fopen(tempname, OPEN_FLAG_READ, &file);
856         filerr = core_fopen(tempname.c_str(), OPEN_FLAG_READ, &file);
857857         if (filerr != FILERR_NONE)
858858            goto error;
859859
r245640r245641
925925   }
926926
927927   /* write the final PNG */
928   filerr = core_fopen(dstfilename, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE, &file);
928   filerr = core_fopen(dstfilename.c_str(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE, &file);
929929   if (filerr != FILERR_NONE)
930930      goto error;
931931   pngerr = png_write_bitmap(file, NULL, finalbitmap, 0, NULL);
r245640r245641
938938
939939error:
940940   if (error)
941      osd_rmfile(dstfilename);
941      osd_rmfile(dstfilename.c_str());
942942   return error;
943943}
944944
trunk/src/tools/split.c
r245640r245641
120120   splitfilename.cpy(basename).cat(".split");
121121
122122   // create the split file
123   filerr = core_fopen(splitfilename, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_NO_BOM, &splitfile);
123   filerr = core_fopen(splitfilename.c_str(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_NO_BOM, &splitfile);
124124   if (filerr != FILERR_NONE)
125125   {
126126      fprintf(stderr, "Fatal error: unable to create split file '%s'\n", splitfilename.c_str());
r245640r245641
156156      outfilename.printf("%s.%03d", basename, partnum);
157157
158158      // create it
159      filerr = core_fopen(outfilename, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE, &outfile);
159      filerr = core_fopen(outfilename.c_str(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE, &outfile);
160160      if (filerr != FILERR_NONE)
161161      {
162162         printf("\n");
r245640r245641
193193   {
194194      core_fclose(splitfile);
195195      if (error != 0)
196         remove(splitfilename);
196         remove(splitfilename.c_str());
197197   }
198198   if (infile != NULL)
199199      core_fclose(infile);
r245640r245641
201201   {
202202      core_fclose(outfile);
203203      if (error != 0)
204         remove(outfilename);
204         remove(outfilename.c_str());
205205   }
206206   if (splitbuffer != NULL)
207207      free(splitbuffer);
r245640r245641
268268   if (write_output)
269269   {
270270      // don't overwrite the original!
271      filerr = core_fopen(outfilename, OPEN_FLAG_READ, &outfile);
271      filerr = core_fopen(outfilename.c_str(), OPEN_FLAG_READ, &outfile);
272272      if (filerr == FILERR_NONE)
273273      {
274274         core_fclose(outfile);
r245640r245641
278278      }
279279
280280      // open the output for write
281      filerr = core_fopen(outfilename, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE, &outfile);
281      filerr = core_fopen(outfilename.c_str(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE, &outfile);
282282      if (filerr != FILERR_NONE)
283283      {
284284         fprintf(stderr, "Fatal error: unable to create file '%s'\n", outfilename.c_str());
r245640r245641
306306
307307      // read the file's contents
308308      infilename.ins(0, basepath);
309      filerr = core_fload(infilename, &splitbuffer, &length);
309      filerr = core_fload(infilename.c_str(), &splitbuffer, &length);
310310      if (filerr != FILERR_NONE)
311311      {
312312         printf("\n");
r245640r245641
364364   {
365365      core_fclose(outfile);
366366      if (error != 0)
367         remove(outfilename);
367         remove(outfilename.c_str());
368368   }
369369   if (splitbuffer != NULL)
370370      osd_free(splitbuffer);
trunk/src/tools/src2html.c
r245640r245641
279279   // read the template file into an astring
280280   UINT32 bufsize;
281281   void *buffer;
282   if (core_fload(tempfilename, &buffer, &bufsize) == FILERR_NONE)
282   if (core_fload(tempfilename.c_str(), &buffer, &bufsize) == FILERR_NONE)
283283   {
284284      tempheader.cpy((const char *)buffer, bufsize);
285285      osd_free(buffer);
r245640r245641
347347      osd_dir_entry_type entry_type = typelist[entindex];
348348
349349      // open the directory and iterate through it
350      osd_directory *dir = osd_opendir(srcdir);
350      osd_directory *dir = osd_opendir(srcdir.c_str());
351351      if (dir == NULL)
352352      {
353353         result = 1;
r245640r245641
411411            // make sure we care, first
412412            file_type type = FILE_TYPE_INVALID;
413413            for (int extnum = 0; extnum < ARRAY_LENGTH(extension_lookup); extnum++)
414               if (core_filename_ends_with(curlist->name, extension_lookup[extnum].extension))
414               if (core_filename_ends_with(curlist->name.c_str(), extension_lookup[extnum].extension))
415415               {
416416                  type = extension_lookup[extnum].type;
417417                  break;
r245640r245641
517517
518518   // open the source file
519519   core_file *src;
520   if (core_fopen(srcfile, OPEN_FLAG_READ, &src) != FILERR_NONE)
520   if (core_fopen(srcfile.c_str(), OPEN_FLAG_READ, &src) != FILERR_NONE)
521521   {
522522      fprintf(stderr, "Unable to read file '%s'\n", srcfile.c_str());
523523      return 1;
r245640r245641
706706
707707      // append a break and move on
708708      dstline.catprintf("\n");
709      core_fputs(dst, dstline);
709      core_fputs(dst, dstline.c_str());
710710   }
711711
712712   // close tags
r245640r245641
733733{
734734   // create the indexfile
735735   core_file *file;
736   if (core_fopen(filename, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS | OPEN_FLAG_NO_BOM, &file) != FILERR_NONE)
736   if (core_fopen(filename.c_str(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS | OPEN_FLAG_NO_BOM, &file) != FILERR_NONE)
737737      return NULL;
738738
739739   // print a header
r245640r245641
865865
866866      // see if we can open it
867867      core_file *testfile;
868      if (core_fopen(srcincpath, OPEN_FLAG_READ, &testfile) == FILERR_NONE)
868      if (core_fopen(srcincpath.c_str(), OPEN_FLAG_READ, &testfile) == FILERR_NONE)
869869      {
870870         // close the file
871871         core_fclose(testfile);


Previous 199869 Revisions Next


© 1997-2024 The MAME Team