Log In  

πŸ„ΏπŸ„ΈπŸ„²πŸ„ΎπŸ„ΏπŸ„·πŸ„ΎπŸ„½πŸ„΄

PicoPhone is a lightweight open-source multi tool widget designed to run in Picotron's desktop2 and to use as less CPU as possible. https://github.com/369px/PicoPhone

It aims to completely replace your smartphone and give you back the focus you need while completing your gems. Just load #phone in the Picotron terminal to get started!

Latest version: 0.5.35


PicoPhone is now open-source!
Feel free to commit changes!

NEW: Automatic updates at boot-up!

PicoPhone now checks the BBS for updates!
So you never miss the latest features.
I've made a video on how I auto-update here:
https://www.youtube.com/watch?v=88nRTLXdAGs

NEW MiniApp: Control Panel!

Do the boring stuff with a click!
You now have 3 slots to save 3 different carts you're working on to fast load them into ram with a single click! You won't have to type load /desktop/folder/cart.p64.png every single time!
You want to start a new cart? Why reboot? Just click a button!
And other cool features coming soon!

How to install (super easy)

  1. Open the Picotron terminal, type in load #phone and hit CTRL+R
  2. Tell Taco where you want to install PicoPhone!
  3. Reboot Picotron and enjoy :)

Tools and MiniApps

Color ID checker and special character ID checker!

Check the IDs you forgot without leaving Picotron!

Midi Converter and calculator

Convert a MIDI file into a Picotron track ready to use in your project!
Thanks to the magic of Miditron!
And Calkawaii, a funny calculator that thinks before talking! ;)

Group Chat and BBS Market (wip)

Picotron isn't a lonely place anymore!
Thanks to PicoChat you can now talk with other devs while working on your stuff!
Browse BBS tools and install them directly from your PicoPhone!
It's not perfect yet but I couldn't make you wait!

Customization, Auto-Installer and Low CPU usage mode!

Let Taco do the hard work!
You can now automatically install or move PicoPhone when and wherever you want!
Are you testing something inside the tooltray and need to clean it up?
Just go to settings and move PicoPhone to the desktop!
low CPU usage mode!
You can turn off the phone to drastically lower CPU usage, see for yourself ;)
Then tap screen to get back where you left!

