Releases: SweMonkey/smdt
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+Cwill 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[?Ⓝhshould 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).
v0.29.9
Improved the screensaver. It now has its own 32x32 sprite.
IRC: Fixed some hardcoded addresses that should be using the common address macros.
IRC: More dynamic allocations to free up more RAM outside of the IRC client. malloc / free was not used before because it was broken.
v0.29.8
Terminal/Telnet: Code speed improvements/readability decreased
Cursor stuff; 1. Now alternates tile instead of colour, visually the same but now it is actually transparent when it is in the "off" state. 2. Cursor colour can be set and saved.
Terminal: Better BG colouring support when using custom BG colour.
Terminal: More built in commands. See "help" command in SMDTC.
v0.29.3
IRC: Cursor fix.
Added initial support for XPort module connected to an MD UART port.
PS2KB: Reworked keyboard reading method, it now works on NTSC/MD2 models (Thanks to b1tsh1ft3r).
PS2KB: SendCommand() has been rewritten.
Quality of life improvement to the terminal emulator.
v0.28.10
Added support for the Sega Saturn keyboard.
PS2KB: Sending commands to a PS/2 keyboard now works. Turns out I was sending the data bits in reverse order.
Device manager cleanup. Keyboards are now initialized externally.
Device manager can now check for sega device identifiers on connected devices.
SMDTC can now handle multiple different keyboards (Not at the same time however).
Initial doxygen comment additions.
Telnet: Title strings should no longer keep appending onto itself when disconnecting and connecting to a server.