C64Power Forum

Software => Programowanie => Wątek zaczęty przez: Exosoft w 18 Stycznia 2017, 05:05

Tytuł: Wektory na C64
Wiadomość wysłana przez: Exosoft w 18 Stycznia 2017, 05:05
Witam :)

Widzę, że ciekawe forum i coś się dzieje to mam pytanko odnośnie wektorowych rzeczy na C64 (obliczane realtime oczywiście) . Ja jestem trochę początkującym i nie, koderem na C64 to nie brałem się jeszcze za robienie wektorów bo nie wiem na czym wyliczyć tablice oraz myślę, że z kodem jakoś sobie poradzę. Czytałem gdzieś w jakimś info, że jest sporo softu na PC i C64, które obliczają tablice wyglądu wektorów i innych podobnych rzeczy, więc może ktoś zna nazwy takich programów albo jakiś help np. być może są funkcje w kompilatorach ASM na PC do robienia takich rzeczy, jak np. obliczanie tablic sinus w 64tass itp. Ja oczywiście pod koniec tego postu podałem to jako przykład, a ogólnie to myślę, że ten temat przyda się też innym koderom, którzy np. planują zrobić własne demo . Pozdrawiam :)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: wegi w 20 Stycznia 2017, 18:21
[...]
 że jest sporo softu na PC i C64, które obliczają tablice wyglądu wektorów
[...]
obliczanie tablic sinus w 64tass itp.
[...]

Tablice wyglądu wektorów ?

Tablice sinusa możesz sobie policzyć choćby w Basic'u, a natywnie takie rzeczy obsługuje KickASS

.fill 512,<round(0+16256*sin(toRadians(i*360/256+360/512)))
.fill 512,>round(0+16256*sin(toRadians(i*360/256+360/512)))


Kradnąc własnego posta załączony przykład liczy 128 dot ball 50FPS bez perspektywy

Dalsze rozważania, w szczególności informacje od Oswalda warte śledzenia tu:

http://formatwar.net/forums/viewtopic.php?f=5&t=493

i tu:

http://formatwar.net/forums/viewtopic.php?f=5&t=491


Commodorowskie (i nie tylko) ABC obliczania wektorów tu:

http://codebase64.org/doku.php?id=magazines:chacking8

!to "any128ball.prg" , CBM

;=================================
;= A simple 128 vector dots ball =
;=        code by wegi           =
;=       in  2015.02.01          =
;=================================

;----------------------------
;- very unoptimized version -
;-     make this better     -
;-       and faster :)      -
;----------------------------


;show_free_time = -1
;save_regs      = -1
;check_80       = -1
;recall_01      = -1
plot_by_ora    = -1

many_dots      = 16 ;so ball 128 -> 16*8 dots

;--- screen setup data ---
screen         = $2000 ;our screen  256/200 px
rcolor         = $0400
value_d018     = $18
value_dd00     = $03
;-------------------------
;- a tables declarations -
;-------------------------
tb_bit1        = $4000
tb_adlo1       = tb_bit1 + $80
tb_adhi1       = tb_adlo1 + $80
tb_bit2        = tb_adhi1 + $80
tb_adlo2       = tb_bit2 + $80
tb_adhi2       = tb_adlo2 + $80
;---
tb_fact1       = tb_bit1 + $0300 ;start plot coord.
tb_fact2       = tb_fact1 + many_dots
tb_fact3       = tb_fact2 + many_dots
replic_tab     = tb_fact3 + many_dots
;---
trashcan       = tb_bit1 + $0400 ;here go out all plots where Y is bellow 28 and above 228
;-
tbadlo         = tb_bit1 + $0500 ;lo byte plot addres
tbadhi         = tb_bit1 + $0600 ;hi byte plot address
tabxm          = tb_bit1 + $0700 ;offset for x value
tbbit          = tb_bit1 + $0800 ;a plot value
;- inverse tables
tbadlo2        = tb_bit1 + $0900
tbadhi2        = tb_bit1 + $0a00
tabxm2         = tb_bit1 + $0b00
tbbit2         = tb_bit1 + $0c00
;---
tbscale        = tb_bit1 + $0d00 ;a prescale tables start address
;---
;------------------
;- some variables -
;------------------

;***********************
lo_angle_x     = $12
lo_angle_y     = $13
lo_angle_z     = $14

hi_angle_x     = $15 ;sx
hi_angle_y     = $16 ;sy
hi_angle_z     = $17 ;sz


lo_delta_x     = $19
lo_delta_y     = $1a
lo_delta_z     = $1b

hi_delta_x     = $1c
hi_delta_y     = $1d
hi_delta_z     = $1e
;************************
mat_A_lo       = $20 ; A = (cos(sy-sz)+cos(sy+sz))/4
mat_B_lo       = $21 ; B = (sin(sy-sz)-sin(sy+sz))/4
mat_C_lo       = $22 ; C = sin(sy)/2
mat_D_lo       = $23 ; D = (cos(sx-sy+sz)-cos(sx+sy+sz)+cos(sy+sz-sx)-cos(sx+sy-sz)/2 + sin(sx+sz)-sin(sx-sz))/4
mat_E_lo       = $24 ; E = (sin(sx+sy+sz)-sin(sx-sy+sz)-sin(sx+sy-sz)-sin(sy+sz-sx)/2 + cos(sx+sz)+cos(sx-sz))/4
mat_F_lo       = $25 ; F = (sin(sy-sx)-sin(sy+sx))/4

mat_A_hi       = $27 ;hi byte of matrix
mat_B_hi       = $28
mat_C_hi       = $29
mat_D_hi       = $2a
mat_E_hi       = $2b
mat_F_hi       = $2c
;********************
t1             = $2e  ;sy-sz
t2             = $2f  ;sy+sz
t3             = $30  ;sx+sz
t4             = $31  ;sx-sz
t5             = $32  ;sx+sy+sz = sx+t2
t6             = $33  ;sx-sy+sz = sx-t1
t7             = $34  ;sx+sy-sz = sx+t1
t8             = $35  ;sy+sz-sx = t2-sx

v1             = $2e ;(A*fact2)
v2             = $2f ;(B*fact1)
v3             = $30 ;(C*fact3)
v4             = $31 ;(D*fact2)
v5             = $32 ;(E*fact1)
v6             = $33 ;(F*fact3)



tmpr1          = $37
tmpr2          = $38

vect1          = $3a ;$3a-$3b
vect2          = $3c ;$3c-$3d

tmpr3          = $3f
tmpr4          = $40
t_x            = $41
t_y            = $42

dotcount       = $44
pointer        = $45
count_check    = $46
;-----------------
;- variables end -
;-----------------

;-----------------
;- program start -
;-----------------

;===========================
;=== basiline 0 sys 2061 ===
;===========================
          *=$0801
     !byte $0b,$08,$00,$00,$9e,$32
     !byte $30,$36,$31,$00,$00,$00
;-------------

;======================
          sei
          cld
          jsr initirq
          jsr setup_scr
          lda #$3b
          sta $d011
          jsr make_tables
          jsr insert_dots

          lda #0
          sta vect1

          inc $d019
          cli
;---
-
!ifdef show_free_time {
          inc $d020
}
          jmp -
;---

;---------------------
;-  quarter  of sin  -
;-  this sine have a -
;-   -255 to + 255   -
;-      values       -
;---------------------
tbsine
     !byte $00
     !byte $06,$0c,$12,$19
     !byte $1f,$25,$2b,$31
     !byte $38,$3e,$44,$4a
     !byte $50,$56,$5c,$61
     !byte $67,$6d,$73,$78
     !byte $7e,$83,$88,$8e
     !byte $93,$98,$9d,$a2
     !byte $a7,$ab,$b0,$b5
     !byte $b9,$bd,$c1,$c5
     !byte $c9,$cd,$d1,$d4
     !byte $d8,$db,$de,$e1
     !byte $e4,$e7,$ea,$ec
     !byte $ee,$f1,$f3,$f4
     !byte $f6,$f8,$f9,$fb
     !byte $fc,$fd,$fe,$fe
     !byte $ff,$ff,$ff,$00
;-------------------------------------
;- ///////////////////////////////// -
;-------------------------------------

;-------------
irq
!ifdef save_regs {
          sta acc_reg
          stx reg_x
          sty reg_y
}
;---
!ifdef recall_01 {

          lda $01
          pha
          lda #$35
          sta $01
}
;---
!ifdef show_free_time {
     lda #0
     sta $d020
}
;---
          inc $d019
;***********************************************
;****************** mainloop *******************
;***********************************************
tst_01= *+1
          lda #$00
          eor #$ff
          sta tst_01
          bne next_01
;-------------------

          lda #$00
          tax

-         ldy tb_adhi2,x
          sty vect1+1
          ldy tb_adlo2,x
          sta (vect1),y
          inx
          bpl -

          tax
-
          ldy tb_adhi1,x
          sty vect1+1
          ldy tb_adlo1,x
          lda tb_bit1,x
;---
!ifdef plot_by_ora {
          ora (vect1),y
}
;---
          sta (vect1),y
          inx
          bpl -

          jsr update_angles ;+ calculate and check matrix
          jmp loop2
;***********************
next_01
          lda #$00
          tax

-         ldy tb_adhi1,x
          sty vect1+1
          ldy tb_adlo1,x
          sta (vect1),y
          inx
          bpl -

          tax
-
          ldy tb_adhi2,x
          sty vect1+1
          ldy tb_adlo2,x
          lda tb_bit2,x
;---
!ifdef plot_by_ora {
          ora (vect1),y
}
;---
          sta (vect1),y
          inx
          bpl -

          jsr update_angles ;+ calculate and check matrix
          jmp loop1
;**********************************
;*** this is all off mainloop   ***
;**********************************

irq_exit

;-------------------
!ifdef recall_01 {

          pla
          sta $01
}

!ifdef save_regs {
acc_reg = *+1
          lda #$00
reg_x   = *+1
          ldx #$00
reg_y   = *+1
          ldy #$00
}
nmiex
          rti

;------
;================================
;=== o.k. irq works fine :) ! ===
;================================


;*****************************
;**** this is a main stub ****
;*****************************
;=============================
;===    update angles      ===
;=============================
update_angles

          ldx #2
          clc

