Repository navigation
Releases: lajohnston/smslib
Releases · lajohnston/smslib
Release list
0.6.0 - Register preservation, simplified VBlanks, improved metatiles
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.preserveandutils.restorelets 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.onVBlanksection. Useinterrupts.waitForVBlankto wait/poll for the next VBlank before your render code interrupts.onVBlankhas been removed- No need for
ei,diunless you need HBlanks
- Reworked VBlank to using vdp status polling rather than interrupts, so need for a
- Various breaking changes and renames
vdpmodule renamed tovdpSettings, to reflect its actual scope
0.5.0 - Improved input and error handling
New features
- Improved input handling (
input.ifPressed,input.ifHeld,input.ifReleased,ifXDirPressedetc) - Assert macro arguments at assemble-time to fail fast and provide user-friendly messages
- Various optimisations
- Adds
smslib-zest.asmhelper 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.handleVBlankandinterrupts.handleHBlankrenamed tointerrupts.ENABLE_VBLANKandinterrupts.ENABLE_HBLANK
0.4.0 - Scrolling tilemap support and naming convention changes
New features
- Lots of tilemap improvements, including scrolling support (metatiles and raw tiles)
input.loadADirXandinput.loadADirYpalette.loadRGBtilemap.FLIP_XYattribute- Various bug fixes and optimisations
Breaking changes
setSlotmacros (such aspalette.setSlot) replaced withsetIndexto save confusion with paging slots- Other
slotreferences not related to mapper slots have been renamed
- Other
- Renamed
loadmacros (such aspalette.load) towriteBytes- Renamed various 'load' and 'send' macro names; procedures that send data to the VDP now start with
write, such aswriteByteinstead ofloadByte
- Renamed various 'load' and 'send' macro names; procedures that send data to the VDP now start with
- Requires WLA-DX 10.3+