diff --git a/TerranBASICexecutable/src/net/torvald/tsvm/VMGUI.kt b/TerranBASICexecutable/src/net/torvald/tsvm/VMGUI.kt index 4b24884..4564d97 100644 --- a/TerranBASICexecutable/src/net/torvald/tsvm/VMGUI.kt +++ b/TerranBASICexecutable/src/net/torvald/tsvm/VMGUI.kt @@ -108,7 +108,7 @@ class VMGUI(val loaderInfo: EmulInstance, val viewportWidth: Int, val viewportHe Gdx.input.inputProcessor = vm.getIO() - vmRunner = VMRunnerFactory(vm, "js") + vmRunner = VMRunnerFactory("./assets", vm, "js") coroutineJob = GlobalScope.launch { vmRunner.executeCommand(vm.roms[0]!!.readAll()) } diff --git a/tsvm_core/src/net/torvald/tsvm/VMRunnerFactory.kt b/tsvm_core/src/net/torvald/tsvm/VMRunnerFactory.kt index 2bb80de..5635b8d 100644 --- a/tsvm_core/src/net/torvald/tsvm/VMRunnerFactory.kt +++ b/tsvm_core/src/net/torvald/tsvm/VMRunnerFactory.kt @@ -15,7 +15,7 @@ object VMRunnerFactory { private var firstTime = true - operator fun invoke(vm: VM, extension: String): VMRunner { + operator fun invoke(assetsRoot: String, vm: VM, extension: String): VMRunner { if (firstTime) { firstTime = false @@ -66,7 +66,7 @@ object VMRunnerFactory { bind.putMember("com", SerialHelperDelegate(vm)) bind.putMember("dma", DMADelegate(vm)) - val fr = FileReader("./assets/JS_INIT.js") + val fr = FileReader("$assetsRoot/JS_INIT.js") val prg = fr.readText() fr.close() context.eval("js", sanitiseJS(prg)) diff --git a/tsvm_core/src/net/torvald/tsvm/peripheral/CharacterLCDdisplay.kt b/tsvm_core/src/net/torvald/tsvm/peripheral/CharacterLCDdisplay.kt index fa09544..39cb421 100644 --- a/tsvm_core/src/net/torvald/tsvm/peripheral/CharacterLCDdisplay.kt +++ b/tsvm_core/src/net/torvald/tsvm/peripheral/CharacterLCDdisplay.kt @@ -7,13 +7,13 @@ import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.toUlong import net.torvald.tsvm.TextureRegionPack 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 ) ) { - private val machine = Texture("./assets/4008_portable_full.png") - private val lcdFont = TextureRegionPack(Texture("./assets/lcd.png"), 12, 16) + private val machine = Texture("$assetsRoot/4008_portable_full.png") + private val lcdFont = TextureRegionPack(Texture("$assetsRoot/lcd.png"), 12, 16) /*override fun peek(addr: Long): Byte? { return when (addr) { diff --git a/tsvm_core/src/net/torvald/tsvm/peripheral/TTY.kt b/tsvm_core/src/net/torvald/tsvm/peripheral/TTY.kt index b8fdca9..e76da81 100644 --- a/tsvm_core/src/net/torvald/tsvm/peripheral/TTY.kt +++ b/tsvm_core/src/net/torvald/tsvm/peripheral/TTY.kt @@ -6,7 +6,7 @@ import net.torvald.tsvm.VM import java.io.InputStream 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 @@ -15,7 +15,7 @@ class TTY(val vm: VM) : GlassTty(TEXT_ROWS, TEXT_COLS), PeriBase { 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) override var rawCursorPos = 0 diff --git a/tsvm_core/src/net/torvald/tsvm/peripheral/TexticsAdapter.kt b/tsvm_core/src/net/torvald/tsvm/peripheral/TexticsAdapter.kt index 069b779..6c23d09 100644 --- a/tsvm_core/src/net/torvald/tsvm/peripheral/TexticsAdapter.kt +++ b/tsvm_core/src/net/torvald/tsvm/peripheral/TexticsAdapter.kt @@ -8,9 +8,9 @@ import net.torvald.tsvm.VM import net.torvald.tsvm.kB 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 { 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", 720, 480, @@ -78,7 +78,7 @@ class Term(vm: VM) : TexticsAdapterBase(vm, AdapterConfig( GraphicsAdapter.TEXT_TILING_SHADER_MONOCHROME )) -class WpTerm(vm: VM) : TexticsAdapterBase(vm, AdapterConfig( +class WpTerm(assetsRoot: String, vm: VM) : TexticsAdapterBase(assetsRoot, vm, AdapterConfig( "crt_amber", 810, 360, diff --git a/tsvm_executable/src/net/torvald/tsvm/VMGUI.kt b/tsvm_executable/src/net/torvald/tsvm/VMGUI.kt index b187f36..81b29f3 100644 --- a/tsvm_executable/src/net/torvald/tsvm/VMGUI.kt +++ b/tsvm_executable/src/net/torvald/tsvm/VMGUI.kt @@ -122,7 +122,7 @@ class VMGUI(val loaderInfo: EmulInstance, val viewportWidth: Int, val viewportHe if (usememvwr) memvwr = Memvwr(vm) - vmRunner = VMRunnerFactory(vm, "js") + vmRunner = VMRunnerFactory("./assets", vm, "js") coroutineJob = GlobalScope.launch { vmRunner.executeCommand(vm.roms[0]!!.readAll()) }