diff --git a/README.md b/README.md
index 8843f7a..8e68612 100644
--- a/README.md
+++ b/README.md
@@ -1,33 +1,55 @@
-# Tromi (MOBILE port)
+# Tromi (ANDROID port)
A old-fashioned but modern block-stacking game. Made with love by [mycophobia](https://mycophobia.org/tromi).
-Ported to Android by SweetSea with on-screen control (with some necessary changes)
+Ported to Android (mobile and TV) by SweetSea with on-screen control (with some necessary changes)
# How to play
> :warning: There is no Android build (aka APK file) right now. If you see any pre-built APK files on the internet. Please be aware
-## Install
+## For mobile
+### Install
1. Download Tromi from [Releases tab](https://gitea.com/SweetSea-ButImNotSweet/tromi_mobile/releases) and place ``tromi_mobile.love`` to somewhere you can easy to navigate
2. Download [love2d engine](https://love2d.org) (You should get 11.5 or above)
3. Install love2d engine (extra steps may require, you can read [this article from WikiHow](https://www.wikihow.com/Install-APK-Files-on-Android) if this is the first time for you to install app from APK file)
4. Now, press Home (or back to app launcher), you can see two icons: ``LÖVE for Android`` and ``LÖVE Launcher``. You should use the ``LÖVE Launcher`` to launch Tromi
-## Launch
+### Launch
1. Launch ``LÖVE Launcher``, an file picker will appear
2. Navigate to where you put the bare ``tromi_mobile.love``
3. Pick the file and enjoy
+## For TV
+> :warning: Before telling you how to, I have something to tell you.
+> I don't really encourage you to play Tromi on TV if you ***don't want*** your electricity bill to skyrocket as if to punch you in the face.
+> If you can, **plug in a keyboard or gamepad** and play the original Tromi instead of this one.
+> You can still use the remote, but remember that the remote ***is not designed for gaming***. And if you lose before the speed reaches 20G, I earnestly beg you ***not to throw the remote at your precious TV and then curse me because your performance is worse than when playing on the keyboard***.
+### Install
+1. Install this file manager on your TV: https://play.google.com/store/apps/details?id=com.alphainventor.filemanager. After installing you should see [this icon](https://play-lh.googleusercontent.com/9PzlG2XGr5sQDf5925tlZhqluOreI2cwzp-FOZiuj545Kt1Gk5EE9J4IdGsD7e5xWw=w240-h480-rw)
+2. Opening the app, click on ``Access from...`` (network/other devices/etc...)
+3. Now, on another devices, download both Tromi and love2d (like on mobile)
+4. Transferring 2 downloaded files to TV
+5. Install love2d app
+6. *(Only first time)*, open the ``tromi_mobile.love``. When the file manager asks for opening the file as what. Choose ``Other``, then pick ``LÖVE for Android`` and click ``Always``
+
+### Launch
+Navigate to where you put ``tromi_mobile.love`` in the File manager (the one you downloaded from the link in Install part), just opening and Tromi should be launched.
+
# Differences from original Tromi
> This is required, to follow the used license (GNU GPL v3)
* No differences in gameplay
* Files will be saved into ``Android/data/org.love2d.android/tromi_mobile`` instead the location where the game files in
+* Add ``simple-button`` module, made by SweetSea
* All UIs are touch-able
+* Add on-screen buttons
+* Replaced icons for 3 direction buttons (Left, Down, Right)
+
* Add a special pre-made keybind for Android TV (only supports TV models have their remote has numerical area (0-9))
* Changes the way to input secret code to activate Pentominoes mode
To insert the left arrow, tap on the left, so does to right arrow.
* Add a loading screen (this need to be updated later)
-* Replaced ``binser`` serializer with ``bitser`` serializer (IDK why it is failed when saving, this change ***make configuration and profile files cannot be imported back to original Tromi***, except replay)
+* Update ``binser`` library, this fixes some weird bugs related to saving
+* Replaced old Cambridge's ``config`` module with the new one inspired by "the sequel of Techmino"s ``SETTINGS`` module
# TODO
- [ ] Add a way to export replay for Android > 11
-- [ ] Revert ``bitser`` with ``binser`` (if and only if I can make it works)
+- [x] Revert ``bitser`` with ``binser`` (if and only if I can make it works)
- [ ] Design a new on-screen buttons skin (the current one is come from [C₂₉H₂₅N₃O₅](https://github.com/C29H25N3O5), I am aware that it's not fit to Tromi's design language)
- [ ] (Low priority) Design a new menu screen
diff --git a/game/gamemode.lua b/game/gamemode.lua
index ff10aef..838f5cf 100644
--- a/game/gamemode.lua
+++ b/game/gamemode.lua
@@ -921,19 +921,19 @@ end
function GameMode:drawInputDisplay(left, top)
if self.replay_inputs[self.frames] ~= nil then
- drawText("·", left+10, top+8, 1000, "left")
- drawText("↓", left+10, top+18, 1000, "left",{1-boolToInt(self.replay_inputs[self.frames]['down']),1,1-boolToInt(self.replay_inputs[self.frames]['down']),1})
- drawText("←", left, top+8, 1000, "left",{1-boolToInt(self.replay_inputs[self.frames]['left']),1,1-boolToInt(self.replay_inputs[self.frames]['left']),1})
- drawText("→", left+20, top+8, 1000, "left",{1-boolToInt(self.replay_inputs[self.frames]['right']),1,1-boolToInt(self.replay_inputs[self.frames]['right']),1})
+ drawText("+", left+10, top+8, 1000, "left")
+ drawText("▼", left+10, top+18, 1000, "left",{1-boolToInt(self.replay_inputs[self.frames]['down']),1,1-boolToInt(self.replay_inputs[self.frames]['down']),1})
+ drawText("◀", left, top+8, 1000, "left",{1-boolToInt(self.replay_inputs[self.frames]['left']),1,1-boolToInt(self.replay_inputs[self.frames]['left']),1})
+ drawText("▶", left+20, top+8, 1000, "left",{1-boolToInt(self.replay_inputs[self.frames]['right']),1,1-boolToInt(self.replay_inputs[self.frames]['right']),1})
drawText("L", left+35, top+8, 1000, "left",{1-boolToInt(self.replay_inputs[self.frames]['rotate_left']),1,1-boolToInt(self.replay_inputs[self.frames]['rotate_left']),1})
drawText("R", left+50, top+8, 1000, "left",{1-boolToInt(self.replay_inputs[self.frames]['rotate_right']),1,1-boolToInt(self.replay_inputs[self.frames]['rotate_right']),1})
drawText("L", left+65, top+8, 1000, "left",{1-boolToInt(self.replay_inputs[self.frames]['rotate_left2']),1,1-boolToInt(self.replay_inputs[self.frames]['rotate_left2']),1})
drawText("R", left+80, top+8, 1000, "left",{1-boolToInt(self.replay_inputs[self.frames]['rotate_right2']),1,1-boolToInt(self.replay_inputs[self.frames]['rotate_right2']),1})
else
- drawText("·", left+10, top+8, 1000, "left")
- drawText("↓", left+10, top+18, 1000, "left")
- drawText("←", left, top+8, 1000, "left")
- drawText("→", left+20, top+8, 1000, "left")
+ drawText("+", left+10, top+8, 1000, "left")
+ drawText("▼", left+10, top+18, 1000, "left")
+ drawText("◀", left, top+8, 1000, "left")
+ drawText("▶", left+20, top+8, 1000, "left")
drawText("L", left+35, top+8, 1000, "left")
drawText("R", left+50, top+8, 1000, "left")
drawText("L", left+65, top+8, 1000, "left")
diff --git a/screenshot/Replay screen differences.png b/screenshot/Replay screen differences.png
new file mode 100644
index 0000000..1222155
Binary files /dev/null and b/screenshot/Replay screen differences.png differ
diff --git a/screenshot/SPOILER_tv_code.png b/screenshot/SPOILER_tv_code.png
index d2ccac5..c6767f1 100644
Binary files a/screenshot/SPOILER_tv_code.png and b/screenshot/SPOILER_tv_code.png differ