Language…
11 users online: Anas, cletus_deletus, GRIMMKIN, Gutawer, Isikoro, JezJitzu, masl,  Ringo,  RussianMan, Skewer, toady - Guests: 225 - Bots: 342
Users: 64,795 (2,375 active)
Latest user: mathew

PIXI v1.2: Some Sprite Insertion Tool of Sorts

Tool

Bad News.
I use Windows XP but It still use.

This Software doesn't work with "New CFG Editor" but Windows 7 and 10 Works Fine!

I wanted to work with "New CFG Editor" for Legacy Windows XP Computers
You can use the old CFG Editors, they still fulfill the same purpose for now.
Your layout has been removed.
Not that I checked, but so long as you have .NET framework installed, it shouldn't matter whatever operating system you're using.
(Windows that is).

Also, there has been a minor bug in main.asm with per-level sprites and their extra property bytes. Here's the fix:

Code
	SEP #$20		;add this line
	LDA [$00]
	STA !extra_prop_1,x
	INC $00			;F
	LDA [$00]
	STA !extra_prop_2,x
	REP #$20		;add this line

Anime statistic on MyAnimeList:
400 animes completed ✓
6000 episodes completed ✓
100 Days completed ✓
... what even am I doing with my life?
the main.asm for this replaed my main.asm for AMK... but both of them had the same desination files called "asm". I'm confused.
Easy solution is to have the common sense to always give different tools their own folders instead of mashing everything in the same one!
Your layout has been removed.
I think I found a bug.
Could you look into this please?



This happens in SA-1 ROM (it works fine on lorom)
Those custom sprites supposed to be immune to Silver POW, because I set the tweaker bit.
But it doesn't apply when initializing.
Receiving?
Curious, could you tell me what sprite that is?
Anime statistic on MyAnimeList:
400 animes completed ✓
6000 episodes completed ✓
100 Days completed ✓
... what even am I doing with my life?
It is goomba.
Receiving?
Originally posted by TheJuanCarlos64
Bad News.
I use Windows XP but It still use.

This Software doesn't work with "New CFG Editor" but Windows 7 and 10 Works Fine!

I wanted to work with "New CFG Editor" for Legacy Windows XP Computers

yeah what he said the cfg wont work on xp.
Originally posted by zacmario
Originally posted by TheJuanCarlos64
Bad News.
I use Windows XP but It still use.

This Software doesn't work with "New CFG Editor" but Windows 7 and 10 Works Fine!

I wanted to work with "New CFG Editor" for Legacy Windows XP Computers

yeah what he said the cfg wont work on xp.

Gonna be very blunt here and say that newer tools really shouldn't have to keep Windows XP in mind. Windows XP is outdated, no longer maintained by Microsoft and should just be forgotten about. It's not Jack's fault that it doesn't work on XP, and you're best off upgrading to Windows 7, 8 or 10.

If money is an issue, well, there's always alternative options that I shouldn't even have to name here.
Originally posted by SkywinDragoon
It is goomba.

Did you make sure the sprite is properly sa-1 converted.
Anime statistic on MyAnimeList:
400 animes completed ✓
6000 episodes completed ✓
100 Days completed ✓
... what even am I doing with my life?
I know this sounds stupid, but, will FuSoYa's SMB3 Pipes work with this? I am wondering if this will change any similar addresses. If you want, I can test this if you do not know.
Hi, I'm a signature!
Hack Thread
Hack Testing Status: Available.
Layout by Koopster.
I used the SA-1 converter, so it supposed to be converted. (It never uses shared routines)
I will try other sprites to see if the bug "truly exists" on PIXI, not the sprites.

[EDIT]
I found a bug in SubOffScreen (shared routine):

Code
	STA $1938|!Base2,y  


$1938 Should be remapped to: $418A00

Code
	PHX
	TYX
	STA !1938,x	; !1938 = $418A00 is SA-1
	PLX

Of course, add some macro in sa-1defs.
This will be fine for now..

Originally posted by M A R I O W O R L D
I know this sounds stupid, but, will FuSoYa's SMB3 Pipes work with this? I am wondering if this will change any similar addresses. If you want, I can test this if you do not know.


FuSoYa's SMB3 Pipe is incompatible with GPS, that's why GHB started to made his own (which is much better and easy to use)

Since this is based on GPS, I'm not sure if PIXI is compatible with this.
But I recommend to use GHB's pipes.
Receiving?
Originally posted by SkywinDragoon
Since this is based on GPS, I'm not sure if PIXI is compatible with this.

