This is a bug-fixing update, mostly for crashes related to switching between widowed mode, full-screen and minimized windows. I've also included the dynamically linked pico8_dyn versions in the linux archives, that were missing from 0.1.9.

The Windows installer & .zip file include a more recent sdl2.dll, although there weren't any known issues relating to that.

I've switched back to shift-a..z for glyph entry in the code editor, as alt-a..z is sometimes reserved by the host operating system. If you find yourself accidentally entering the extended characters by accident, you can turn this off in config.txt (near the bottom). To enter glyphs without shift-a..z, press ctrl-k to toggle glyph mode.

Looks nothing short of awesome here, ZEP ! Made some checks ... runs all my software fine, including Simple Notepad.

Tried out my fav games and screen teasers from SPLORE. All works here. Windows 8.1 Classic Shell edition. Green lights all the way. :)

Friendly reminder, QWERTY keyboard INPUT for next release please !

INPUT(NAME)

"JOE PRESCOTT"

If you're going for nostalgia, the INPUT() command was founded in BASIC back in 1964.

The only reason early gaming platforms like Nintendo and Atari did NOT have QWERTY keyboards is because they were not INTENDED for users to write games in; only to play in them.

When ATARI BASIC came out, however, you better believe that they had the INPUT command all ready for use for programmers. Many games for Atari were written using the input command for a variety of things. All back in September of 1978.

The first computer I ever worked on, The T.R.S. 80 Model I, Level I, 4k, audiocassette. Made use of INPUT for a variety of games, including their BASIC.

With the TRS 80, INPUT could be used to get a numeric value for a variable A-Z, or one of two strings, A$ and B$, up to 16-characters maximum in length.

The one game for TRS 80 I remember most clearly that used INPUT effectively was, "Haunted House."

@dw817
Have you considered that the Atari 8-bit lineup and the TRS 80 are all Home Computers and not Consoles?
It makes no sense for PICO-8, a fantasy console, to feature a keyboard. And yes while it has mouse support it doesn't advertise this as a normal feature, is rather hidden away, tells you that it's meant as a devkit only feature, and also has various issues that make it undesirable to use.

PICO-8 is a fantasy console system, runs Lua, which has NOTHING to do with BASIC, and has from the very beginning and continues to, features a dpad and two button input system.

@Fayne: If it is a PUP error it is safe to ignore as PUP or Potentially Unwanted Program is mostly a designation for that are assumed unwanted based on lack of factors such as maturity, community spread, ratings, or similar metrics if memory serves me right. Basically it protects you by pointing out "Hey, not a lot of people use this thing and it is super new, you might not want to use that incase it is something unsavory". Pico-8's installer and/or zip should be small enough to toss into virustotal if you are still nervous, or just wait till Avast can get more info on the file which I should happen at some point, at least when the file is a bit older.

This was run on the installer itself and is possibly related to how the installer packs the program. On the installed pico8.exe itself, Comodo has the same detection as above, but is the only one with a detection - Bkav and Qihoo-360 both have the exe as clean, so with them it's something in the installer.

False positives most often occur when something in the program is similar to something in a known virus. This can be any arbitrary thing though, such as the algorithm used to parse data or something. It all depends on what things the antivirus has in its signature list for a particular piece of malware.

@dw817 IIRC, there is already a PICO-8 game/demo/something floating around the BBS that can read all keyboard inputs. I didn't look at the code to see how they're doing it, probably with peeking addresses or something.

As Gamax already said, this is unlikely to become a mainstream feature, as PICO-8 is a virtual console, not a virtual PC, inspired by consoles in the pre-NES era such as Atari 2600/5200/7800, Colecovision, and Intellivision. I say pre-NES because the color palette and size limitations more closely resemble those, as the NES had up to 1MB cartridge storage and a ~64 color palette, and the SEGA Master System from that same era had similar specs to the NES.

@dw817 Antivirus programs can only look at behaviors on installed and running programs, but not when scanning actual files like on Virustotal. When file scanning, they look at the binary data for code signatures that resemble similar code inside of known malware, even if it's arbitrary code.

For example, back when I was programming in Delphi, I frequently used a library that was included with Delphi for working with keyboard input. Some antivirus programs would pick up my programs that used that library because the same library was also used in some keyloggers that were built in Delphi (because it was a general purpose keyboard library), not because my program was keylogging. You didn't even have to install or run the program in order for it to get detected, and the library itself was harmless, but it was included in the detection signatures for certain keyloggers.

