Uutiset:

Genetic PET BBS Powered by Commodore 64
g-pet.tunk.org port:1025

Main Menu
Menu

Näytä viestit

Tämä jakso sallii sinun katsoa tämän jäsenen kaikkia viestejä. Huomaa, että näet vain niiden alueiden viestit, joihin sinulla on nyt pääsy.

Näytä viestit Menu

Viestit - virgo

#1036
tälläkin foorumilla voi seurata uusien pelien valmistumista... *wink*
#1037
varmaksi en sano !
veikkaisin kyllä että jokusen turbonkanssa tuo on yhteen sopiva
kokeilemallahan tuon tietää
kassulta levyllekin kopiointi onnistuu
#1038
Bitin Nypläys / Vs: Soita Sid sample !
helmikuu 05, 2012, 02:26
ok
tässä hieman omia Sample rutiineija teillekin ihmeteltäväksi
samplen soitossa ajastus on tärkeimpiä äänenlaatuun vaikuttavia
asioita kuten tässä esteltävässä rutiinissä

ensimmäinen rivi BIT $DD0D
käynnistetään ajastus uudelleen heti alussa
näin varmistetaan että seuraavakin sample tulee "tarkasti" halutun ajan kuluttua
koska laskuri alkaa heti tämän jälkeen laskea seuraavaa keskeytys aikaa
ohjelmoijalle jääkin sitten vain ajastaa itse samplen soittaminen molemmissa
osissa (C64 4bit samplet koostuvat kahdesta samplesta ala ja ylä osa)
tarkalleen samalla ajastuksella kuin edellinen
tietenkään tämä ei ole mahdollista kovin tarkasti badline ja prosessorin suorittamien
käskyjen erilaistan suoritus aikojen suhteen keskeytykset eivät pysty keskeyttämään
itse käskyjen suoritusta
(eivät edes ystiset NMI keskeytykset vaikka pystyvätkin ajamaan IRQ keskeytysten ylitse)
joten sen täytyy odottaa kunnes se on suoritettu loppuun
tämä voi kestää 2-6 kellojaksoon kielletyt käskyt tästä vieläkin enemmän
rutiini olettaa että olet jo kytkenyt ylemmän Romin pois päältä
ja asettaa keskeytykset suoraan Hard puolelle eli FFFE ja FFFF
Soft osotteet 0318 ja 0319 NMI keskeytyksille
soiton ajotuksen kannalta kellojaksot mitä käytät ennen STA $D418
käskyä ovat merkityksellisiä kuten huomaat molemmissa ajastus on 20 kellosykliä
voit alemmasta rutiinista poistaa "ylimääräiset" NOP lauseet mutta se vaikuttaa hieman
äänen laatuun tosin keskeytys vie vähemmän kello jaksoja ja pystyt ajamaan sitä
ylemmillä kierroksilla ilman että kone kaatuu...
äänen korkeuttahan säädellään LO $dd04 ja HI $dd05 arvoilla
jos HI on 0 ja Lo menee alle $35 alkaa C64 kaatuminen lähestymään
eikä prossa ehdi juuri muuta tekemäänkään kuin ajamaan pelkkää NMI keskeytys looppia
ORA lauseet ovat jos käytät SID puolta ja käytää myös Filttereitä

         *= $1000

NMIS     LDA #<NMI
         LDX #>NMI
         STA $FFFA
         STX $FFFB
         LDA #$81
         STA $DD0D
         BIT $DD0D
         RTS

; DON'T FORGET SET $DD04 AND $DD05
; $DD05=0 $DD04<35 AND C64 GONA FLIP
;****************************

  ; ************************
  ; *  BB = A REC SAVE     *
  ; *  6C = SAMPLE TEMP    *
  ; *  SAMPLE = SAM READER *
  ; ************************

                             ;CLOCK