The tool itself is based of GPS but the codes on other hand are taken from romi's sprite tool.

Not that it would be good to hijack the custom Map16 interaction just to insert sprites anyway...

PS: The reason why GPS in FuSoYa's pipes are incompatible while BTSD aren't is because of the way on how GPS and BTSD hijacks the Map16 interaction: BTSD only hijacks parts of it (leaving room for more custom interactions like the screen scrolling pipes) whereas GPS uses all of the space (at least if you don't modify main.asm, that's it).
I've been teaching myself to program custom sprites with the help of the Legacy Sprite Programming tutorial (replacing TRASM syntax and shit for Asar syntax, obviously).

The first practice sprite (a blue mushroom that gives Mario 10 coins, plays the coin sfx, then vanishes) crashes on PIXI, but not in SpriteTool. When I enter the stage that has the custom sprite placed in, the game just crashes.

Here's the code:
Code
;=====================
; INIT + MAIN
;=====================

	print "INIT ",pc	; Initialization Routine.
	RTL			; End Init.

	print "MAIN ",pc	; Main routine.
	PHB
	PHK			; Save old data banks.
	PLB			; Load new data bank.
	JSR MainCode		; Begin code.
	PLB			; Load old data bank.
	RTL			; End Main.

;=====================
; CODE
;=====================

	Return:
	RTS

	MainCode:
	JSR GFX			; Jump to GFX routine.
	LDA $14C8,x
	CMP #$08
	BNE Return		; If sprite is dead or not in normal state, end code.
	LDA $9D
	BNE Return		; If sprites are locked, end code.
	JSR SUB_OFF_SCREEN_X0	; Load routine for handling offscreen sprites.
	JSL $018032		; Establish sprite interaction in the sprite.
	JSL $01A7DC
	BCC NoContact		; If Mario isn't touching the sprite, end code.
	LDA #10
	STA $13CC		; Add 10 coins
	LDA #$01
	STA $1DFC		; Play Coin SFX
	STZ $14C8,x		; Erase Sprite
	NoContact:
	RTS			; End Main.

	GFX:
	JSR GET_DRAW_INFO	; Load routine for graphics drawing.
	LDA $00
	STA $0300,y
	LDA $01
	STA $0301,y		; Load Sprite X and Y position into OAM
	LDA #$24
	STA $0302,y		; Load Mushroom tile
	LDA #$06
	ORA $64
	STA $0303,y		; Load sprite properties
	INY
	INY
	INY
	INY
	LDY #$02		; Tile size = 16x16
	LDA #$00		; 1 16x16 tile.
	JSL $01B7B3
	RTS			; End GFX routine

(GetDrawInfo and SubOffScreen down here)


Also, the new CFG Editor won't let me write anything in the File Pointer other than Hex (00 ~ FF).
I'm not sure if this is from my Win8 install (I have Japanese IME installed and its default language is European Portuguese).

I can circumvent this by proceeding as normal and setting the ASM file name in the .cfg itself or just using an older CFG Editor, but...

I'm gonna stick to SpriteTool for the time being, sorry.
HackPortsASM"Uploader"

Originally posted by lion
...code...

I copy+pasted that code, added suboffscreen and getdrawinfo and it doesn't crash.

Either you have an outdated version of pixi or the suboffscreen/getdrawinfo routines you use are at fault... somehow (There were crashes in earlier versions but I never had issues with the currently accepted one)
Originally posted by TheBiob
Originally posted by lion
...code...

I copy+pasted that code, added suboffscreen and getdrawinfo and it doesn't crash.

Either you have an outdated version of pixi or the suboffscreen/getdrawinfo routines you use are at fault... somehow (There were crashes in earlier versions but I never had issues with the currently accepted one)

Huh.

Just tried placing the SubOffScreen and GetDrawInfo routines packaged with library.asm (edited to have Asar syntax) instead of the ones in PIXI's routines folder and it works?

guess I'll be using pixi now lol

Thanks for your help, I suppose!
HackPortsASM"Uploader"




How do I use the other Suboffscreen modes? I tried %SubOffScreen(2) but that didn't work.







Originally posted by suboffscreen.asm
input A for which sub_off_screen to use (usually 0). Only last 3 bits are used.


So probably
LDA #$02
%suboffscreen()
This looks cool, but is it safe to use? Plz lemme know 'cuz... y'know, don't want a messed-up ROM.
My Mode 0 guide.

My Discord server. It has a lot of archived ASM stuff, so check that out!

Tool