mirror of
https://github.com/curioustorvald/tsvm.git
synced 2026-06-11 07:14:04 +09:00
working lua test code
This commit is contained in:
@@ -37,6 +37,9 @@ class VMGUI(val appConfig: LwjglApplicationConfiguration) : ApplicationAdapter()
|
|||||||
batch.projectionMatrix = camera.combined
|
batch.projectionMatrix = camera.combined
|
||||||
Gdx.gl20.glViewport(0, 0, appConfig.width, appConfig.height)
|
Gdx.gl20.glViewport(0, 0, appConfig.width, appConfig.height)
|
||||||
|
|
||||||
|
|
||||||
|
// TEST LUA PRG
|
||||||
|
vmLua.lua.load(gpuTestPalette).call()
|
||||||
}
|
}
|
||||||
|
|
||||||
private var updateAkku = 0.0
|
private var updateAkku = 0.0
|
||||||
@@ -61,30 +64,29 @@ class VMGUI(val appConfig: LwjglApplicationConfiguration) : ApplicationAdapter()
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun updateGame(delta: Float) {
|
private fun updateGame(delta: Float) {
|
||||||
paintTestPalette()
|
//paintTestPalette()
|
||||||
|
|
||||||
//vmLua.lua.load(gpuTestPalette).call()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun paintTestPalette() {
|
private fun paintTestPalette() {
|
||||||
val peripheralSlot = vm.findPeribyType(VM.PERITYPE_GRAPHICS)!!
|
val peripheralSlot = vm.findPeribyType(VM.PERITYPE_GRAPHICS)!!
|
||||||
|
val hwoff = VM.HW_RESERVE_SIZE * peripheralSlot
|
||||||
|
|
||||||
for (y in 0 until 360) {
|
for (y in 0 until 360) {
|
||||||
for (x in 0 until GraphicsAdapter.WIDTH) {
|
for (x in 0 until GraphicsAdapter.WIDTH) {
|
||||||
val palnum = 20 * (y / (360 / 12)) + (x / (GraphicsAdapter.WIDTH / 20))
|
val palnum = 20 * (y / 30) + (x / (GraphicsAdapter.WIDTH / 20))
|
||||||
vm.poke(-(y.toLong() * GraphicsAdapter.WIDTH + x + 1) - VM.HW_RESERVE_SIZE * peripheralSlot, palnum.toByte())
|
vm.poke(-(y.toLong() * GraphicsAdapter.WIDTH + x + 1) - hwoff, palnum.toByte())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (y in 360 until GraphicsAdapter.HEIGHT) {
|
for (y in 360 until GraphicsAdapter.HEIGHT) {
|
||||||
for (x in 0 until GraphicsAdapter.WIDTH) {
|
for (x in 0 until GraphicsAdapter.WIDTH) {
|
||||||
val palnum = 240 + (x / (GraphicsAdapter.WIDTH / 16))
|
val palnum = 240 + (x / 35)
|
||||||
vm.poke(-(y.toLong() * GraphicsAdapter.WIDTH + x + 1) - VM.HW_RESERVE_SIZE * peripheralSlot, palnum.toByte())
|
vm.poke(-(y.toLong() * GraphicsAdapter.WIDTH + x + 1) - hwoff, palnum.toByte())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
vm.poke(-262143L - VM.HW_RESERVE_SIZE * peripheralSlot, Math.random().times(255.0).toByte())
|
vm.poke(-262143L - hwoff, Math.random().times(255.0).toByte())
|
||||||
vm.poke(-262144L - VM.HW_RESERVE_SIZE * peripheralSlot, Math.random().times(255.0).toByte())
|
vm.poke(-262144L - hwoff, Math.random().times(255.0).toByte())
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,24 +94,24 @@ class VMGUI(val appConfig: LwjglApplicationConfiguration) : ApplicationAdapter()
|
|||||||
local vm = require("rawmem")
|
local vm = require("rawmem")
|
||||||
local w = 560
|
local w = 560
|
||||||
local h = 448
|
local h = 448
|
||||||
local peripheral_slot = 1
|
local hwoff = 1048576
|
||||||
|
|
||||||
for y = 0, 359 do
|
for y = 0, 359 do
|
||||||
for x = 0, w - 1 do
|
for x = 0, w - 1 do
|
||||||
palnum = 20 * (y / (360 / 12)) + (x / (w / 20))
|
palnum = 20 * math.floor(y / 30) + math.floor(x / 28)
|
||||||
vm.poke(-(y * w + x + 1) - 1048576 * peripheral_slot, palnum)
|
vm.poke(-(y * w + x + 1) - hwoff, palnum)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
for y = 360, h - 1 do
|
for y = 360, h - 1 do
|
||||||
for x = 0, w - 1 do
|
for x = 0, w - 1 do
|
||||||
palnum = 240 + (x / (w / 16))
|
palnum = 240 + (x / 35)
|
||||||
vm.poke(-(y * w + x + 1) - 1048576 * peripheral_slot, palnum)
|
vm.poke(-(y * w + x + 1) - hwoff, palnum)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
vm.poke(-262143 - 1048576 * peripheral_slot, math.floor(math.random() * 255.0))
|
vm.poke(-262143 - hwoff, math.floor(math.random() * 255.0))
|
||||||
vm.poke(-262144 - 1048576 * peripheral_slot, math.floor(math.random() * 255.0))
|
vm.poke(-262144 - hwoff, math.floor(math.random() * 255.0))
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
|
|
||||||
private fun renderGame() {
|
private fun renderGame() {
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
package net.torvald.tsvm.firmware
|
package net.torvald.tsvm.firmware
|
||||||
|
|
||||||
import net.torvald.UnsafePtr
|
|
||||||
import net.torvald.tsvm.VM
|
import net.torvald.tsvm.VM
|
||||||
import net.torvald.tsvm.kB
|
import net.torvald.tsvm.kB
|
||||||
import net.torvald.tsvm.peripheral.PeriBase
|
|
||||||
import org.luaj.vm2.LuaTable
|
import org.luaj.vm2.LuaTable
|
||||||
import org.luaj.vm2.LuaValue
|
import org.luaj.vm2.LuaValue
|
||||||
import org.luaj.vm2.lib.OneArgFunction
|
import org.luaj.vm2.lib.OneArgFunction
|
||||||
|
|||||||
Reference in New Issue
Block a user