NMI      BIT $DD0D           ;CYCLES
         STA $BB         ;3
         LDA $6C         ;3   6
         LSR A           ;2   8
         LSR A           ;2   10
         LSR A           ;2   12
         LSR A           ;2   14
SU1      ORA #0          ;2   16 *
         STA $D418       ;4   20
         INC SAMPLE+1    ;6   26
         BNE END1        ;3   29
         INC SAMPLE+2    ;6

END1     LDA #<NMI2      ;2   31
         STA $FFFA       ;4   35
         LDA $BB         ;3   38 TOTAL
         RTI             ;    * 38-2=36

KILL     LDA #0
         STA $DD0E
         LDA #8
         ORA VOL
         STA $D418
         JMP END1

NMI2
         BIT $DD0D
         STA $BB        ;3
         LDA $6C        ;3    6
         NOP            ;2    8  *
         NOP            ;2    10 *
         NOP            ;2    12 *
         AND #$0F       ;2    14
SU2      ORA #0         ;2    16 *
         STA $D418      ;4    20
SAMPLE   LDA $1000      ;4    24
         CMP #$F0       ;2    26
         BEQ KILL       ;2/3  28
         STA $6C        ;3    31

END2     LDA #<NMI      ;2    33
         STA $FFFA      ;4    37
         LDA $BB        ;3    40 TOTAL
         RTI                 ;* 40-8=32

  ;     * = CAN REMOVE
  ;     SAMPLE MUST END $F0
  ;    ---------------------
  ;******************************


#1039
softassa tuskin on vikaa eiköhän tuo ole ihan sysopin määrittelemä koko rajoitus
ja ihan tilan tarpeen vuoksi. lisä kova maksaa kuitenkin aina jotain...
#1040
onkohan tämä sivu jo esitelty täällä
no tuolta löytyy ainakin tärkeimmät opukset ihan PET malleja myöden
ja se C64 raamattu reference book

http://www.commodore.ca/manuals/default.htm
#1041
Bitin Nypläys / Vs: peli projekti Block Hole
tammikuu 31, 2012, 09:53

hieman pään vainaa aiheuttaa edelleen Blokien kokoaminen xD
selivitystä filosofiasta... asiasta on parempi puhua niin moni asia aukeaa ihan uudella tavalla
(ohjelmoijan terapiaa puhua ongelmista) xD

Blok malli


HHHHHHHH
H      H
H      H


tässä tyypillinen blokki onhan tätä jo selitetty mutta vielä kerran
blokki on 8x3 kokoinen koska blokkia vieritetään ylhäältä alas
pitää se purkaa vieritykseen päivastaisessa järjestyksessä alhaalta ylös päin
blokilla on 4 kordinaattia ensimmäiset kaksi kertovat x,y paikan itse pelikentällä
blokissa tämä piste sijaitsee vasemmassa alanurkassa seuraavat kaksi kertovat minkä kokoinen blokki on
tämän pohjalta vieritys osaa rakentaa blokin oikealle kohtaa ja oikean kokoisena
voi olla että paikka kordinaatin y joudun muuttamaan 16 bittiseksi koska muuten peli kentästä saattaa tulla
liian lyhyt xD samalla kenttään pitää lisätä yksi tavu 2 jakoisuuden vuoksi ehkä siihen saadaan blokin uniikki väri :p
aikaisemmin ehdotettiin valmiin ohjelman käyttämistä kenttien tekemisessä
olisihan se huomattavasti helpompaa tehdä valmis grafiikka pohja jota vierittää
ongelma siinä vain on se että se myös syö rutkasti muistia
esim. esimerkki kappaleemme on tuon 8x3 sen vie muistissa tilaa 24 tavua + 4-6 kordinaatti tavua =28-30
mutta pohjalla kentän leveydestä riippuen 20x3=60 tavua
oma tekniikkani ei syö tyhjiltä alueilta muistia ollenkaan mutta pohja vie jokaista riviä koden 20 tavua
255 rivinen pelikenttä vie siis 255*20=5100 eli melkein 5kiloa muistia mikä tarkoittaisi 60k käytöllä 12 kenttää
ohjelmalle, musiikille ja grafiikalle jäisi siis alle 4 kiloa ja siitäkin osa olisi nolla sivua jotai ei voi käyttää kovin vapaasti
yritän säästää muistia ja kello jaksoja koska ne tulevat tarpeeseen
ohjelmastahan tulee yksi osainen ja samplet varsinkin 8bit samplet vievät tuhottomasti muistia
tausta animaatio mitä olen ajattelut vie kello jaksoja paljon...

