Para el Parche: Rutina de disparos para el ELEVATOR ACTION.

ATARI Lo que nos ha unido en el tiempo. XL XE ST 2600 7800 Jaguar Lynx.
Responder
Avatar de Usuario
WillySoft
expert
expert
Mensajes: 657
Registrado: Mar Nov 07, 2006 10:02 pm
Reputación: 2

Para el Parche: Rutina de disparos para el ELEVATOR ACTION.

Mensaje por WillySoft »

Ya, parche, aquí hay una rutina que maneja disparos, para que te entusiasmes.

Dame tus comentarios, saludos,

Código: Seleccionar todo

	.opt no list
contador =2
num.estados = 10
pt.1=$CB
random=$d20a
	
	*=$6000
inicio
	lda #<dl
	sta $230
	lda #>dl
	sta $231
	ldy #<vbd
	ldx #>vbd
	lda #7
	jsr $e45c
loop
	jmp loop

dl
	.byte $70,$70,$70
	.byte $42
	.word PANTALLA
	.byte 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
	.byte $41
	.word dl

PANTALLA
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "

tabla.caracteres
	.sbyte "1234567890"
tabla.posx
	.byte 0,0,0,0,0,0,0,0,0,0
tabla.posy
	.byte 0,0,0,0,0,0,0,0,0,0
;tabla.posabs1
;	.byte 0,0,0,0,0,0,0,0,0,0
;tabla.posabs2
;	.byte 0,0,0,0,0,0,0,0,0,0
tabla.sentidos
	.byte 0,0,0,0,0,0,0,0,0,0
tabla.estados
	.byte 0,0,0,0,0,0,0,0,0,0

vbd.contador
	.byte contador
vbd
	dec vbd.contador
	beq vbd.no.fin
	jmp vbd.fin
vbd.no.fin
	lda #contador
	sta vbd.contador
	ldx #$00	;Primer estado
vbd.loop.estados
	lda tabla.estados,x
	bne vbd.modifica.estado
	lda random
	bpl vbd.no.siguiente.estado
	jmp vbd.siguiente.estado
vbd.no.siguiente.estado
	lda #$01
	sta tabla.estados,x
	lda random
	and #$01
	beq vbd.estado.izquierda
	lda #39
vbd.estado.izquierda
	sta tabla.posx,x
	sta tabla.sentidos,x

vbd.elige.y
	lda random
	cmp #23
	bcs vbd.elige.y
	ldy #num.estados
vbd.loop.elige.y
	cmp tabla.posy-1,y
	beq vbd.elige.y
	dey
	bne vbd.loop.elige.y

	sta tabla.posy,x
vbd.modifica.estado
	jsr vbd.borra.caracter
	lda tabla.sentidos,x
	beq vbd.derecha
vbd.izquierda
	lda tabla.posx,x
	bne vbd.izquierda.no.termina
	lda #$0
	sta tabla.sentidos,x
	sta tabla.posy,x
	sta tabla.posx,x
	sta tabla.estados,x
	jmp vbd.siguiente.estado
vbd.izquierda.no.termina
	dec tabla.posx,x
	jmp vbd.coloca.caracter
vbd.derecha
	lda tabla.posx,x
	cmp #39
	bne vbd.derecha.no.termina
	lda #$0
	sta tabla.sentidos,x
	sta tabla.posy,x
	sta tabla.posx,x
	sta tabla.estados,x
	jmp vbd.siguiente.estado
vbd.derecha.no.termina
	inc tabla.posx,x
vbd.coloca.caracter
	lda #<PANTALLA
	sta pt.1
	lda #>PANTALLA
	sta pt.1+1
	lda tabla.posy,x
	beq vbd.loop.posy.fin
	tay
vbd.loop.posy
	lda pt.1
	clc
	adc #40
	sta pt.1
	lda pt.1+1
	adc #0
	sta pt.1+1
	dey
	bne vbd.loop.posy
vbd.loop.posy.fin
	lda tabla.posx,x
	tay
	lda tabla.caracteres,x
	sta (pt.1),y

vbd.siguiente.estado
	inx
	cpx #num.estados
	beq vbd.fin
	jmp vbd.loop.estados
vbd.fin
	jmp $e462

