diff --git a/cp437_fira_code.png b/cp437_fira_code.png index bcec388..2618ae2 100644 Binary files a/cp437_fira_code.png and b/cp437_fira_code.png differ diff --git a/hp2640.kra b/hp2640.kra new file mode 100644 index 0000000..f26607e --- /dev/null +++ b/hp2640.kra @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78f4d7b94986c53b58b7ab73ca0aefcf50b220ced1f9b78845348213c32bb843 +size 188752 diff --git a/hp2640.png b/hp2640.png new file mode 100644 index 0000000..d0362cd Binary files /dev/null and b/hp2640.png differ diff --git a/src/net/torvald/tsvm/AppLoader.java b/src/net/torvald/tsvm/AppLoader.java index abda740..3703ea3 100644 --- a/src/net/torvald/tsvm/AppLoader.java +++ b/src/net/torvald/tsvm/AppLoader.java @@ -22,8 +22,8 @@ public class AppLoader { appConfig.resizable = false; appConfig.title = appTitle; appConfig.forceExit = true; - appConfig.width = 960;//560; - appConfig.height = 400;//448; + appConfig.width = 720;//560; + appConfig.height = 375;//448; // val vm = VM(64.kB(), TheRealWorld(), arrayOf(GenericBios)) diff --git a/src/net/torvald/tsvm/VMGUI.kt b/src/net/torvald/tsvm/VMGUI.kt index c8cda99..e5bb65a 100644 --- a/src/net/torvald/tsvm/VMGUI.kt +++ b/src/net/torvald/tsvm/VMGUI.kt @@ -33,9 +33,9 @@ class VMGUI(val vm: VM, val appConfig: LwjglApplicationConfiguration) : Applicat override fun create() { super.create() - //gpu = TexticsAdapter(vm, theme = GraphicsAdapter.THEME_COLORCRT) //gpu = GraphicsAdapter(vm, GraphicsAdapter.DEFAULT_CONFIG_COLOR_CRT) - gpu = CharacterLCDdisplay(vm) + gpu = TexticsAdapter(vm) + //gpu = CharacterLCDdisplay(vm) vm.peripheralTable[1] = PeripheralEntry( VM.PERITYPE_GPU_AND_TERM, diff --git a/src/net/torvald/tsvm/peripheral/GraphicsAdapter.kt b/src/net/torvald/tsvm/peripheral/GraphicsAdapter.kt index 596d554..5680f18 100644 --- a/src/net/torvald/tsvm/peripheral/GraphicsAdapter.kt +++ b/src/net/torvald/tsvm/peripheral/GraphicsAdapter.kt @@ -153,9 +153,11 @@ open class GraphicsAdapter(val vm: VM, val config: AdapterConfig) : spriteAndTextArea[k + memTextOffset] = 0 } - unusedArea[0] = 2 - unusedArea[1] = 3 - unusedArea[2] = 4 + if (theme.contains("color")) { + unusedArea[0] = 2 + unusedArea[1] = 3 + unusedArea[2] = 4 + } setCursorPos(0, 0) @@ -882,8 +884,6 @@ uniform vec2 tilesInAtlas = ivec2(16.0, 16.0); uniform vec2 atlasTexSize = ivec2(128.0, 224.0); vec2 tileSizeInPx = atlasTexSize / tilesInAtlas; // should be like ivec2(16, 16) -float fontGamma = 1.8; - ivec2 getTileXY(int tileNumber) { return ivec2(tileNumber % int(tilesInAtlas.x), tileNumber / int(tilesInAtlas.x)); } @@ -899,15 +899,6 @@ int getTileFromColor(vec4 color) { return _colToInt(color) & 0xFFFFF; } -vec4 fontMix(vec4 zero, vec4 one, float scale) { - return vec4(zero.r * (1 - pow(scale, fontGamma)) + one.r * pow(scale, fontGamma), - zero.g * (1 - pow(scale, fontGamma)) + one.g * pow(scale, fontGamma), - zero.b * (1 - pow(scale, fontGamma)) + one.b * pow(scale, fontGamma), - zero.a * (1 - pow(scale, fontGamma)) + one.a * pow(scale, fontGamma) - ); -} - - void main() { // READ THE FUCKING MANUAL, YOU DONKEY !! // @@ -945,7 +936,7 @@ void main() { // apply colour. I'm expecting FONT ROM IMAGE to be greyscale // TODO non-linear mix with gamma 2.2 - gl_FragColor = fontMix(backColFromMap, foreColFromMap, tileCol.r); + gl_FragColor = mix(backColFromMap, foreColFromMap, tileCol.r); } """.trimIndent() diff --git a/src/net/torvald/tsvm/peripheral/TexticsAdapter.kt b/src/net/torvald/tsvm/peripheral/TexticsAdapter.kt index ef123f4..5499728 100644 --- a/src/net/torvald/tsvm/peripheral/TexticsAdapter.kt +++ b/src/net/torvald/tsvm/peripheral/TexticsAdapter.kt @@ -5,18 +5,30 @@ import com.badlogic.gdx.graphics.Texture import net.torvald.tsvm.VM import net.torvald.tsvm.kB -class TexticsAdapter(vm: VM, theme: String) : GraphicsAdapter(vm, AdapterConfig( - "crt_green", +class TexticsAdapter(vm: VM) : GraphicsAdapter(vm, AdapterConfig( + "crt", + 720, + 375, + 80, + 25, + 254, + 255, + 256.kB(), + "./hp2640.png", + 0.32f +)) { +/*class TexticsAdapter(vm: VM) : GraphicsAdapter(vm, AdapterConfig( + "crt_color", 560, 448, 80, 32, - 239, - 0, + 254, + 255, 256.kB(), "./cp437_fira_code.png", - 0.7f -)) { + 0.64f +)) {*/ override fun peek(addr: Long): Byte? { return when (addr) {