toinen hankala tekiä on itse ammus koska vieritys liikkuu koko ajan ja näyttö on tubla bufferoitu
ammuksen siirtäminen tässä ympäristössä vastavirtaan on kohtuu haasteellista en erityisemmin pidä Spriteistä
koska ne sotkevat kätevästi ajoituksia muistanko oikein jokainen sprite syö rasteri
kello jaksoja yhden kello jakson verran badline painajainen 8 spriteä ja badlinen argh
no olen korvannut ammuksen siis spritellä koska se helpottaa pähkäilyä tässä vaiheessa
mutta koska olen suunitellut peliin armottomat ase arsenaalit joudun ehkä vielä palaamaan tuohon vieritys ongelmaan
tulevaisuudessa jos Spriteillä osottautuu ongelmalliseksi toteuttaa mitä olen ajatellut
ruutu on kyllä nyt jaettu kahteen osaa fight ja pelaaja alueeseen molemmilla on omat 8 spriteä eli max 16kpl
tätäkin voidaan vielä lisätä huomattavasti siksi yritän pitää pelialueen keskeytyksemättömänä
ja kuten aikaisemmin sanoin prossa kuorma on minimissään kuten varmaan tuosta demosta huomasitte
sitä ei ole vielä käytetty paljon tausta animaatio tarvitsee myös runsaasti kello jaksoja

projekti jatkuu kaiken muun kokeilun ohella...
#1042
Bitin Nypläys / Vs: Soita Sid sample !
tammikuu 31, 2012, 08:57
perskules...

sain kyllä rutiinin toimimaan mutta...
jotenkin epäilen ettei se ole sitä mitä etsin
tällä hetkellä ajan samplerillä ääntä sisään ja tuuppaan sen ulos tuolla 8bit sid rutiinillani
jouduin jopa ronkkimaan aidon rutiinin vicius sid demosta
mikä on sama kuin netissä kerrottu esimerkki
ongelma vain on se etten saa kyseisellä rutiinilla pihaustakaan omasta vehkeestäni

malli esimerkki ei toimi ellen ensimmäistä lda #$11 muuta lda #$10 muotoon
ihmettelen tätä koska itse demossa äänet toimivat aivan hyvin ?!?
tosin Wanha sid 6581 filtterit eivät toimi ihan niin hyvin kuin videossa
vaan niiden soundi on paljon räkäisempi ja resonassia on reilummin o7
ajan ohjelmaa ilman keskeytyksiä ja pimennetyllä ruudulla jotta BaadLinet ei häiritse
samalla hieman mietin sitä ettei ääni kuulosta koviin hyvältä jos sample soitto taajuus
laskee jonkin verran tarkoittaa sitä että 4bit samplea voin ajaa alemmallakin taajuudella
ja se ei silti kuulu itse äänessä tämä rutiini taas vaatii ruurta näyte taajuutta ?!?
eli epäilen ettei rutiini toimi oikein oletus on että 8bit sämpleä pitäisi pystyä ajamaan
hitaammalla taajuudella sen suuremman dynaamisuuden vuoksi
olenko nyt ihan metsässä ?

tiedän että aito vicius koodi ajaa sampleä fiksatulla irq rasteri ajastuksella ja näin välttää badline häsän...

8bit_sid lda #$11 <- tämä pitää muuttaa #$10 muotoon että toimii ?!?!
sta $d412
lda #$ 09
sta $d412

lda sample,x
sta $d40f
nop
lda #$01
sta $d412


tässä avaava artikkeli asiasta
http://codebase64.org/doku.php?id=base:vicious_sid_demo_routine_explained
#1043
onnistuhan se noinkin
tommosista pet kääntäjistä oo mitään hajua xD
vielä vähemmän pääsen lerpukoneen kimppuu juuri koskaan
et ihan emuilla pitää nää hoidella nykyään ko ei tuo C64 oikeen kulje maailmalla kätevästi xD
#1044
hmm sanoisin että ohjelma coodin nappaaminen ihan .txt fileestä olikin melko haastavaa
konekielisenä se ei ole ongema eikä mikään mutta Basic koodiin kopsaaminen onkin ihan toinen juttu
kun omaa laiskan luonteen niin ei sitten millää viitsinyt alkaa tuota Data hässäkkää kirjoittelemaan

miten sen tein !?

ensinnäkin tallennus .txt file pitää olla 8bit muodossa ja jokaisen rivin loppuun lisäsin X merkin ei x

sitten kirjoitin pienen ohjelman C64 jolla avasin tuon fileen ja printtasin sen ruudulle

1000 open 2,8,2,"textifile"
2000 get#2,a$ if a$="x" then print:goto 2000
3000 print a$;:if st=0 then 2000

kun ohjelma oli tulostanut ohjelma koodin kävin painamassa ne muistiin returnia painamalla
aivan kuin ohjelma koodille on tapana tehdä
tämän jälkeen käynnistin ohjelmani uudelleen ja annoin sen tulostua vain siihen asti mikä oli ensimmäinen rivinumero
edellisessä printissä
ja tein saman tempun niille riveille jotka eivät vielä olleet muistissa ja Volaa
tämän jälkeen poistin nuo omat yli 1000 rivit ja tallensin ohjelman...

mutta itse sorsa file olisi kyllä paljon näppärämpi ottaa käyttöön xD
kiitoksia vielä


#1045
Bitin Nypläys / Vs: Soita Sid sample !
tammikuu 30, 2012, 11:10

Hahahaha...

vihdoin löysin 8bit sample malli rutiinin
tuota pitääkin alkaa urakalla tutkimaan selvästi siinä on vielä
parantamisen varaa... kertoilen sitten kun oma rutiini polpahtaa pinnalle xF
#1046
jaaha meikä on sitten päässy oikeen telkkuun.. no ainakin nettii xD
maine senkun kasvaa

mutta juu taidan lisätä omaani tuon pikku ohjelman myös
tuollainen Grafiikka osio siitä puuttuikin olishan se makee nähdä
kun sitä dataa syntyy toinen parannus oli mielessä jo tehdessä että
tuota pirinän volymiä pitäs pystyä säätämään tänks...
ehkä vielä tulee v.2.0
#1047
aina voi yrittää
toinen mahku on Freezata nauha jonkun muun koneella tai modulilla
mielen kiinnosta mikä peli kyseessä voihan olla et crack jo löytyy ?
#1048
eipä kestä ;)
#1049

nyt selvisi minullekkin mikä on se oikea tajunnan tila missä on paras mahku
edetä tuossa koodin muokkauksessa xD
ensin valvotaan yöksi yö ei saada mitään aikaiseksi
seuraavana yönä alkaa toimimaan kun ei muut ajatukse enään kulje ja häiritse xD
boosti alkoi tuossa 3am nyt tarttee mennä unille 7am xD
#1050
en sit malttanut odotella vastauksia vaan etsin kys softan esiin
ja tässä se on Turbo copy 1.0
ainoita copsu ohjelmia jotka kopsivat levyltä kassulle tai toisin päin
samalla lisäten ohjelman eteen kassulle tallentaessa turbon
toimii myös Tape = Tape ja Disk = Disk copiointiin