Previous 15994 Revisions Next

r9396 Saturday 16th October, 2010 at 11:00:34 UTC by Miodrag Milanović
Sync with MAME (Curt work is not overwritten with this)
[src/emu]devintrf.h emualloc.h emuopts.c emuopts.h render.c render.h video.c video.h
[src/emu/debugint]debugint.c
[src/emu/machine]intelfsh.c microtch.c
[src/osd/sdl]osdsdl.h sdlmain.c video.c
[src/osd/windows]video.c windows.mak winmain.c winmain.h
[src/osd/winui]properties.c

src/osd/sdl/video.c
r9395r9396
8282static sdl_monitor_info *primary_monitor;
8383static sdl_monitor_info *sdl_monitor_list;
8484
85static bitmap_t *effect_bitmap;
86
8785//============================================================
8886//  PROTOTYPES
8987//============================================================
r9395r9396
9694
9795static void extract_video_config(running_machine *machine);
9896static void extract_window_config(running_machine *machine, int index, sdl_window_config *conf);
99static void load_effect_overlay(running_machine *machine, const char *filename);
10097static float get_aspect(const char *name, int report_error);
10198static void get_resolution(const char *name, sdl_window_config *config, int report_error);
10299
r9395r9396
152149
153150static void video_exit(running_machine &machine)
154151{
155   // free the overlay effect
156   global_free(effect_bitmap);
157   effect_bitmap = NULL;
158
159152   // free all of our monitor information
160153   while (sdl_monitor_list != NULL)
161154   {
r9395r9396
646639   if (machine->debug_flags & DEBUG_FLAG_OSD_ENABLED)
647640      video_config.windowed = TRUE;
648641
649   stemp = options_get_string(machine->options(), SDLOPTION_EFFECT);
650   if (stemp != NULL && strcmp(stemp, "none") != 0)
651      load_effect_overlay(machine, stemp);
652
653642   // default to working video please
654643   video_config.novideo = 0;
655644
r9395r9396
812801
813802
814803//============================================================
815//  load_effect_overlay
816//============================================================
817
818static void load_effect_overlay(running_machine *machine, const char *filename)
819{
820   char *tempstr = global_alloc_array(char, strlen(filename) + 5);
821   char *dest;
822
823   // append a .PNG extension
824   strcpy(tempstr, filename);
825   dest = strrchr(tempstr, '.');
826   if (dest == NULL)
827      dest = &tempstr[strlen(tempstr)];
828   strcpy(dest, ".png");
829
830   // load the file
831   effect_bitmap = render_load_png(OPTION_ARTPATH, NULL, tempstr, NULL, NULL);
832   if (effect_bitmap == NULL)
833   {
834      mame_printf_error("Unable to load PNG file '%s'\n", tempstr);
835      global_free(tempstr);
836      return;
837   }
838
839   // set the overlay on all screens
840   for (screen_device *screen = screen_first(*machine); screen != NULL; screen = screen_next(screen))
841      screen->container().set_overlay(effect_bitmap);
842
843   global_free(tempstr);
844}
845
846
847//============================================================
848804//  get_aspect
849805//============================================================
850806
src/osd/sdl/sdlmain.c
r9395r9396
9494   { SDLOPTION_MAXIMIZE ";max",              "1",        OPTION_BOOLEAN,    "default to maximized windows; otherwise, windows will be minimized" },
9595   { SDLOPTION_KEEPASPECT ";ka",             "1",        OPTION_BOOLEAN,    "constrain to the proper aspect ratio" },
9696   { SDLOPTION_UNEVENSTRETCH ";ues",         "1",        OPTION_BOOLEAN,    "allow non-integer stretch factors" },
97   { SDLOPTION_EFFECT,                  SDLOPTVAL_NONE,  0,                 "name of a PNG file to use for visual effects, or 'none'" },
9897   { SDLOPTION_CENTERH,                      "1",        OPTION_BOOLEAN,    "center horizontally within the view area" },
9998   { SDLOPTION_CENTERV,                      "1",        OPTION_BOOLEAN,    "center vertically within the view area" },
10099   #if (SDL_VERSION_ATLEAST(1,2,10))
src/osd/sdl/osdsdl.h
r9395r9396
4848#define SDLOPTION_UNEVENSTRETCH         "unevenstretch"
4949#define SDLOPTION_USEALLHEADS         "useallheads"
5050#define SDLOPTION_MAXIMIZE            "maximize"
51#define SDLOPTION_EFFECT            "effect"
5251#define SDLOPTION_VIDEO               "video"
5352#define SDLOPTION_SWITCHRES            "switchres"
5453#define SDLOPTION_FILTER            "filter"
src/osd/windows/windows.mak
r9395r9396
153153# disable performance warnings about casting ints to bools
154154CPPONLYFLAGS += /wd4800
155155
156# disable better packing warning
157CPPONLYFLAGS += /wd4371
158
156159# explicitly set the entry point for UNICODE builds
157160LDFLAGS += /ENTRY:wmainCRTStartup
158161
r9395r9396
232235LDFLAGS += -static-libgcc
233236
234237# add the windows libraries
235LIBS += -luser32 -lgdi32 -lddraw -ldsound -ldxguid -lwinmm -ladvapi32 -lcomctl32 -lshlwapi -ldinput8
238LIBS += -luser32 -lgdi32 -ldsound -ldxguid -lwinmm -ladvapi32 -lcomctl32 -lshlwapi -ldinput8
236239
237240ifeq ($(DIRECTINPUT),8)
238241LIBS += -ldinput8
src/osd/windows/winmain.c
r9395r9396
316316   { "maximize;max",             "1",        OPTION_BOOLEAN,    "default to maximized windows; otherwise, windows will be minimized" },
317317   { "keepaspect;ka",            "1",        OPTION_BOOLEAN,    "constrain to the proper aspect ratio" },
318318   { "prescale",                 "1",        0,                 "scale screen rendering by this amount in software" },
319   { "effect",                   "none",     0,                 "name of a PNG file to use for visual effects, or 'none'" },
320319   { "waitvsync",                "0",        OPTION_BOOLEAN,    "enable waiting for the start of VBLANK before flipping screens; reduces tearing effects" },
321320   { "syncrefresh",              "0",        OPTION_BOOLEAN,    "enable using the start of VBLANK for throttling instead of the game time" },
322321
src/osd/windows/video.c
r9395r9396
8888win_monitor_info *win_monitor_list;
8989static win_monitor_info *primary_monitor;
9090
91static bitmap_t *effect_bitmap;
9291
9392
94
9593//============================================================
9694//  PROTOTYPES
9795//============================================================
r9395r9396
104102static void check_osd_inputs(running_machine *machine);
105103
106104static void extract_video_config(running_machine *machine);
107static void load_effect_overlay(running_machine *machine, const char *filename);
108105static float get_aspect(const char *name, int report_error);
109106static void get_resolution(const char *name, win_window_config *config, int report_error);
110107
r9395r9396
148145
149146static void winvideo_exit(running_machine &machine)
150147{
151   // free the overlay effect
152   global_free(effect_bitmap);
153   effect_bitmap = NULL;
154
155148   // free all of our monitor information
156149   while (win_monitor_list != NULL)
157150   {
r9395r9396
407400   // if we are in debug mode, never go full screen
408401   if (machine->debug_flags & DEBUG_FLAG_OSD_ENABLED)
409402      video_config.windowed = TRUE;
410   stemp                      = options_get_string(machine->options(), WINOPTION_EFFECT);
411   if (strcmp(stemp, "none") != 0)
412      load_effect_overlay(machine, stemp);
413403
414404   // per-window options: extract the data
415405   get_resolution(WINOPTION_RESOLUTION0, &video_config.window[0], TRUE);
r9395r9396
464454
465455
466456//============================================================
467//  load_effect_overlay
468//============================================================
469
470static void load_effect_overlay(running_machine *machine, const char *filename)
471{
472   char *tempstr = global_alloc_array(char, strlen(filename) + 5);
473   char *dest;
474
475   // append a .PNG extension
476   strcpy(tempstr, filename);
477   dest = strrchr(tempstr, '.');
478   if (dest == NULL)
479      dest = &tempstr[strlen(tempstr)];
480   strcpy(dest, ".png");
481
482   // load the file
483   effect_bitmap = render_load_png(OPTION_ARTPATH, NULL, tempstr, NULL, NULL);
484   if (effect_bitmap == NULL)
485   {
486      mame_printf_error("Unable to load PNG file '%s'\n", tempstr);
487      global_free(tempstr);
488      return;
489   }
490
491   // set the overlay on all screens
492   for (screen_device *screen = screen_first(*machine); screen != NULL; screen = screen_next(screen))
493      screen->container().set_overlay(effect_bitmap);
494
495   global_free(tempstr);
496}
497
498
499
500//============================================================
501457//  get_aspect
502458//============================================================
503459
src/osd/windows/winmain.h
r9395r9396
6666#define WINOPTION_MAXIMIZE            "maximize"
6767#define WINOPTION_KEEPASPECT         "keepaspect"
6868#define WINOPTION_PRESCALE            "prescale"
69#define WINOPTION_EFFECT            "effect"
7069#define WINOPTION_WAITVSYNC            "waitvsync"
7170#define WINOPTION_SYNCREFRESH         "syncrefresh"
7271
src/osd/winui/properties.c
r9395r9396
16761676   }
16771677   hCtrl = GetDlgItem(hWnd, IDC_EFFECT);
16781678   if (hCtrl) {
1679      const char* effect = options_get_string(o, WINOPTION_EFFECT);
1679      const char* effect = options_get_string(o, OPTION_EFFECT);
16801680      if (effect == NULL) {
16811681         effect = "none";
1682         options_set_string(o, WINOPTION_EFFECT, effect, OPTION_PRIORITY_CMDLINE);
1682         options_set_string(o, OPTION_EFFECT, effect, OPTION_PRIORITY_CMDLINE);
16831683      }
16841684      win_set_window_text_utf8(hCtrl, effect);
16851685   }
r9395r9396
24222422   datamap_add(properties_datamap, IDC_KEEPASPECT,            DM_BOOL,   WINOPTION_KEEPASPECT);
24232423   datamap_add(properties_datamap, IDC_PRESCALE,            DM_INT,      WINOPTION_PRESCALE);
24242424   datamap_add(properties_datamap, IDC_PRESCALEDISP,         DM_INT,      WINOPTION_PRESCALE);
2425   // datamap_add(properties_datamap, IDC_EFFECT,               DM_STRING,   WINOPTION_EFFECT);
2425   // datamap_add(properties_datamap, IDC_EFFECT,               DM_STRING,   OPTION_EFFECT);
24262426   datamap_add(properties_datamap, IDC_WAITVSYNC,            DM_BOOL,   WINOPTION_WAITVSYNC);
24272427   datamap_add(properties_datamap, IDC_SYNCREFRESH,         DM_BOOL,   WINOPTION_SYNCREFRESH);
24282428
r9395r9396
29652965      }
29662966      buff[l] = '\0';
29672967
2968      if (strcmp(buff, options_get_string(pCurrentOpts, WINOPTION_EFFECT)))
2968      if (strcmp(buff, options_get_string(pCurrentOpts, OPTION_EFFECT)))
29692969      {
29702970         HWND control = GetDlgItem(hWnd, IDC_EFFECT);
2971         options_set_string(pCurrentOpts, WINOPTION_EFFECT, buff, OPTION_PRIORITY_CMDLINE);
2971         options_set_string(pCurrentOpts, OPTION_EFFECT, buff, OPTION_PRIORITY_CMDLINE);
29722972         win_set_window_text_utf8(control, buff);
29732973         // datamap_populate_control(properties_datamap, hWnd, pCurrentOpts, IDC_EFFECT);
29742974         changed = TRUE;
r9395r9396
29822982   BOOL changed = FALSE;
29832983   const char *new_value = "none";
29842984
2985   if (strcmp(new_value, options_get_string(pCurrentOpts, WINOPTION_EFFECT)))
2985   if (strcmp(new_value, options_get_string(pCurrentOpts, OPTION_EFFECT)))
29862986   {
29872987      HWND control = GetDlgItem(hWnd, IDC_EFFECT);
2988      options_set_string(pCurrentOpts, WINOPTION_EFFECT, new_value, OPTION_PRIORITY_CMDLINE);
2988      options_set_string(pCurrentOpts, OPTION_EFFECT, new_value, OPTION_PRIORITY_CMDLINE);
29892989      win_set_window_text_utf8(control, new_value);
29902990      // datamap_populate_control(properties_datamap, hWnd, pCurrentOpts, IDC_EFFECT);
29912991      changed = TRUE;
src/emu/emuopts.c
r9395r9396
106106   { "contrast(0.1-2.0)",           "1.0",       0,                 "default game screen contrast correction" },
107107   { "gamma(0.1-3.0)",              "1.0",       0,                 "default game screen gamma correction" },
108108   { "pause_brightness(0.0-1.0)",   "0.65",      0,                 "amount to scale the screen brightness when paused" },
109   { "effect",                      "none",      0,                 "name of a PNG file to use for visual effects, or 'none'" },
109110
110111   /* vector options */
111112   { NULL,                          NULL,        OPTION_HEADER,     "CORE VECTOR OPTIONS" },
src/emu/emuopts.h
r9395r9396
106106#define OPTION_CONTRAST            "contrast"
107107#define OPTION_GAMMA            "gamma"
108108#define OPTION_PAUSE_BRIGHTNESS      "pause_brightness"
109#define OPTION_EFFECT            "effect"
109110
110111/* core vector options */
111112#define OPTION_ANTIALIAS         "antialias"
src/emu/video.c
r9395r9396
19031903     m_texture_format(0),
19041904     m_changed(true),
19051905     m_last_partial_scan(0),
1906     m_screen_overlay_bitmap(NULL),
19061907     m_frame_period(m_config.m_refresh),
19071908     m_scantime(1),
19081909     m_pixeltime(1),
r9395r9396
19311932   m_machine.render().texture_free(m_texture[1]);
19321933   if (m_burnin != NULL)
19331934      finalize_burnin();
1935   global_free(m_screen_overlay_bitmap);
19341936}
19351937
19361938
r9395r9396
19861988      bitmap_fill(m_burnin, NULL, 0);
19871989   }
19881990
1991   // load the effect overlay
1992   const char *overname = options_get_string(machine->options(), OPTION_EFFECT);
1993   if (overname != NULL && strcmp(overname, "none") != 0)
1994      load_effect_overlay(overname);
1995
19891996   state_save_register_device_item(this, 0, m_width);
19901997   state_save_register_device_item(this, 0, m_height);
19911998   state_save_register_device_item(this, 0, m_visarea.min_x);
r9395r9396
20902097   if (m_width > curwidth || m_height > curheight)
20912098   {
20922099      // free what we have currently
2093      global_free(m_texture[0]);
2094      global_free(m_texture[1]);
2095      if (m_bitmap[0] != NULL)
2096         auto_free(machine, m_bitmap[0]);
2097      if (m_bitmap[1] != NULL)
2098         auto_free(machine, m_bitmap[1]);
2100      m_machine.render().texture_free(m_texture[0]);
2101      m_machine.render().texture_free(m_texture[1]);
2102      auto_free(machine, m_bitmap[0]);
2103      auto_free(machine, m_bitmap[1]);
20992104
21002105      // compute new width/height
21012106      curwidth = MAX(m_width, curwidth);
r9395r9396
25522557
25532558
25542559//-------------------------------------------------
2555//  video_finalize_burnin - finalize the burnin
2556//  bitmap
2560//  finalize_burnin - finalize the burnin bitmap
25572561//-------------------------------------------------
25582562
25592563void screen_device::finalize_burnin()
r9395r9396
26372641}
26382642
26392643
2644//-------------------------------------------------
2645//  finalize_burnin - finalize the burnin bitmap
2646//-------------------------------------------------
26402647
2648void screen_device::load_effect_overlay(const char *filename)
2649{
2650   // ensure that there is a .png extension
2651   astring fullname(filename);
2652   int extension = fullname.rchr(0, '.');
2653   if (extension != -1)
2654      fullname.del(extension, -1);
2655   fullname.cat(".png");
2656
2657   // load the file
2658   m_screen_overlay_bitmap = render_load_png(OPTION_ARTPATH, NULL, fullname, NULL, NULL);
2659   if (m_screen_overlay_bitmap != NULL)
2660      m_container->set_overlay(m_screen_overlay_bitmap);
2661   else
2662      mame_printf_warning("Unable to load effect PNG file '%s'\n", fullname.cstr());
2663}
2664
2665
2666
26412667//**************************************************************************
26422668//  SOFTWARE RENDERING
26432669//**************************************************************************
src/emu/video.h
r9395r9396
216216   void scanline_update_callback(int scanline);
217217
218218   void finalize_burnin();
219   void load_effect_overlay(const char *filename);
219220
220221   // internal state
221222   const screen_device_config &m_config;
r9395r9396
235236   INT32               m_texture_format;      // texture format of bitmap for this screen
236237   bool               m_changed;            // has this bitmap changed?
237238   INT32               m_last_partial_scan;   // scanline of last partial update
239   bitmap_t *            m_screen_overlay_bitmap;// screen overlay bitmap
238240
239241   // screen timing
240242   attoseconds_t         m_frame_period;         // attoseconds per frame
src/emu/devintrf.h
r9395r9396
545545   {
546546   public:
547547      optional_device(device_t &base, const char *tag) : auto_finder_type<_DeviceClass *, false>(base, tag) { }
548      virtual void findit(device_t &base) { this->set_target(downcast<_DeviceClass *>(find_device(base, this->m_tag))); }
548      virtual void findit(device_t &base) { this->set_target(downcast<_DeviceClass *>(this->find_device(base, this->m_tag))); }
549549   };
550550
551551   // required devices are similar but throw an error if they are not found
r9395r9396
554554   {
555555   public:
556556      required_device(device_t &base, const char *tag) : auto_finder_type<_DeviceClass *, true>(base, tag) { }
557      virtual void findit(device_t &base) { this->set_target(downcast<_DeviceClass *>(find_device(base, this->m_tag))); }
557      virtual void findit(device_t &base) { this->set_target(downcast<_DeviceClass *>(this->find_device(base, this->m_tag))); }
558558   };
559559
560560   // optional shared pointer finder
r9395r9396
563563   {
564564   public:
565565      optional_shared_ptr(device_t &base, const char *tag) : auto_finder_type<_PointerType *, false>(base, tag) { }
566      virtual void findit(device_t &base) { this->set_target(reinterpret_cast<_PointerType *>(find_shared_ptr(base, this->m_tag))); }
566      virtual void findit(device_t &base) { this->set_target(reinterpret_cast<_PointerType *>(this->find_shared_ptr(base, this->m_tag))); }
567567   };
568568
569569   // required shared pointer finder
r9395r9396
572572   {
573573   public:
574574      required_shared_ptr(device_t &base, const char *tag) : auto_finder_type<_PointerType *, true>(base, tag) { }
575      virtual void findit(device_t &base) { this->set_target(reinterpret_cast<_PointerType *>(find_shared_ptr(base, this->m_tag))); }
575      virtual void findit(device_t &base) { this->set_target(reinterpret_cast<_PointerType *>(this->find_shared_ptr(base, this->m_tag))); }
576576   };
577577
578578   // optional shared pointer size finder
src/emu/emualloc.h
r9395r9396
220220   return result;
221221}
222222
223inline void operator delete(void *ptr)
223inline void operator delete(void *ptr) throw()
224224{
225225   if (ptr != NULL)
226226      free_file_line(ptr, NULL, 0);
227227}
228228
229inline void operator delete[](void *ptr)
229inline void operator delete[](void *ptr) throw()
230230{
231231   if (ptr != NULL)
232232      free_file_line(ptr, NULL, 0);
src/emu/render.c
r9395r9396
23702370
23712371render_manager::~render_manager()
23722372{
2373   // free all the containers since they may own textures
2374   container_free(m_ui_container);
2375   m_screen_container_list.reset();
2376
23732377   // better not be any outstanding textures when we die
23742378   assert(m_live_textures == 0);
2375
2376   // free the UI container
2377   container_free(m_ui_container);
23782379}
23792380
23802381
src/emu/render.h
r9395r9396
548548   void set_layer_config(int layerconfig);
549549   void set_view(int viewindex);
550550   void set_max_texture_size(int maxwidth, int maxheight);
551   void set_backdrops_enabled(bool enable) { if (enable) m_layerconfig |= LAYER_CONFIG_ENABLE_BACKDROP; else m_layerconfig &= ~LAYER_CONFIG_ENABLE_BACKDROP; }
552   void set_overlays_enabled(bool enable) { if (enable) m_layerconfig |= LAYER_CONFIG_ENABLE_OVERLAY; else m_layerconfig &= ~LAYER_CONFIG_ENABLE_OVERLAY; }
553   void set_bezels_enabled(bool enable) { if (enable) m_layerconfig |= LAYER_CONFIG_ENABLE_BEZEL; else m_layerconfig &= ~LAYER_CONFIG_ENABLE_BEZEL; }
554   void set_screen_overlay_enabled(bool enable) { if (enable) m_layerconfig |= LAYER_CONFIG_ENABLE_SCREEN_OVERLAY; else m_layerconfig &= ~LAYER_CONFIG_ENABLE_SCREEN_OVERLAY; }
555   void set_zoom_to_screen(bool zoom) { if (zoom) m_layerconfig |= LAYER_CONFIG_ZOOM_TO_SCREEN; else m_layerconfig &= ~LAYER_CONFIG_ZOOM_TO_SCREEN; }
551   void set_backdrops_enabled(bool enable) { set_layer_config(enable ? (m_layerconfig | LAYER_CONFIG_ENABLE_BACKDROP) : (m_layerconfig & ~LAYER_CONFIG_ENABLE_BACKDROP)); }
552   void set_overlays_enabled(bool enable) { set_layer_config(enable ? (m_layerconfig | LAYER_CONFIG_ENABLE_OVERLAY) : (m_layerconfig & ~LAYER_CONFIG_ENABLE_OVERLAY)); }
553   void set_bezels_enabled(bool enable) { set_layer_config(enable ? (m_layerconfig | LAYER_CONFIG_ENABLE_BEZEL) : (m_layerconfig & ~LAYER_CONFIG_ENABLE_BEZEL)); }
554   void set_screen_overlay_enabled(bool enable) { set_layer_config(enable ? (m_layerconfig | LAYER_CONFIG_ENABLE_SCREEN_OVERLAY) : (m_layerconfig & ~LAYER_CONFIG_ENABLE_SCREEN_OVERLAY)); }
555   void set_zoom_to_screen(bool zoom) { set_layer_config(zoom ? (m_layerconfig | LAYER_CONFIG_ZOOM_TO_SCREEN) : (m_layerconfig & ~LAYER_CONFIG_ZOOM_TO_SCREEN)); }
556556
557557   // view information
558558   const char *view_name(int viewindex);
src/emu/machine/intelfsh.c
r9395r9396
206206      if ((m_size & (1 << addrbits)) != 0)
207207         break;
208208
209   m_space_config = address_space_config("flash", ENDIANNESS_BIG, m_bits, addrbits - 1, (m_bits == 8) ? 0 : -1, map);
209   m_space_config = address_space_config("flash", ENDIANNESS_BIG, m_bits, addrbits, (m_bits == 8) ? 0 : -1, map);
210210}
211211
212212intelfsh8_device_config::intelfsh8_device_config(const machine_config &mconfig, device_type type, const char *name, const char *tag, const device_config *owner, UINT32 clock, UINT32 variant)
src/emu/machine/microtch.c
r9395r9396
221221      {
222222         microtouch.format_decimal = 1;
223223      }
224      else if ( microtouch_check_command("OI", microtouch.rx_buffer_ptr, microtouch.rx_buffer ) )
225      {
226         // output identity - SMT3, ver 01.00
227         microtouch.tx_buffer[microtouch.tx_buffer_num++] = 0x01;
228         microtouch.tx_buffer[microtouch.tx_buffer_num++] = 'Q';
229         microtouch.tx_buffer[microtouch.tx_buffer_num++] = '1';
230         microtouch.tx_buffer[microtouch.tx_buffer_num++] = '0';
231         microtouch.tx_buffer[microtouch.tx_buffer_num++] = '1';
232         microtouch.tx_buffer[microtouch.tx_buffer_num++] = '0';
233         microtouch.tx_buffer[microtouch.tx_buffer_num++] = '0';
234         microtouch.tx_buffer[microtouch.tx_buffer_num++] = 0x0d;
235         microtouch.rx_buffer_ptr = 0;
236         return;
237      }
224238      // send response
225239      microtouch.tx_buffer[microtouch.tx_buffer_num++] = 0x01;
226240      microtouch.tx_buffer[microtouch.tx_buffer_num++] = 0x30;
src/emu/debugint/debugint.c
r9395r9396
956956      downcast<debug_view_disasm *>(dv->view)->set_expression(str);
957957      break;
958958   case DVT_CONSOLE:
959      if(!dv->editor.str[0])
959      if(!dv->editor.str[(long)0])
960960         debug_cpu_get_visible_cpu(dv->machine)->debug()->single_step();
961961      else
962962         debug_console_execute_command(dv->machine, str, 1);

Previous 15994 Revisions Next


© 1998-2018 The MESS Team