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

#901
C64 Midillä Korg ia vaan roplataan hieno löytö !
#902
Bitin Nypläys / Vs: peli projekti Block Hole
tammikuu 13, 2013, 16:30
Tilanne päivitys
homma on alkanut rullaamaan vauhdilla kun loppuivat nuo työ häiritsemästä koodaamista xD

Musiikki:
musiikki rutiini käännetty takaisin assemplerille sopivaksi joten sen muokkaaminen onnistuu
musiikki rutiinin puukotukset
Mono muunnos valmis
Stereo Sid uudelleen painannus työn alla vielä kesken valinta interface

Peli:
Pelin koodaus laahaa jäljessä koska se sijaitsee edelleen C64 uumenissa
tarkoitus siirtää se myös PC alaisuuteen
hi score ruutu edistyy
taustan hieno säätöä vielä tehtävänä sama rutiini pyörii kaikkien muidenkin ruutujen alla
Musiikki NMI keskeytysten alla
pääruutu tekemättä
pelikentistä yksi koe kenttä valmis pääsen testaamaan sitä itse pelissä piakkoin

Assempler:
PCn alaisuudessa pyörivä ohjelmointi ympäristö valmis koko C64 muistin täyttävään ohjelmointiin valmis
eli pääsen koodaamaan vapaasti ilman 1541 latauksia ja käännökset valmistuvat silmän räpäyksessä
tämä tulee nopeuttamaan ohjelmointia huomattavasti ja tuo lisää joustavuutta ohjelmoinnin
vapauteen enään en ole sidottu C64 ympärille ohjelmoinnin saralla xD

Grafiikka:
Latauskuva ok
peli grafiikka ok
koreilu grafiikka puuttuu
palikoiden vieritys ilman $d011 rekistereiden tarvetta toimii hyvin
Spritet vain itse alus on valmis hienoisia ongelmia lisä sprite grafiikan sijoittelun vuoksi
kirjain grafiikka vain koe kirjaimet vaativat paremmin tehdyt

Muuta:
ohjelmakoodin, grafiikan ja musiikin sijoittaminen muistiin tehokkaasti
ja koodin yhteen liittäminen sopivaksi toistensa kanssa
kenttien pakkaus ja purkamis rutiini työn alla (vaatii hieman mietintää)


#903
Bitin Nypläys / malli ruutiineita
tammikuu 06, 2013, 20:40
innostuin sitten ilta myöhään veivaamaan tälläiset Demojen perus kauraa olevan color scroll
mallin vääntämään eli kuusi ylintä riviä saavat väri vierityksen
mukana malli rutiini ja sorsa

koska merkkiväri muistia ei pysty mitenkään vierittämään siirtyvät palikat
yhden merkin kerran rasterikeskeytyksessä näin saamme illuusion vierivästä väri paletista xD


;-------------------------------
; color scroll
;-------------------------------       
.word $0801     ;oma assemplerini ei kirjoita
        ;ohjelma fileen alkuun lataus osoitetta joten
;kehvelivieköön kirjoitan se siis itse
*=$0801 ;kerromme  vielä assemplerille että ohjelma alkaa tästä

;BASIC LINE START
         .BYTE $0B,$08,$90,$06,$9E,$32
         .BYTE $30,$34,$39,$00,$A0,$00
;--------------------------
set_irq_hero
lda #0
sta $d021
sta $d020

sei ;Keskeytykset seis
bit $dc0d ;nollaamme Irq A ajastimen varmuuden vuoksi
lda #<irq_hero ;ala tavu XX!!
sta $0314
lda #>irq_hero ;ylätävu !!XX
sta $0315
lda #$7f ;keskeytykset pois päältä
sta $dc0d
lda #1 ;asetamme rasteri keskeytykset päälle
sta $d019
sta $d01a ;varsinainen rekisteri
lda #$fb ;millä rasterilla keskeytys tapahtuu
sta $d012
lda $d011 ;varmistamme vielä että keskeytys tapahtuu
and #$7f ;näytön näkyvällä osalla
sta $d011
cli ;keskeytykset päälle
rts ;valmista paluu Bacikkiin

irq_hero lda #1
sta $d019 ;nollataan keskeytys ettei jää looppiin
inc $d020 ;muutellaan borderi värejä +1
inc $d020
jsr color
dec $d020 ;palautetaan värit -1
dec $d020
bit $dc0d ;extra safe nollataan vielä A&B keskeytykset
jmp $ea31 ;normaali basic keskeytys rutiini
;-----------------------------
col =$d800                  ;leibelille näytön värimuistin alku osoite

