我正在用go编写一个简单的模拟器(我应该?还是应该回到c?)。无论如何,我正在获取指令并对其进行解码。此时我有一个类似0x81的字节,我必须执行正确的函数。我应该有这样的东西吗func(sys*cpu)eval(){switchopcode{case0x80:sys.add(sys.b)case0x81:sys.add(sys.c)etc}}或者类似的东西varfnTable=[]func(*cpu){0x80:func(sys*cpu){sys.add(sys.b)},0x81:func(sys*cpu){sys.add(sys.c)}}func(sys*cpu)eval(){ret
我正在用go编写一个简单的模拟器(我应该?还是应该回到c?)。无论如何,我正在获取指令并对其进行解码。此时我有一个类似0x81的字节,我必须执行正确的函数。我应该有这样的东西吗func(sys*cpu)eval(){switchopcode{case0x80:sys.add(sys.b)case0x81:sys.add(sys.c)etc}}或者类似的东西varfnTable=[]func(*cpu){0x80:func(sys*cpu){sys.add(sys.b)},0x81:func(sys*cpu){sys.add(sys.c)}}func(sys*cpu)eval(){ret
我正在尝试制作gameboy模拟器,但它的播放速度比应有的快。这是我在主循环中使用的计时代码。if(cpu.T>=CLOCKSPEED/40)//ifmorethan1/40thofcyclespassed{//GetmillisecondspassedQueryPerformanceCounter(&EndCounter);unsignedlonglongcounter=EndCounter.QuadPart-LastCounter.QuadPart;MSperFrame=1000.0f*((double)counter/(double)PerfCountFrequency);Las