Page 1 of 1

Controller with ASM code

Posted: December 1st, 2022, 10:58 am
by scorpion2k81
Hello,
How can I read controller buttons via asm code?
I would like to use it with asmpsx.

Re: Controller with ASM code

Posted: December 1st, 2022, 12:03 pm
by Shadow
Here's some snippets to help you out. You'll need to understand MIPS in order to get it to work correctly ;)

Code: Select all

var_pad_pointer		equ		$80100020


; branch if triangle is being held
check_triangle
	li		t0,var_pad_pointer
	lhu		t0,$0(t6)
	nop		
	beq		t0,$10,myfunction
	nop


; InitPads - initialise the joypads (trashes fp)
InitPads
	addiu   	sp, sp, -$C
	sw      	ra, $0(sp)
	sw      	s0, $4(sp)
	sw		fp, $8(sp)
	nop
	addiu		sp,sp,-$20		; stack
	
	jal		NBStartPAD
	nop
	
	li		t1, $15
	li		a0, $20000001
	li		t2, $b0
	
	li		a1,var_pad_pointer
	li		a2,$00000000
	sw		a2,$0(a1)
	;li		a2,$0000FFFF	; to test, write a nonzero value to the pad read loc
	;sw		a2,$0(a1)
	
	jal NBPAD_init
	nop
	
	;la		a1, pad_buf
	;jalr		t2
	;nop
	
	addiu   	sp,sp,$20		; stack
	
	lw		ra,$0(sp)
	lw      	s0,$4(sp)
	lw		fp,$8(sp)

	addiu   	sp,sp,$C
	jr      	ra
	nop


; kernel/BIOS functions
NBStartPAD:
	ori     	t2, zero, $B0
	jr      	t2			; StartPAD
	ori     	t1, zero, $13


NBPAD_init:
	ori     	t2, zero, $B0
	jr      	t2			; PAD_init
	ori     	t1, zero, $15

Re: Controller with ASM code

Posted: December 1st, 2022, 10:42 pm
by scorpion2k81
Thanks!