############################################################################### # # F A T - E n g i n e - H I S T O R Y # # # # (c) 2001-2002 TiCT (http://tict.ticalc.org) # ############################################################################### $Id: history.txt,v 1.21 2002/05/08 15:42:26 tnussb Exp $ ------------------------------------------------------------------------------- NEW in FAT-Engine/SDK 1.10 - Official Release (08/05/2002) ------------------------------------------------------------------------------- (1) "How To Start Programming A FAT-Client" document added (2) Protection against too early calls to FAT functions (before FAT_LoadEngine) added. Now the screen will flash and outputs a warning in the status bar. You should never see that screen. If you see it you have to call FAT_LoadEngine() sooner in your client program. (3) Door texture used by demo 3 and demo 10 replaced. Now it looks like a real sliding door. (4) Macro FAT_WaitKeyPressed() added which loops until one key is pressed (using rowread internally) (5) FAT_DisplayLogo() added (for more details see Terms-of-Use below). (6) Now document ("Terms Of Use" - docs/terms-of-use.html) added. Please read this new document carefully. I don't think the content is very restricted. I just would be pleased if you output the new splashscreen in your client program. (7) GUI of Demos completely revised (No longer using that ugly printf's) ------------------------------------------------------------------------------- NEW in FAT-Engine/SDK 1.09 BETA (06/05/2002) ------------------------------------------------------------------------------- (1) exepack decompression fixed (2) demo 3 temporary modified to use an embedded exepacked image for the gui (3) defines for decompression function return values (FAT_UNPACK_xxxx) added to fat.h ------------------------------------------------------------------------------- NEW in FAT-Engine/SDK 1.08 BETA (03/05/2002) ------------------------------------------------------------------------------- (1) Sorrily I have to fix the texture drawing direction again. Now textures are drawn definitely correct. BUT this causes also a modification to the sprite drawing function. Sprites were also drawn mirrored previously. Now they are drawn in the correct direction. IMPORTANT: If you have used multidirectional sprites previously you have to change the ordering of your sprites to be displayed correctly with the new version. If the ordering was previously 1,2,3,4,5,6,7,8 you have to change it to 1,8,7,6,5,4,3,2. If you are already using the FAT standard file format you can perform this quite easy by just rearranging the TEXCONFIG setups. You haven't to touch the binary data. (2) various flaws in the docs fixed. (3) structure TEXANIMATION (preliminary - don't use yet!) added to fat.h (4) macro FAT_UpdateAnimation() (preliminary - don't use yet!) added to fat.h (5) bug fix in texmaker: previously the GENERICDATA entries of TI92p texture files were corrupted (wrong offsets). (6) PC tool bindiff added (well, I haven't found such a tool on my PC and I was too lazy to search longer for it) (7) IMPORTANT: tool fatload added. This tool is a generic launcher for the fatdemos where you can select the demo you want to start from a list like the ebook reader does for ebooks. ------------------------------------------------------------------------------- NEW in FAT-Engine/SDK 1.07 BETA (30/04/2002) ------------------------------------------------------------------------------- (1) New variable type FAT_DBG_STRING for console. Debugging string variables is a little bit tricky - Don't forget to handover ALWAYS a pointer to a (char*), thus a pointer to a pointer. (2) Console restructured. Now when you press left or right on the FATCONFIG page a page with Engine Details will be displayed. (3) A client program can now add up to 70 variables to the console. This should be now really enough. Isn't it? (4) Console remembers now the last visited page. If you open the console again it will display this page. The only exception from this is the sprite details page if the number of sprites changes. (5) IMPORTANT: "bug" in LoadEngine() fixed. A client program should NEVER run with an engine having a lower sub version number than itself. The reason is simple and I'll try to explain it with a new STRING feature of the console. Previously there were 8 types of variable specifications which maps directly into an array with 8 entries. Now this array has 9 entries. When a new program uses entry 9 with an old engine version anything may happen depending if the previously version does some parameter checking or not. Well - it should, but do be on the safe side I have added now the "don't run on minor subversions" checking. NOTE that this "bug" doesn't have any influence on programs built with previously released SDK version. Previously the number of interface entries has always changed which prevents the client from using minor subversions, too. So this "fix" is only a fix for the future. (6) Demos: if FAT_LoadEngine() fails different strings will be displayed yet (7) Thanx to Scott Noveck, the engine is now able to handle sliding doors!!! Check the API docs for how to use them. (8) Demo 10 (Doors demo) added (9) Bug in wall texture rendering fixed. Previously wall textures were rendered mirrored depending on the camera position. Now wall textures are always rendered correctly (especially wall textures with text on them profit from this fix). (10) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! console hotkey changed: Now you have to hold done [4],[5] and [6] simultaneously to enter the console. This way the console key shouldn't interfere with the key usage of any FAT client. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (11) IMPORTANT: TexMaker modified. You can specify now optional names for TEXCONFIG and GENERICDATA setups. These optional names can be exported into a standard C headerfile as defines, which makes bookkeeping of your TEXCONFIG and GENERICDATA indices much easier. Sorrily it was necessary to change the input format a little bit: Now keyword GENERICDATA has to be located on a line by itself (only followed by the optional name). The rest of a GENERICDATA setup has to follow in the next line. ------------------------------------------------------------------------------- NEW in FAT-Engine/SDK 1.05 BETA (25/04/2002) ------------------------------------------------------------------------------- (1) function FAT_GetPadState() added (reading of key pressed states like in GenLib). (2) macro FAT_ClampAngle() added (returns value of input angle clamped to 0 ... 575). (3) Strafing functionality added to demo 1/2/4 and 5. Hold 2ND on the TI-89 or F1 on the TI-92p to strafe instead of turn left/right. (4) the sprite orientation will be now automatically clamped to 0 .. 575 while rendering. (4) Documentation index file added (docs/index.html) (5) "How To Make Textures For the FAT-Engine" document added (docs/making_textures.html) (6) macro FAT_AllKeysReleased() added to fat.h (waits until all keys are released) and the previously used macro removed from utils.c (7) Using now FAT_ClampAngle() in PlayerTurn() function of utils.c (8) Console added. Now the FAT-Engine is built in two ways: one version without the console called FATLIB.DLL and one version with the console called FATLIB_C.DLL. FATLIB.DLL is for distributing games and FATLIB_C.DLL only for development. If you use the console version make sure that you delete the normal version first. To open the console just press the [APPS] key. This key is just temporay used. I will use an uncommon combo later. There is much to say about the console and how it may help you in debugging your FAT program. I have added a new HOWTO document called "How To Debug "Client Programs using the FAT-Console" to the docs (docs/debugging.html). AND AGAIN HERE: ----- PLEASE DON'T DISTRIBUTE the console version with your program. ALWAYS distribute file fatlib.dll! (9) Demo 9 added which demonstrates animated textures and client program debugging using FAT_DebugUseSlot(). ------------------------------------------------------------------------------- NEW in FAT-Engine/SDK 1.00 (22/04/2002) ------------------------------------------------------------------------------- (1) macro FAT_cos16384() redefined to its previous form (2) FAT_sin16384(): input angle gets now clipped to angle=200?3:0)) It should read (not the "[2]" instead of "[3]" on the far right side): #define CALCULATOR (ROM_base==(void*)0x400000?1:(((unsigned char*)\ (*((long*)(*((long*)0xC8)+0x2F*4))))[2]>=200?3:0)) I have modified my local version of compat.h and it should work now. ------------------------------------------------------------------------------- NEW in FAT-Engine/SDK 0.90 (11/03/2002) ------------------------------------------------------------------------------- (1) Thanx to Scott Noveck (noveck@pluto.njcc.com) the multidirectional sprite support is now integrated into engine. All number of directions which are a power of 2 are supported i.e. 1,2,4,8,16 .... Sorrily it was necessary to modify the FATSPRITE structure a little bit for that. Therefore recompiling older FAT-programs which use the sprite support is necessary. Check demo4 and demo5 for how to use the new feature. (2) Structure FATSPRITE contains now a pointer variable (clientdata) which can be freely used by the client program to store own data (3) Minor speedup by changing functions from scale_it.c to inline (4) unused code removed from fat.c (5) missing LCD_restore() when engine wasn't able to initialize added to some of the demos (Thanx to TRGenius for reporting this problem) (6) Demo 3 uses now a quite experimental code to restrict the player not to come too near to a wall and which tries to "auto-slide" the character if it gets stuck to a wall (Scott Noveck & me) (7) The demos should run now correctly on the upcoming V200. ------------------------------------------------------------------------------- NEW in FAT-Engine/SDK 0.85 (06/03/2002) ------------------------------------------------------------------------------- (1) bugfix in sprite support. Previously an address error was possible due to a too long running loop (rounding problem). (2) "export through fatinterface" of internal FAT-Engine tables added (3) "export through fatinterface" of some version and build date/time strings added (4) "export through fatinterface" of Exepack-decompression function (5) NO_EXIT_SUPPORT turned on (Programs which uses the FAT-Engine are NOT allowed to use exit()!) (6) NOTE: programs which are compiled for an older version of the engine will still run with the new engine. There is no compile necessary, only if you want to make use of the new exported "functions". (7) Demos: funtion OutputTitle() rewritten (uses now new exported "functions" of FAT-Engine) (8) Demos: renaming of InstallDummyHandleForINT1()/RestoreHandlerForINT1() to InstallDummyHandleForINTs()/RestoreHandlerForINTs(), because AUTO_INT5 is redirected to dummy handler now to fix the invalid recognizing of an ESC key press. (9) Demos: don't use SAVE_SCREEN anymore, but use own screenbackup to enable writting to the statusline (error messages or "powered by" message) (10) Demos: restores now previously set font at the end of the program (11) fatd5: uses now Scott Noveck's fast directional sprite support (12) fatd6: new demo added which demonstrates how the FAT-Engine can be used to make an game intro (13) fatd3: completely restructured to show additionally: (1) how to use the pre-draw callback to implement a lightning effect (2) how to use a background image for the rest of the screen (3) how to use an image for the floor (looks ugly at the moment) (4) how to use masking to display a decoration of the FAT-view (14) documentation updated (still missing: docs about sprite usage and docs about the predraw callback) ------------------------------------------------------------------------------- NEW in FAT-Engine/SDK 0.81 (01/03/2002) ------------------------------------------------------------------------------- (1) bugfix in EX_patch call (fat.h: FAT_LoadEngine) to be prepared for new AMS 2.06. ------------------------------------------------------------------------------- NEW in FAT-Engine/SDK 0.80 (20/02/2002) ------------------------------------------------------------------------------- (1) FAT-Engine now compatible with TIGCC 0.93 ------------------------------------------------------------------------------- NEW in FAT-Engine/SDK 0.73 (09/04/2001) ------------------------------------------------------------------------------- (1) FAT-Engine now compatible with TIGCC 0.91, but lost compatiblity with previous TIGCC versions (.text versus .data segment problem) (2) optimization of SCALE_IT and TRANS_SCALE_IT inline ASM macro suggested by Scott Noveck (noveck@pluto.njcc.com) ------------------------------------------------------------------------------- NEW in FAT-Engine/SDK 0.71 (30/03/2001) ------------------------------------------------------------------------------- (1) Sprite-Support added (2) Exported sinus/cosinus tables are now scaled by 16384 (sin(a)*16384.0) (3) Speedups in inner loops (using now inline ASM macros) ------------------------------------------------------------------------------- NEW in FAT-Engine/SDK 0.65 (07/03/2001) ------------------------------------------------------------------------------- (1) A completely different approach to texture vertical strips implemented. Instead of the algorithm described in tutorial S2P1 the FAT-Engine uses now pre-generated scalers (one for each height). These scalers are pure assembler routines and use no internal loops. benefits of the new method: --------------------------- (a) time to render an image is almost independent from the average strip height (therefore it is almost constant when no transparent textures and sprites are used). (b) between 50 and 300% faster than previous approach. (c) internally the ratio "image quality to engine executable size" is excellent controlable (actually its optimized for quality). (d) distortion effects are minimized drawbacks: ---------- (a) all textures have to be rotated 90 degrees to the right. In folder src/tools you can find a tiny tool (fixtex64) which performs this rotation for a 64x64 binary export file of ImageStudio. (b) the background image have to be supplied in a very special format. See the FAT-API docs for more details (Section: Texture formats). In my opinion the drawbacks are not really important in contrast to the benefits. (2) A new demo (fatd2 - sniper demo) added which shows how to use a overlay image to mask out parts of the generated 3D view (3) 64x64 textures consists now of 4 separate 16 pixel wide strips which can also be mirrored. The benefit of this that less memory is necessary if textures are mirrored vertically. The drawback is a minor loss in speed 2-3 percent as well as a more complicated setup. (4) The demos use now _rowread() and smaller delta values to give a smoother movement (5) Routines FAT_GetDepthBuffer() and FAT_GetClipHeight() added ------------------------------------------------------------------------------- NEW in FAT-Engine/SDK 0.50 (04/03/2001) ------------------------------------------------------------------------------- (1) converted the FAT-Engine into a NOSTUB-Library (2) moved all functionalities which are not rendering related to the sourcecode of the demo (3) many minor preparations for the first release of the SDK ------------------------------------------------------------------------------- NEW in FAT-Engine/SDK 0.20 (03/03/2001) ------------------------------------------------------------------------------- (1) complete rewrite of the core routines to support arbitrary angles and step sizes ------------------------------------------------------------------------------- NEW in FAT-Engine/SDK 0.15 (28/02/2001) ------------------------------------------------------------------------------- (1) camera position parameters changed (now its easier to navigate) (2) timer functions added (based on interrupt 1 calls) (3) textures of fatdemo changed (4) raycasting and strip rendering separated for speedup ------------------------------------------------------------------------------- NEW in FAT-Engine/SDK 0.11 (27/02/2001) ------------------------------------------------------------------------------- (1) Walls now scaled to full screen height (2) problems with fisheye-correction fixed (distorted textures) (3) fake floor texturing added (just for internal speed tests) (4) tracing depth increased add some calculation time ############################################################################### thomas.nussbaumer@gmx.net Graz/Austria ###############################################################################