OSDN Git Service

[VM][DEVICE] Update new APIs for PC9801's ARCTIC.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Thu, 16 May 2019 20:27:58 +0000 (05:27 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Thu, 16 May 2019 20:27:58 +0000 (05:27 +0900)
source/src/vm/common_vm/CMakeLists.txt
source/src/vm/event.cpp
source/src/vm/event.h
source/src/vm/libcpu_newdev/device.cpp
source/src/vm/libcpu_newdev/device.h

index f1d1a4c..496b9b5 100644 (file)
@@ -1,6 +1,6 @@
 message("* vm/common_vm")
 
-SET(THIS_LIB_VERSION 2.14.0)
+SET(THIS_LIB_VERSION 2.14.1)
 
 #include(cotire)
 set(s_vm_common_vm_srcs
index 86edbea..9a0c90a 100644 (file)
@@ -494,6 +494,17 @@ uint32_t EVENT::get_current_clock()
        return (uint32_t)(event_clocks & 0xffffffff);
 }
 
+uint64_t EVENT::get_current_clock_uint64()
+{
+       return event_clocks;
+}
+
+uint32_t EVENT::get_cpu_clock(int index)
+{
+       if((index < 0) || (index >= MAX_CPU)) return 0;
+       return d_cpu[index].cpu_clocks;
+}
+
 uint32_t EVENT::get_passed_clock(uint32_t prev)
 {
        uint32_t current = get_current_clock();
index ea6828f..82504c6 100644 (file)
@@ -330,7 +330,8 @@ public:
        void request_skip_frames();
        void touch_sound();
        void set_realtime_render(DEVICE* device, bool flag);
-       
+       uint64_t get_current_clock_uint64();
+       uint32_t get_cpu_clock(int index);
        // unique functions
        double get_frame_rate()
        {
index c1f4ea8..c08389a 100644 (file)
@@ -302,6 +302,22 @@ uint32_t DEVICE::get_cpu_pc(int index)
        return event_manager->get_cpu_pc(index);
 }
 
+uint64_t DEVICE::get_current_clock_uint64()
+{ 
+       if(event_manager == NULL) {
+               event_manager = vm->first_device->next_device;
+       }
+       return event_manager->get_current_clock_uint64();
+}
+
+uint32_t DEVICE::get_cpu_clock(int index)
+{
+       if(event_manager == NULL) {
+               event_manager = vm->first_device->next_device;
+       }
+       return event_manager->get_cpu_clock(index);
+}
+
 void DEVICE::request_skip_frames()
 {
        if(event_manager == NULL) {
index 3c808ec..88f0438 100644 (file)
@@ -572,6 +572,9 @@ public:
        virtual int get_cur_vline();
        virtual int get_cur_vline_clocks();
        virtual uint32_t get_cpu_pc(int index);
+       virtual uint64_t get_current_clock_uint64();
+       virtual uint32_t get_cpu_clock(int index);
+       
        virtual void request_skip_frames();
        virtual void set_frames_per_sec(double frames);
        virtual void set_lines_per_frame(int lines);