mirror of
https://github.com/curioustorvald/tsvm.git
synced 2026-03-07 19:51:51 +09:00
assets are no longer required to be under ./assets/
This commit is contained in:
@@ -108,7 +108,7 @@ class VMGUI(val loaderInfo: EmulInstance, val viewportWidth: Int, val viewportHe
|
|||||||
Gdx.input.inputProcessor = vm.getIO()
|
Gdx.input.inputProcessor = vm.getIO()
|
||||||
|
|
||||||
|
|
||||||
vmRunner = VMRunnerFactory(vm, "js")
|
vmRunner = VMRunnerFactory("./assets", vm, "js")
|
||||||
coroutineJob = GlobalScope.launch {
|
coroutineJob = GlobalScope.launch {
|
||||||
vmRunner.executeCommand(vm.roms[0]!!.readAll())
|
vmRunner.executeCommand(vm.roms[0]!!.readAll())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ object VMRunnerFactory {
|
|||||||
|
|
||||||
private var firstTime = true
|
private var firstTime = true
|
||||||
|
|
||||||
operator fun invoke(vm: VM, extension: String): VMRunner {
|
operator fun invoke(assetsRoot: String, vm: VM, extension: String): VMRunner {
|
||||||
|
|
||||||
if (firstTime) {
|
if (firstTime) {
|
||||||
firstTime = false
|
firstTime = false
|
||||||
@@ -66,7 +66,7 @@ object VMRunnerFactory {
|
|||||||
bind.putMember("com", SerialHelperDelegate(vm))
|
bind.putMember("com", SerialHelperDelegate(vm))
|
||||||
bind.putMember("dma", DMADelegate(vm))
|
bind.putMember("dma", DMADelegate(vm))
|
||||||
|
|
||||||
val fr = FileReader("./assets/JS_INIT.js")
|
val fr = FileReader("$assetsRoot/JS_INIT.js")
|
||||||
val prg = fr.readText()
|
val prg = fr.readText()
|
||||||
fr.close()
|
fr.close()
|
||||||
context.eval("js", sanitiseJS(prg))
|
context.eval("js", sanitiseJS(prg))
|
||||||
|
|||||||
@@ -7,13 +7,13 @@ import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.toUlong
|
|||||||
import net.torvald.tsvm.TextureRegionPack
|
import net.torvald.tsvm.TextureRegionPack
|
||||||
import net.torvald.tsvm.VM
|
import net.torvald.tsvm.VM
|
||||||
|
|
||||||
class CharacterLCDdisplay(vm: VM) : GraphicsAdapter(vm, AdapterConfig(
|
class CharacterLCDdisplay(assetsRoot: String, vm: VM) : GraphicsAdapter(vm, AdapterConfig(
|
||||||
"pmlcd_inverted", 240, 64, 40, 8, 253, 255, 262144L, "lcd2.png", 0.7f, TEXT_TILING_SHADER_LCD, DRAW_SHADER_FRAG_LCD, 2f
|
"pmlcd_inverted", 240, 64, 40, 8, 253, 255, 262144L, "lcd2.png", 0.7f, TEXT_TILING_SHADER_LCD, DRAW_SHADER_FRAG_LCD, 2f
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
|
|
||||||
private val machine = Texture("./assets/4008_portable_full.png")
|
private val machine = Texture("$assetsRoot/4008_portable_full.png")
|
||||||
private val lcdFont = TextureRegionPack(Texture("./assets/lcd.png"), 12, 16)
|
private val lcdFont = TextureRegionPack(Texture("$assetsRoot/lcd.png"), 12, 16)
|
||||||
|
|
||||||
/*override fun peek(addr: Long): Byte? {
|
/*override fun peek(addr: Long): Byte? {
|
||||||
return when (addr) {
|
return when (addr) {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import net.torvald.tsvm.VM
|
|||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
import java.io.OutputStream
|
import java.io.OutputStream
|
||||||
|
|
||||||
class TTY(val vm: VM) : GlassTty(TEXT_ROWS, TEXT_COLS), PeriBase {
|
class TTY(assetsRoot: String, val vm: VM) : GlassTty(TEXT_ROWS, TEXT_COLS), PeriBase {
|
||||||
|
|
||||||
override val typestring = VM.PERITYPE_GPU_AND_TERM
|
override val typestring = VM.PERITYPE_GPU_AND_TERM
|
||||||
|
|
||||||
@@ -15,7 +15,7 @@ class TTY(val vm: VM) : GlassTty(TEXT_ROWS, TEXT_COLS), PeriBase {
|
|||||||
const val TEXT_COLS = 80
|
const val TEXT_COLS = 80
|
||||||
}
|
}
|
||||||
|
|
||||||
private val chrrom = Texture("./assets/tty.png")
|
private val chrrom = Texture("$assetsRoot/tty.png")
|
||||||
private val textBuffer = UnsafeHelper.allocate(TEXT_ROWS * TEXT_COLS * 2L)
|
private val textBuffer = UnsafeHelper.allocate(TEXT_ROWS * TEXT_COLS * 2L)
|
||||||
override var rawCursorPos = 0
|
override var rawCursorPos = 0
|
||||||
|
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ import net.torvald.tsvm.VM
|
|||||||
import net.torvald.tsvm.kB
|
import net.torvald.tsvm.kB
|
||||||
import kotlin.math.absoluteValue
|
import kotlin.math.absoluteValue
|
||||||
|
|
||||||
open class TexticsAdapterBase(vm: VM, config: AdapterConfig) : GraphicsAdapter(vm, config) {
|
open class TexticsAdapterBase(assetsRoot: String, vm: VM, config: AdapterConfig) : GraphicsAdapter(vm, config) {
|
||||||
|
|
||||||
private val crtGradTex = Texture("./assets/crt_grad.png")
|
private val crtGradTex = Texture("$assetsRoot/crt_grad.png")
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
val crtColor = hashMapOf(
|
val crtColor = hashMapOf(
|
||||||
@@ -64,7 +64,7 @@ open class TexticsAdapterBase(vm: VM, config: AdapterConfig) : GraphicsAdapter(v
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Term(vm: VM) : TexticsAdapterBase(vm, AdapterConfig(
|
class Term(assetsRoot: String, vm: VM) : TexticsAdapterBase(assetsRoot, vm, AdapterConfig(
|
||||||
"crt_white",
|
"crt_white",
|
||||||
720,
|
720,
|
||||||
480,
|
480,
|
||||||
@@ -78,7 +78,7 @@ class Term(vm: VM) : TexticsAdapterBase(vm, AdapterConfig(
|
|||||||
GraphicsAdapter.TEXT_TILING_SHADER_MONOCHROME
|
GraphicsAdapter.TEXT_TILING_SHADER_MONOCHROME
|
||||||
))
|
))
|
||||||
|
|
||||||
class WpTerm(vm: VM) : TexticsAdapterBase(vm, AdapterConfig(
|
class WpTerm(assetsRoot: String, vm: VM) : TexticsAdapterBase(assetsRoot, vm, AdapterConfig(
|
||||||
"crt_amber",
|
"crt_amber",
|
||||||
810,
|
810,
|
||||||
360,
|
360,
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ class VMGUI(val loaderInfo: EmulInstance, val viewportWidth: Int, val viewportHe
|
|||||||
if (usememvwr) memvwr = Memvwr(vm)
|
if (usememvwr) memvwr = Memvwr(vm)
|
||||||
|
|
||||||
|
|
||||||
vmRunner = VMRunnerFactory(vm, "js")
|
vmRunner = VMRunnerFactory("./assets", vm, "js")
|
||||||
coroutineJob = GlobalScope.launch {
|
coroutineJob = GlobalScope.launch {
|
||||||
vmRunner.executeCommand(vm.roms[0]!!.readAll())
|
vmRunner.executeCommand(vm.roms[0]!!.readAll())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user