vbd.borra.caracter
	lda #<PANTALLA
	sta pt.1
	lda #>PANTALLA
	sta pt.1+1
	lda tabla.posy,x
	beq vbd.borra.caracter.loop.posy.fin
	tay
vbd.borra.caracter.loop.posy
	lda pt.1
	clc
	adc #40
	sta pt.1
	lda pt.1+1
	adc #0
	sta pt.1+1
	dey
	bne vbd.borra.caracter.loop.posy
vbd.borra.caracter.loop.posy.fin
	lda tabla.posx,x
	tay
	lda #$00
	sta (pt.1),y
	rts

	*=$2e0
	.word inicio
	.opt list
Avatar de Usuario
WillySoft
expert
expert
Mensajes: 657
Registrado: Mar Nov 07, 2006 10:02 pm
Reputación: 2

Mensaje por WillySoft »

Aquí hay otra versión, con los disparos más condensados. Básicamente, es la misma rutina, pero liberando un poco más la elección de la coordenada vertical.

Código: Seleccionar todo

	.opt no list
contador =2
num.estados = 10
pt.1=$CB
random=$d20a
	
	*=$6000
inicio
	lda #<dl
	sta $230
	lda #>dl
	sta $231
	ldy #<vbd
	ldx #>vbd
	lda #7
	jsr $e45c
loop
	jmp loop

dl
	.byte $70,$70,$70
	.byte $42
	.word PANTALLA
	.byte 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
	.byte $41
	.word dl

PANTALLA
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "

tabla.caracteres
	.sbyte "1234567890"
tabla.posx
	.byte 0,0,0,0,0,0,0,0,0,0
tabla.posy
	.byte 0,0,0,0,0,0,0,0,0,0
tabla.sentidos
	.byte 0,0,0,0,0,0,0,0,0,0
tabla.estados
	.byte 0,0,0,0,0,0,0,0,0,0

vbd.contador
	.byte contador
vbd
	dec vbd.contador
	beq vbd.no.fin
	jmp vbd.fin
vbd.no.fin
	lda #contador
	sta vbd.contador
	ldx #$00	;Primer estado
vbd.loop.estados
	lda tabla.estados,x
	bne vbd.modifica.estado
	lda random
	bpl vbd.no.siguiente.estado
	jmp vbd.siguiente.estado
vbd.no.siguiente.estado
	lda #$01
	sta tabla.estados,x
	lda random
	and #$01
	beq vbd.estado.izquierda
	lda #39
vbd.estado.izquierda
	sta tabla.posx,x
	sta tabla.sentidos,x

vbd.elige.y
	lda random
	cmp #8
	bmi vbd.elige.y
	cmp #18
	bcs vbd.elige.y

	jmp vbd.fin.elige.y

	ldy #num.estados
vbd.loop.elige.y
	cmp tabla.posy-1,y
	beq vbd.elige.y
	dey
	bne vbd.loop.elige.y

vbd.fin.elige.y
	sta tabla.posy,x
vbd.modifica.estado
	jsr vbd.borra.caracter
	lda tabla.sentidos,x
	beq vbd.derecha
vbd.izquierda
	lda tabla.posx,x
	bne vbd.izquierda.no.termina
	lda #$0
	sta tabla.sentidos,x
	sta tabla.posy,x
	sta tabla.posx,x
	sta tabla.estados,x
	jmp vbd.siguiente.estado
vbd.izquierda.no.termina
	dec tabla.posx,x
	jmp vbd.coloca.caracter
vbd.derecha
	lda tabla.posx,x
	cmp #39
	bne vbd.derecha.no.termina
	lda #$0
	sta tabla.sentidos,x
	sta tabla.posy,x
	sta tabla.posx,x
	sta tabla.estados,x
	jmp vbd.siguiente.estado
vbd.derecha.no.termina
	inc tabla.posx,x
vbd.coloca.caracter
	lda #<PANTALLA
	sta pt.1
	lda #>PANTALLA
	sta pt.1+1
	lda tabla.posy,x
	beq vbd.loop.posy.fin
	tay
vbd.loop.posy
	lda pt.1
	clc
	adc #40
	sta pt.1
	lda pt.1+1
	adc #0
	sta pt.1+1
	dey
	bne vbd.loop.posy
vbd.loop.posy.fin
	lda tabla.posx,x
	tay
	lda tabla.caracteres,x
	sta (pt.1),y