-         lda lo_angle_x,x
          adc lo_delta_x,x
          sta lo_angle_x,x

          lda hi_angle_x,x
          adc hi_delta_x,x
          sta hi_angle_x,x
          dex
          bpl -
;rts
;===========================
;= calculate 16 bit matrix =
;=     [ A    B    C ]     =
;=     [ D    E    F ]     =
;===========================


;   A = (cos(t1)+cos(t2))/4
;   B = (sin(t1)-sin(t2))/4
;   C = sin(sy)/2
;   D = (sin(t3)-sin(t4))/4 + (cos(t6)-cos(t5)+cos(t8)-cos(t7))/8
;   E = (cos(t3)+cos(t4))/4 + (sin(t5)-sin(t6)-sin(t7)-sin(t8))/8
;   F = (sin(t9)-sin(t10))/4

;where
;   t1 = sy-sz
;   t2 = sy+sz
;   t3 = sx+sz
;   t4 = sx-sz
;   t5 = sx+sy+sz = sx+t2
;   t6 = sx-sy+sz = sx-t1
;   t7 = sx+sy-sz = sx+t1
;   t8 = sy+sz-sx = t2-sx
;   t9 = sy-sx
;   t10= sy+sx
;------------------------------
; A = (cos(sy-sz)+cos(sy+sz))/4
;------------------------------
;-------------------------------
; B = (sin(sy-sz)-sin(sy+sz))/4
;-------------------------------
;--------------
; C = sin(sy)/2
;--------------
;------------------------------------------------------------------------------------------
; D = (cos(sx-sy+sz)-cos(sx+sy+sz)+cos(sy+sz-sx)-cos(sx+sy-sz)/2 + sin(sx+sz)-sin(sx-sz))/4
;------------------------------------------------------------------------------------------
;------------------------------------------------------------------------------------------
; E = (sin(sx+sy+sz)-sin(sx-sy+sz)-sin(sx+sy-sz)-sin(sy+sz-sx)/2 + cos(sx+sz)+cos(sx-sz))/4
;------------------------------------------------------------------------------------------
;------------------------------
; F = (sin(sy-sx)-sin(sy+sx))/4
;------------------------------

calculate_matrix
;**********************************************************
;---
;CALC A
;---
;------------------------------
; A = (cos(sy-sz)+cos(sy+sz))/4
;------------------------------
          ldx #$00
          stx tmpr1
          stx tmpr2
          lda hi_angle_y      ;(sy)
          sec
          sbc hi_angle_z      ;(sy-sz)
          sta t1              ;t1 = (sy-sz)
          jsr offs64_calc     ;cos(sy-sz)

          lda hi_angle_y      ;(sy)
          clc
          adc hi_angle_z      ;(sy+sz)
          sta t2              ;t2 = (sy+sz)
          jsr offs64_calc     ;cos(sy+sz)

          ;in acc is tmpr2
          cmp #$80            ;div 4
          ror
          sta mat_A_hi
          ror tmpr1
          asl
          lda tmpr1
          ror
          sta mat_A_lo

          ;(cos(t1)+cos(t2))/4 = (cos(sy-sz)+cos(sy+sz))/4


;---
;CALC B
;---
;-------------------------------
; B = (sin(sy-sz)-sin(sy+sz))/4
;-------------------------------
          lda #$00
          sta tmpr1
          sta tmpr2

          lda t1              ;(sy-sz)
          jsr part_calc       ;sin(sy-sz)

          lda t2              ;(sy+sz)
          eor #$80            ;-sin
          jsr part_calc       ;-sin(sy+sz)

          ;in acc is tmpr2
          cmp #$80            ;div 4
          ror
          sta mat_B_hi
          ror tmpr1
          asl
          lda tmpr1
          ror
          sta mat_B_lo
          ;(sin(t1)-sin(t2))/4 = (sin(sy-sz)-sin(sy+sz))/4
;---
;CALC C
;---
;--------------
; C = sin(sy)/2
;--------------
          ldx #$00
          stx tmpr1
          stx tmpr2

          lda hi_angle_y      ;(sy)
          jsr part_calc       ;sin(sy)
          ;in acc is tmpr2
          cmp #$80            ;div 2
          ror
          sta mat_C_hi
          lda tmpr1
          ror
          sta mat_C_lo        ;sin(sy)/2
;---
;CALC D
;---
;------------------------------------------------------------------------------------------
; D = (cos(sx-sy+sz)-cos(sx+sy+sz)+cos(sy+sz-sx)-cos(sx+sy-sz)/2 + sin(sx+sz)-sin(sx-sz))/4
;------------------------------------------------------------------------------------------
          lda #$00
          sta tmpr1
          sta tmpr2

          lda hi_angle_x      ;(sx)
          sec
          sbc t1              ;(sx-t1) = (sx-sy+sz)
          sta t6              ;t6 = (sx-sy+sz)
          jsr offs64_calc     ;cos(sx-sy+sz)

          lda hi_angle_x      ;(sx)
          clc
          adc t2              ;(sx+t2) = (sx+sy+sz)
          sta t5              ;t5 = (sx+sy+sz)
          adc #$c0            ;-cos
          jsr part_calc       ;-cos(sx+sy+sz)

          lda t2              ;s(y+sz)
          sec
          sbc hi_angle_x      ;(t2-sx) = (sy+sz-sx)
          sta t8              ;t8 = (sy+sz-sx)
          jsr offs64_calc     ;cos(sy+sz-sx)

          lda hi_angle_x      ;(sx)
          clc
          adc t1              ;(sx+t1) = (sx+sy-sz)
          sta t7              ;t7 = (sx+sy-sz)
          adc #$c0            ;-cos
          jsr part_calc       ;-cos(sx+sy-sz)

          ;in acc tmpr2
          asl                 ;div 2
          ror tmpr2
          ror tmpr1
          ;(cos(t6)-cos(t5)+cos(t8)-cos(t7))/2 =
          ; = (cos(sx-sy+sz)-cos(sx+sy+sz)+cos(sy+sz-sx)-cos(sx+sy-sz))/2

          lda hi_angle_x      ;(sx)
          clc
          adc hi_angle_z      ;(sx+sz)
          sta t3              ;t3 = (sx+sz)
          jsr part_calc       ;sin(sx+sz)

          lda hi_angle_x      ;(sx)
          sec
          sbc hi_angle_z      ;(sx-sz)
          sta t4              ;t4 = (sx-sz)
          eor #$80            ;-sin
          jsr part_calc       ;-sin(sx-sz)

          ;in acc is tmpr2
          cmp #$80            ;div 4
          ror
          sta mat_D_hi
          ror tmpr1
          asl
          lda tmpr1
          ror
          sta mat_D_lo

;[(sin(t3)-sin(t4))/4] + [(cos(t6)-cos(t5)+cos(t8)-cos(t7))/8] =
;= [(cos(sx-sy+sz)-cos(sx+sy+sz)+cos(sy+sz-sx)-cos(sx+sy-sz)/2 + sin(sx+sz)-sin(sx-sz))]/4
;---
;CALC E
;---
;------------------------------------------------------------------------------------------
; E = (sin(sx+sy+sz)-sin(sx-sy+sz)-sin(sx+sy-sz)-sin(sy+sz-sx)/2 + cos(sx+sz)+cos(sx-sz))/4
;------------------------------------------------------------------------------------------
          lda #$00
          sta tmpr1
          sta tmpr2

          lda t5              ;(sx+sy+sz)
          jsr part_calc       ;sin(sx+sy+sz)
          lda t6              ;(sx-sy+sz)
          eor #$80            ;-sin
          jsr part_calc       ;-sin(sx-sy+sz)
          lda t7              ;(sx+sy-sz)
          eor #$80            ;-sin
          jsr part_calc       ;-sin(sx+sy-sz)
          lda t8              ;(sy+sz-sx)
          eor #$80            ;-sin
          jsr part_calc       ;-sin(sy+sz-sx)

          ;in acc tmpr2
          asl                 ;div 2
          ror tmpr2
          ror tmpr1
;(sin(t5)-sin(t6)-sin(t7)-sin(t8))/2 =
; = (cos(sx-sy+sz)-cos(sx+sy+sz)+cos(sy+sz-sx)-cos(sx+sy-sz))/2

          lda t3              ;(sx+sz)
          jsr offs64_calc     ;cos(sx+sz)
          lda t4              ;(sx-sz)
          jsr offs64_calc     ;cos(sx-sz)

          ;in acc is tmpr2
          cmp #$80            ;div 4
          ror
          sta mat_E_hi
          ror tmpr1
          asl
          lda tmpr1
          ror
          sta mat_E_lo
;[(cos(t3)+cos(t4))]/4 + [(sin(t5)-sin(t6)-sin(t7)-sin(t8))]/8 =
; = [(sin(sx+sy+sz)-sin(sx-sy+sz)-sin(sx+sy-sz)-sin(sy+sz-sx)/2 + cos(sx+sz)+cos(sx-sz))]/4
;---
;CALC F
;---
;------------------------------
; F = (sin(sy-sx)-sin(sy+sx))/4
;------------------------------
          lda #$00
          sta tmpr1
          sta tmpr2

          lda hi_angle_y      ;(sy)
          sec
          sbc hi_angle_x      ;(sy-sx)
          jsr part_calc       ;sin(sy-sx)

          lda hi_angle_y      ;(sy)
          clc
          adc hi_angle_x      ;(sy+sx)
          eor #$80            ;-sin
          jsr part_calc       ;-sin(sy+sx)

          ;in acc is tmpr2
          cmp #$80            ;div 4
          ror
          sta mat_F_hi
          ror tmpr1
          asl
          lda tmpr1
          ror
          sta mat_F_lo        ;(sin(sy-sx)-sin(sy+sx))/4
;rts
;======================
;= now a little check =
;======================
check_matrix

          ldx #$05
-         lda mat_A_hi,x

!ifdef check_80 {
          bne +
          lda mat_A_lo,x
          cmp #$80
          bne not_do
          beq do_it
+
}
          ;cmp #$FE
          ;bne +
          ;lda #$80
          ;bne repair
+         cmp #$01
          bne not_do
do_it     lda #$7F
repair    sta mat_A_lo,x
not_do    dex
          bpl -
          rts
;=================
;=   check end   =
;=================
;==========================
;=  end calculate_matrix  =
;==========================
;----------------------------------
;-    subrotine to calc matrix    -
;-     sum to tmpr1 and tmpr2     -
;-    needed sin/cos([S(x|y|z)]   -
;----------------------------------
offs64_calc ;cos
          clc
          adc #$40
;-
part_calc ;sin
          ldy #$00
          tax
          and #$7F
          cmp #$40
          bcc less_64
          bne no_iny
          iny
no_iny    and #$3F
          eor #$ff ;c =1
          adc #$40

;---
less_64 ;sign(+)
          cpx #$80
          tax
          bcs over_128
          lda tbsine,x
          adc tmpr1
          sta tmpr1
          tya
          adc tmpr2
          sta tmpr2
          rts
;---
over_128 ;sign(-)
          lda tmpr1
          sbc tbsine,x
          sta tmpr1
          tya
          eor #$ff ;Carry is cummulated with sbc
          adc tmpr2
          sta tmpr2
          rts
;--------------------------------
;- end subrotine to calc matrix -
;--------------------------------


;============================
; *** this code make : ***
; **    X and Y [X;Y]   **
; *      coordinates     *
;                                 **    as [ X ; Y ]    **
;-------------------------------------------------------------------------------
; plot 1/2     [ (A*fact2 + B*fact1 + C*fact3) ; (D*fact2 + E*fact1 + F*fact3) ]
;-------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
; plot 3/4     [ (A*fact2 + B*fact1 - C*fact3) ; (D*fact2 + E*fact1 - F*fact3) ]
;-------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
; plot 5/6     [ (A*fact2 - B*fact1 - C*fact3) ; (D*fact2 - E*fact1 + F*fact3) ]
;-------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
; plot 7/8     [ (A*fact2 - B*fact1 - C*fact3) ; (D*fact2 - E*fact1 - F*fact3) ]
;-------------------------------------------------------------------------------




Po tak solidnej dawce informacji popartej żywymi, działającymi przykładami możesz nam teraz pacnąć gorauda (żerom)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: wegi w 20 Stycznia 2017, 18:22
Ciąg dalszy kodu, bo się nie zmieściło w jednym poście.


loop1
;-----------------------
;- get the all factors -
;-----------------------
;---
          lda #$0f
          sta dotcount
          lda #$00
          sta tmpr3
loop1a
          ldx dotcount
;---
          lda tb_fact3,x
          sta vect1+1

          ldy mat_F_lo
          lda (vect1),y
          sta v6              ;(F*fact3)
;---
          ldy mat_C_lo
          lda (vect1),y
          sta v3              ;(C*fact3)
;---
          lda tb_fact1,x
          sta vect1+1

          ldy mat_E_lo
          lda (vect1),y
          sta v5              ;(E*fact1)
;---
          ldy mat_B_lo
          lda (vect1),y
          sta v2              ;(E*fact1)
;---
          lda tb_fact2,x
          sta vect1+1

          ldy mat_D_lo
          lda (vect1),y
          sta v4              ;(D*fact2)
;---
          ldy mat_A_lo
          lda (vect1),y
          sta v1              ;(A*fact2)
;-------------------------------------------------------------------------------
; plot 1/2     [ (A*fact2 + B*fact1 + C*fact3) ; (D*fact2 + E*fact1 + F*fact3) ]
;-------------------------------------------------------------------------------
;-------------------------
;- calculations plot 1/2 -
;-------------------------
          ;lda v1
          ;acc = v1
          adc v2              ;(A*fact2 + B*fact1)
          adc v3              ;(A*fact2 + B*fact1 + C*fact3)
          tax ;x plot 5/6     ;(A*fact2 + B*fact1 + C*fact3)

          ldy tmpr3
          lda tbbit,x
          sta tb_bit1,y
          lda tbbit2,x
          sta tb_bit1+1,y

          lda v4
          adc v5              ;(D*fact2 + E*fact1)
          adc v6              ;(D*fact2 + E*fact1 + F*fact3)
          tay ;y plot 5/6     ;(D*fact2 + E*fact1 + F*fact3)
;------------------------
;- now prepare plot 1/2 -
;------------------------
               ;x = (A*fact2 + B*fact1 + C*fact3)
               ;y = (D*fact2 + E*fact1 + F*fact3)

          lda tbadlo,y
          clc
          adc  tabxm,x
          stx tmpr4
          ldx tmpr3
          sta tb_adlo1,x


          lda tbadhi,y
          adc #0
          sta tb_adhi1,x

          ldx tmpr4
          lda tbadlo2,y
          ;clc - no - C = 0
          adc tabxm2,x
          ldx tmpr3
          sta tb_adlo1+1,x

          lda tbadhi2,y
          adc #0
          sta tb_adhi1+1,x
;-------------------------------------------------------------------------------
; plot 3/4     [ (A*fact2 + B*fact1 - C*fact3) ; (D*fact2 + E*fact1 - F*fact3) ]
;-------------------------------------------------------------------------------
;-------------------------
;- calculations plot 3/4 -
;-------------------------
          lda v1              ;(A*fact2)
          adc v2              ;(A*fact2 + B*fact1)
          sbc v3              ;(A*fact2 + B*fact1 - C*fact3)
          tax                 ;(A*fact2 + B*fact1 - C*fact3)

          ldy tmpr3
          lda tbbit,x
          sta tb_bit1+2,y
          lda tbbit2,x
          sta tb_bit1+3,y


          lda v4              ;(D*fact2)
          adc v5              ;(D*fact2 + E*fact1)
          sbc v6              ;(D*fact2 + E*fact1 - F*fact3)
          tay    ;y plot 1/2  ;(D*fact2 + E*fact1 - F*fact3)
;------------------------
;- now prepare plot 3/4 -
;------------------------
               ;x = (A*fact2 + B*fact1 - C*fact3)
               ;y = (D*fact2 + E*fact1 - F*fact3)

          lda tbadlo,y
          clc
          adc  tabxm,x
          stx tmpr4
          ldx tmpr3
          sta tb_adlo1+2,x

          lda tbadhi,y
          adc #0
          sta tb_adhi1+2,x

          ldx tmpr4
          lda tbadlo2,y
          adc tabxm2,x
          ldx tmpr3
          sta tb_adlo1+3,x

          lda tbadhi2,y
          adc #0
          sta tb_adhi1+3,x
;-------------------------------------------------------------------------------
; plot 5/6     [ (A*fact2 - B*fact1 - C*fact3) ; (D*fact2 - E*fact1 + F*fact3) ]
;-------------------------------------------------------------------------------
;-------------------------
;- calculations plot 5/6 -
;-------------------------
          lda v1              ;(A*fact2)
          sbc v2              ;(A*fact2 - B*fact1)
          adc v3              ;(A*fact2 - B*fact1 - C*fact3)
          tax    ;x plot 3/4  ;(A*fact2 - B*fact1 - C*fact3)

          ldy tmpr3
          lda tbbit,x
          sta tb_bit1+4,y
          lda tbbit2,x
          sta tb_bit1+5,y

          lda v4              ;(D*fact2)
          sbc v5              ;(D*fact2 - E*fact1)
          adc v6              ;(D*fact2 - E*fact1 + F*fact3)
          tay    ;y plot 3/4  ;(D*fact2 - E*fact1 + F*fact3)
;------------------------
;- now prepare plot 5/6 -
;------------------------
               ;x = (A*fact2 - B*fact1 - C*fact3)
               ;y = (D*fact2 - E*fact1 + F*fact3)

          lda tbadlo,y
          clc
          adc  tabxm,x
          stx tmpr4
          ldx tmpr3
          sta tb_adlo1+4,x
          lda tbadhi,y
          adc #0
          sta tb_adhi1+4,x

          ldx tmpr4
          lda tbadlo2,y
          adc tabxm2,x
          ldx tmpr3
          sta tb_adlo1+5,x
          lda tbadhi2,y
          adc #0
          sta tb_adhi1+5,x
;-------------------------------------------------------------------------------
; plot 7/8     [ (A*fact2 - B*fact1 - C*fact3) ; (D*fact2 - E*fact1 - F*fact3) ]
;-------------------------------------------------------------------------------
;-------------------------
;- calculations plot 7/8 -
;-------------------------
          lda v1              ;(A*fact2)
          sbc v2              ;(A*fact2 - B*fact1)
          sbc v3              ;(A*fact2 - B*fact1 - C*fact3)
          tax ;x plot 7/8     ;(A*fact2 - B*fact1 - C*fact3)

          ldy tmpr3
          lda tbbit,x
          sta tb_bit1+6,y
          lda tbbit2,x
          sta tb_bit1+7,y

          lda v4
          sbc v5              ;(D*fact2 - E*fact1)
          sbc v6              ;(D*fact2 - E*fact1 - F*fact3)
          tay ;y plot 7/8     ;(D*fact2 - E*fact1 - F*fact3)
;------------------------
;- now prepare plot 7/8 -
;------------------------
               ;y = (D*fact2 - E*fact1 - F*fact3)
               ;x = (A*fact2 - B*fact1 - C*fact3)

          lda tbadlo,y
          clc
          adc  tabxm,x
          stx tmpr4
          ldx tmpr3
          sta tb_adlo1+6,x
          lda tbadhi,y
          adc #0
          sta tb_adhi1+6,x
          ldx tmpr4
          lda tbadlo2,y
          adc tabxm2,x
          ldx tmpr3
          sta tb_adlo1+7,x
          lda tbadhi2,y
          adc #0
          sta tb_adhi1+7,x
;-
          lda tmpr3
          clc
          adc #8
          sta tmpr3
          dec dotcount
          bmi +
          jmp loop1a
+         jmp irq_exit
;============
loop2
;-----------------------
;- get the all factors -
;-----------------------
          lda #$0f
          sta dotcount
          lda #$00
          sta tmpr3
loop2a
;---
          ldx dotcount
;---
          lda tb_fact3,x
          sta vect1+1

          ldy mat_F_lo
          lda (vect1),y
          sta v6              ;(F*fact3)
;---
          ldy mat_C_lo
          lda (vect1),y
          sta v3              ;(C*fact3)
;---
          lda tb_fact1,x
          sta vect1+1

          ldy mat_E_lo
          lda (vect1),y
          sta v5              ;(E*fact1)
;---
          ldy mat_B_lo
          lda (vect1),y
          sta v2              ;(E*fact1)
;---
          lda tb_fact2,x
          sta vect1+1

          ldy mat_D_lo
          lda (vect1),y
          sta v4              ;(D*fact2)
;---
          ldy mat_A_lo
          lda (vect1),y
          sta v1              ;(A*fact2)
;-------------------------
;- calculations plot 1/2 -
;-------------------------
          ;lda v1
          ;acc = v1
          adc v2
          adc v3
          tax

          ldy tmpr3
          lda tbbit,x
          sta tb_bit2,y
          lda tbbit2,x
          sta tb_bit2+1,y

          lda v4
          adc v5
          adc v6
          tay
;------------
;- plot 1/2 -
;------------
          lda tbadlo,y
          clc
          adc  tabxm,x

          stx tmpr4
          ldx tmpr3
          sta tb_adlo2,x

          lda tbadhi,y
          adc #0
          sta tb_adhi2,x

          ldx tmpr4
          lda tbadlo2,y
          ;clc - no - C = 0
          adc tabxm2,x
          ldx tmpr3
          sta tb_adlo2+1,x

          lda tbadhi2,y
          adc #0

          sta tb_adhi2+1,x
;-------------------------
;- calculations plot 3/4 -
;-------------------------
          lda v1
          adc v2
          sbc v3
          tax

          ldy tmpr3
          lda tbbit,x
          sta tb_bit2+2,y
          lda tbbit2,x
          sta tb_bit2+3,y

          lda v4
          adc v5
          sbc v6
          tay
;------------
;- plot 3/4 -
;------------
          lda tbadlo,y
          clc
          adc  tabxm,x
          stx tmpr4

          ldx tmpr3
          sta tb_adlo2+2,x

          lda tbadhi,y
          adc #0
          sta tb_adhi2+2,x

          ldx tmpr4
          lda tbadlo2,y
          adc tabxm2,x
          ldx tmpr3
          sta tb_adlo2+3,x

          lda tbadhi2,y
          adc #0
          sta tb_adhi2+3,x
;-------------------------
;- calculations plot 5/6 -
;-------------------------
          lda v1
          sbc v2
          adc v3
          tax

          ldy tmpr3
          lda tbbit,x
          sta tb_bit2+4,y
          lda tbbit2,x
          sta tb_bit2+5,y

          lda v4
          sbc v5
          adc v6
          tay

;------------
;- plot 5/6 -
;------------
          lda tbadlo,y
          clc
          adc  tabxm,x
          stx tmpr4
          ldx tmpr3
          sta tb_adlo2+4,x
          lda tbadhi,y
          adc #0
          sta tb_adhi2+4,x

          ldx tmpr4
          lda tbadlo2,y
          adc tabxm2,x
          ldx tmpr3
          sta tb_adlo2+5,x
          lda tbadhi2,y
          adc #0
          sta tb_adhi2+5,x

;-------------------------
;- calculations plot 7/8 -
;-------------------------
          lda v1
          sbc v2
          sbc v3
          tax

          ldy tmpr3
          lda tbbit,x
          sta tb_bit2+6,y
          lda tbbit2,x
          sta tb_bit2+7,y

          lda v4
          sbc v5
          sbc v6
          tay
;------------
;- plot 7/8 -
;------------
          lda tbadlo,y
          clc
          adc  tabxm,x
          stx tmpr4
          ldx tmpr3
          sta tb_adlo2+6,x
          lda tbadhi,y
          adc #0
          sta tb_adhi2+6,x
          ldx tmpr4
          lda tbadlo2,y
          adc tabxm2,x
          ldx tmpr3
          sta tb_adlo2+7,x
          lda tbadhi2,y
          adc #0
          sta tb_adhi2+7,x
;-
          lda tmpr3
          clc
          adc #8
          sta tmpr3
          dec dotcount
          bmi +
          jmp loop2a
+         jmp irq_exit
;=================================
;******************************
;**** THE END of main stub ****
;******************************


;-----------------------------
;- bellow a helps procedures -
;- to graph init, irq,       -
;- calc tables etc...        -
;-----------------------------


;==========================
;= simple init irq, init  =
;= timer, colors etc...   =
;==========================
initirq
          lda #$00
          sta $d015
          lda #<irq
          sta $fffe
          lda #<nmiex
          sta $fffa
          lda #>irq
          sta $ffff
          sta $fffb
          lda #$7f
          sta $dc0d
          lda $dc0d

          bit $d011
          bpl *-3

          lda #$c8
          sta $d016
          lda #value_d018
          sta $d018
          lda #value_dd00
          sta $dd00

          lda #$01
          sta $d01a
          lda #$0b
          sta $d011
          lda #$fa
          sta $d012
          rts
;=====================
;=  end init irq...  =
;=====================

;=======================================
;=   now make all needed tables :      =
;=   make tbbits for plotting,         =
;=   tab address of plots and          =
;=   prepare them to sign (-128/127)   =
;=======================================
make_tables

          lda #$00
          tax
          tay
          sec

          ;x=0 y=0 a=0 C=1
          ;sec ;C=1

-         ror
          bne *+3
          ror
          sta tbbit,x
          dey
          sta tbbit2,y
          inx
          bne -
;---
          ;x=0
-         txa
          and #$f8
          sta tabxm,x
          lda #0
          sta tbadlo,x
          lda #>trashcan
          sta tbadhi,x
          inx
          bne -
;---
-         lda #>trashcan
          sta tb_adhi1,x
          sta tb_adhi2,x
          lda #0
          sta tb_bit1,x
          sta tb_bit2,x
          sta tb_adlo1,x
          sta tb_adlo2,x
          inx
          bpl -
          tax
;---
          lda #>screen
          sta tmpr4
          lda #32 ;many pixel to the rigt
          sta tmpr3

          ;x=0 C=0


calc      lda tmpr3
          sta tmpr1
          sta tbadlo+28,x
          lda tmpr4
          sta tmpr2
          sta tbadhi+28,x
          inx
          ldy #$07
calc2     inc tmpr1
          bne *+4
          inc tmpr2
          lda tmpr1
          sta tbadlo+28,x
          lda tmpr2
          sta tbadhi+28,x
          inx
          dey
          bne calc2
          lda tmpr3
          ;clc ;C=0
          adc #$40
          sta tmpr3
          lda tmpr4
          adc #$01
          sta tmpr4

          cpx #200
          bcc calc

;--- hocus-pocus #1 for tables :)
;============
          lda #>tbadlo
          sta vect2+1
          sty vect2
          ldx #3
          stx tmpr3

-         lda (vect2),y
          pha
          tya
          eor #$80
          tay
          lda (vect2),y
          tax
          pla
          sta (vect2),y
          tya
          eor #$80
          tay
          txa
          sta (vect2),y
          iny
          bpl -

          ldy #0
          inc vect2+1
          dec tmpr3
          bne -

;----------
          ldx #0

; --- yep :) hocus-pocus #2 for tables...
          ;x=0
          ;y=0

-         dey
          lda tabxm,y
          sta tabxm2,x
          lda tbadlo,y
          sta tbadlo2,x
          lda tbadhi,y
          sta tbadhi2,x
          inx
          bne -
          rts
;-----------------------------
;- uff... maketables done :) -
;-----------------------------
setup_scr

     lda #$34
     sta $01
          lda #$10  ;fill hires bitmap color ram - plot = white, background = black
          ldx #$00

-         sta rcolor,x
          sta rcolor+$0100,x
          sta rcolor+$0200,x
          sta rcolor+$0300,x
          inx
          bne -
     inc $01
;-----------------------
;- simple clear screen -
;-----------------------
          lda #>screen
          sta fll+2
          txa ;x=0
          ldy #$1f
fll
          sta screen,x
          inx
          bne fll
          inc fll +2
          dey
          bne fll

-         sta screen+$1e40,x
          inx
          bne -
          rts
;-------------
;============================
;=== make a ball dots ... ===
;= and place  on the sphere =
;============================
;-----------------------
;- to calulation using -
;-   [ C F ] where : -
;-----------------------
;--------------
; C = sin(sy)/2
;--------------
;------------------------------
; F = (sin(sy-sx)-sin(sy+sx))/4
;------------------------------
;---
insert_dots

          lda #$48
          sta t_x
          ;lda #$48
          sta t_y

;---
          ldx #many_dots-1
-
          lda t_x
          sec
          sbc #$10
          sta t_x
          and #$3f
          sta hi_angle_x
          lda #0
          sta hi_angle_z
          txa
          and #3
          cmp #3
          bne +
          lda t_y
          sec
          sbc #16
          sta t_y

+         lda t_y
          eor #$7f
          clc
          adc #1
          sta hi_angle_y

          txa ;safe x value
          pha
          jsr calculate_matrix ;make C and F
          pla
          tax ;restore x


          lsr mat_F_hi ; div 2
          lda mat_F_lo
          ror
;---
          sta tb_fact1,x
          pha  ;hehe
          txa  ;fast make 3rd value without calculatons :-)
          eor #3
          tay
          pla
          sta tb_fact2,y
          lsr mat_C_hi ; div 2
          lda mat_C_lo
          ror
;---
          sta tb_fact3,x

          dex
          bpl -

          ldx #5
-         lda delty,x
          sta lo_delta_x,x
          txa
          sta lo_angle_x,x
          dex
          bpl -

;=======================
          lda #>tbscale
          sta pointer

          ldx #many_dots*3-1
          lda #$ff
-         sta replic_tab,x
          dex
          bpl -

          ;x=#$ff
          inx
findloop
          txa
          tay
          iny
          lda #0
          sta count_check
count_find

          lda replic_tab,y
          cmp #$ff
          bne nofind

          lda tb_fact1,x
          cmp tb_fact1,y
          bne nofind
;find here
          lda pointer
          sta outp+2
          sta outp2+2
          sta inp+2
          sta replic_tab,x
          sta replic_tab,y
          inc count_check

nofind    iny
          cpy #many_dots*3
          bcc count_find
          lda count_check
          beq +
          txa
          pha ;safe x
;------------------------------------
;- make one block table for a point -
;------------------------------------
;do_one_table

          lda tb_fact1,x

;--- ;in acc dot factor value

          asl  ; muls 4
          asl
          tay

          ;clc      ;after asl Carry = 0
          lda #0
          tax
          sta tmpr1
          sta tmpr2
;---
outp      sta tbscale,x
;---
          tya
          adc tmpr1
          sta tmpr1
          lda tmpr2
          adc #0
          sta tmpr2
          inx
          bpl outp
;-
          ;x=#$80
          ldy #$7f
inv       lda #0
          sec
inp       sbc tbscale,y
outp2     sta tbscale,x
          dey
          inx
          bne inv
;--------------------
          pla
          tax ;restore x
          inc pointer
+         inx
          cpx #many_dots*3-1
          bcc findloop

-
          lda replic_tab,x
          sta tb_fact1,x
          dex
          bpl -
          rts
;====================================
;=== the end of inserting dots   ====
;====================================
;---------------------------------------
;lo & hi delta rotation x y z (sx;sy;sz)
delty     !byte $00,$00,$00,$01,$ff,$ff
;---------------------------------------
;eof
;-

Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Kisiel w 20 Stycznia 2017, 20:26
Ja tam z przeszłości pamiętam że takie wątki kończą się zrób to za mnie.
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Exosoft w 21 Stycznia 2017, 00:23
Dzięki Wegi i już cofnąłem się wstecz do postów w "programowanie" to sporo czytałem na temat dotsów i innych podobnych ciekawych rzeczy na wektorach, które zapewne się przydadzą przy robieniu np. dema ! ...Mialem też na myśli coś, co np. obliczy kształt obracanych liter logo po osi X,Y,Z na wektorach 3D . Znalazłem coś "3D construction kit", więc może ktoś już coś robił podobnego na tym programie ?
Zapewne można to też jakoś wyliczyć w innym języku programowania np. MINGW, GCC itp.

http://csdb.dk/release/?id=31655
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Exosoft w 21 Stycznia 2017, 01:23
Jako przykład autor tego intra "Hain/ESM", z tego co widać już jest nieaktywny na C64 ale może Mr Wegi jako, że dołączyłeś do tematu i jesteś memberem ESM to może mógłbyś się jakoś dowiedzieć na czym Hain wyliczył logo ESM w tym intrze ?

http://intros.c64.org/inc_download.php?iid=2691
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Zbych w 21 Stycznia 2017, 12:46
Chyba źle zrozumiałeś koncepcję grafiki wektorowej, albo chodzi ci o zrobienie "prekalkulowanej" animacji, raczej tego drugiego rozwiązania nie stosuje się dla obiektów składających się z kilku do kilkunastu punktów, chyba że chodzi o naprawdę bardzo prostą animację. Przeczytałeś artykuł z linku który zapodał Wegi, zwłaszcza ten z codebase64 o grafice 3D? Jeśli nie to polecam.
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: wegi w 22 Stycznia 2017, 00:08
Dla niedowidzących ściągających przykład z formatwar.net - w pierwszym moim poście dołączyłem zipa z ASM i PRG.

Jako ciekawostkę dodaję program, który sobie pisałem, żeby popatrzeć jak przez matryce liczą się wierzchołki. Prawdopodobnie zupełnie nieprzydatny.

Z twoich life is code nie widać za bardzo chęci kodowania. W zasadzie nie rozumiem co chcesz zrobić.


Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Kisiel w 22 Stycznia 2017, 00:54
ja sobie myślę tak, że jak ludzie mogą teraz iphona można kupic to komputer sam wektorówkę zrobi tylko trzeba znaleść do tego program... konsumpcja panie.
Dałeś mi już tyle tematów do przemyśleń że chyba coś zakoduje na cm0 :)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Exosoft w 22 Stycznia 2017, 05:13
Chyba źle zrozumiałeś koncepcję grafiki wektorowej, albo chodzi ci o zrobienie "prekalkulowanej" animacji, raczej tego drugiego rozwiązania nie stosuje się dla obiektów składających się z kilku do kilkunastu punktów, chyba że chodzi o naprawdę bardzo prostą animację. Przeczytałeś artykuł z linku który zapodał Wegi, zwłaszcza ten z codebase64 o grafice 3D? Jeśli nie to polecam.

Ja powiem szczerze, że ogólnie to nie tylko to, że nie zrozumiałem koncepcji ale nie bardzo mam o tym pojęcie. Nie będę też udawał, że coś wiem, skoro wiem nie wiele bo jak wiadomo to do niczego dobrego nie prowadzi. Dzięki jeszcze raz za pomoc ! dzisiaj jest niedziela to sobie odpuszczę ale byłem chwilę na "Format War" w dziale "Coding corner" to wystarczy, że zobaczyłem tak znane ksywy jak Wegi, TMR, Oswald to już wiem, że będzie ciekawie i zapewne pochłonie mnie lektura :) Zapewne wszystkie materiały i pomoce jakie tutaj zostawiliście lub jeszcze zostawicie to przydadzą się do stworzenia dema. Wracając do działu "programowanie" na tym forum i np. topic "po 12-tu latach" to można by powiedzieć, że również i ja jestem tego pokroju. Zaczynałem kiedyś w latach 90-tych na scenie C64, mając wtedy 14-15 lat to zawsze kiedy przeglądałem produkcje scenowe znanych polskich grup, a szczególnie koderów to w mojej głowie zapalała się lampka z pytaniem "jak oni to zrobili?". Pamiętam wtedy, że umiałem np. wyjść z ramek bocznych, zrobić DYCP scroll'a i kilka innych rzeczy, które uczyłem się z jakichś tam magazynów papierowych np. C&A lub dyskowych z działem "kodowanie" . Poznałem wtedy też zaledwie kilka osób, a były to jeszcze czasy swapu to pisałem nawet kod edytora tekstu do jakiegoś magazynu grupy Undying, o który poprosił mnie wtedy Human/Undying lecz niestety chyba z przyczyn braku czasu to nigdy tego nie ukończyłem. Znałem też wtedy takich ludzi jak TLH (The Last Hacker) czy ZAN z Dzierżoniowa to raz na miesiąc lub dwa odwiedzałem ZAN'a aby zgrać na dyskietki jakieś nowości (stuff) i niekiedy przebywałem u TLH na chacie to nawet pamiętam do dziś, kiedy TLH składał jeszcze przy mnie np. pierwszy numer magazynu "Brukowiec". Pisałem kod wtedy z dużym zapałem lecz też szedłem z postępem to jakoś w roku 1998 kupiłem Amige 500 i sprzedałem mojego real C64 ze wszystkimi dyskietkami, na których było sporo moich kodów źródłowych, które zapewne kiedy sprzedałem wraz z C64 to zostały sformatowane pod gry :/ Później była już w moim domu Amiga 1200 i dalej PC. Nigdy nie sądziłem, że do tego wrócę tzn. do kodowania na C64, więc dzisiaj cholernie żałuję, że sprzedałem moją 8-mio bitową maszynę bo pewnie jeszcze by posłużył, chociażby do testowania tego, co zrobiłem pod emulator Vice, a za ileś tam lat stał by już może ten mój real C64 na półce oprawiony w ramkę, kto wie ? :) ...Jak w tym artykule "po 12-tu latach", tak samo i ja ponownie miałem styczność ze sceną C64 po tylu latach to można by powiedzieć, że prawie wszystko zapomniałem. Poznałem kilka osób przez internet z zagranicy, którzy od nowa naprowadzili mnie odnośnie podstaw programowania na C64, cross kompilatorów itp. Ja byłem jakiś czas pod inną ksywą lecz nie chce pisać jaką bo stawiałem na nowo swoje początki, więc aby nie zrobić sobie "siary", że tak powiem. Minęło ze 2-3 lata moich zmagań z początkami "na nowo" i dzisiaj mogę szczerze powiedzieć, że trochę do tego wróciłem i mam już tam jakieś pojęcie, więc chciałbym zrobić coś, co kiedyś było dla mnie niemożliwe tzn. demo, dogrywanie z dyskietki przez jakiś IRQ loader. Na pewno jeszcze poczytam sporo na tym forum, na "Format War", "Codebase" i będę chciał powoli ruszyć z takim demem, więc super, że jest to forum C64power i jacyś aktywni ludzie, a nawet znani koderzy ze sceny komputerowej, którzy mogą coś doradzić. Na pewno też może nie to, że będę się "chwalił" ale zwyczajnie pisał na tym forum o postępach kodowania dema. Dzięki jeszcze raz dla Wegi za materiały, linki, które na pewno nie wstawiłeś tu na darmo bo na razie to zbieram co się da, analizuje i niedługo będę próbował zacząć to składać w jedną całość, co mam nadzieje, że zaowocuje właśnie stworzeniem i wydaniem jakiegoś dema ale przede wszystkim na jako takim poziomie :)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: wegi w 22 Stycznia 2017, 14:16
Kisiel cm0 to już cienka blacha jak 6502 teraz ja się zabawiam STM32F407VG i Spartanem 6 który też już jest ponoć archeo ! :)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Kisiel w 22 Stycznia 2017, 14:56
Nie robi to na mnie wrażenia, muchę można czołgiem zabić. Ja się staram dobierać sprzęt do celu a nie odwrotnie, nie udało mi sie zrobić sensownej emulacji na msp430 to przesiadłem sie na cortexa z 40MPIS. Czym bardziej skomplikowany procek tym gorzej, tracisz kontrolę nadtym co się dzieje. Czego np. jest przykładem uDrive, i chuj że nie dziala ale autor pisze"wziąłem analizator (po 3latach) i zacząłem sprawdzać przebiegi.. ale wszystko działa tip top itd"

Wracając do tematu, był już tutaj taki jeden co zrobił sobie kronikę z tworzenia gry MelonLevel, uznaje go za level expert w temacie kronik/blogów. Nawet ufundowałem mu nagrodę jak skończy grę i nic. Masz więc szanse też :)

PS. Wegi byś lepiej demo zakodował na SP8, chłopaki się spuszczają a feedback chujowy.
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: wegi w 22 Stycznia 2017, 17:06
[...]
 Czym bardziej skomplikowany procek tym gorzej, tracisz kontrolę nadtym co się dzieje. Czego np. jest przykładem uDrive, i chuj że nie dziala ale autor pisze"wziąłem analizator (po 3latach) i zacząłem sprawdzać przebiegi.. ale wszystko działa tip top itd"
[...]

LOL najwięcej tracisz kontrolę zdając się na "niezawodny C/C++" który śmieci, wpieprza swoje nieoptymalne pętle ale za to jest PORTABLE  >:(

W sumie jak patrzę na wyczyny z tych devboardów czy w FPGA czy STM32 to oczywiście można zatrudnić Spartana6 50MHZ żeby mrugać diodą, zamiast kondensatora, rezystora i 7400 :) W dupie strzyka zanim ujrzysz coś sensownego.
S6 generuje sygnał VGA wielkie sranie, a producent podłączył do RGB po 1 rezystorze co daje możliwość max 8 kolorów LOL Już nie mówię żeby DAC, ale chociaż po 3-4 rezystory na sygnał dałyby od 512 kolorów wzwyż - w dupę wolnych portów i żal na kilka rezystorów ?

Albo patrzę wielki wyczyn VGA sygnał z STM32, nieważnie jaka rozdzielczość, jak poziomy "pixel" zajmuje cały ekran w poprzek LOL

A ty w czym oprogramowałeś cortexa do UK1541 ? W C czy w ASM ?

Edit:

Na SP nic nie zrobię, bo ostatnio jak zrobiłem to nie dostałem nagrody za brak obecności ! :)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Kisiel w 22 Stycznia 2017, 20:37
Ciężko jest napisać w C coś cycle exact.... ale zawsze się można z koniem kopać.
Nie planujesz być na jedynym C= w PL ?
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Exosoft w 23 Stycznia 2017, 11:02
Mam jeszcze takie pytanie do adminów tego forum, zanim utworze nowy topic. Myślę, że będzie to coś ciekawego i być może nowego na tego typu forach. Chciałbym utworzyć topic "Robimy demo od podstaw", gdzie zacznę od organizacji wszystkiego, co niezbędne na początku oraz dalszy ciąg to pomysły ludzi, ewentualnie grafika, muzyka i wreszcie kod lub cały part dema omawiany w wątku. Wiele, wiele innych rzeczy, a w kilku słowach to robimy demo aby być może kiedyś wrócić do wątku jeśli coś się zapomni, jak w moim przypadku. Przede wszystkim może to ożywi polską scene i ktoś zaczerpnie z tego inspiracje do stworzenia kolejnego dema. Nie wiem czy to dobry pomysł lecz ja się deklaruję, że najwięcej będę robił, a pomoc, pomysły będą oczywiście w creditsach, o ile ktoś wyrazi na to zgodę. Myślę też, że może być ciekawie, w połączeniu z nauką i dobrą zabawą :)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: SUDi w 23 Stycznia 2017, 12:55
Mam jeszcze takie pytanie do adminów tego forum, zanim utworze nowy topic. Myślę, że będzie to coś ciekawego i być może nowego na tego typu forach. Chciałbym utworzyć topic "Robimy demo od podstaw", gdzie zacznę od organizacji wszystkiego, co niezbędne na początku oraz dalszy ciąg to pomysły ludzi, ewentualnie grafika, muzyka i wreszcie kod lub cały part dema omawiany w wątku.

Spóźniłeś się z inicjatywą o jakieś 15 lat co najmniej. Wszystko to już było (chociaż często rozdzielone na różne wątki na forach) + w dobie internetu gdzie można znaleźć to wszystko w parę minut (setki for i poradników, skany map pamięci, gazet z najlepszych lat Komodora itd.). Obecnie dostawa świeżej krwi na scenę C64 oscyluje w granicach +-1 nowy człowiek / rok, a reszta to już scenowi weterani mający rodziny, pracę oraz setki innych zainteresowań. Ale spróbuj. Może zacznij to kompletować do kopy, może na koniec skończysz z własną stroną internetową. Zapału życzę!
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: wegi w 23 Stycznia 2017, 18:30
Jak byś chciał liczyć wektory w stacji, to jeszcze popełniłem taki artykuł 2 częściowy "Wektory na komodory" w C&A Fan.

Ten kod liczył wektory w Dream Travel
https://youtu.be/4M12-T5KsfU?t=7m8s

czy I love the cube
https://youtu.be/7lOwesBxFQo?t=4m53s
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: axa w 23 Stycznia 2017, 18:49
Nie chcę krakać ale czy tylko ja odnoszę wrażenie że kolega ExoSoft albo naprawdę nie wie o czym mówi albo świetnie się bawi kosztem Wegiego i innych chętnych do pomocy ludzi. Styl wypowiedzi, gramatyka itp sugerują bardzo młodego człowieka. Opowieści o C&A i dawnej scenie z okolic 95 sugerują coś odwrotnego. A ja bym po prostu poczekał na kod który po takiej dawce lektury powinien powstać bez problemu biorąc pod uwagę zapał do pisania.
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Exosoft w 23 Stycznia 2017, 20:38
Miałem na myśli, że może ktoś będzie chciał coś dorzucić od siebie do tego dema ale ok bo chyba trochę mnie poniosło :/ Wegi marnuje czas ? ...to co napisał pozostanie w tym wątku, co może się również przydać komuś innemu :)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Exosoft w 23 Stycznia 2017, 22:12
A ja bym po prostu poczekał na kod który po takiej dawce lektury powinien powstać bez problemu biorąc pod uwagę zapał do pisania.

Skoro ma być na poziomie to może za pół roku... Nikt nas do tego nie goni i ja traktuje to tylko jako hobby, wspominając przy tym stare czasy... Mówisz, że spóźniłem się z inicjatywą o 15 lat ? Pewnie za następne 15 lat, jak dożyję to wiedz, że zrobię to samo ;) Gdybym był małolatem to raczej bym nie doceniał potencjału jaki daje nam możliwość poznania na nowo wszystkiego co związane z C64 w tych czasach !
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: bor@s w 24 Stycznia 2017, 00:11
Ja moze sie nie znam, bo nie bylem na scenie, ale robienie dem to chyba rywalizacja na autorskie pomysly, a nie ogladanie sie na innych?
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: comankh w 24 Stycznia 2017, 00:22
rywalizacja na autorskie pomysly

prawie.
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: wegi w 24 Stycznia 2017, 00:28
nagrałem moje zabawy z kulkami :) Ten program wklejony w pierwszym poście tam jest odpalony. Ciut zmodyfikowany, ale to on...

https://www.youtube.com/watch?v=Sf5a4Muyg0M

Pół roku ? To musisz być mega zdolny !!! Jak przeczytasz note do Edge of disgrace to zobaczysz takie ciekawostki jak:

"Linking tego dema zajął mi rok"

"Na ten pomysł wpadłem w trakcie podróży dookoła świata z moją żoną" :)))))))))

No ale... może komuś się kiedyś ten wątek faktycznie przyda :)

Miłego oglądania
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Kisiel w 24 Stycznia 2017, 07:02
Sylwester zdolny jest:)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Skull w 24 Stycznia 2017, 08:34
A co tak zniechęcacie?
Ja tam z chęcią śledzę wątek, akurat sam coś zaczynam dłubać przy vektorach. Oczywiście że nie ma sensu wyważać otwartych drzwi.
Na początek trzeba przeczytać artykuł Wegiego w C&A, potem C= Hacking Issue 8, C= Hacking Issue 9, codebase64.org a tam Maths & Algorithms, Demo effects, no i fora zaczynając od csdb (nawet na c64scene.pl coś można znaleźć).




Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: axa w 24 Stycznia 2017, 10:01
Ale to nie jest żadnr zniechęcanie. Po prostu przy dzisiejszym dostępie do informacji, zawartości codebase64 trzeba tylko usiąść i przeczytać a potem spróbować zakodować. Dzisiaj koderskie okno na świat jest nieograniczone względem lat 90 i oryginalnego C&A... dlatego powątpiewam. A wszystkie informacje w tym wątku po odsianiu szumu są od dawna dostępne w necie. Jak ktoś  ma problem z poszukaniem to słabo widzę zakodowanie linii kodu bo jest trudniejsze. Duże brawa i uznanie dla Wegiego że mu się chce pomagać no i jego crunchera używam do dziś gdy nie korzystam z exo.
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Exosoft w 24 Stycznia 2017, 11:05
Masz racje Wegi bo zrobic dobre demo w tych czasach to chyba juz nie tylko koderskie efekty na wysokim poziomie. Prawie wszystko juz bylo jak ktos tam napisal, wiec może lepiej pomyśleć najpierw nad ciekawym scenariuszem dema, ktory oczywiscie bedzie polączony z dobrymi efektami koderskimi. Podobnie jak z muzyką, że nikomu nie będzie się  chciało słuchać fałszującej melodii w utworze, mimo iż będzie zrobiona na najwyższej jakości dźwiękach. Co niektórzy ludzie tutaj, jak i na CSDB to chyba za bardzo sie przejmują bo dla mnie kod,grafika czy muzyka na C64 to tylko ART. Ja chyba pomyliłem daty bo jednak w 1997 roku na pewnym party wystawiałem wraz z przyjaciółmi demo na Amige 1200, które niestety nie wystartowało na tej imprezie. Po prostu chyba za krótko byłem kiedyś na scenie C64 i jak napisał Skull to jest zupełnie odwrotnie bo raczej nikt nikogo tutaj nie zniechęca, skoro jesteśmy wszyscy w odpowiednim miejscu tzn. na c64power . Myśle, że każda wypowiedź kryje w sobie jakiś przekaz do przemyśleń i ulepszenia pomysłów, a nie do zniechęcania. Zresztą nikt ani nic mnie nie zniechęci bo kiedyś poszedłem chyba złą drogą tzn. nie doceniłem tego, co jeszcze niosła ze sobą scena C64, oprócz rywalizacji. Miałem kilku zajebistych kolegów w PL, z którymi urwałem kontakt z dnia na dzień bo sprzedałem mojego real C64 i kupiłem Amige, PC . ... Axa ty być może już siedzisz sporo w kodowaniu na koma to jest dla ciebie bardzo łatwe ale nie wiem czy wystarczy tylko wejść np. na codebase i poczytać bo jak ci później dojdzie jeszcze cyklowanie, zmagania z procesorem 1 MHZ, a jeszcze w demie, gdzie co chwilę zmieniają się efekty, które zazwyczaj są trickami np. wykorzystują prawie całą moc procesora C64 itd.
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Skull w 24 Stycznia 2017, 12:33
No teraz to wiele wyjaśnia.
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: wegi w 24 Stycznia 2017, 13:29
[...]
 Obecnie dostawa świeżej krwi na scenę C64 oscyluje w granicach +-1 nowy człowiek / rok,