Coming soon

  • mini Market categories!
  • More miniApps! (You'll be able to make your own)
  • More customization!

Cart #phone-25 | 2024-06-15 | Embed ▽ | License: CC4-BY-NC-SA
39

FAQ


I have 2 phones in my desktop2!*

If you have more than one phone in your tooltray, it means you had previously installed Picophone and manually changed it's parameters! If so, go back in appdata/system/startup.lua and remove all PicoPhone installations! Then load #phone and install Picophone again!

Changelog

I'm open to collaborations so feel free to give feedback, test it or implement new features!
We'll get in touch here or on the discord!

P#146124 2024-04-09 03:47 ( Edited 2024-06-19 00:12)

1

If you wan to add a calculator to it, feel free to use the code from mine https://www.lexaloffle.com/bbs/?tid=141416

It would be neat to have a calculator in this multitool.

P#146188 2024-04-09 18:36
4

@profpatonildo haha! i love that it thinks before giving you the result
I'm implementing this gem in the next update, thank you!

Update:
A bit late cause I lost all my progress yesterday :(
But here it is, with a big new feature, a new mascotte and 2 new tools!

Installer coming soon!
Still open to collabs! Let's do it before there's no more space in PICOPHONE!
See ya around the bbs <3

For @profpatonildo:


Kawaii calculator has some issues with detecting keyboard presses.
Minus sign (-), point (.) and "Enter" work fine, but plus sign, multiply sign and divide sign don't work in my macbook! Could you please take a look inside my cart in /picophone.p64.png/code/kawaiiculator.lua?
I have only touched the graphics and kept the logic as it is

P#146200 2024-04-09 20:35 ( Edited 2024-04-24 22:51)
1

@369369369 that's interesting.

I just tried it on my keyboard and all keys work. I then tried with another keyboard, that has a different layout, and I have a different problem than yours: plus works, but minus and divide don't.

I think it may have something to do with scancodes and the different position of those keys on different keyboards. If you have access to a numerical keypad, try using those keys and see if they work alright. I tried it out here with a usb keypad, and they seem to work.

If you want consistency throughout all keyboard layouts, it might be better to disable the "regular keyboard" input and leave only the mouse and numerical keypad input. I've done just that here, just swap the updateCalc function for this new one with the changes:

function updateCalc()
    if timer > 0 then
        face_timer += 1
        if face_timer >= 4 then
            face += 1
            if face > 52 then face = 51 end
            face_timer = 0
        end
        calculate()

        return
    end
    if result_given then
        if #instructions > 0 then
            result_given = false
        end
    else
        if mouth_timer > 0 then
            mouth_timer -= 1
        else
            face = 49
            mouth_timer = 0
        end
    end
    if tostr(number) == "8008" or tostr(number) == "80081" or tostr(number) == "800813"or tostr(number) == "8008135" then face = 53 end
    if divided_by_zero then 
        if #instructions == 0 then
            face = 53 
        else
            divided_by_zero = false
        end
    end
    for b in all(calcButtons) do
        b.draw_top = true
    end
    local active_key = check_key()
    if keyp(87) 
        or keyp(86)
        or keyp(85)
        or keyp(84)
        or active_key == "+" or active_key == "-" 
        or active_key == "*" or active_key == "/" then
            if (number == "" and #instructions == 0) or operator_behind then
                if keyp(86) or active_key == "-" then 
                    turn_negative = true
                    decimal = false
                    display = display .. "-"
                    face = 50
                    mouth_timer = 3
                    return
                end
            else
                if keyp(87) or active_key == "+" then operator = "+" end
                if keyp(86) or active_key == "-" then operator = "-" end
                if keyp(85) or active_key == "*" then operator = "*" end
                if keyp(84) or active_key == "/" then operator = "/" end
                local sign = 1
                if turn_negative then sign = -1 end
                add(instructions, tonum(number) * sign)
                number = ""
                add(instructions, operator)
                operator_behind = true
                display = display .. operator
                decimal = false
                turn_negative = false
                face = 50
                mouth_timer = 3
                return
            end
    end
    for n = 0, 9 do
        local number_on_keypad = false
        if n == 0 then if keyp(98) then number_on_keypad = true end end
        if n == 1 then if keyp(89) then number_on_keypad = true end end
        if n == 2 then if keyp(90) then number_on_keypad = true end end
        if n == 3 then if keyp(91) then number_on_keypad = true end end
        if n == 4 then if keyp(92) then number_on_keypad = true end end
        if n == 5 then if keyp(93) then number_on_keypad = true end end
        if n == 6 then if keyp(94) then number_on_keypad = true end end
        if n == 7 then if keyp(95) then number_on_keypad = true end end
        if n == 8 then if keyp(96) then number_on_keypad = true end end
        if n == 9 then if keyp(97) then number_on_keypad = true end end
        if keyp(tostr(n)) or number_on_keypad or active_key == tostr(n) then
            number = number .. n
            display = display .. n
            operator_behind = false
            face = 50
            mouth_timer = 3
            return
        end
    end
    if keyp(99) or active_key == "." 
        and not decimal and not operator_behind and number != "" then
            decimal = true
            number = number .. "."
            display = display .. "."
            operator_behind = false
            face = 50
            mouth_timer = 3
            return
    end
    if keyp("backspace") or active_key == "c" then
        face = 50
        mouth_timer = 3
        divided_by_zero = false
        result_given = false
        clear()
    end
    if keyp("enter") or keyp(88) or active_key == "=" then
        if number != "" and #instructions >= 2 and not operator_behind then
            local sign = 1
            if turn_negative then sign = -1 end
            add(instructions, tonum(number) * sign)
            number = ""
            operator_behind = true
            decimal = false
            turn_negative = false
            face = 50
            mouth_timer = 3
            timer = #instructions * 15
            calculate()
        end
        return
    end
end

I think that's more practical, because it's kinda of a janky system lol. If you want me to outright disable the keyboard input (even the numerical keypad), just let me know and I'll send you a version of this function that only checks for the mouse.

P#146379 2024-04-11 17:39
2

PicoPhone 0.3 is finally out! This is the biggest update yet!
A lot of new features and completely revisioned code.
Thanks to @Eiyeron for making me understand how the Picotron GUI works!

Read the changelog:

0.3.69b Hotfix
Fixed a bug that wouldn't install PicoPhone if you've never created a startup.lua file!
(You don't need to update if you didn't experience any bug)

@profpatonildo mmh ok that's not a bad workaround, now it has a bit more sense. Thanks

P#146388 2024-04-11 19:07 ( Edited 2024-04-24 22:52)
1

Just a heads up for anyone using my Downloader 2.0 cart: https://www.lexaloffle.com/bbs/?pid=145411#p

If you download picophone with it and run the installer, it will instead try to install Downloader 2.0 into the tooltray instead and potentially cause some really nasty bugs

P#147060 2024-04-21 12:19
3

πŸ‘† fixed!

PicoPhone 0.5 is OUT!

v0.5.35

  • Fixed a bug in settings that made PicoPhone disappear if you moved it from the tooltray. So you can finally try out the new update feature!

v0.5.0 - 0.5.34

  • (NEW) Auto-updates, so you never miss any new feature! Check for updates with a click or let Taco do the job for you at startup! I've made a YouTube video tutorial showing how I did it
  • (FIX) PicoPhone now finally works on the BBS!
  • (NEW) You can now customize your Picophone's sleep timer
  • (NEW) Simple GUI pop-up system!
  • Reorganized code to be a bit more friendly and readable
  • Restyled cart icon! (inspired by Picotron)
  • Small design changes and bug fixes
  • Better CPU usage: forgot to turn your phone off? that's not a problem anymore! Picophone turns off automatically if you don't use it for 20 seconds!
  • (NEW) Control panel: do the boring stuff with a click! You have 3 slots to save 3 different carts you're working on to fast load them with a single click! The "start a new cart" feature is now here and it finally asks you if you want to save your current cart!
  • (Change) Settings are now located on the left side of the status bar (only in home screen)
  • (Change) Control panel is now the first miniapp on the main menu, since to me it feels like the most important one
  • You can now autoreboot picotron after installing Picophone just by hitting "R"
  • (Fix) Lowered picochat CPU usage

Older releases

v0.4.34

  • Fixed PicoChat once and for all!
  • Main-menu CPU usage is 18% lower!
  • Added the first version of a control panel
  • There was no phone graphics in splash screen! Added it!

v0.4.27

  • Fixed a PicoChat related issue and improved design using pico8 font!

v0.4.15

  • Fixed a bug that made PicoPhone crash if you switched from PicoChat to the calculator!
  • Added a new feature! Not child friendly yet so watch where you tap and remember to save!
  • Added splash screen!
P#147065 2024-04-21 14:11 ( Edited 2024-06-15 17:32)
--[[Just like iPhone & Android, You may see that this iPhone is used as a mobile,
In the future, If i make a Picophone in real life, This is like an action but different]]
P#151322 2024-07-14 18:26 ( Edited 2024-07-14 18:26)

[Please log in to post a comment]