color ldx #0                  ;x=0
colo lda col+1,x             ;lukeva osa yhden tavin edelle
sta col,x               ;tallennetaan
lda col+40+1,x          ;sama seuraavalle riville (+40)
sta col+40,x
lda col+80+1,x          ;ja niin edes päin
sta col+80,x
lda col+120+1,x
sta col+120,x
lda col+160+1,x
sta col+160,x
lda col+200+1,x
sta col+200,x
inx                     ;lisätään X rekisteriä yhdellä X=X+1
cpx #40                 ;joko se on 40 ?
bne colo         ;ei vielä uusi lenkki

a_again         ldx miss                ;missä mennään väri listassa ?
cpx #20                 ;ollaankko listasta jo ulkona ?
beq back_to_start       ;nollataan "miss" jos X = 20
lda list_color,x        ;otetaan väri X rekisterin määräämästä paikasta
sta col+39              ;asetamme sen näytön oikeaan laitaan
sta col+39+40           ;ja seuraavillekin riveille sama
sta col+39+80
sta col+39+120
sta col+39+160
sta col+39+200
inc miss                ;lisätään Miss iä yhdellä
rts ;ja pois
;-----------------------------
miss .byte 0
list_color                              ;käytettävät värit täällä
.byte 2,2,4,4,7,7,1,1,1,1,7,7,4,4,2,2,0,0,0,0
;-----------------------------
back_to_start
lda #0                  ;asetamme "miss" takaisin nollaksi
sta miss
jmp a_again             ;ja palaamme rutiiniimme
;-----------------------------

#904
Bitin Nypläys / Vs: Joulun ohjelmointi kisa
tammikuu 06, 2013, 19:10
tässä vain ydinkohta piste vertailu (mikä aiheutti itselleni eniten pään vaivaa)
totesin että koko listauksesta tulisi kerralla
melko vaikeaa nieltävää ja todella pitkä ripsu joten säästän lukijoita siltä
halukkaat saavat kyllä koko listauksen jos haluavat postia vain minulle !

Muokattu monta kertaa kehveli kun pitää vielä tässäkin vaiheessa alkaa koodia
optimoimaan xD


itse Hero lista tässä

Muistettavaa: piste laskussa käytämme siis Desimaali lukuja ei hexsoja 0-99 ei siis 0-$ff
  se ei suoraan tässä näy mutta 6502 prossassa on lippu
joka siirtää akun laskenta prosesseista osan Desimaali laskentaan
mikä voi olla todella hämäävää jos kyseinen lippu unohtuu kytkeä pois xD

;--------------------------
score .byte 1,8,0,0 pelaajan pisteet pelissä
;--------------------------
gamer .asc "!!!!!!!" pelaajan nimi
;--------------------------
tophero sijoitus
.asc "1     1" ;1 asc pelaajan nimi
.byte 2,0,0,1  pelaajan pisteet, tässä yhteydessä emme käytä
hexsa lukja vaan normaalia kymmen järjestelmää
yksi tavu pystyy esittämään numerot 0-99
maxsimi tulos on siis 99999999 kunnes
laskuri menee ylikierroksille
.asc "2     2" ;2
.byte 1,9,0,2
.asc "3     3" ;3
.byte 1,8,0,3
.asc "4     4" ;4
.byte 1,7,0,4
.asc "5     5" ;5
.byte 1,6,0,5
.asc "6     6" ;6
.byte 1,5,0,6
.asc "7     7" ;7
.byte 1,4,0,7
.asc "8     8" ;8
.byte 1,3,0,8
.asc "9     9" ;9
.byte 1,2,0,9
.asc "10   10" ;10
.byte 1,1,0,0
.asc "       " ;11 täysin ylimääräinen ihan varmuuden vuoksi
.byte 0,0,0,0

;-------------------------------
;  Seartching Heroes
;-------------------------------
looking_for
ldy #7 Y=7 koska pitää hypätä nimen yli
että pääsemme tuloksia mittaamaan
not_jet        sec asetamme C lipun
lda tophero+3,y aloitemme vertailun pohjalta 0-99
sbc score+3 verraten pelaajan tulokseen
lda tophero+2,y 100-99xx
sbc score+2 seuraava tavu
lda tophero+1,y 10000-99xxxx
sbc score+1 seuraava tavu
lda tophero,y 100000-99xxxxxx
sbc score ylin tavu

bmi hero2 jos tulos miinus ylittävä tulos löytyi
tya siirretään Y rekisteri A rekisteriin
clc nollataan C lippu ettei laskenta sekoa
adc #11 lisätään 11 eli hypätään nimen ylitse
ja seuraavan tuloksen alkuun
tay palautetaan tulos Y rekisteriin
cpy #11*10 tarkistamme Yyn arvon 11*10=110
bcc not_jet jos tulos alle tuon 110 palaamme etsimään
seuraavaa listan ehdokasta vasten
lda #0
sta 10
rts
;------------------------

Hero2     Y rekisteri kertoo  melkein suoraan paikan mistä alamme siirtämään muiden tuloksia alas päin
             
sty 10                    tallennamme Y rekisterin tuloksen myöhempää käyttöä varten
jsr make_room           tehdään uudelle sankarille tilaa listassa
jsr set_new_name        sijoitetaan uusi pelaajan nimi paikalleen
jsr new_score           ja uusi tulos perään
rts
;-------------------------------
tem1 .byte 0
;-------------------------------
make_room
tya                     Y rekisteri A rekisteriin
sec                     asetamme C rekisterin päälle miinustaessa
                                ( asiat tehdään päin vastoin kuin yhteen laskussa )
sbc #$07                vähennämme 7 koska se on nimen pituus näin pääsemme listalla
                                oikeaan kohtaan
sta tem1                tallennamme väliaikaisesti
ldy #99                 siirto on tapaperoinen eli aloitamme alhaalta ylös päin
t1 lda tophero,y           nykyisen sijainnin paikka
sta tophero+11,y        uusi sijainti 7+4=11 nimi ja tulos enemmän eli listalla
                                pykälä alas päin kuten on tarkoitus
dey                     vähennämme Y rekisteri yhdellä
cpy tem1                vertailemme alkuperäisen tallenteen kanssa olemmeko jo siirtäneet tarpeeksi
bpl t1                  ei vielä siirrämme lisää
rts                     valmista paluu takaisin
;------------------------
set_new_name                    Uuden sankarin minen lisäys oikeaan paikkan

ldy tem1                  otamme valmiiksi lasketun (-7) lukeman
lda 10                    palautamme 10 tä
sta tem1                miinustamattoman arvon väliaikaiseen talteen
ldx #0
t2 lda gamer,x             siirrämme nimen
sta tophero,y           oikealle paikalleen
inx                     X +1
iny                     Y +1
cpy tem1                tarkistamme joko on siiretty kaikki
bcc t2                  ei vielä
rts                     kaikki tehty paluu takaisin
;-------------------------------
new_score                       tuloksen siirto samoin menetelmin
ldy 10                  hmm.. jos listalla tulokset olisivat samoin päin
tya                     voitaisiin tämä siirto tehdä edellisellä rutiinilla
clc                     samalla kertaan ups....
adc #4                 
sta tem1
ldx #0
t3 lda score,x
sta tophero,y
inx
iny
cpy tem1
bcc t3
rts
;-------------------------------
#905
Bitin Nypläys / Vs: Joulun ohjelmointi kisa
tammikuu 06, 2013, 18:44
vicen mukana tulee pikku apusofta mukana millä tuo onnistuu molempiin suuntiin

enemmän asiasta
http://www.com64.net/foorumi/index.php?topic=563.0
rams mulle vihjas ohjelman olemassa olosta eli tänx !
#906
Bitin Nypläys / Vs: Joulun ohjelmointi kisa
joulukuu 29, 2012, 16:34
hirveesti ei nämä kisat porukkaa vedä ???

no lupaukset pitää pitää joten tässä viikonlopun aikana pitänee oma rustaus laittaa jakon
tosi se on jo kokenut sen verran muutoksia että on pakko näyttää siitä vain osia
miten tietyt osa alueet on tehty
palaan asiaan ko tuo sorsa on on lähettyvillä
kiitoksia osallistuneille ;)

ps. etsin monta minuuttia tätä postaustani ennen kuin huomasin että joku oli sen nostanut yläkertaan xD

#907
katselin tuon dokumentin taustoja hakker foorumilla ja jumahdin katselemaan Aplen ja PCn taistelusta kertovaa dokkaria
meni koko ilta tuossa hieman harmitti ettei juuri ketään muita mainittu kuin Aple, IBM ja Mikrosoft ym.
joenkin tuo jenkkiläinen tapa alkaa kyllä pidemän päälle hapattamaan kun koko aja puhutaan vaan rahasta
paljonko sen ja sen arvo on...

mutta ihan mielen kiintosia taustoja esim graafisen käyttiksen taustoista löytyi paljon ennen windowsia tai mac iä
Xerox olisi ollut kova sana aikanaan ;)
#908
Muut koneet / Vs: PS2 ja HD
joulukuu 11, 2012, 23:23
jep tiedossa oli tuo yhteen sopimattomuus joillakin peleillä ;)

mutta funtsin että on hyvin pätodennäköistä että juuri ne kaksi jotka valitsin olisivat
niitä jotka eivät toimii kun ensimmäiset kaksi toimivat kun kopioin ne suoraan PS2 lla

no pitää yrittää uudelleen tosin tuon koviksen raapiminen esiin jokaista päivitystä varten
ei kovasti houkuttele ;)

ehkä duunaan jonkun USB tikun oikeaan formaattiin ja vain kopioin sen sitten Databaceen
mutta ennen kaikkea on hienoa saada systeemi toimimaan niin pitkän odottamisen jälkeen
kovis ja adapteri ovat odottaneet ainakin 3 vuotta tätä hetkeä ja minä kaikkein eniten
mutta ei ollut koskaan aikaa paneutua kunnolla asiaan kuin vasta nyt.

tosin laitteen jo valmiiksi modaus sekotti pakkaa turhaan monet kerrat
nyt kun tulin otteneeksi selvää tuosta Mod chipistä homma alkoi skulaamaan kunnolla
ja fileiden kopiointi oli naurettavan helppoa ;)

#909
voihan räkä !
toivottavasti joku saa tuon aineiston haltuun ja duunaa dokkarin loppuun tai mikä parempaa jatkaa sen tekemistä :(

heh löysin Trailerin ;)

http://www.youtube.com/watch?feature=player_embedded&v=_mnMRAcKDMw#
#910
Muut koneet / Vs: PS2 ja HD
joulukuu 11, 2012, 18:50
Lemmings ja ratchet
Driver 3 ja Matrix toimii kuin junan huusi

kaikki pelini ovat aitoja mutta koska ovat käytettyjä usein naarmuisia
kovalevy tempulla toivonkin pääseväni lukuvirheistä kokonaan eroon

vielä kun joku tekisi PS1&PS2 SD CD/DVD modin niin olis täydellistä ;)
#911
Muut koneet / Vs: PS2 ja HD
joulukuu 10, 2012, 16:02
jep tietääkseni levy oli jo PS2 firmaatissa mutta Boot ym. hakemistot puuttuivat

ensin käytin jotain vanhaa ohjelmaa jolla noi ps1 imaget pystyi kaappaamaan myös
mutta nyt se kieltäytyi avaamasta mitään ulkoista laitetta mihin imaget olisi pystynyt tallentamaan :(
ainoastaa koneen sisäiset  hyvin tärkeät levyt näkyivät ei yksikään USB tikku kuten olisi pitänyt

latasin myös tuon WinHiip ohjelman mutta se ei ilmeisesti toimi koska kaksi peliä mitkä siirsin sillä levylle
eivät boottaa lainkaan vaan mustaa ruutua.
ohjelmat jotka rippasin suoraan PS2 toimivat kuin unelma ja lataus ajat ovat aivan kosmiset (nopeat) verrattuna entiseen
( lisäosa missä verkko ja IDE liitännät wanha malli )

lueskelin myös tuosta verkonkautta onnistuvasta systeemistä mutta siinä siirto ajat ovat tuplat siihen mihin PS2 pystyy
eli sairaan hitaat eniten ärsyttää ettei kaikki pelit enään toimi omassa pleikassa jokainen peli vaatisi hieman eri säädöt
aivan kuin C64 kasettiaseman kanssa toiset alkavat toimia mutta taas toiset lakkaavat toimimasta

samaa luin myös ettei PS1 pelit tomisi kuitenkin joissain foorumi keskusteluissa vihjailtiin että toimisi :( mitä tässä nyt
sitten uskoisi
suurin syy ymmärtääkseni oli kovalevyn IO piiristöä käytetään jothonkin eri tarkoitukseen PS1 tilassa ja siksi se ei toimi
kovikselta oliko jopa niin että PS1 emua ajettiin tuolla piirillä ?!?
#912
Muut koneet / PS2 ja HD
joulukuu 09, 2012, 23:26
jiihuu ! sain vihdoin Ps2 puuttaamaan kovikselta mikä on ollut satunnainen projekti jo muutaman vuoden
ja nyt se toimii

mutta olin valmiiksi asentanut jo kaikki pelini kyseiselle Hd levylle
mutta HDloader ilmoitti heti kättelyssä että levy pitää alustaa :(
eli peli pyyhkiytyvät pois nyt kysyisinkin mitäs kikkoja on saada ne takaisin ?
oliko tämä alustus vain siksi että siihen saatiin oikean lainen hakemisto rakenne

eli kopioinko vain levyt uudelleen kys levylle ?
PS2 kautta noiden pelien takaisin laitto on melko hidasta puuhaa 15-60min
ja lukuvirheeseen kaatu melko moni yritys
eikä tykkää kopsata PS1 pelejä ollenkaan :(
vähän nyt vinkkiä tarvitsisi

ps. koneessa Matrix infinity 1.99 mod piiri joka aiheutti melkoisen määrän ongelmia tässä projektissa
      kun en tietänyt että tässä sellaista on
#913
Bitin Nypläys / Vs: Joulun ohjelmointi kisa
joulukuu 06, 2012, 21:27
no niin ja tässä sama txt muodossa ;)

   10 rem joulukilpailu by nimimerkki
   20 gosub 1000 :rem alustukset
   30 gosub 2000 :rem tulostus
   40 u=0 :rem uudet pisteet
   50 input "pisteesi (0=lopetus)"; u
   60 if u=0 then print "kiitos, hei..." : end
   70 if u>99999999 then goto 40
   80 gosub 3000 :rem tark. sijoitus
   90 gosub 4000 :rem listan paivitys
  100 gosub 2000 :rem tulostus
  110 if s<=9 then print u; "pistetta antaa sijan"; s+1 : print "kirjoita nimesi!"
  120 if s<=9 then gosub 5000 :rem nimen kirjoitus
  130 if s>9 then print u; "pisteella ei paase listoille!"
  140 goto 40
  999 end
1000 rem taulukoiden luonti ja alustus
1010 dim n$(9) :rem nimet
1020 dim p(9) :rem pisteet
1030 for i = 0 to 9
1040 n$(i) = chr$(65+i)
1050 p(i) = int(1024 / (i+1))
1060 next i
1070 return
2000 rem tulostus
2005 print "{clr}" :rem clear screen
2010 print "sija", "pisteet", "nimi" : print
2020 for i=0 to 9
2030 print i+1, p(i), n$(i)
2040 next i
2045 print
2050 print
2060 return
3000 rem tarkistetaan sijoitus
3010 s=10 :rem sijoitus
3020 for i=0 to 9
3030 if u > p(i) then s=i
3040 if u > p(i) then return
3050 next i
3060 return
4000 rem listan paivitys
4005 if s > 9 then return
4010 if s > 9 then return
4020 for i=8 to s step -1
4030 p(i+1) = p(i)
4040 n$(i+1) = n$(i)
4050 next i
4060 p(s) = u
4070 n$(s) = ""
4080 return
5000 rem nimen kirjoitus
5010 print "{home}" :rem home
5020 for i=0 to (s+1)
5030 print "{down}"; :rem kursori alas
5040 next i
5050 print, : print,
5060 print ".......";
5070 print "{left}{left}{left}{left}{left}{left}{left}"; :rem kursori vas.
5080 for i=0 to 6
5090 get u$ : if u$="" goto 5090
5100 if u$ = chr$(13) goto 5140
5110 print u$;
5120 n$(s) = n$(s)+u$
5130 next i
5140 gosub 2000 :rem tulostus
5150 return

#914
Bitin Nypläys / Vs: Joulun ohjelmointi kisa
joulukuu 06, 2012, 10:40
Varmasti d64 formaatti olisi kätevin kunhan sen zip pakka ensin
Itse listaukset voin itse lisäillä jos taidot eivät siihen riitä
Ps. Miksi ihmeessä käytät windows versiota?
Linukalle on ihanoma versio.
#915
tekispä joku Chameleon coren tuolle ;) sit ei puuttuisi kuin kuoret...