One famous example of a virus that used the same library was Subseven. Because it used that standard Delphi library, anything that used that library was also at risk of being detected as having a similar signature to Subseven, because there was a chunk of code inside your program that also existed in that virus.

Hi Scathe. Briefly ... I'll leave you to the AV as I've said my piece (peace ?) on it.

Now, as to the keyboard reader. scratching the back of my neck well YES, there is a routine, I bookmarked it, and it was one I was going to look at on the morrow.

Minju, it requires you to have your own custom JAVASCRIPT modification. If it were a memory location only, that'd be sweet, but no - this means the program essentially will not run directly in the BBS.

Where I'm interested in posting code.

But - to another point, now that I'm on the Itchy site, it may very well be possible for me to write PICO games that read keyboard. I don't know.

I come back to my own words. Will I write code that I don't want others to see and possibly get paid for them to play and/or use it ? That's a big step for me.

In any case, the fact you can type text freely in the code editor but not at all in the game, will always be a crooked shank to me as they are both connected to each other.

And I know I'm not alone - I came across a few other coders who would like QWERTY keyboard input() and inkey() for PICO as well.

The curious thing is, were it written in a future update. All of you purists can simply decide not to use it. It won't affect your code, not one binary bit. :)

IIRC, the demo I saw was running on the BBS, so it wasn't using custom JavaScript. I could be misremembering where I saw it though, as it was quite some time ago. Usually I'm good about saving the demos I like or find interesting, so I can take a closer look at them later, so I might have it. Unfortunately I have quite a lot of stuff saved, and I'm also terrible about renaming them from "h9d78syd08sgo.p8.png" to something actually indicating what it is, so I'd have to do some digging.

Yes, Itch.io lets you post whatever JavaScript you want (aside from probably some common sense stuff that could pose a security risk to Itch.io themselves, like some document and window methods), so if you went that route it would almost certainly work there.

"All of you purists can simply decide not to use it. It won't affect your code, not one binary bit. :)"

The problem though is that part of the reason PICO-8 is designed the way it is, is probably so that there's consistency between all of the cartridges with regards to controls. You basically instantly know when using an American keyboard (I know it's slightly different for keyboards of other regional layouts), that Z is button 1, X is button 2, and up, down, left, and right are directional.

When full discretion is given to the developer about the input layouts, suddenly you don't know which buttons do what. Is it spacebar for action? Enter? Z? Something else? WASD movement or arrow keys? Maybe numberpad keys? It becomes a lot less consistent and straightforward for the users. I think the consistency helps the simplicity of the games, which is a net gain for users.

Reading ... I'd settle for just INPUT() then. That forces a "?" mark to appear and what you type is seen then, backspace to make corrections, and ENTER to confirm saving that in the variable.

That won't interfere with reading the joystick (Z) and (X) as INPUT stops everything waiting for numeric or string entry before the code can continue any further. Perhaps continuing to play repeated music in the background is accepted during INPUT phase.

The TRS-80 did not have INKEY$ when it first came out - but it did have INPUT.

You mean something similar to a textbox you can add for users to type into, but doesn't allow remapping of actual controls to different keys? Sure, I could get on board with something like that, especially since zep plans to make global/online hiscores a thing. He'll probably implement something like the following natively instead though, so it works with controllers and touch devices:

BTW, in regards to the Avast situation: It wasn't PUP, it was CyberCapture, which triggers for unknown files. It asked me to send the file to Avast for analysis and I was later notified that the installer and program were determined to be safe, so there should no longer be any problems with Avast. Strangely though, by default, Avast always blocks unknown files and the expected "Run anyways" button is instead an "I trust this file" button that just gives Avast your opinion. If there are any future problems with PICO-8 updates and Avast, here's how you allow Avast to allow you to use PICO-8:

I've seen this before. It's really good. Slightly, I may be making a different one. :)

Mine is constructed so zero tiles, mapper, sound, music, or even the screen is affected once leaving the routine - with no file saving of memory either. Despite its appearance and despite its onboard sounds it is all self-contained and recovers the screen beneath it too when leaving . A perfect ninja. :)

Currently it's 154-lines of source. I was going to post it completed tomorrow.

Usage is:

function input(txt,str)

Where TXT is the text that appears in the box as a prompt. "?" added if the last character is alpha. STR can be blank or contain a previous value.

Completely mouse-driven.

Yet I'll still trade this over for a good old-fashioned true QWERTY INPUT() routine.

