It has been a while since last update and a lot has happend.

Crash on exit.

I found two reasons for TGE to crash on exit, the first reason was simply that I forgot to shutdown the graphics system  so TGE would deallocate everything else but still try to do some rendering, which resulted in a crash.

Second reason for a crash on exit I was unable to fix, but I worked around it. During static destruction of some container ‘A’, TGE would print messages to the log file. This  involved an other static container ‘B’  which did dynamic allocations. There might be two reasons for this to crash, ‘B’ could already have to destructed, you can’t rely on the order of static destruction, or Exec Library might already have been closed so dynamic allocations are not possible. I never found out which to blame, I simply disabled the log messages in the destructor and the crashes were gone.

Input

The input layer has been heavily upgraded and both keyboard and mouse input are working very well now, in windowed mode.

The mouse has been nicely integrated between Torque and Workbench. TGE will seamlessly switch between the TGE mouse and Workbench mouse when moving the pointer in and out of the window. TGE will grab the mouse in game mode, so that other windows or the Workbench are not accidentally selected.

I have not tested this in full screen mode yet, simply because full screen mode does not work properly yet.

Finally the keyboard input has actually been implemented. Now it is possible to move around, use the built in editor and everything else you would expect of a game engine.

For now the keyboard input is restricted to the rom keymap ‘usa’ so special charaters can’t be used and further more deadkeys are not supported.

Next…

Well there is still much work that needs to been done for this port to be complete.

When building TGE in release mode it does not start up, I think there might be a semaphore or something which gets used in release mode, and this semaphore might not be released or something like that.

Audio is still missing aswell as multithreading which I disable early in the process and there are some rendering bugs, probably caused by some endian issues. Worst of all, the game freezes at some point while playing. My guess is that it crashes while minigl has the screen locked, so I am not seeing the Grim Reaper, which means I have to find a way to get serial debugging working on my setup.