Releases: SweMonkey/smdt
v0.31.4 Bugfixes & additions
IRC
- Added NICK and PART to the internal command parser that parses messages received from the server. (Sending NICK/PART from client to server is already supported)
- Reverted the upload icon colour back to default, changing it from red to orange serves no purpose anymore.
Telnet / Terminal
- Prototype scrollable regions (Scroll part of the screen vertically). It can scroll content upwards only! scrolling down requires more work.
- Rewrote the OSC parser so it is not hardcoded to just reading title changes.
- Fake RGB24 attribute colour support (Truncates RGB888 to RGB111, yes 1 bit per channel).
- Rewrote attribute code parser slightly, hopefully I haven't borked colour attribute changes in some way...
- Cursor is now using s16 instead of s32 (Haven't dared to change this before in case of hidden edge cases).
- Changed Backspace default back from ^H to DEL now that I've found out why it bugged out at times (smdt manually moved cursor and inserted blankspace, it shouldn't do that).
- Too many little changes and fixes here and there to list, mostly related to improved linux tty remote compability.
Telnet
- Added IAC DM (Data Mark).
- Added F1-F12, Page Up/Down, End, Home, Insert and Delete function keys.
Drivers
- Added timeout to pinging in xport driver, apparently there wasn't one already...
Misc changes
- Buffer system now uses boolean return values instead of cryptic magic numbers as return values on PUSH/POP.
- Cleaned up Buffer_PeekLast() and various other functions.
- For no real reason: 2 new theme colours: Aqua and hot pink. Don't ask why.
- Removed old debug streaming.
- Some UTF-8 code point fixes and additions in U+2500 and a few arrows in U+2190.
- Added 68k exception pages (Inspired by Vladikcompers recent exception handler added to SGDK). Still fairly basic but its better than what SMDT had before: no exception handlers at all.
- Uname command can now show SMDT build date and time.
Bugfixes
- IRC: Receiving NAMES list should no longer show a channel as having new messages.
- IRC: Nicklist now shows the last nick in the nicklist. Beware that showing >300 nicks may cause issues still.
- IRC: Normal mIRC colours should now work as expected when using 4x8 fonts, albeit in mono (2 colours).
- IRC: Now using \4 and \5 to set/unset custom text colouring in IRC (instead of \1 and \2), in hindsight this change was not actually necessary but it doesn't matter anyway.
- Telnet/Terminal: Fixed G1 charset bug that caused the terminal to use the wrong character set in certain applications.
- Telnet/Terminal: Fixed ESC PARAM not resetting all parameters between different escape sequences.
- Telnet/Terminal: Finally fixed wraparound "bug" that appears when the terminal receives \n at column 80 (causing 2 newlines), as opposed to receiving a printable character at column 80 (which should wrap and print to the next line).
- Drivers: Maybe fixed PS/2 timing issues on model 2 / NTSC genesis systems?
Known bugs
- TimeToStr_Full() in IRC client does not take your timezone into account? (Command 333 @ IRC.c).
- 4x8 colouring in IRC can only colour even number of characters, uneven number will result in the final character being uncoloured.
May be bugs?
- Spurious keyboard input when SMDT is overwhelmed by large incoming data transfers? May be emulator/xport emulator error on my end but I have not noticed this problem in previous versions of SMDT...
v0.31.3 bugfixes
v0.31.3 Bugfixes
- IRC mono colour antialiasing colour is now updated to reflect the new amber text colour.
- Interrupts were disabled to early on StateExit() which made the XPN drivers unable to actually communicate during Disconnect(). This caused excessive delays when trying to disconnect from servers.
- Added timeouts when doing date synchronization, in case the time server is not responding.
- Changed Backspace default from DEL to ^H . As before, this can be changed manually in the quick menu.
v0.31.2 Bugfixes
IRC TM buffers were not setup correctly on creation, leading to the first line getting coloured.
v0.31.1 Bugfixes & IRC QoL additions
Mostly minor bugfixes and some quality of life additions to the IRC client, along with some updated info regarding SMDT-PC and a FAQ in the readme.
IRC
- Added option for word wrap on screen edge.
- Added option to ignore and not print join/leave messages as they can get somewhat spammy and make some channels hard to read.
- Added 1 bit colouring to 80 column mode; Names are now coloured in both 40 and 80 column mode.
Bugfixes
- Hexview no longer fails to start when trying to open an empty file.
- Rx statistics enabled again in terminal/telnet client, it would previously not record received bytes.
- Automatic more/less enabled again. What does this do? well it makes sure that only a screens worth of text can be printed at once, after which is will stop printing text until you press a key.
- Setting IRC font while running the IRC client accidently initialized the terminal/tty backend and screwed everything up, whoops.
- Actually register nick change with server when doing /nick newnickname.
v31: Filesystem support, WIP gopher client
This release adds littlefs filesystem support, a very WIP gopher client and a WIP bookmark system to SMDT.
In addition a lot of little fixes and smaller features has been added.
So much has been changed and added to this release while less than usual testing has been done, so expect bugs :)
Terminal
- Added a few IAC's; Go-Ahead, NOP and End-Of-Record, these will be treated as NOP most of the time. SMDTC does not respond with GA / To GA. Fixes a few bytes that previously got swallowed up by the IAC parser.
- Added the alternate buffer (mode
?1049
and?47
). Max 80 columns is now enforced when using 4x8 fonts, likewise for the 8x8 fonts a max of 40 columns is enforced. In the future this could be increased to a max of 128 and 64 columns respectively. - Minor wraparound fix, terminal wrote 1 character beyond wrap limit.
Gopher
- Initial gopher client, WIP.
Filesystem
Very WIP filesystem support for SMDT. Beware data loss and bugs!
- Added littleFS support. SRAM is now a littlefs filesystem, which means previous SRAM configurations will be lost. New config file will be saved under
/system/smdt_cfg.bin
- New terminal commands: touch, mkdir, ls, rm, cat, mv, cp, lsblk.
- File ops support: r/w, seek, tell and close.
- Minimal lsblk implementation.
- Scrapped dosFS support.
Misc
- Initial bookmark list window, WIP.
- Fixed descender on lowercase g in the 4x8 font set, rounding looks a bit off however.
- Graphics is now compressed in ROM to keep the ROM size below 256 KB.
- HexViewer can now open and view files on the filesystem.
- Added "About SMDTC" command
about
- Setting font size now clears text on screen instead of leaving it in a odd looking state.
- Coloured boot messages indicating fail/ok and indentation for submessages.
- Removed some unnecessary menu entries in the quick menu.
Todo
- Gopher: Going back or forward a page.
- Gopher: More testing on hardware to see if it can still crash the mega drive.
- Bookmarks: Add/Edit bookmark functionality is currently not implemented (Only the window logic is programmed).
Known bugs
-
IRC: Nick list is missing 1 nick, see command 353 in IRC.c
-
IRC: Erroneous string comparison in command 353, in IRC.c
-
Drivers: PS/2 keyboards may not always be detected when plugged into pin 3+4 (as opposed to pin 1+2). Also needs more testing on NTSC systems.
-
Drivers: RetroLink cartridge rx issues.
-
Drivers: xPort device may not be found during startup if the xPort device does not have an IP and or not being ready yet.
-
Temporary fix, in cases where a device was not detected: try running the command
test -devinit
Bugfixes
- Many.
v0.30.3
Terminal
- 16 colour support for the 4x8 font. Achieved by sacrificing the inverted character set (only when using 16 colour 4x8!).
- Added the "tty" command; it initializes the SMDTC TTY to a sane enviroment for connecting to a Linux TTY, although still somewhat iffy and some functionality is still missing.
- Added support for DECCKM (Cursor Key Format). "Cursor", "Numpad cursor", "Home" and "End" keys should now switch reporting mode correctly.
- Control characters can now be entered by pressing
CTRL + <key>
, for example:CTRL+C
will send^C
. - History queue can now store 2 commands.
UI
- Added preliminary ColourPicker widget, Tab widget and ConfirmBox widget, these will be finalized later on.
- These widgets can be tested in the UI tester; Quick menu -> Debug -> UI Tester.
Misc
- Boot prompt now uses the terminal instead of the drawing on its own to the window plane. This allows for much better printing, colour and scrolling support if needed.
Bug fixes
Terminal:
- Mode set/reset in parser got broken in an earlier commit. Escape sequences such as
ESC[?Ⓝh
should now work again, applications such as nano now renders properly again. - Added a few skeleton escape codes, ie doing the bare minimum to handle them for now so they don't mess with previous/following escape codes.
Device Manager:
- Joypad was set to a weird state after the PS/2 keyboard detected scan iterated through all ports, which caused a few buttons to not work on joypads.
Drivers:
- The PS/2 keyboard detection scan will now only scan ports with an unknown ID, this is to avoid disturbing devices which for certain is not a PS/2 keyboard.
- Hopefully fixed the XPN driver for the last time; Pinging does not get stuck in monitor mode any more.
Misc:
- Cursor fixes; due to earlier optimizations the cursor Y position did not always get updated.
- Fixes in 4x8 font tilesets; 1 stray pixel in one character and 1 missing pixel in another character. The characters in question are used for line drawing.
Known bugs
- IRC: Nick list is missing 1 nick, see command 353 in IRC.c
- IRC: Erroneous string comparison in command 353, in IRC.c
v0.30.2
Terminal/Telnet
- Erroneously cleared the entire next row of text every time a newline+carridge return was encountered, this should only be done when also scrolling down to a new line.
IRC client
- The typing input box at the bottom now uses DMA VRAM copy. Previously a new single tile was uploaded to VRAM for every character you typed.
- Nick list scrollbar hopefully fixed; It could scroll beyond its limits before.
Drivers
- Cleaned up the XPN network driver. All functions should now work decently; EnterMonitor/ExitMonitor/Connect/Disconnect/Ping/GetIP.
Device Manager
- Bugfixed the Set/Reset device pin macro; A device could previously reset pins belonging to a different device, causing all kinds of fun debugging.
Misc
- Some failed UTF8 experiments, Prefer CP437 / Extended ASCII instead of UTF8 if given the choice.
- Slimmed UTF8 tables down from 256 bytes to 64 bytes for every table. Now only covers the necessary 0x80-0xBF range.
- Added doxygen comments to the PS/2 keyboard functions.
- Date function added to terminal. Used to sync to a time server and to print the current date.
Known bugs
- IRC: Nick list is missing 1 nick, see command 353 in IRC.c
- IRC: Erroneous string comparision in command 353, in IRC.c
- IRC: Printed dates may be wrong, showing 1950 instead of 2020 for example. 1900 vs 1970 unix time issue.
v0.30.1
Terminal
- Added the "uptime" command to show for how long the system has been running.
- Added clock to status bar.
IRC client
- Changed TM buffers to use 64x32 tilemaps, the IRC client now supports up to 6 concurrent channel "tabs" (F1-F6).
- Added channel update info in status bar. It shows the channel number (1-6) and if it has any new text.
- Changed MODE command text output to make more sense, taking into account what mode and who set it. Previously everything was printed as "You set personal modes +xyz" which is wrong. More MODE text will be added as I bump into them.
- Added the missing /part command, it is used to leave a channel. Usage: "/part #channel" or "/part" to leave the currently open channel.
Quickmenu
- Dropped the full on upper case text formatting.
- Organized menues and added font selector for each state (terminal, telnet, irc).
- Added theme selector
UI
- Large visual overhaul. Can no longer cover up status bar either.
- Theme support.
System
- FAT12/16/32 support, file operations and other misc functions added for testing purposes. Disabled by default.
- Added time calculation functions. IRC client can now print DD/MM/YY HH:MM:SS date times (previously printed seconds since epoch).
- Added system date/time clock, for now it is not synced to anything so it will drift/reset to 0 on power up. Clock drift is due to the fact SMDTC uses VSync (which may be disabled at times) to tick clock.
v0.30.0
Terminal
- Added bold variant of the 8x8 font.
- More colours in text output.
- Added "savecfg" command for saving config to sram.
- Added "reboot" command to reboot the system, with optional -soft parameter for soft reset instead of the default hard reset.
- Now wraps at screen edge instead of at column 80.
- Removed unused leftover variables.
- Fixed command parser reading some extra garbage if the inputted string was too long for the internal buffer.
- More stdout work. Automatic "less/more" when more than a full screen worth of text tries to print to the screen in one go.
IRC client
- Fixed a leftover inverted check that caused the irc client to quit prematurely when initializing.
Network
- Net: More network callbacks.
- XPN: More work done to support b1tsh1ft3r's controller port network adapter. Ping/Get IP/Transmit data/Receive data works good enough.
- RLN: More work done to support b1tsh1ft3r's cartridge network adapter. Ping/Get IP/Transmit data works good enough, Receive data does not work correctly (lots of dropped/unprinted bytes?).
Misc
- Telnet/IRC/Terminal now has their own font selection setting, no more keeping track of which state should use what font.
- Hex viewer can now show the rx buffer, tx buffer and stdout buffer.
Important
It is highly recommended to erase your sram if you have run previous versions of SMDTC. If you don't do this you will have issues with XPort devices.
You can do this by opening the quick menu (Right windows key or F8) then going into "Reset -> Erase SRAM" and finally reset your console.
I really need to remember to bump the save version number to invalidate old configurations in the future...
v0.29.14
IRC: Fixed bug where the client did not account for NICKLEN being smaller than your chosen nickname, which caused some issues with private messages.
IRC: Will now attempt to re-register your nick with added underscores in case your nickname is already in use on a server.
IRC: Userlist fixes. x.x
Terminal: Will now properly revert font back when switching state.
v0.29.11
Misc: Renamed save variables.
Misc: A few commands finalized (echo $variables, setting variable values).
IRC: Wrong font applied at IRC init resulting in a hard to read mess.
IRC: Weird bug where the last character in the users nickname gets clipped remains unsolved (nickname limits? but no such errors are received however). This bug only happens with efnet (specifically efnet.portlane.se @ port 6667).