Skip to content

Latest commit

 

History

History
361 lines (333 loc) · 18.3 KB

CHANGELOG.md

File metadata and controls

361 lines (333 loc) · 18.3 KB

Version 1.12.1 (The puny port) / February 2nd, 2024

  • repaired mbedTLS config

Version 1.12.0 (The puny port) / February 2nd, 2024

  • Updated Zip to 0.3.1
  • Updated to mbedTLS 2.28.7
  • Updated cURL to 8.6.0
  • Replaced GetLocalIpAddress() and GetNetworkMask() with GetNetworkInterfaces()
  • Implemented TCP/IP and sockets for the Linux version
  • Added fullscreen mode to Linux version
  • Fixed Stat() for Linux

Version 1.11.0 (The delayed distribution) / October 28th, 2023

  • Added port of https://github.com/DhrBaksteen/ArduinoOPL2 to jsboot/
  • Added optional OnExit() callback
  • Fixed input callback detection
  • Fixed mouse when using DOSBox-X and DOSBox-staging
  • Fixed on screen garbage when creating a Bitmap with black background color
  • Added GetEnv()
  • Updated to mbedTLS 2.28.5
  • Updated cURL to 8.4.0
  • Added a minimal port to Linux
  • Added micromod MOD playback plugin
  • Added ibxm MOD, S3M and XM playback plugin
  • Added a very simple OPL2 VGM player
  • Added ByteArray post data in curl.DXE
  • Added MIME type for post data in curl.DXE
  • Added GetDrive() (DOS INT21, 19h) and SetDrive() (DOS21, 0Eh)
  • Added WebP decoding/encoding

Version 1.10.0 (DOStodon FTW!) / January 20th, 2023

  • Added MIME multipart to cURL POST requests
  • Fixed crash when alpha channel was disabled
  • Fixed missing error messages when Include() was used on files with syntax errors
  • Switched from OpenSSL to mbedTLS
  • Added blurhash decoding to new Bitmap()
  • Updated nanosvg
  • Updated cURL to 7.87.0
  • Fixed memory corruption when starting a renamed DOjS with ZIP file (#22)
  • Added loading images directly from a ByteArray using new Bitmap()
  • Switched from NanoJPEG to stb_image.h to support progressive JPEG decoding
  • Fixed a bug with getting the current time/date
  • SQlite3 plugin now supports prepared statements and BLOBs.
  • Fixed DOjS not running on CPUs <i586 because of pentium instructions
  • Fixed a lost reference when using SetRenderBitmap()
  • EvalChain() has now a function Size()
  • Fixed re-initialization of loaded Plugins when running from the editor (#41)
  • Switched QOI Loading to C. Added QOI saving. QOI is now handled like BMP or PNG.
  • Fixed red and blue color channel for MPEG1 decoding (#42)
  • Added Clear() to the EvalChain

Version 1.9.1 (The diSSLaster) / November 5th, 2022

  • reverted back to cURL 7.80.0 because 7.84.0 crashes when using HTTPS

Version 1.9.0 (The Portable DOS Format) / October 29th, 2022

  • Modules can now provide version information with __VERSION__
  • DPM will automatically update modules that are installed if there are more recent versions in the index.
  • Updated zlib to 1.2.12
  • DOJS_VERSION is now a string.
  • Class TexInfo() can now load 3DF from ZIP files (#24)
  • Updated Zip to 0.2.3
  • Updated openssl to 1.1.1q
  • Added DirExists() and FileExists().
  • Updated AnimatedGIF to 1.4.7
  • Updated nanosvg
  • Updated PL_MPEG
  • Renaming DOjS.EXE and JSBOOT.ZIP for packaging purposes should now work as intended (#22)
  • Added dojs.ini loading for parameters (#25)
  • Added IniFile class
  • Removed missleading VBE3 error messages on failed Font/Bitmap/etc loading/saving (#26).
  • Included a stripped down version of GrxFntConv that can convert BDF fonts to FNT format (#27).
  • Added PDF rendering plugin using pdfgen.
  • File, Zip, Socket and Curl now use ByteArray instead of IntArray (#30)
  • File and Zip now supports partial reads/writes using ReadBytes()/ReadInts()/WriteBytes()/WriteInts() (#31)
  • Added missing error detection when reading/writing data using File
  • File now supports Seek and Tell (#31)
  • QOI loading from ByteArray is now possible via DecodeQoi (e.g. to load from ZIP or network socket).
  • Created a Discord for DOjS and jSH and put the link into README.md

Version 1.8.0 (A package of 3D) / March 19th, 2022

  • Added 3dfx Voodoo accelerated OpenGL/Mesa wrapper through ogl plugin.
  • Added LFN_SUPPORTED global to indicate if long filenames are supported by the current DOS installation.
  • Fixed some docs
  • Added QOI Image decoder in jsboot/qoi.js. See https://qoiformat.org/
  • Improved error reporting in case Setup(), Loop() or Input() are missing when running a script.
  • Updated openssl to 1.1.1n
  • Updated cURL to 7.80.0
  • Added -t command line option to disable TCP/IP (faster startup with a loaded packet driver).
  • Added examples/1button.js minimal text adventure.
  • Improved Console class with basic input handling
  • Updated Zip to 0.2.2
  • Added ZIPFILE.DELETE and Zip.DeleteFile()
  • Improved project structure, DOjS main source is now located in src/, all native libraries in plugins/ and all third party code in 3rdparty/.
  • Optimized buildfiles
  • Improved IPX remote logging with REMLOG.BAT and EnableRemoteDebug()
  • implemented DPM package manager
  • A sketch can now query if it is running on DOjS using if (navigator.appName === "DOjS") {}

Version 1.7.0 (The live animation) / November 12th, 2021

  • Added FLIC playback (video)
  • Added MPEG1 playback (audio/video) using plugin mpeg1.
  • Added Ogg Vorbis playback plugin vorbis.
  • Added rawplay plugin for raw 16 bit stereo audio data loaded from file system or ZIP.
  • Added CTRL-F for 'search' (same as F7)
  • Added live coding examples. Install the extension in the vscode/ directory and run DOjS -r examples\websvr.js
  • Fixed missing newline in error message.

Version 1.6.1 (The calloc corruption) / September 17th, 2021

  • Fixed memory corruption during javascript runtime exceptions.

Version 1.6.0 (Does it blend) / August 28th, 2021

  • Added JPEG loading through jpeg module
  • Made JSLOG.txt optional and the filename can be changed as well
  • Updated libcpuid to v0.5.1
  • Removed many compiler warnings and streamlined the make output during build
  • Added basic GIF animations loading/rendering through gifanim module
  • Added ReadSoundInputInts() which returns the sampled data as IntArray (ReadSoundInput() uses Javascript arrays which are slower)
  • Improved CTRL-DEL, CTRL-BS handling with whitespaces
  • Added error popup to editor for displaying script errors
  • parallelized the build as far as possible
  • added Makefile target to create a FreeDOS distribution ZIP
  • Added different blend modes which are selected through TransparencyEnabled()
  • Added p5js API mapping from blendMode() to TransparencyEnabled()
  • Added QR-Code generator from https://github.com/kazuhikoarase/qrcode-generator, see examples/qrcode.js
  • Fixed/added some examples
  • Improved error handling for missing GLIDE3 drivers

Version 1.5.0 (The neuronal necessity) / April 2, 2021

  • Added SQLite module
  • Added module for training/running neuronal networks
  • Added libcpuid module
  • Added NanoSVG module
  • Added global variables Width/Height
  • Added single parameter version of Color()
  • Added Console and EvalChain classes.
  • Added perlin noise module
  • You can now create single color Bitmaps with new Bitmap(width, height, color)
  • FIXED: small fixes for raw disk access.
  • FIXED: p5js arc() function is now somewhat useable (was completely broken before).
  • FIXED: Updated openssl to 1.1.1k

Version 1.4.0 (The curly conglomerate) / Jan 22, 2021

  • Replaced loadpng+libpng by alpng to reduce EXE size.
  • Added fast integer array class IntArray
  • Added ReadInts() and WriteInts() to File, Zip and Socket to speed up data IO.
  • Improved type checking for parameters.
  • Added cURL and OpenSSL support.
  • FIXED: memory leak in editor
  • FIXED: editor crashed when deleting selected text
  • Added loadable module support during runtime
  • IPX, PNG, Allegro3D, COMPort and cURL are loadable modules now

Version 1.3.0 (The ZIPpy serving) / Nov 13, 2020

  • Added ZIP file access through Zip() class
  • Added StringToBytes() and BytesToString()
  • Added file name to stack trace for files loaded by Include() and Require()
  • Added loading of images, fonts, samples, midi files and scripts from ZIP files
  • JSBOOT/ can now be replaced by JSBOOT.ZIP
  • Added autostart feature for ZIP files
  • Added more fonts from Linux Font Project
  • Fixed crash in context help
  • Added ReadZIP(), Rename(), MakeDir(), RmDir() and RmFile()
  • Internal cleanup and removed some duplicate code
  • Fixed bug in DrawArray() and new Bitmap()
  • Fixed memory allocation bug where CWSDPMI and MuJS started to use virtual memory because of missing GCs.
  • Added raw disk access through RawRead() and RawWrite() (and other functions)
  • Fixed problems with the Makefile and filenames which only happened for fresh checkouts on case sensitive file systems.
  • Updated build instructions
  • Fixed ReadBytes() in socket.c
  • Renamed fxGetMemoryTMU() to fxGetMemoryTmu()

Version 1.2.1 (Bugfix) / Oct 8, 2020

  • Fixed crash in Voodoo detection which only happens on plain DOSBox.

Version 1.2.0 (Watt is that?) / Sept 5, 2020

  • Added TCP/IP support through WATT32.
  • Fixed bug where text mode was not restored after exiting DOjS
  • Added File.GetSize(), File.WriteBytes() and File.ReadBytes()
  • Added fixnewlines target to Makefile.
  • Updated syntax highlighting file.
  • Switched JSDoc documentation to better-docs
  • Improved editor
    • Quoted strings are now GREEN
    • The cursor positioning at the end of line is more usable.
    • 50-line mode can now be selected on the command line
    • Fixed CTRL-L/Go to line
  • Fixed bugs in p5js compatibility layer
    • endShape() polygon drawing
    • lerpColor()
  • Cleaned up startup messages in logfile.
  • Re-added PNG loading/writing

Version 1.1.0 (the COM together) / July 11, 2020

  • Added COM port access through the COMPort() object.
  • Added RAW LPT port access through LPT-funktions LPTRawData(), LPTRawStatus() and LPTRawControl().
  • Added LPT printer acces through LPTReset(), LPTSend() and LPTStatus().
  • Added LPT/COM port enumeration through GetParallelPorts() and GetSerialPorts().
  • Added more verbose output about detected 3dfx card and found ports when startig up.

Version 1.0.1 (the minimal midi modification) / Internal only

  • Added MidiGetPos()
  • Added example script that implements a simple MIDI player.
  • Small cleanups for release building.

Version 1.0.0 (the major mashup) / Mar 27, 2020

  • Fixed memory leaks in TexInfo
  • Added dynamic TexInfo generation from Bitmap
  • Better memory handling between native and JS code (GC before malloc())
  • Documented joystick functions
  • Added RandomInt() to API
  • Added compile time to startup message
  • Added LFB (linear frame buffer) access to the 3dfx cards
  • Added POST() function to display debug info using a ISA/PCI POST card
  • SHIFT-F1 now opens the online help at the function uder the cursor (does not work for object methods)
  • CTRL-DEL and CTRL-BS now delete whole words
  • Updated behavior of CTRL-LEFT/CTRL-RIGHT to match the above
  • Updated syntax highlighting with new functions and JS functions
  • Added 'h' to command line options
  • Updated transparency handling, transparency now is also available with 24bbp display modes
  • Added System() to call external programs from DOjS.
  • Fixed initialization order of Allegro sound card support
  • Improved screen drawing code for editor
  • You can now create Bitmaps from ARGB integer arrays via new Bitmap(array, width, height)
  • You can now create Bitmaps from the current screen new Bitmap(x, y, width, height)
  • You can now create Bitmaps from the current 3dfx screen new Bitmap(x, y, width, height, buffer)
  • ARGB Arrays can be drawn directly using DrawArray()
  • You can now save Bitmaps to BMP, PCX and TGA files.
  • Optimized unneeded calls to Input() away.
  • Added createImage(w,h) to p5js compatibility layer.
  • Added Sample.Get() and VoiceGetPosition(), updated Sample.Play().

Version 0.9.9 (the voodoo vision) / Jan 26, 2020

  • Fixed typo in the GetXRotateMatrix() functions.
  • Sped up several 3D math function by implementing them in C (native JS functions still available by prefixing 'N').
  • Added Bitmap.DrawAdvanced() for scaled bitmap drawing.
  • Fixed CTRL-C handling on FreeDOS, now copy & paste works there as well.
  • You can now pass command line parameters to your scripts.
  • Added String.startsWith() and String.endsWith() from MDN.
  • Added HSBColor() to native API.
  • Fixed SizeX() and SizeY() after using SetRenderBitmap()
  • Added joystick functions.
  • Fixed "new sketch" template.
  • Added 3Dfx/Glide support for Voodoo1/2/3/4/5/Banshee/Rush
  • Improved error reporting from Allegro
  • Added automatic fallback to 24bbp when 32bbp are not available
  • Fixed the remote logviewer and some examples

Version 0.9.8 (the expanded dimension) / Nov 17, 2019

  • updated help.txt and README.md
  • added sound input functions.
  • finished 3D drawing functions, zbuffer functions and 3D math functions.
  • You can now render to Bitmaps created by new Bitmap(width, height)
  • Color() now also works with three arguments (alpha is 255 for missing value).
  • Fixed missing documentation.

Version 0.9.7 (the latest lament) / Oct 20, 2019

  • fixed rect().
  • added Bitmap.DrawTrans() for 32bit TGA images w/ alpha.
  • Added Cut, Copy & Paste to the editor.
  • Added auto indent and backtab handling.
  • Started working on allegro 3D fuctions (unfinished, untested)!

Version 0.9.6 (the crashing creation) / May 26, 2019

  • Fixed massive crash when using the builtin font in p5 compatibility layer
  • Some API improvements
  • Even more examples and a DOjS presentation done with DOjS
  • Small fixes for image(), arc() and text() in p5 compatibility layer
  • Enabled transparency for 24bpp and 32bpp mode (was only 32bpp before).
  • Added useable alpha value to the return value of GetPixel()
  • As always: more examples
  • updated MuJS to latest version from http://git.ghostscript.com/?p=mujs.git;a=summary

Version 0.9.5 (the changed creation) / May 2, 2019

  • Replaced libmikmod, GRX and all sound code by Allegro 4.2.2.
  • Transparency/RGBA now works.
  • added TransparencyEnabled() to switch during runtime.
  • Internal API changed quite much due to the switch to Allegro.
  • p5js compatibility improved because of the better color handling.
  • Added command line switch to disable transparency for speed reasons.
  • PNGs are no longer supported, Allegro comes with PCX, TGA and BMP support only.
  • Text printing lost a lot of its options due to the switch to Allegro.
  • SHIFT-F4 now clears the logfile before running the script.
  • Improved internal debugging features.
  • Splitted func.c into gfx.c and func.c.
  • Implemented push() and pop() in p5js compatibility layer.
  • Added a test-folder with scripts dedicated to test the API.
  • Added translate(), rotate(), shearX(), shearY(), resetMatrix(), scale() and applyMatrix() in p5js compatibility layer.

Version 0.9.1 (the fixed foreboding) / Apr 14, 2019

  • Fixed libmikmod creating a WAV file when no soundcard is detected.
  • Added logging to another machine using IPX. set REMOTE_DEBUG=true and start jsboot/logview.js on other machine.
  • Added GetPixel() which returns the Color of an on-screen pixel.
  • Added Bitmap.GetPixel() which returns the Color of an image pixel.
  • Fixed/added some stuff in GRX.

Version 0.9 (the fifth foreboding) / Apr 7, 2019

  • Fixed millis() in p5js compatibility layer.
  • Improved mouse display (still flickering, though).
  • Fixed MouseShowCursor(false) (sort of).
  • Added node discovery and address helpers to IPX module.
  • Fixed mousePressed() and implemented mouseDragged()in p5js compatibility layer.
  • Added HSL and HSB color mode to p5js compatibility layer.
  • Added very simple syntax highlighting to the editor.
  • Added CustomLine(), CustomBox(), etc to native API
  • Added strokeWeight() to p5js compatibility layer.
  • Renamed tests/ to examples/
  • Fixed Makefile on OSX.
  • Switched to libmikmod for MOD and WAV sound output.

Version 0.8 (the fourth forecoming) / Mar 27, 2019

  • Tuned the compiler flags to pentium class CPUs
  • Added command line option to turn off SoundBlaster code
  • Added double buffering to video output to reduce the flickering
  • Added more examples
  • Added MemoryInfo()
  • Changed Print() to Println(), added Print() w/o NEWLINE.
  • Added Include() which loads a module into top level context.
  • Added Debug() and DEBUG to support conditional debug output.
  • Changed Require() to search modules in jsboot/ and the current directory.
  • File.ReadByte() now returns null at EOF.
  • Improved documentation.
  • Improved detection of missing SoundBlaster.
  • Added Processing/p5js compatibility layer.
  • Added some examples from the p5js example library.

Version 0.7 (the third installment) / Mar 3, 2019

  • Wrote a text editor for in-line script editing.
  • Added inline-help and logfile viewer.
  • Added frame rate limit and GetFramerate() and SetFramerate()
  • Added Gc() which can log to JSLOG.TXT
  • Made command line override for SBlaster autodetection.
  • Added font resizing.
  • Added color mask functionality from GRX.
  • Added NO_COLOR to predefined colors.
  • Hopefully fixed Makefile dependency tracking
  • Added PNG loading.
  • Added command line parameters to select screen mode.
  • Added PNG and BMP saving.
  • Added List() and Stat() for directory traversal.
  • Shortened key codes in jsboot/func.js and added CharCode()
  • DOjS now has a mascot.
  • Makefile now had ZIP target.

Version 0.6 (the 2nd coming) / Feb 17, 2019

  • Added CHANGELOG
  • Now linking with DJGPP FPU emulation (-lemu)
  • Added support for file reading/writing (see Read() and File())
  • Fixed Makefile.unix
  • Reformated the whole code. I didn't notice my notebook had different settings in VSCode when releasing v0.5
  • added Read() and Require()
  • Finally some stack traces in the logfile in case of errors
  • improved logfile output for detected hardware
  • switched to new script format with Setup() and Loop()
  • Added MouseSetCursorMode()
  • Fixed object creation
  • Added MIDI playing
  • Added IPX networking

Version 0.5 (first release) / Feb 11, 2019

  • Initial release
  • Binary release no longer available because of the old script format