Pads con 6 botones

Page 3/5
1 | 2 | | 4 | 5

By Pablibiris

Paragon (1811)

Pablibiris's picture

12-10-2012, 01:05

No te preocupes jitursan,estoy probando varias utilidades y creo que podre pasarlo a wav Smile
te comento mañana resultados ^^
Gracias!
EDITO: de hecho ya tengo el .wav Smile Dame unos minutos y lo pruebo ^^
EDITO DE NUEVO: Nada...que no hay forma de cargarlo...no me da ni el "Found:" Me da a mi que es problema mio por la conversion del Bin al Wav...en fin,mañana seguire Sad

By FX

Champion (264)

FX's picture

12-10-2012, 03:39

Una version "en un fichero".

10 CLS
20 I=&HE000: ' Cambiar para reubicar el programa en memoria
30 READ A$
40 IF A$<>"FIN" THEN POKE I,VAL("&H"+A$):GOTO 30
50 DEFUSR=I
60 J1=STICK(1):A=USR(0)
70 LOCATE 0,0
80 B$=BIN$(A)TongueRINT J1;LEFT$("00000000",8-LEN(B$))+B$
90 GOTO 60
100 DATA FE,00,E0,EB,E0,00,E0,21,07,E0,22,9A
110 DATA F3,C9,FE,02,C0,F3,3E,0F,D3,A0,DB,A2
120 DATA E6,AF,5F,D3,A1,3E,0E,D3,A0,DB,A2,32
130 DATA E7,E0,3E,0F,D3,A0,7B,F6,10,D3,A1,3E
140 DATA 0E,D3,A0,DB,A2,32,E8,E0,3E,0F,D3,A0
150 DATA 7B,D3,A1,F6,10,D3,A1,E6,EF,D3,A1,F6
160 DATA 10,D3,A1,3E,0E,D3,A0,DB,A2,32,E9,E0
170 DATA 3E,0F,D3,A0,7B,E6,EF,D3,A1,3E,0E,D3
180 DATA A0,DB,A2,32,EA,E0,3E,0F,D3,A0,7B,F6
190 DATA 10,D3,A1,E6,EF,D3,A1,FB,2E,00,3A,E8
200 DATA E0,E6,0C,20,09,3A,E8,E0,E6,10,20,02
210 DATA CB,C5,3A,E7,E0,E6,10,20,02,CB,CD,3A
220 DATA E7,E0,E6,20,20,02,CB,D5,3A,E9,E0,E6
230 DATA 0F,20,09,3A,EA,E0,E6,04,20,02,CB,DD
240 DATA 3A,E9,E0,E6,0F,20,09,3A,EA,E0,E6,02
250 DATA 20,02,CB,E5,3A,E9,E0,E6,0F,20,09,3A
260 DATA EA,E0,E6,01,20,02,CB,ED,3A,E8,E0,E6
270 DATA 0C,20,09,3A,E8,E0,E6,20,20,02,CB,F5
280 DATA 3A,E9,E0,E6,0F,20,09,3A,EA,E0,E6,08
290 DATA 20,02,CB,FD,26,00,22,F8,F7,C9,00,00
300 DATA 00,00,FIN

He dejado los 4 0s al final del fichero ya que no he mirado el programa para ver si se usan sin inicilializar.
Sería mucho pedir un listado ASM?
Ahm, y muy buen trabajo!!!!
Un saludo
P.D.: Lo he hecho ahora en un momento y no lo he probado, pero "en teoria" deberia funcionar perfectamente.
Otra cosa. Yo que tu Pablibiris le pediria un lector de SD a Padial.....YA!!! jejejeje. No se como podía "vivir sin el" antes.... Wink

By Pablibiris

Paragon (1811)

Pablibiris's picture

12-10-2012, 12:13

Buenas!
He tecleado este ultimio programa y me da un Syntax error en la linea 60.Concretamente en lo de "A=USR(0)"
Gracias por el peacho programa! Smile

By pitpan

Prophet (3152)

pitpan's picture

12-10-2012, 12:27

Tenéis que quitar los 7 primeros datos del DATA, ya que son la cabecera del fichero, no son código ejecutable. O la otra opción es hacer que I=&HE007. Pero NO hagáis las dos cosas a la vez, ¿vale?

Así debería funcionar correctamente, siempre que el código sea correcto, claro. De otra forma, estáis tratando de ejecutar la cabecera del fichero, que no es código ejecutable.

By jltursan

Prophet (2619)

jltursan's picture

12-10-2012, 13:33

Haced lo que dice pitpan Smile
Los 4 últimos 0's tampoco es necesario que se incluyan en el listado de DATA's.

Aquí os dejo una versión algo más optimizada; pero que de momento todavía no soporta escoger el puerto a leer:

Y el código fuente:

        OUTPUT MDSTRIG.BIN

DAC:    EQU $F7F8

        DB $FE
        DW MAIN
        DW ENDPROGRAM
        DW MAIN

        ORG $E000

