OSDN Git Service

[VM][MSX2] FIX Segfault with MSX2.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Mon, 7 Dec 2015 11:54:01 +0000 (20:54 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Mon, 7 Dec 2015 11:54:01 +0000 (20:54 +0900)
source/src/qt/osd_screen.cpp
source/src/vm/v99x8.cpp

index 5b8b972..02e1960 100644 (file)
@@ -27,9 +27,9 @@ void OSD::initialize_screen()
        vm_screen_height_aspect = SCREEN_HEIGHT_ASPECT;
        
        //memset(&vm_screen_buffer, 0, sizeof(screen_buffer_t));
-       vm_screen_buffer.width = 320;
-       vm_screen_buffer.height = 200;
-       vm_screen_buffer.pImage = QImage(320, 200, QImage::Format_ARGB32);
+       vm_screen_buffer.width = SCREEN_WIDTH;
+       vm_screen_buffer.height = SCREEN_HEIGHT;
+       vm_screen_buffer.pImage = QImage(SCREEN_WIDTH, SCREEN_HEIGHT, QImage::Format_ARGB32);
 #ifdef USE_CRT_FILTER
        filtered_screen_buffer.width = SCREEN_WIDTH;
        filtered_screen_buffer.height = SCREEN_HEIGHT;
index 13e94ae..eba3cda 100644 (file)
@@ -2824,9 +2824,9 @@ void V99X8::md_video_update(int n, /*md_video_rect_t*/void *rp)
                int h = SCREEN_HEIGHT;
                for(;h>0; h-=2) {
                        dst = emu->screen_buffer(y);
-                       memcpy(dst, screen+y*SCREEN_WIDTH, SCREEN_WIDTH*4);
+                       if(dst != NULL) memcpy(dst, screen+y*SCREEN_WIDTH, SCREEN_WIDTH*4);
                        dst = emu->screen_buffer(y+1);
-                       memcpy(dst, screen+y*SCREEN_WIDTH, SCREEN_WIDTH*4);
+                       if(dst != NULL) memcpy(dst, screen+y*SCREEN_WIDTH, SCREEN_WIDTH*4);
                        y+=2;
                }
        }