vbd.siguiente.estado
	inx
	cpx #num.estados
	beq vbd.fin
	jmp vbd.loop.estados
vbd.fin
	jmp $e462

vbd.borra.caracter
	lda #<PANTALLA
	sta pt.1
	lda #>PANTALLA
	sta pt.1+1
	lda tabla.posy,x
	beq vbd.borra.caracter.loop.posy.fin
	tay
vbd.borra.caracter.loop.posy
	lda pt.1
	clc
	adc #40
	sta pt.1
	lda pt.1+1
	adc #0
	sta pt.1+1
	dey
	bne vbd.borra.caracter.loop.posy
vbd.borra.caracter.loop.posy.fin
	lda tabla.posx,x
	tay
	lda #$00
	sta (pt.1),y
	rts

	*=$2e0
	.word inicio
	.opt list
Tidus
expert
expert
Mensajes: 778
Registrado: Mar Nov 07, 2006 3:17 pm
Reputación: 0
Ubicación: Media cuadra metro lo Vial

Mensaje por Tidus »

No entendi na'

XD XD XD XD XD XD
Avatar de Usuario
ZZT
Site Admin
Site Admin
Mensajes: 10907
Registrado: Mar Nov 07, 2006 2:45 pm
Reputación: 10
Ubicación: La Florida-Santiago-Chile
Contactar:

Mensaje por ZZT »

pala mi esta en chino <:c

mentira algo cacho. :-°
Avatar de Usuario
AsCrNet
hard player
hard player
Mensajes: 472
Registrado: Mar Nov 07, 2006 2:45 pm
Reputación: 0
Ubicación: PHO
Contactar:

Mensaje por AsCrNet »

XD Esta muy buena la rutina don WillySoft, me gusto eso de poder disparar 2 veces.

Ya parche y el Elevator Action cuando ?@


saludos
Avatar de Usuario
miguel_3dfx
advantage
advantage
Mensajes: 176
Registrado: Mar Nov 07, 2006 4:32 pm
Reputación: 0
Ubicación: www.3dfxzone.it

Mensaje por miguel_3dfx »

que onda parche va a hacer el elevator action.....si es asi seria genial
eso si yo creo que hay para arto tiempo antes que vea la luz.
Avatar de Usuario
WillySoft
expert
expert
Mensajes: 657
Registrado: Mar Nov 07, 2006 10:02 pm
Reputación: 2

Mensaje por WillySoft »

Parche,

No te has pronunciado aún al respecto. Estamos esperando tu respuesta.

Saludos!
Avatar de Usuario
parche
expert
expert
Mensajes: 1639
Registrado: Mar Nov 07, 2006 2:50 pm
Reputación: 0
Contactar:

Mensaje por parche »

Al menos en el emulador aún se ve medio cuadrado el movimiento.

Sigo pensando que con misiles es mejor.

Salu2
Avatar de Usuario
parche
expert
expert
Mensajes: 1639
Registrado: Mar Nov 07, 2006 2:50 pm
Reputación: 0
Contactar:

Mensaje por parche »

Para que no creas que ando de oscioso

Disculpa pero tengo mala memoria y esos jsr brujos no los cacho.

Les puse etiqueta.
SDLSTL=Puntero display list
SETVBV=Set Vertical Blank
XITVBV=Exit Vertical Blank
.opt no list
contador =2
num.estados = 10
pt.1=$CB
random=$d20a
SDLSTL=$230
SETVBV=$e45c
XITVBV=$e462

*=$6000
inicio
lda #<dl>dl
sta SDLSTL+1
ldy #<vbd>vbd
lda #7
jsr SETVBV
loop
jmp loop

dl
.byte $70,$70,$70
.byte $42
.word PANTALLA
.byte 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
.byte $41
.word dl

PANTALLA
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "
.sbyte " "

tabla.caracteres
.sbyte "1234567890"
tabla.posx
.byte 0,0,0,0,0,0,0,0,0,0
tabla.posy
.byte 0,0,0,0,0,0,0,0,0,0
;tabla.posabs1
; .byte 0,0,0,0,0,0,0,0,0,0
;tabla.posabs2
; .byte 0,0,0,0,0,0,0,0,0,0
tabla.sentidos
.byte 0,0,0,0,0,0,0,0,0,0
tabla.estados
.byte 0,0,0,0,0,0,0,0,0,0