The Intellivision keyboard only happened because they were trying to market the Intellivision as a computer (Hence keyboard also known as the Intelliputer) which didn't sell at all, it also is not just a keyboard and adds another processor, more ram, a built in tape-deck, and printer support to give the Intellivision features you'd want from a Computer

The ECS, which is the thing they actually ended up releasing (Yay controversy over constantly delaying the Keyboard due to it being too expensive to produce and running into federal issues) and has keyboard support, is yet again marketed to make the Intellivision into a Computer (Entertainment Computer System) and features more ram, tape support, and printer support.

That Famicom keyboard ... I don't know. I suppose it's also probably also an attempt to bring Computer users to use the Famicom, it also gives you more memory and tape drive support. It also cannot be used on the NES due to the expansion port being different and eventually hidden away.

We could go backwards and forwards all day with examples and counter examples. The point I was trying to make that still stands is that enabling keyboard input for pico8 isn't far fetched with respect to the "fantasy console" concept. If we're going to get purist about it, all those original consoles didn't have a built-in IDE either. Or require you to load and run cassettes...

Personally, I'd love to be able to create old-Skool text adventures and the ilk, so would love to see keyboard support. After all, no one needs to use it if they don't want to... Or play the games that use it.

Ultimately it's up to Zep, as to what direction he wants to take pico8 in the future.

It's okay, Felicitous. Gamax has been against keyboard input from the starting gate. I, however, can see how INKEY$() might cause ripples in the community who want classic 2-button gaming.

Yet I also cannot see any harm with INPUT (requiring you to press ENTER to confirm your choice).

Time will tell. I only hope when INPUT is added, it is soon.

And yes, I fully agree with you. Would love to break out some good old text-adventures. I wrote a fair shake in my day and could post my source for methods on short-code ways to build a message interpreter - as Text Adventures, with a very friendly nod to Scott Adams, was definitely the rage back in '78.

I played all of his games and while I only won the pilot, "Adventureland" his other text adventures certainly showed me a grand time with incredibly deep plots and story.

I say pre-NES because the color palette and size limitations more closely resemble those, as the NES had up to 1MB cartridge storage and a ~64 color palette, and the SEGA Master System from that same era had similar specs to the NES.

That's not completely true.

On the memory bus, only 32 Kbyte of the cart can been seen, and if cart can bigger it's because of the use of what we call "memory mapper", which is basically having multiple 32 KByte cart that you can switch. It's something we can do with PICO-8, a bit difficult, but can be done.

For the colours, the palette is large that's true, but on screen it's a different story. Unless you use some (clever) tricks, a tile is only 4 colours and you have only 4 palette of 3 colours (1 is a transparent colour) so basically without mid-frame trick you only have 12 colours at the same time on screen.

So the PICO-8 is more close to a NES/Famicom than anything that came before like the Atari 2600. PICO-8 have some sort of sprites, tilemap, and 4 sound channels with fancy effect, some of these things even the NES does not really have them.

Wow ! Only 12-colors on the NES, Godzil ? I'm AMAZED at some of the screens I've seen in it while playing. I knew each 8x8 tile could only hold 4-colors, but I thought the entire palette was rich - like 256 color choices.

Even more impressed now about old-school graphics on it and what they managed to get away with !

I guess while we're on comparisons, I KNOW the ATARI 2600 has a greater range of audio than PICO currently - and DEFINITELY far less than NES. Comments ?

Octaves are numbered wrong, (at least compared to systems in use for the past 300 years,) and don't go nearly low enough in my opinion. (two octaves lower would be quite usable, three would be even better.)

As it currently is, many pico-8 tunes give me a headache at normal volumes.

It's not just that, Tyroney, it won't do certain sounds ! Watch this video of Atari Superman and LISTEN to the sounds. Many of them cannot be made in PICO no matter how clever you put the notes together. Especially the helicopter guy and when Superman picks up a piece of blown-up bridge.

Even just Superman flying is a unique sound unable to be reproduced in PICO.

Well the Atari 2600 doesn't feature simple waveforms, it's uses shift registers to generate what is essentially short looping 1bit samples. Because of that and because it uses a frequency divider, quite a bit of frequencies it produces are horribly off of an octave scale.

Plus that video you've linked states in it's description: "Some details are left out," "samples that aren't DPCM", the demo is just a bunch of 7bit PCM being streamed from the cart into the DMC channel (samples)

W O W ! 257k ! This is astounding. Don't mind me, I'm very old-skool and didn't think something like that was possible - and I have hundreds of hacks, demos, and full original year 2000+ carts for NES - first time I've seen (or heard of) that partiicular one. :)