Ça y est : le PICO nouveau (0.2.0) est sorti. J’ai dû faire un gros effort sur le titre pour le pas ajouter une vingtaine de points d’exclamations. Pour être honnête, après le 5e, je me suis dit que cela ne faisait pas très sérieux : j’en ai donc retiré 4.
Les nouveautés les plus visibles sont l’arrivés de 16 onglets, de la possibilité d’afficher les tabulations (aide à aligner le code), l’ajout de deux polices de caractères supplémentaires : Puny (minuscule latine => [ctrl]-[p]) et Katanaka (japonais => [ctrl]-[k]).
Les nouvelles fonction ord() et chr() permettent respectivement de récupérer le code ASCII d’un caractère et le caractère d’un code ASCII, exemple :
Affiche : 97, 128, 65, 204. A noter que le ‘A’ classque correspond au ‘A’ en minuscule (de la table ASCII) et le ‘A’ pony (3e) au ‘A’ majuscule (malgré leur aspect respectif à l’écran).
La nouvelle instruction tline permet de dessiner des lignes texturées à l’écran. La durée d’attente d’une pression sur les boutons de la manette (ou d’une touches associées au clavier) avec btnp peut être réglée. De nouveaux opérateurs en préfixe d’affection sont également disponibles , exemple : ..= , ^= , etc. L’accès à la mémoire est simplifiée : $<adresse> à la place de PEEK(<adresse>). etc. Les amateurs de tweet card vont apprécier.
La fonction de parcours ipairs() vient également étendre les capacité du language. De nombreuses autres ajouts et modifications sont également présents, voir liste ci-après :
v0.2.0 Added: 8-bit character set with kana, alt font Added: ord(), chr() Added: SFX / Pattern organiser view Added: SFX edit buttons on pattern channels Added: tline // textured line drawing Added: SPLORE automatically updates BBS carts when online Added: Search for similar (shared tags) cartridges, or by thread Added: predefined fillp() pattern values assigned to glyphs Added: btnp() custom delays (poke 0x5f5c, 0x5f5d) Added: "." shorthand command for advancing a single frame (calls _update, _draw if they exist) Added: Current editor/cart view is recorded every 3 seconds to [app_data]/activity_log.txt Added: Cutting (ctrl-x) and pasting selected sprites while in map view to also adjust map references to those sprites Added: Clipboard is supported in the html exports (with some limitations) // load #wobblepaint for an example. Added: Can load .lua files as cartridges Added: Operators: ..= ^= \ \= & | ^^ << >> >>> ~ &= |= ^^= <<= >>= >>>= @ @@ $ Added: New demo carts: waves.p8 dots3d.p8 auto2d.p8 wander.p8 cast.p8 jelpi.p8 (use INSTALL_DEMOS) Added: Extra pre-installed games: Embrace, 8 Legs to Love (use INSTALL_GAMES) Added: Splore cart labels for .p8 files Added: Now 16 code tabs (click on the rightmost ones to scroll) Added: ipairs() Added: SAVE from commandline to quick-save current cartridge (same as ctrl-s) Added: BACKUP from commandline to save a backup of current cartridge Added: CPU usage widget (ctrl-p while running cartridge) Added: Button / dpad states exposed in memory at 0x5f4c (8 bytes) Added: Random number generator state exposed at 0x5f44 (8 bytes) Added: pico8_dyn version is included when exporting to Raspberry Pi Added: allow_function_keys option in config.txt (CTRL 6..9 are now preferred -- will phase out F6..F9 if practical) Added: Visible tab characters (draw_tabs in config.txt) Added: pal(16,{1,2,3..}) means: use the value for each key 0..15 in a table Added: palt(16, bitfield) means: set the colour transparency for all 16 colours, starting with the highest bit Added: Options menu for binary exports (sound / fullscreen / controls) Added: Shape drawing tools in sprite and map editor Improved: Miscellaneous HTML shell / player optimisations and adjustments Improved: Lower cpu usage for small foreground_sleep_ms values (changed host event loop & fps switching strategy) Changed: This update is called 0.2.0, not 0.1.12d! (grew into plans for 0.2.0, and bumped cart version number) Changed: negative numbers expressed with a '-' count as a single token Changed: glitchy reset effect does not leave residue in base RAM (but maybe on screen when using sprites / tiles) Changed: sset() with 2 parameters uses the draw state colour as default Changed: line() or line(col) can be used to skip drawing and set the (line_x1, line_y1) state on the next call to line(x1,y1) Changed: vital system functions (load, reboot etc.) can only be overwritten during cartridge execution Changed: sqrt(x) is now more accurate, and a little faster than x^.5 Changed: sqrt(x) returns 0 for negative values of x Changed: btnp() delay and repeats now work independently per-button Changed: pairs(nil) returns an empty function Changed: Default screenshot scale (now 4x), gif scale (now 3x) Changed: gif_len now means the length when no start point is specified (used to be the maximum recordable length) Changed: (Multicarts) When loading data from many different carts, the swap delay maxes out at ~2 seconds Changed: (Raspberry Pi) removed support for (and dependency on) libsndio Changed: camera(), cursor(), color(), pal(), palt(), fillp(), clip() return their previous state Changed: Can not call folder() from a BBS cart running under splore Changed: F9 resets the video, so that multiple presses results in a sequence of clips that can be joined to together Changed: color() defaults to 6 (was 0) Changed: Backed up filenames are prefixed with a timestamp. Changed: Automatically start on the (host's) current path if it is inside PICO-8's root path Changed: tostr(x,true) can also be used to view the hex value of functions and tables (uses Lua's tostring) Changed: Can hold control when clicking number fields (spd, pattern index etc.) to increment/decrement by 4 (was shift) Fixed: HTML exports running at 60fps sometimes appear to repeatedly speed up and slow down Fixed: HTML export layout: sometimes broken -- option buttons overlapping in the same place Fixed: __tostring metatable methods not observed by tostr() / print() / printh() Fixed: Mac OSX keyboard permissions (fixed in SDL2 0.2.12) Fixed: Audio mixer: SFX with loop_end > 32 would sometimes fail to loop back Fixed: btn() firing a frame late, and not on the same frame as stat(30) Fixed: #include can not handle files saved by some Windows text editors in default format (w/ BOM / CRLF) Fixed: Exports do not flatten #include'd files Fixed: Default window size has too much black border (now reverted to previous default) Fixed: Functions yielded inbetween frames occasionally push an extra return value (type:function) to the stack Fixed: can't load png-encoded carts with code that starts with a : Fixed: .gif output unnecessarily large Fixed: .gif recording skipping frames when running at 15fps Fixed: printh does not convert to unicode when writing to console or to a file Fixed: cart data sometimes not flushed when loading another cart during runtime Fixed: Can not navigate patterns with -,+ during music playback Fixed: Mouse cursor not a hand over some buttons Fixed: Laggy mouseover messages (e.g. showing current colour index, or map coordinates) Fixed: Can't paste glyphs into search field Fixed: Tab spacing always jumps config.tab_spaces instead of snapping to next column Fixed: -p switch name is wrong (was only accepting "-param" in 0.12.* Fixed: Code editor highlighting goes out of sync after some operations Fixed: Multicart communication problem (affecting PICOWARE) Fixed: time() speeds up after using the RESUME command Fixed: Audio state is clobbered when using the RESUME command Fixed: Audio glitch when fading out music containing slide effect (1) Fixed: Toggling sound from splore cart->options menu has no effect Fixed: Devkit keyboard works when paused Fixed: "-32768 % y" gives wrong results Fixed: Replacing all text in code editor breaks undo history Fixed: Double click to select last word in code does not include the last character Fixed: Weird block comment behavior in code editor Fixed: HTML export: cart names can not contain quotes Fixed: HTML export: menu button layout under chromium Fixed: HTML export: Adding content above cartridge breaks mobile layout Fixed: HTML export: Can touch-drag PICO-8 screen around (breaks simulated mouse input) Fixed: LOAD("#ABC") does not always immediately yield Fixed: Infinite RUN() loop crashes PICO-8 Fixed: Mouse cursor is not a finger on top of most "pressable" button-style elements Fixed: CD command fails when root_path is relative (e.g. "pico8 -root_path .") Fixed: poke in fill pattern addresses (0x5f31..0x5f33) discards some bits Fixed: After using ctrl-click in map editor, can not modify map outside that region Fixed: Shift-selecting sprites from bottom right to top left selects wrong region Fixed: Changing GIF_LEN from PICO-8 commandline sometimes breaks gif saving Fixed: pget() sometimes returns values with high bits set Fixed: Preprocessor: unary operator lhs is not separated in some cases (e.g. x=1y+=1) Fixed: Preprocessor: ? shorthand prevents other preprocess replacements on same line Fixed: Preprocessor: fails when multiple shorthand expressions + strings containing brackets appear on the same line Fixed: Loading a .p8 file with too many tabs discards the excess code. Fixed: Map editor's stamp tool wraps around when stamping overlapping the right edge. Fixed: Very quick/light tap events sometimes do not register Fixed: SFX tracker mode: can't copy notes with shift-cursors before clicking (whole sfx is copied instead) Fixed: "..." breaks syntax highlighting Fixed: Click on text, press up/down -> cursor reverts to previous horizontal position Fixed: CTRL-[a..z] combinations processed twice under some linux window managers Fixed: ctrl-up/down to jump to functions in the code editor breaks when "function" is followed by a tab Fixed: map & gfx drawing selection is not applied consistently between tools Fixed: Using right mouse button to pick up a colour / tile value sometimes also applies current tool
Et oui… tout ça
La mise à jour est disponible sur le site officiel : https://lexaloffle.com.
Bon code à tous,
jihem