vbd.contador
.byte contador
vbd
dec vbd.contador
beq vbd.no.fin
jmp vbd.fin
vbd.no.fin
lda #contador
sta vbd.contador
ldx #$00 ;Primer estado
vbd.loop.estados
lda tabla.estados,x
bne vbd.modifica.estado
lda random
bpl vbd.no.siguiente.estado
jmp vbd.siguiente.estado
vbd.no.siguiente.estado
lda #$01
sta tabla.estados,x
lda random
and #$01
beq vbd.estado.izquierda
lda #39
vbd.estado.izquierda
sta tabla.posx,x
sta tabla.sentidos,x

vbd.elige.y
lda random
cmp #23
bcs vbd.elige.y
ldy #num.estados
vbd.loop.elige.y
cmp tabla.posy-1,y
beq vbd.elige.y
dey
bne vbd.loop.elige.y

sta tabla.posy,x
vbd.modifica.estado
jsr vbd.borra.caracter
lda tabla.sentidos,x
beq vbd.derecha
vbd.izquierda
lda tabla.posx,x
bne vbd.izquierda.no.termina
lda #$0
sta tabla.sentidos,x
sta tabla.posy,x
sta tabla.posx,x
sta tabla.estados,x
jmp vbd.siguiente.estado
vbd.izquierda.no.termina
dec tabla.posx,x
jmp vbd.coloca.caracter
vbd.derecha
lda tabla.posx,x
cmp #39
bne vbd.derecha.no.termina
lda #$0
sta tabla.sentidos,x
sta tabla.posy,x
sta tabla.posx,x
sta tabla.estados,x
jmp vbd.siguiente.estado
vbd.derecha.no.termina
inc tabla.posx,x
vbd.coloca.caracter
lda #<PANTALLA>PANTALLA
sta pt.1+1
lda tabla.posy,x
beq vbd.loop.posy.fin
tay
vbd.loop.posy
lda pt.1
clc
adc #40
sta pt.1
lda pt.1+1
adc #0
sta pt.1+1
dey
bne vbd.loop.posy
vbd.loop.posy.fin
lda tabla.posx,x
tay
lda tabla.caracteres,x
sta (pt.1),y

vbd.siguiente.estado
inx
cpx #num.estados
beq vbd.fin
jmp vbd.loop.estados
vbd.fin
jmp XITVBV

vbd.borra.caracter
lda #<PANTALLA>PANTALLA
sta pt.1+1
lda tabla.posy,x
beq vbd.borra.caracter.loop.posy.fin
tay
vbd.borra.caracter.loop.posy
lda pt.1
clc
adc #40
sta pt.1
lda pt.1+1
adc #0
sta pt.1+1
dey
bne vbd.borra.caracter.loop.posy
vbd.borra.caracter.loop.posy.fin
lda tabla.posx,x
tay
lda #$00
sta (pt.1),y
rts

*=$2e0
.word inicio
.opt list
Esop

Voy a revisarlo y migrarlo a PM a ver como sale.
Avatar de Usuario
WillySoft
expert
expert
Mensajes: 657
Registrado: Mar Nov 07, 2006 10:02 pm
Reputación: 2

Mensaje por WillySoft »

Viejo,

El movimiento del EA original es cuadrado. Revísalo en el MAME. Así que como efecto no habría problema.

Además, de esta manera se pueden controlar muchos disparos fácilmente.
Avatar de Usuario
parche
expert
expert
Mensajes: 1639
Registrado: Mar Nov 07, 2006 2:50 pm
Reputación: 0
Contactar:

Mensaje por parche »

Que es EA? 8o
Avatar de Usuario
parche
expert
expert
Mensajes: 1639
Registrado: Mar Nov 07, 2006 2:50 pm
Reputación: 0
Contactar:

Mensaje por parche »

Ahhhhhhhhh

Ya caí ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua

Elevator
Action

::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua
vacherub
medium
medium
Mensajes: 79
Registrado: Vie Nov 10, 2006 11:34 pm
Reputación: 0
Ubicación: Santiago, Chile
Contactar:

Mensaje por vacherub »

parche escribió:Ahhhhhhhhh

Ya caí ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua

Elevator
Action

::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua
::BV AVISPATE!!!!!
JAJAJ


(a lo BOMBA)
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje