Skip to content

Releases: lajohnston/smslib

0.6.0 - Register preservation, simplified VBlanks, improved metatiles

Choose a tag to compare

@lajohnston lajohnston released this 22 Aug 15:55

Full Changelog: 0.5.0...0.6.0

  • Added a dynamic register preservation system (see docs) to preserve only the registers you specify, and only if those particular ones get clobbered
    • Default mode works as before, clobbering registers freely - brings gotchas but is most efficient
    • Wrapping calls with utils.preserve and utils.restore lets you specify which registers you don't want clobbering. Those will be preserved (push/popped from the stack) only if the library routine actually clobbers them
    • Automatic mode will preserve everything - simplest but least efficient
  • Reworked metatiles to improve efficiency and allow more sizes (such as 3x3)
  • Simplified VBlank setup and handling
    • Reworked VBlank to using vdp status polling rather than interrupts, so need for a interrupts.onVBlank section. Use interrupts.waitForVBlank to wait/poll for the next VBlank before your render code
    • interrupts.onVBlank has been removed
    • No need for ei, di unless you need HBlanks
  • Various breaking changes and renames
    • vdp module renamed to vdpSettings, to reflect its actual scope

0.5.0 - Improved input and error handling

Choose a tag to compare

@lajohnston lajohnston released this 07 Apr 12:16

New features

  • Improved input handling (input.ifPressed, input.ifHeld, input.ifReleased, ifXDirPressed etc)
  • Assert macro arguments at assemble-time to fail fast and provide user-friendly messages
  • Various optimisations
  • Adds smslib-zest.asm helper for integration with Zest projects

Breaking changes

  • The user overridable setting .defines are now capitalised for consistency with others consts (values that are only set once)
  • interrupts.handleVBlank and interrupts.handleHBlank renamed to interrupts.ENABLE_VBLANK and interrupts.ENABLE_HBLANK

0.4.0 - Scrolling tilemap support and naming convention changes

Choose a tag to compare

@lajohnston lajohnston released this 09 Mar 18:51

New features

  • Lots of tilemap improvements, including scrolling support (metatiles and raw tiles)
  • input.loadADirX and input.loadADirY
  • palette.loadRGB
  • tilemap.FLIP_XY attribute
  • Various bug fixes and optimisations

Breaking changes

  • setSlot macros (such as palette.setSlot) replaced with setIndex to save confusion with paging slots
    • Other slot references not related to mapper slots have been renamed
  • Renamed load macros (such as palette.load) to writeBytes
    • Renamed various 'load' and 'send' macro names; procedures that send data to the VDP now start with write, such as writeByte instead of loadByte
  • Requires WLA-DX 10.3+

0.3.0 - Initial release

Choose a tag to compare

@lajohnston lajohnston released this 21 Apr 19:51

Basics all implemented