MAIN:
        cp 2
        ret nz
        ; Lee el puerto de joystick y almacena
        ; los estados en las variables.
	di
	ld hl,status1
	ld c,#A2
	ld d,15
	ld a,d
	out (#A0),a
	in a,(c)
	and 10101111b
	ld e,a
	out (#A1),a
	ld a,14
	out (#A0),a
        ini
	ld a,d
	out (#A0),a
	ld a,e
	or 00010000b
	out (#A1),a
	ld a,14
	out (#A0),a
        ini
	ld a,d
	out (#A0),a
	ld a,e
	out (#A1),a
	or 00010000b
	out (#A1),a
	and 11101111b
	out (#A1),a
	or 00010000b
	out (#A1),a
	ld a,14
	out (#A0),a
        ini
	ld a,d
	out (#A0),a
	ld a,e
	and 11101111b
	out (#A1),a
	ld a,14
	out (#A0),a
        ini
	ld a,d
	out (#A0),a
	ld a,e
	or 00010000b
	out (#A1),a
	and 11101111b
	out (#A1),a
	ei

        ld l,0
        ld de,status2
	ld a,(de)	; Comprueba boton A
	and 00001100b
	jr nz,noA
	ld a,(de)
	and 00010000b
	jr nz,noA
	set 0,l
noA:
        dec de
	ld a,(de)	; Comprueba boton B
	and 00010000b
	jr nz,noB
	set 1,l
noB:
	ld a,(de)	; Comprueba boton C
	and 00100000b
	jr nz,noC
	set 2,l
noC:
        inc de
        inc de
	ld a,(de)	; Comprueba boton X
	and 00001111b
	jr nz,noX
	inc de
	ld a,(de)
	dec de
	and 00000100b
	jr nz,noX
	set 3,l
noX:
	ld a,(de)	; Comprueba boton Y
	and 00001111b
	jr nz,noY
	inc de
	ld a,(de)
	dec de
	and 00000010b
	jr nz,noY
	set 4,l
noY:
	ld a,(de)	; Comprueba boton Z
	and 00001111b
	jr nz,noZ
	inc de
	ld a,(de)
	dec de
	and 00000001b
	jr nz,noZ
	set 5,l
noZ:
        dec de
	ld a,(de)	; Comprueba boton START
	and 00001100b
	jr nz, noSTART
	ld a, (de)
	and 00100000b
	jr nz,noSTART
        set 6,l
noSTART:
        inc de
	ld a,(de)	; Comprueba boton MODE
	and 00001111b
	jr nz,noMODE
	inc de
	ld a,(de)
	and 00001000b
	jr nz,noMODE
	set 7,l
noMODE:
        ld h,0
        ld (DAC),hl
        ret

status1:        DB 0
status2:	DB 0
status3:	DB 0
status4:	DB 0

ENDPROGRAM: equ $

END

Por cierto, ahora el BASIC es así:

10 CLS
20 BLOAD"MDSTRIG.BIN":DEFUSR=&HE000
30 J1=STICK(1):B=USR0(0)
40 LOCATE 0,0
50 B$=BIN$(B):PRINT J1;LEFT$("00000000",8-LEN(B$))+B$
60 GOTO 30

Creo que es mejor que el usuario decida a que USRn se le asigna la rutina en lugar de asignar yo a capón la 0.

Si alguien quiere entretenerse mejorándolo o modificándolo, ¡adelante!

By Pablibiris

Paragon (1811)

Pablibiris's picture

12-10-2012, 14:41

Aggggh! Porque al compilarlo con el EditPlus usando la plantilla de ASM Z80 me da error? :_(
Bueno voy a usar la SD Padial (que la tengooo!) lo unico que no tengo muy claro como usarla para estos proposios..pero bueno,ire probando ^^
EDITO: Bien,ya me ha funcionado Smile
Ahora el problema es que solo me marca la cruceta y los dos botones,pero el resto de botones no Sad Supongo que será problema del Pad,y no del programa

By jltursan

Prophet (2619)

jltursan's picture

12-10-2012, 16:38

Lo acabo de probar con un auténtico MSX y funciona igualito que en el openMSX, o sea, bien Hannibal
Los pads que adapto son de 7 botones (y curiosamente el 8 está; pero cubierto por la carcasa Tongue) y funcionan todos.

Hay que tener en cuenta por temas de compatibilidad que los botones A y B de los pads MSX corresponden a los B y C de los adaptados; así que cuando se use la compatibilidad joymega es cuestión de usar los botones que correspondan.

Quote:

Ahora el problema es que solo me marca la cruceta y los dos botones,pero el resto de botones no Sad Supongo que será problema del Pad,y no del programa

¿Estas seguro de que lo has adaptado correctamente?, aunque no es muy difícil uno puede liarse con tanto cable para aquí y para allá.

By guantxip

Paragon (1603)

guantxip's picture

12-10-2012, 16:54

¿Funcionaría con un mando de PSX con el adaptador de Calamar?

Me acuerdo que hace poco se retocó el tema de los controles en el parche del Vampire killer haciendo que saltara con el segundo botón, pues molaría que se pudiera probar que el F1 "pausa" pasara a ser un tercer botón del pad.

By Pablibiris

Paragon (1811)

Pablibiris's picture

12-10-2012, 17:45

http://www.msx.org/forum/msx-talk/hardware/msx-game-pad-less-5

El mio lo tengo adaptado segun ese post...supuestamente deberia de funcionar los otros botones,pero ya me da a mi que no :(

By jltursan

Prophet (2619)

jltursan's picture

12-10-2012, 18:56

Sólo funciona con la adaptación oficial Joymega, que es la única soportada por openMSX y tiene algún que otro juego ya parcheado (Firehawk, Vampire Killer). Algunos mensajes más atrás ya se indicó la página oficial: Como usar un joystick de MegaDrive de 3 o 6 botones en un MSX.

Se da la circunstancia de que esos exactamente son los pads que me he adaptado y garantizo que funcionan de lujo (como ya dije, sólo 7 de los 8 botones, claro) :)

Page 3/5
1 | 2 | | 4 | 5