0.7.5

More
1 month 1 week ago - 1 week 5 days ago #53 by Franck
0.7.5 was created by Franck
  • Fixed a wrong page address setting in the system for the start of the VM in the XSRAM. Was 0xD0 (0x34000) and is now 0xCC (0x33000). The available space was not 48KiB as specified but only 44KiB. It is now 48KiB as specified. The manual has been updated. Programs must be recompiled to benefit from the correct position in the XSRAM. All default programs (demos, examples, tools and utils) have been recompiled for this release, no need to do it yourself.
  • A new /system/reginit.dat file has been created. This file contains the initial state for all registers and internal buffers. You can import it at the start of a program to make sure all registers are correctly initialized (in case another program run before changed these registers):
    • import("/system/reginit.dat",0x1100,0);
  • Fixed a bug in the ymSetParam() and ymGetParam() functions wrongly setting/clearing some registers bits.
  • Fixed a small bug in the compiler. Was emitting a int instead of a byte for some memory access instructions.
  • Cleaner handling of graphics when exiting text editor. Text is restored and everything else (sprites, bitmap, tiles) is properly cleared.
  • In CLI, LShift+Del now performs a graphics clear (sprites, bitmap, tiles) while RShift+Del performs a text clear like before. Manual has been updated.
  • Slight improvement of OpCode usage to make space for future extensions. Requires a recompilations of your programs.
  • Fixed YM2612 reset now clears all instruments (issue 117).
  • /utils/sprrot.src utility added. The utility precomputes sprite rotations from 0 to 90 degrees in any number of steps. An example usage is included that makes use of the hardware flipping to cover 360 degrees rotations.
  • Fixed a bug with early return in functions was not restoring the correct frame position in the VM. It is now more robust and slightly faster.
  • Fixed a bug with returned values from a function were staying on the stack when not being consumed, causing stack overflow.
  • Added support for assignment of custom type grouped members to custom type array element: e.g. vectors[index]={expr,expr};
  • Fixed nested member access as array indices: e.g. typeA[typeB.id].id;
  • Fixed function call with custom type array element as argument: e.g. f(typeA[typeB.id]) (as shown in navegame by rosogon)
Last edit: 1 week 5 days ago by Franck.

Please Log in or Create an account to join the conversation.

Time to create page: 0.155 seconds
Powered by Kunena Forum