From 1095cbe26cb70ba2f3d7ef1a5f88e7fb9b0924d3 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Mon, 10 Aug 2020 09:38:24 +0900 Subject: [PATCH] so much framerate wow --- src/net/torvald/tsvm/vdc/V2kRunTest.kt | 2 +- src/net/torvald/tsvm/vdc/Videotron2K.kt | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/net/torvald/tsvm/vdc/V2kRunTest.kt b/src/net/torvald/tsvm/vdc/V2kRunTest.kt index 234e423..4528d0e 100644 --- a/src/net/torvald/tsvm/vdc/V2kRunTest.kt +++ b/src/net/torvald/tsvm/vdc/V2kRunTest.kt @@ -65,7 +65,7 @@ class V2kRunTest(val appConfig: LwjglApplicationConfiguration) : ApplicationAdap private var updateRate = 1f / 60f override fun render() { - Gdx.graphics.setTitle("${AppLoader.appTitle} $EMDASH F: ${Gdx.graphics.framesPerSecond}") + Gdx.graphics.setTitle("${AppLoader.appTitle} $EMDASH F: ${Gdx.graphics.framesPerSecond} $EMDASH VF: ${(1.0 / vdc.statsFrameTime).toInt()}") super.render() diff --git a/src/net/torvald/tsvm/vdc/Videotron2K.kt b/src/net/torvald/tsvm/vdc/Videotron2K.kt index f1aec0b..1a3f5d1 100644 --- a/src/net/torvald/tsvm/vdc/Videotron2K.kt +++ b/src/net/torvald/tsvm/vdc/Videotron2K.kt @@ -119,7 +119,10 @@ class Videotron2K(var gpu: GraphicsAdapter?) { internal var variableMap = HashMap() // VarId with VARIABLE_PREFIX, Integer-value internal var sleepLatch = false + // statistics stuffs internal var performanceCounterTmr = 0L + var statsFrameTime = 0.0 // in seconds + internal set fun resetVarIdTable() { varIdTable.clear() @@ -508,7 +511,7 @@ object Command { instance.sleepLatch = true val timeTook = (System.nanoTime() - instance.performanceCounterTmr).toDouble() - println("Frame time: ${timeTook / 1000000.0} ms (fps: ${1000000000.0 / timeTook})") + instance.statsFrameTime = timeTook / 1000000000.0 instance.performanceCounterTmr = System.nanoTime() } instSet[CMP shr 3] = { instance, args -> // CMP rA rB rC @@ -525,8 +528,9 @@ object Command { val width = instance.variableMap[Videotron2K.VARIABLE_WIDTH]!! val memAddr = py * width + px - args.forEachIndexed { index, value -> - instance.gpu?.poke(memAddr.toLong() + index, value.toByte()) + args.forEachIndexed { index, variable -> + val value = resolveVar(instance, variable).toByte() + instance.gpu?.poke(memAddr.toLong() + index, value) } // write back auto-incremented value