A sprite insertion tool made to allow more dynamic sprite usage, space savings and more SA-1 compatibility.
Despite this, it is almost fully compatible with sprites written for older SpriteTools, save for the fact that Asar is now used as the assembler. There also the new sprite status table that has been moved from 1938 to 7FAF00, used by SubOffScreen routines since version 1.2.10.
Since version 1.2.13, now you can disable the 255 sprite per level support by using the -d255spl flag. This is only useful if you are converting old romi sprites to pixi and you don't know what you are doing. You will have to rebuild your rom in case you already ran pixi +1.2.10 without that flag and want now to use the flag.
Detailed usage instructions, common errors and changes compared to older sprite tools can be found in the included readme.txt file. Version history can be found in changelog.txt.
Version 1.2.15 (July 10, 2020):
- (Atari2.0) Removed unnecessary waiting (BRA $00/NOPs) in SA-1 version of various routines (Aiming, CircleX, CircleY, Random)
- (Atari2.0) Added exception control for missing .json files. Now it will output exactly what json file was not found instead of printing the stacktrace.
- (Atari2.0) Added a command line option "-out" that can be added after "-d" to redirect debug output to a file instead of the prompt/stdout.
- (Atari2.0) Fixed trimming of filenames causing bug with trailing whitespaces in .cfg/.json names in list.txt
- (Atari2.0) Added a warning in case the user is inserting Pixi into a rom without having modified any level in Lunar Magic, causing various bugs (like goal posts not working).
Version 1.2.14 (March 02, 2020):
- (Atari2.0) Fixed a bug which caused pixi to cleanup stuff wrong if you ran it with an empty list.
- (Sillymel) Fixed a bug in GetDrawInfo which caused it to consider clippings from 20+ instead of two-tiles death animation flags. This is actually a bug in the Vanilla game as well (see $01A365 and $02D378).
- (Sillymel) Fixed comments on ShooterMain.
- (Sillymel) Fixed a bug which caused SpawnExtended to return the wrong carry flag when signalling it failed to spawn a sprite due to the sprite being offscreen.
- (Sillymel) Fixed carry return of GetMap16 so it actually returns the flags like it says it should.
- (Sillymel) Fixed ChangeMap16 return so it returns #$FFFF instead of #$00FF.
- (Sillymel) Fixed a bug which caused ChangeMap16 to break the stack due to it mishandling 16 bit mode.
- (Tattletale) Added proper documentation to -d255spl.
- (Tattletale) Added a comment about x/y offset in SpawnSprite, basically it substracts them if they are negative.
- (Tattletale) Added a comment about TDC usage in GetDrawInfo.
- (Tattletale) Fixed a slight overlook in GetDrawInfo which would cause it to keep the vertical offscreen flag's state if the sprite is offscreen horizontally. Reported by Super Maks 64.
- (Tattletale) -ssc is now properly implemented, reported by Shiny Ninetales, quite possibly imamelia had issues with this too.
Version 1.2.13 (January 09, 2020):
- (Tattletale) Fixed a bug with sprite data displacement introduced in 1.2.10. LM3 cache would cover this up in most cases, except for reeeeeally tall levels.
- (Tattletale) Added a compatibility flag to disable 255 sprites per level support on fastROM -d255spl, check the readme for more info.
- (Tattletale) Removed main_npl.asm, now there's an optional config file included in sa1def.asm that's generated on every run. Eventually this file will actually become a config file. Special thanks to randomdude999 for giving me the code to check for files in asar.
- (Tattletale) SubOffScreen edited to include a check for -d255spl flag.
- (Tattletale) sa1def.asm edited to include checks for -d255spl flag. All defines that were in main.asm before were moved to sa1def.asm.
Version 1.2.12 (October 28, 2019):
- (dtothefourth) Fixed the cfg editor to work properly with n extra bytes (actually only up to 12). Disclaimer, the cfg editor will be removed from pixi packaging starting from the next update! It will be submitted as a standalone resource.