diff --git a/assets/lcd2.png b/assets/lcd2.png new file mode 100644 index 0000000..9751fbb Binary files /dev/null and b/assets/lcd2.png differ diff --git a/src/net/torvald/tsvm/peripheral/CharacterLCDdisplay.kt b/src/net/torvald/tsvm/peripheral/CharacterLCDdisplay.kt index fb3abdf..3d2dd6e 100644 --- a/src/net/torvald/tsvm/peripheral/CharacterLCDdisplay.kt +++ b/src/net/torvald/tsvm/peripheral/CharacterLCDdisplay.kt @@ -6,7 +6,7 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.tsvm.VM class CharacterLCDdisplay(vm: VM) : GraphicsAdapter(vm, AdapterConfig( - "pmlcd_inverted", 480, 128, 40, 8, 249, 255, 262144L, "lcd.png", 0.7f, TEXT_TILING_SHADER_LCD, DRAW_SHADER_FRAG_LCD + "pmlcd_inverted", 240, 64, 40, 8, 249, 255, 262144L, "lcd2.png", 0.7f, TEXT_TILING_SHADER_LCD, DRAW_SHADER_FRAG_LCD, 2f ) ) { diff --git a/src/net/torvald/tsvm/peripheral/GraphicsAdapter.kt b/src/net/torvald/tsvm/peripheral/GraphicsAdapter.kt index fbc9352..61a66d4 100644 --- a/src/net/torvald/tsvm/peripheral/GraphicsAdapter.kt +++ b/src/net/torvald/tsvm/peripheral/GraphicsAdapter.kt @@ -27,7 +27,9 @@ data class AdapterConfig( val chrRomPath: String, val decay: Float, val fragShader: String, - val paletteShader: String = DRAW_SHADER_FRAG + val paletteShader: String = DRAW_SHADER_FRAG, + val drawScale: Float = 1f, + val scaleFiltered: Boolean = false, ) data class SuperGraphicsAddonConfig( @@ -755,7 +757,11 @@ open class GraphicsAdapter(val vm: VM, val config: AdapterConfig, val sgr: Super blendNormal(uiBatch) uiBatch.color = Color.WHITE - uiBatch.draw(outFBOregion[1], xoff, HEIGHT.toFloat() + yoff, WIDTH.toFloat(), -HEIGHT.toFloat()) + outFBOregion[1].texture.setFilter( + if (config.scaleFiltered) Texture.TextureFilter.Linear else Texture.TextureFilter.Nearest, + if (config.scaleFiltered) Texture.TextureFilter.Linear else Texture.TextureFilter.Nearest + ) + uiBatch.draw(outFBOregion[1], xoff, HEIGHT * config.drawScale + yoff, WIDTH * config.drawScale, -HEIGHT * config.drawScale) }