[...]

Rzadko kiedy ktoś potrafi zaskoczyć, ale mamy tu takie nasze objawienie co dołączył do C64 to jest ZBYCH
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: wegi w 25 Stycznia 2017, 13:50
W poprzednim filmiku brzydko się nagrała 256 plotowa kulka, nagrałem jeszcze raz.

https://www.youtube.com/watch?v=IsHjg2qanyw
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Exosoft w 26 Stycznia 2017, 04:00
W poprzednim filmiku brzydko się nagrała 256 plotowa kulka, nagrałem jeszcze raz.

https://www.youtube.com/watch?v=IsHjg2qanyw

Fajnie to wygląda, a ja zawsze gdy widziałem takie rzeczy na ekranie monitora C64 to wiedziałem, że nie jest łatwo zakodować coś podobnego, więc spokojnie można by powiedzieć, że jest to na poziomie . Myślałem aby demo zacząć od jakiegoś ciekawego wygaszacza ekranu, a dalej credts'y i dopiero jakiś part. Sidwizard daje możliwość konwersji do tego formatu, gdzie jest już podobnie jak np. format XM na PC, gdzie można pobierać wartości z patternów, które dalej można użyć jako synchronizację dema z muzyką, zamiast bawić się pętlami "wait" ale czy to na pewno dobre rozwiązanie ? . Z tego co już wiem to muzyka będzie na dobrym poziomie, zarówno od strony linii melodycznej po jakość dźwięków. Podobny styl jaki kiedyś tworzył Shogoon/Taboo, gorzej może być z grafiką ale zapewne ktoś się znajdzie bo jest jeszcze sporo czasu :)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Zbych w 27 Stycznia 2017, 23:51
Tak sobie zerknąłem ile wolnego rastra zostaje w tej wersji 128 punktowej i za wiele tego nie było, ciekawi mnie jak uzyskałeś wersję 256 punktów, wykorzystałeś trick z odbiciem współrzędnych, jak to było opisane na forum, czy po prostu zoptymalizowałeś jakoś całość?
Bo tak sobie myślałem że teoretycznie można "stablicować" całe macierze, oczywiście przy pewnych założeniach odnośnie wartości kątów jakie są wykorzystane. Myślę że to takie małe oszukaństwo by było... chociaż liczy się efekt, no i bardzo ograniczyłoby ruchliwość piłki do z góry zdefiniowanego wzorca.
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Skull w 28 Stycznia 2017, 08:32
@Zbych pomysł całkiem niezły, ale problem w tym że jest to kombinacja 3 kątów (x,y,z) czyli taka tablica nawet dla pojedynczej wartości (a jest ich 9) daje 256x256x256 (gdzie 256x256 to cała pamięć c64), nawet krok co 8 dla jednej wartości to 32Kb - za mało ramu :)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: wegi w 28 Stycznia 2017, 09:16
Od liczenia większym problemem jest stawianie i czyszczenie plotów. W trakcie trwania borderów trzeba wyczyścić 256 starych plotów i postawić nowych 256. A to jest prawdziwa bitmapa tutaj. Mirroring przy takim obiekcie jest naturalny. Nie trzeba ograniczać obrotów. Tą kulkę można zatrzymać, zmieniać obroty w dowolnych osiach, można też skalować każdą oś osobno.
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Kisiel w 28 Stycznia 2017, 10:38
O ile byś mógł przyśpieszyć prockę bez czyszczenia?
Dokładnie algo, rysujesz, robisz switch, vic czyta i zeruje komórkę.
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: wegi w 28 Stycznia 2017, 11:09
To nie tak. Najpierw trzeba policzyć adresy plotów, żeby je zapalać i gasić. W tym konkretnym przypadku gaszenie plotów jest 6 cykli na plot, co daje 256*6 około 25 linii rastra.
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Kisiel w 28 Stycznia 2017, 11:31
No to nie zajmuje dużo,  pytanie więc czy warto takie cuś wprowadzić do tdc.
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: wegi w 28 Stycznia 2017, 11:47
W formie blittera stawiającego/gaszącego/eorującego wskazany plot z wyborem układu [0...319] X ; [0...199] Y albo [-159...159] X ; [-99...100] Y. Z takim samym wyborem blitter rysujący linie od/do wskazanych plotów no i wisienka na torcie narzucanie własnych kawałków bitmapy - wtedy w asteroidy można by grać 50 FPS ! :)

edit:
Jeszcze opcja czyszczenia/wypełniania/ eorowania całej bitmapy, albo wybranych "pasków" i ich długości plus druga opcja eorowania pojedynczych linii w poprzek :D
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Kisiel w 28 Stycznia 2017, 13:38
RMW, trigger może być na irq on i off. ustalasz sobie raster do skasowania za pomocą rejestu vica jako irq , potem go w irq podmieniasz na końcową wartość, potem ustawiasz w irq na pierwszą wartość i tak w koło. prawie automat.Kasuje wszystko pomiędzy. Paniał? Robienie xy to więcej czasu zejdzie na przeladowanie rejestrów niz wykasowanie w normalny sposób. AB cruncher jest wolniejszy na reu z tego powodu.
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Zbych w 28 Stycznia 2017, 18:24
@Zbych pomysł całkiem niezły, ale problem w tym że jest to kombinacja 3 kątów (x,y,z) czyli taka tablica nawet dla pojedynczej wartości (a jest ich 9) daje 256x256x256 (gdzie 256x256 to cała pamięć c64), nawet krok co 8 dla jednej wartości to 32Kb - za mało ramu :)

Tak jak pisałem to zależy jakie wartości kątów zastosujemy. To jest apka którą sprawdzałem sobie wyliczanie macierzy opisane w linku który wrzuciłeś. Usunąłem z kodu zbędne rzeczy zostawiłem tylko tą część która generuje listę 256 macierzy (czyli to by było lekko ponad 2kb), następnie na podstawie tej listy wykonuje animację 8 wierzchołków. Apka napisana w C# (główny plik to Form1.cs), nie wiem czy używałeś C# ale myślę że nie ma tam nic niezrozumiałego, jedyne co może być dziwne to że część miejsc zawiera bajty ze znakiem a część bez znaku - nie chce mi się tłumaczyć dlaczego, ale tak musi być, bajty zastosowałem specjalnie żeby zobaczyć czy coś wychodzi poza zakres.
Wartości o jakie zmieniają się kąty obrotu teoretycznie mogą być dowolne ważne żeby ostatnia wartość pokrywała się z pierwszą tak, żeby było zapętlenie animacji. Najprościej było to zrobić zwiększając o 1 , 2 i 4 odpowiednio kąty X,Y i Z.
W załączniku jest projekt, w podkatalogu bin\debug jest gotowy exec jeśli nie masz czym skompilować.
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: wegi w 28 Stycznia 2017, 23:19
@Zbych dorób pliz opóźnienie klatki animacji o 1/50 s i możliwość sterowania wielkościami kąta obrotu dla poszczególnych osi.

Notabene co wy się tych obliczeń tak boicie, zoptymalizowane obliczenie matrycy to 8 linii rastra nie tutaj jest wąskie gardło.
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Skull w 02 Lutego 2017, 16:02
No jak tam @Exosoft ?
Ja na razie tyle:

Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Zbych w 02 Lutego 2017, 20:35
(...)
Ja na razie tyle:

Wiedziałem że można rysować na znakach ale chyba nie wymyśliłbym takiego ich układu, albo tego że jeden z kolorów ściany to 0. No i mógłbym sobie szukać tego irq gdzie zmieniany jest kolor tła :D ale coś mi nie pasiło że jest SEI a nie ma CLI.
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Exosoft w 02 Lutego 2017, 20:41
Myślę, że w tym parcie będą ciekawe vectory na spritach, a jak graficy jeszcze pomogą i koderzy to może szału nie będzie ale zdążymy z demem na SP8 . Na pewno ciekawie też będzie od strony muzycznej dema ! Nie będę więcej pokazywał screen'ów bo lepiej, aby całość obejrzało się na SP8 jako first release :)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Kisiel w 02 Lutego 2017, 21:39
vaudevile ? coś mi to mówi.
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: wegi w 02 Lutego 2017, 22:59
Doradzam demo bez chamskich konwertów graficznych
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Exosoft w 03 Lutego 2017, 03:29
Doradzam demo bez chamskich konwertów graficznych

To prawda Wegi, na screen'ie jest moja była kobieta :D Logo oryginalne by Bladee ! Myślałem, że może na pamiątkę ale rzeczywiście jest lame konwert postaci kobiety ze zdjęcia i retusz zrobiony przeze mnie na Pixcen. Niestety nie jestem grafikiem ale napisze na weekend do znajomych grafików i może pomogą to będzie ładnie wyglądało graficznie, a jeśli nie to tak jak napisałem przedtem, że większość efektów zsynchronizowane pod muzykę, aby chociaż muzyka wpadała w ucho + ciekawe efekty :)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Exosoft w 04 Lutego 2017, 01:06
No jak tam @Exosoft ?
Ja na razie tyle:

Super zrobione Skull i jeszcze w tle barwy narodowe :) W sumie to ja robiłem kiedyś zdjęcie tej mojej byłej kobiecie...no ale konwert i jednak lame. Przerysować jak bym chciał ze zdjęcia to pewnie wyszedł by jakiś kosmita bez tzw. proporcji :D Zresztą jak napisał gdzieś tam jakiś grafik, zdaje się nawet na tym forum to cała zabawa zaczyna się z procesem i w moim przypadku retuszu :) Wezmę się lepiej za kodowanie, a z grafiką to się później coś pomyśli. Sporo i tak jeszcze zostało czasu do SP8 :)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: V-12/Tropyx w 04 Lutego 2017, 12:13
EEEtam lame - wielcy graficy konwertują i się nie przejmują... :)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Kisiel w 04 Lutego 2017, 13:16
nie wiem co na to cmk:)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Exosoft w 04 Lutego 2017, 15:54
nie wiem co na to cmk:)

