- fixed error message for library loading in win32
- fixed SQLite3 database opening in win32
- return empty object from GetNetworkInterfaces() on win32
- fixed curl on win32
- updated zip to 0.3.5
- Patched
3rdparty\allegro-4.2.2-xc-master\src\bmp.cto support all BMP formats mentioned in https://en.wikipedia.org/wiki/BMP_file_format#Bitmap_file_header (backport from allegro5). - improved documentation
- Updated to mbedTLS 3.6.5
- Updated cURL to 8.17.0
- Updated tiff to 4.7.1
- Updated pl_mpeg
- Updated nanoSVG
- Updated libpng to 1.6.50
- Updated jasper to 4.2.8
- Updated AnimatedGIF to 2.2.0
- Moved mbedTLS config out of the source tree
- Added MMSynth plugin based on https://github.com/simap/MicroModSynth
- Added smaker-plugin based on https://libsmacker.sourceforge.net/
- Added EXIF plugin based on https://github.com/libexif/libexif
- Added cRSID plugin based on https://github.com/dashodanger/libcRSID
- Added more examples/tests
- Added my VCFe talk slides from May, 2025
- Added
KeyIsPressed()andkeyIsDown()in p5js emulation. - Updated syntax highlighting
- Updated internal
help.txt - JPEG decoding now uses libjpeg and JPEG saving is supported, too.
- Added TIFF loading and writing.
- Added Sun Raster (RAS) loading and writing.
- Added Jpeg 2000 (JP2) loading and writing.
- Added a Node.js compatible
console - Made
require()Node.js compatible - Added
RealPath() - Added
Trace() - Updated to mbedTLS 3.6.2
- Updated cURL to 8.11.0
- Updated zlib to 1.3.1
- Fixed javascript
Datestring conversion - Improved JSDoc generation in Makefile (contributed by MinekPo1) and added
node_installtarget for dependencies - Updated SQLite to 3.46.1 (thanks to https://mastodon.social/@BenCollver@tilde.zone)
- Updated libjpeg to from 9e to 9f
- Added a Win32 binary release that runs on Win98 and never.
- repaired mbedTLS config
- Updated
Zipto 0.3.1 - Updated to mbedTLS 2.28.7
- Updated cURL to 8.6.0
- Replaced
GetLocalIpAddress()andGetNetworkMask()withGetNetworkInterfaces() - Implemented TCP/IP and sockets for the Linux version
- Added fullscreen mode to Linux version
- Fixed
Stat()for Linux
- Added port of https://github.com/DhrBaksteen/ArduinoOPL2 to
jsboot/ - Added optional
OnExit()callback - Fixed input callback detection
- Fixed mouse when using
DOSBox-XandDOSBox-staging - Fixed on screen garbage when creating a
Bitmapwith 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
- 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.hto 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 functionSize()- 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 theEvalChain
- reverted back to cURL 7.80.0 because 7.84.0 crashes when using HTTPS
- Modules can now provide version information with
__VERSION__ DPMwill automatically update modules that are installed if there are more recent versions in the index.- Updated zlib to 1.2.12
DOJS_VERSIONis now a string.- Class
TexInfo()can now load 3DF from ZIP files (#24) - Updated
Zipto 0.2.3 - Updated openssl to 1.1.1q
- Added
DirExists()andFileExists(). - Updated AnimatedGIF to 1.4.7
- Updated nanosvg
- Updated PL_MPEG
- Renaming
DOjS.EXEandJSBOOT.ZIPfor packaging purposes should now work as intended (#22) - Added
dojs.iniloading for parameters (#25) - Added
IniFileclass - 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,SocketandCurlnow useByteArrayinstead ofIntArray(#30)FileandZipnow supports partial reads/writes usingReadBytes()/ReadInts()/WriteBytes()/WriteInts()(#31)- Added missing error detection when reading/writing data using
File Filenow supportsSeekandTell(#31)- QOI loading from
ByteArrayis now possible viaDecodeQoi(e.g. to load from ZIP or network socket). - Created a Discord for DOjS and jSH and put the link into
README.md
- Added 3dfx Voodoo accelerated OpenGL/Mesa wrapper through
oglplugin. - Added
LFN_SUPPORTEDglobal 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()orInput()are missing when running a script. - Updated openssl to 1.1.1n
- Updated cURL to 7.80.0
- Added
-tcommand line option to disable TCP/IP (faster startup with a loaded packet driver). - Added
examples/1button.jsminimal text adventure. - Improved
Consoleclass with basic input handling - Updated
Zipto 0.2.2 - Added
ZIPFILE.DELETEandZip.DeleteFile() - Improved project structure, DOjS main source is now located in
src/, all native libraries inplugins/and all third party code in3rdparty/. - Optimized buildfiles
- Improved IPX remote logging with
REMLOG.BATandEnableRemoteDebug() - implemented
DPMpackage manager - A sketch can now query if it is running on DOjS using
if (navigator.appName === "DOjS") {}
- Added FLIC playback (video)
- Added MPEG1 playback (audio/video) using plugin
mpeg1. - Added Ogg Vorbis playback plugin
vorbis. - Added
rawplayplugin 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 runDOjS -r examples\websvr.js - Fixed missing newline in error message.
- Fixed memory corruption during javascript runtime exceptions.
- Added JPEG loading through
jpegmodule - Made
JSLOG.txtoptional 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
gifanimmodule - Added
ReadSoundInputInts()which returns the sampled data asIntArray(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()toTransparencyEnabled() - 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
- 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
ConsoleandEvalChainclasses. - 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
- Replaced loadpng+libpng by alpng to reduce EXE size.
- Added fast integer array class
IntArray - Added
ReadInts()andWriteInts()toFile,ZipandSocketto 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
- Added ZIP file access through
Zip()class - Added
StringToBytes()andBytesToString() - Added file name to stack trace for files loaded by
Include()andRequire() - Added loading of images, fonts, samples, midi files and scripts from ZIP files
JSBOOT/can now be replaced byJSBOOT.ZIP- Added autostart feature for ZIP files
- Added more fonts from Linux Font Project
- Fixed crash in context help
- Added
ReadZIP(),Rename(),MakeDir(),RmDir()andRmFile() - Internal cleanup and removed some duplicate code
- Fixed bug in
DrawArray()and newBitmap() - Fixed memory allocation bug where CWSDPMI and MuJS started to use virtual memory because of missing GCs.
- Added raw disk access through
RawRead()andRawWrite()(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()insocket.c - Renamed
fxGetMemoryTMU()tofxGetMemoryTmu()
- Fixed crash in Voodoo detection which only happens on plain DOSBox.
- Added TCP/IP support through WATT32.
- Fixed bug where text mode was not restored after exiting DOjS
- Added
File.GetSize(),File.WriteBytes()andFile.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 drawinglerpColor()
- Cleaned up startup messages in logfile.
- Re-added PNG loading/writing
- Added COM port access through the
COMPort()object. - Added RAW LPT port access through LPT-funktions
LPTRawData(),LPTRawStatus()andLPTRawControl(). - Added LPT printer acces through
LPTReset(),LPTSend()andLPTStatus(). - Added LPT/COM port enumeration through
GetParallelPorts()andGetSerialPorts(). - Added more verbose output about detected 3dfx card and found ports when startig up.
- Added
MidiGetPos() - Added example script that implements a simple MIDI player.
- Small cleanups for release building.
- 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()andVoiceGetPosition(), updatedSample.Play().
- 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()andString.endsWith()from MDN. - Added
HSBColor()to native API. - Fixed
SizeX()andSizeY()after usingSetRenderBitmap() - 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
- 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.
- 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)!
- 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()andtext()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
- 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-F4now clears the logfile before running the script.- Improved internal debugging features.
- Splitted
func.cintogfx.candfunc.c. - Implemented
push()andpop()in p5js compatibility layer. - Added a test-folder with scripts dedicated to test the API.
- Added
translate(),rotate(),shearX(),shearY(),resetMatrix(),scale()andapplyMatrix()in p5js compatibility layer.
- Fixed libmikmod creating a WAV file when no soundcard is detected.
- Added logging to another machine using IPX. set
REMOTE_DEBUG=trueand startjsboot/logview.json other machine. - Added
GetPixel()which returns theColorof an on-screen pixel. - Added
Bitmap.GetPixel()which returns theColorof an image pixel. - Fixed/added some stuff in GRX.
- 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 implementedmouseDragged()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.
- 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()toPrintln(), addedPrint()w/o NEWLINE. - Added
Include()which loads a module into top level context. - Added
Debug()andDEBUGto support conditional debug output. - Changed
Require()to search modules injsboot/and the current directory. File.ReadByte()now returnsnullat EOF.- Improved documentation.
- Improved detection of missing SoundBlaster.
- Added Processing/p5js compatibility layer.
- Added some examples from the p5js example library.
- Wrote a text editor for in-line script editing.
- Added inline-help and logfile viewer.
- Added frame rate limit and
GetFramerate()andSetFramerate() - Added
Gc()which can log toJSLOG.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()andStat()for directory traversal. - Shortened key codes in
jsboot/func.jsand addedCharCode() - DOjS now has a mascot.
- Makefile now had ZIP target.
- Added CHANGELOG
- Now linking with DJGPP FPU emulation (
-lemu) - Added support for file reading/writing (see
Read()andFile()) - Fixed Makefile.unix
- Reformated the whole code. I didn't notice my notebook had different settings in VSCode when releasing v0.5
- added
Read()andRequire() - Finally some stack traces in the logfile in case of errors
- improved logfile output for detected hardware
- switched to new script format with
Setup()andLoop() - Added
MouseSetCursorMode() - Fixed object creation
- Added MIDI playing
- Added IPX networking
- Initial release
- Binary release no longer available because of the old script format