Kisiel "cmk" to w skrócie Comankh ? Ja też jestem ciekaw co on na to i ewentualnie jakaś podpowiedź, aby było ok i nie było chamsko-lame jak napisał Wegi bo jednak szacunek dla niego i innych koderów, że dołączyli do tematu i chcą coś pomóc, doradzić :) . Ja można by powiedzieć to jestem początkującym grafikiem i coś tam się uczę. Napisałem do dwóch znajomych grafików z prośbą o pomoc i jak na razie to żadnej odpowiedzi ale zapewne z braku czasu. Ja jak znam życie to może coś tam pomogą ale większość i tak będę musiał jakoś zrobić sam do tego dema na SP8 :)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Kisiel w 04 Lutego 2017, 17:02
nie wiem co na to cmk:)

Kisiel "cmk" to w skrócie Comankh ? Ja też jestem ciekaw co on na to i ewentualnie jakaś podpowiedź, aby było ok i nie było chamsko-lame jak napisał Wegi bo jednak szacunek dla niego i innych koderów, że dołączyli do tematu i chcą coś pomóc, doradzić :) . Ja można by powiedzieć to jestem początkującym grafikiem i coś tam się uczę. Napisałem do dwóch znajomych grafików z prośbą o pomoc i jak na razie to żadnej odpowiedzi ale zapewne z braku czasu. Ja jak znam życie to może coś tam pomogą ale większość i tak będę musiał jakoś zrobić sam do tego dema na SP8 :)
Nie przejmuj się , cmk to powie srsly mawa faka? albo coś takiego ze r2d2 nie deskrambluje... ludzie sceny ;)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Exosoft w 05 Lutego 2017, 09:59
Nie przejmuj się , cmk to powie srsly mawa faka? albo coś takiego ze r2d2 nie deskrambluje... ludzie sceny ;)

Ja już ci mówiłem gdzieś tam kiedyś Kisiel, ze wcale się tym nie przejmuje, a nawet zacząłem ignorować ludzi, którzy np. próbują wygrzebać coś zupełnie innego, niż to, co jest w temacie, aby ciebie zaczepić, wkurzyć itp. Później w nerwach wychodzą głupie sytuacje, a ja już to kiedyś przerabiałem, wiec dobrze wiem, że to nie prowadzi do niczego dobrego. Ja sobie założyłem cel, że zrobię demo na SP8, więc nic mnie nie powstrzyma, a jedynie czytam uważnie odpowiedzi na tym forum bo jest tutaj wielu ludzi ze sceny, którzy mają o wiele większe pojęcie ode mnie. Ja może mam w innej dziedzinie spore pojęcie ale nawet o tym nie piszę, aby ktoś nie odebrał tego tak, że się próbuję tutaj wywyższać lub coś podobnego ! Szacunek ponownie dla was wszystkich, o czym mam nadzieję to będziemy mogli jeszcze podyskutować przy browarku smakowym na SP8 :)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Exosoft w 05 Lutego 2017, 12:44
Zastanawiałem się jeszcze jaki by tu wybrać IRQ loader-depacker, który najlepiej spełni swoje zadanie ? Wydaje mi się, że ostatnio modne jest wydawanie dem przez wielu ludzi z różnych grup. Jak wiadomo to nie jest łatwo zrobić samemu całe demo ale gdy robi to kilku koderów i grafików, muzyków to wtedy idzie szybciej i łatwiej. Ja dodałem logo "Vaudeville" przy postaci kobiety ale to tak na przykład bo gdyby ktoś się chciał przyłączyć z jakimś partem lub co kolwiek to wtedy było by zamiast tego logo np. "Silesia Party 8" i ogólnie to bez nazw grup, tylko wszędzie "Silesia Party 8", a już tam w creditsach by sobie każdy zobaczył, że kto co zrobił i do jakiej grupy komputerowej należy . W sumie to z czasem mam w planach zrobić cały "engine" do robienia dem na C64, gdzie będzie można np. pozmieniać sceny, muzykę, grafikę... kod pozostanie podobny ale każde następne demo będzie zupełnie inne. Fajnie by było wystawiać więcej dem w PL i zagranicą na party oraz na w miarę ciekawym poziomie :) Nie wiem czy zwróciliście uwagę, że te nowe zespołowe dema grup Fairlight, Noice, Offence są jak gdyby podobne, więc może już powstają na jakimś silniku ? ... Nie mam na myśli braku kreatywności koderów, tylko samo to, że przynajmniej coś wydają konkretnego np. demo i coś o nich słychać. Większość z tych ludzi chyba jest już około 40-tki to nie mają może czasu robić każde demo od podstaw, a wy co o tym myślicie ?
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: wegi w 12 Lutego 2017, 19:10
No jak tam @Exosoft ?
Ja na razie tyle:

Generator speedcodu skróci niebywale plik wynikowy

Zastanawiałem się jeszcze jaki by tu wybrać IRQ loader-depacker, który najlepiej spełni swoje zadanie ?

Made in Poland można spróbować :-)
http://csdb.dk/release/?id=117165

razem z kilkunastoma przykładami użycia i wieloma testami

Taki wyciąga linking tzn - to demo było tym linkowane

http://csdb.dk/release/?id=122328

Przy okazji w temacie wektorów

http://csdb.dk/release/?id=87341
http://codebase64.org/doku.php?id=base:drivecalc_vectors
http://codebase64.org/doku.php?id=base:filling_the_vectors
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Exosoft w 21 Lutego 2017, 17:24
Sorki za małe zamieszanie ostatnio ale jeśli można to wróćmy na nowo do tematu. Ja już kiedyś testowałem "Bongo" i dawał całkiem niezłe rezultaty. Nie chodzi już o te kilka bajtów różnicy, jak np. z Exomizer . Super, aby było Polskiej produkcji wszystko. Ja miałem zostawić to jako niespodziankę ale może napiszę już teraz, że po co proszę innych o pomoc, skoro i tak nic na tym nie zyskam oraz ogólnie to dlaczego uparłem się, aby wydać to demo na party. Chodzi oczywiście o św.p. Mariusz 'Ramos' Rozwadowski, który jednak był moim najlepszym przyjacielem na scenie C64. Pamiętam jeszcze naszą ostatnią rozmowę telefoniczną niedługo przed jego śmiercią, kiedy mu mówiłem o kilku efektach, które zakodowałem w ASM. Niestety nie mam już tych efektów bo stało się, że spalił mi się dysk i nie zdążyłem zrobić kopii na moim dysku wirtualnym ale kto by się spodziewał... Ramos - człowiek "idea" już miał w głowie pomysł, aby zrobić z tym demo i samo to, jak o tym mówił podekscytowany, że zabierze ze sobą kolejne Polskie demo na jakieś party. Minęło już trochę czasu i często tak jest, że dopiero po śmierci danego człowieka to zaczynamy rozumieć kim on tak na prawdę był ! Nie wiem czy poza grupą Quartet to będzie jeszcze ktoś taki na Polskiej scenie C64 jak Mariusz Rozwadowski ? Pewnie Ramos gdyby żył to zabrał by ze sobą to demo na SP8, jak wiele innych rzeczy wystawiał na parties, które ja zrobiłem. Postanawiam sam się udać na SP8 i wystawić to demo dla upamiętnienia na zawsze tej naszej dawnej przyjaźni ! Dzięki jeszcze raz Wegi i inni oraz mam nadzieję, że teraz kiedy już wiecie dlaczego chce wydać to demo na SP8 to coś jeszcze pomożecie. Ja już zacząłem robić taki szkielet z inicjalizacjami w ASM i może na weekend już będę testował pierwszy part ...
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Exosoft w 07 Marca 2017, 07:56
Szczerze to nie wiem czy dam radę zakodować takie "prawdziwe" demo z wysokiej jakości efektami bo to rzeczywiście wymaga sporo czasu, którego aż tyle nie mam oraz też nie jestem na tyle dobrym koderem. Na pewno coś tam zrobię z dedykacją dla św.p. Ramos'a, tylko nie będę już o tym wspominał w samym demie. Myślałem, że może ciekawy scenariusz dema, połączony z synchronizacją muzyki tzn. co umiem, co jestem w stanie zrobić. Na pewne bój się już Jammer na SP8 :D Zacząłem już robić muzykę na 2sid pod Goat tracker i 1sid, tylko to raczej będzie pod DMC V7 bo rzeczywiście od strony jakości dźwięków to Goat tracker trochę jest w tyle, a zapewne ludzie też będą na to patrzeć podczas głosowania ... Na SP7 to chyba nawet jeszcze RAF pamięta, że wszystko robiłem na ostatnią chwilę, a tym razem to się trochę lepiej przygotuję :)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Buddha w 05 Kwietnia 2017, 03:44
Kurdę co to jest i kto to napisał ? Bez przesady, że ja głodny chodzę to niby miałbym przyjechać na Silesia Party na obiad, bo coś tam przeczytałem w śmietniku na tym forum. Ja mam w domu co jeść !
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Buddha w 06 Kwietnia 2017, 07:40
hehe z tym obiadem to dobre :D ... Z braku czasu, odnośnie jeszcze teraz dodatkowej pracy to wiem na pewno, że nie wydam już nigdy "Buddha music disk #02", więc chociaż wrzucam "menu", które zrobił Andy 'Shine' Zeidler . Napisałem już połowę kodu do tego music disk'a w 64tass i szkoda, aby się zmarnował to postanowiłem przerobić na mój player z różnymi ciekawymi efektami np. equalizer na wektorowych sprajtach itp. Dogadałem się z Shine, że wykorzystam tylko logo "Buddha" oraz jeden pasek, gdzie miały być nazwy song'ów w tym menu. Player będzie mi potrzebny jedynie już tylko do publikowania jakichś moich pojedynczych kawałków w music competitions np. na jakichś C64 party :)
Tytuł: Re: Wektory na C64
Wiadomość wysłana przez: Buddha w 07 Kwietnia 2017, 00:26
Wynik mojego wczorajszego treningu z układaniem nut na patternach, na trzech oktawach i tylko jednym dźwiękiem + filtry i efekt vibrato . Z dedykacją dla kompozytora Jens-Christian Huus, który w rozmowach ze mną ostatnio to próbuje powrócić do tworzenia muzyki po bardzo długim czasie :) Ogólnie to człowiek, który w moich oczach zasługuje na ogromny szacunek, odnośnie sceny C64 !

Tutaj link do preview pt. JCH IS BACK 3 :  https://clyp.it/buqcrjap