MUCSU
jak dziala to MUCSU? tak w jednej linijce.
4 x C64 Breadbox '83, C64C, C16 '84
DualSID, 1541 Ultimate, C64SD
http://www.flickr.com/photos/digger-c64
http://play.blog2t.net
DualSID, 1541 Ultimate, C64SD
http://www.flickr.com/photos/digger-c64
http://play.blog2t.net
Moge napisac taki modul do http://c64.blog2t.net/slixed/ tylko wyjasnijcie zasady/limity.
4 x C64 Breadbox '83, C64C, C16 '84
DualSID, 1541 Ultimate, C64SD
http://www.flickr.com/photos/digger-c64
http://play.blog2t.net
DualSID, 1541 Ultimate, C64SD
http://www.flickr.com/photos/digger-c64
http://play.blog2t.net
Niezłe!
MUCSU (czy tam MUSCU), to warstwa ze sprites poszerzonych w x i w multicolorze, na całym ekranie, na niej standardowy tryb hires.
Czyli jest to warstwa w poziomie: 7 kolumn sprites (wg hiresowego pixla to 7*48 = 336, czyli nawet więcej niż ma ekran) i w pionie 10 rzędów
Daje to 70 kształtów + bitmapa w hiresie.
W podstawowej wersji tego trybu(jednak najbardziej funkconalnej), kolory sprites w trakcie wyświetlania nie ulegają zmianie - czyli są przyporządkowane przy inicjacji, wtedy na każdą kolumne przypada jeden kolor wspólny(d027..), i na całości 2 multi (d025,d026). Reszta jak w hiresie.
No i trzeba pamiętać że piksel w trybie extendedX + multicolor ma 4 px w stosunku do hiresu.
Chodzi o dobór odpowiedniej kombinacji, na pewno nie jest to łatwe, ale
przyda się nawet edytor do samej korekty po konwersji.
Moge dać źródłowkę jak to się wyślwietla.
MUCSU (czy tam MUSCU), to warstwa ze sprites poszerzonych w x i w multicolorze, na całym ekranie, na niej standardowy tryb hires.
Czyli jest to warstwa w poziomie: 7 kolumn sprites (wg hiresowego pixla to 7*48 = 336, czyli nawet więcej niż ma ekran) i w pionie 10 rzędów
Daje to 70 kształtów + bitmapa w hiresie.
W podstawowej wersji tego trybu(jednak najbardziej funkconalnej), kolory sprites w trakcie wyświetlania nie ulegają zmianie - czyli są przyporządkowane przy inicjacji, wtedy na każdą kolumne przypada jeden kolor wspólny(d027..), i na całości 2 multi (d025,d026). Reszta jak w hiresie.
No i trzeba pamiętać że piksel w trybie extendedX + multicolor ma 4 px w stosunku do hiresu.
Chodzi o dobór odpowiedniej kombinacji, na pewno nie jest to łatwe, ale
przyda się nawet edytor do samej korekty po konwersji.
Moge dać źródłowkę jak to się wyślwietla.
Bo pecet to zwykły banan...
No świetnie, że w końcu coś się rusza w toolsach do grafy na c64!Digger pisze:Moge napisac taki modul do http://c64.blog2t.net/slixed/ tylko wyjasnijcie zasady/limity.
Digger, jakie są szanse na Twój Slixed w wersji stacjonarnej (nie online)?
Nie moje technologie ale:isildur pisze: Digger, jakie są szanse na Twój Slixed w wersji stacjonarnej (nie online)?
1. Pobrać: http://www.adobe.com/support/flashplayer/downloads.html (flash player projector)
2. Pobrać: http://c64.blog2t.net/slixed/editor.swf
Uruchomić 1 i wczytać 2...
Ale AIR będzie zdecydowanie lepszy jak się da...
ten tryb bym mógł dość łatwo dodać do edytora w IMOS, który w tej chwili edytuje dowolnie położone na ekranie sprajty (czyli w sumie musiał bym tylko dodać x-extend + edycję hires), ale tak dawno temu IMOS pisałem, że już zapomniałem jak się programuje Zresztą tam chyba nawet się dało wczytać obrazek jako tło przy edycji sprajtów, więc prawie wszystko gotowe.. (da się wczytać np. obrazek w multi i edytować nałożoną na niego dowolnie skomponowaną matrycę ze sprajtów)
"A ile zrobisz pompek ?" (c) 2o11 eLban
http://apt.hopto.org/nes/impact/
http://apt.hopto.org/nes/impact/
jakaś sciema jest z tą modyfikacją postów - 2 godziny po napisaniu nie da się zmienić, mimo że nikt nie odpowiedział, a chcę tylko dodać dodatkowe info.
przechodząc do sedna sprawy: czy ktoś mógłby zamieścić niespakowany plik z obrazkiem w tym trybie ze sprajtami + rozpiskę co gdzie mniej więcej w nim jest i czy te sprajty są wyświetlane z jednakowym Y w linii czy każdy przesunięty w dół o ileś pixeli ? obejrzę i może napiszę edytor.
przechodząc do sedna sprawy: czy ktoś mógłby zamieścić niespakowany plik z obrazkiem w tym trybie ze sprajtami + rozpiskę co gdzie mniej więcej w nim jest i czy te sprajty są wyświetlane z jednakowym Y w linii czy każdy przesunięty w dół o ileś pixeli ? obejrzę i może napiszę edytor.
"A ile zrobisz pompek ?" (c) 2o11 eLban
http://apt.hopto.org/nes/impact/
http://apt.hopto.org/nes/impact/
Sure w zipie masz PRG i RAW z konwertera.nes pisze: przechodząc do sedna sprawy: czy ktoś mógłby zamieścić niespakowany plik z obrazkiem w tym trybie ze sprajtami + rozpiskę co gdzie mniej więcej w nim jest i czy te sprajty są wyświetlane z jednakowym Y w linii czy każdy przesunięty w dół o ileś pixeli ? obejrzę i może napiszę edytor.
Dziecko tak powinno wyglądać, ale konwerter skaszanił to i owo.
Zwróćcie uwagę, że w pierwszej fazie Skull wykorzystał dziecko z częścią multi, a następnie przepisał fragment na Hires! Oczywiście w tym trybie Mucsu/Nufli mieści się jeden obrazek w pamięci, nie licząc muzyki i kodu!
To jest koderski kunszt, ale takie rzeczy nie są oczywiście zauważane...
- Załączniki
-
- child.gif (8.33 KiB) Przejrzano 15903 razy
-
- child.zip
- (21.8 KiB) Pobrany 570 razy
tak czy siak miałem odpowiedzieć wegiemu po zlookaniu:
Więc demo właśnie oberzałem, muza jakbym miał rozstrzelać to już ujdzie. Podrasowana trzyma się treści i to chyba zasługa Randala.
Efekty koderskie: faktycznie że na emulcu efekty c128 są wolne, da się to obejrzeć nie róbcie tego więcej ...
Pan patrzący na wektorki.... o kurde to jest najbardziej zajebisty part do porównania dla mających dopalacze... Wegi dałeś czadu
Reasumując, paru dobrych koderów, muzyk z jajami i się trzymacie w TOP 10.
Więc demo właśnie oberzałem, muza jakbym miał rozstrzelać to już ujdzie. Podrasowana trzyma się treści i to chyba zasługa Randala.
Efekty koderskie: faktycznie że na emulcu efekty c128 są wolne, da się to obejrzeć nie róbcie tego więcej ...
Pan patrzący na wektorki.... o kurde to jest najbardziej zajebisty part do porównania dla mających dopalacze... Wegi dałeś czadu
Reasumując, paru dobrych koderów, muzyk z jajami i się trzymacie w TOP 10.
isildur - a rozpiskę gdzie co jest w pamięci bym mógł poprosić ? na C64 odpalił bym sobie .prg, dał freeze w Action'ie i sprawdził w procedurze wyświetającej, a na PC przerzucać .prg do .d64 żeby zamountować po wczytaniu Actiona a potem zgadywać gdzie jest freeze..
"A ile zrobisz pompek ?" (c) 2o11 eLban
http://apt.hopto.org/nes/impact/
http://apt.hopto.org/nes/impact/
rozkminiłem trochę wyświetlarkę (leniwy jestem, nie chciało mi się emaila do skull'a pisać ):
obrazek jest od $4000
$4000 - $43f8 - kolory hires1
$4400 - $47f8 - kolory hires1
- wygląda na to, że ekrany są przełączane przemiennie co linię
$4800 - $5C00 - sprajty
$5C00 - ??? - zmienne kolory dla $D025 (co ile one są zmieniane, co linię ?)
$5D00 - ??? - zmienne kolory dla $D026 (co ile one są zmieniane, co linię ?)
$5E00 - $5E06 - kolory dla $D027-D02D
$6000 - $7F40 - bitmapa
Sprajty są ustawione równo w poziomie, bez przesunięć Y
obrazek jest od $4000
$4000 - $43f8 - kolory hires1
$4400 - $47f8 - kolory hires1
- wygląda na to, że ekrany są przełączane przemiennie co linię
$4800 - $5C00 - sprajty
$5C00 - ??? - zmienne kolory dla $D025 (co ile one są zmieniane, co linię ?)
$5D00 - ??? - zmienne kolory dla $D026 (co ile one są zmieniane, co linię ?)
$5E00 - $5E06 - kolory dla $D027-D02D
$6000 - $7F40 - bitmapa
Sprajty są ustawione równo w poziomie, bez przesunięć Y
"A ile zrobisz pompek ?" (c) 2o11 eLban
http://apt.hopto.org/nes/impact/
http://apt.hopto.org/nes/impact/
Kod: Zaznacz cały
IRQ_ENTER:
pha
txa
pha
tya
pha
sec
base: lda #$32
sbc $dc04
sta *+4
bpl *
lda #$a9
lda #$a9
lda #$a9
lda $ea
//--------------------------------------------------
//Stable
.var IrqCounter = *+1
ldx #$09
cpx #4 //badline row
bne !+
jsr _rts //12 cycles waste
jsr _rts
cmp ($00,x)
cmp $00
!: lda #$10
eor $d018
sta $d018 //shift sprite shapes (and colormap)
lda #0
sta $d030
.const d = 7 //difference between line with sprites
ldy #$32-d
dex
bpl !+
//jsr music_play
ldy #$32 //line without sprites
ldx #9
!: stx IrqCounter
sty base+1
lda D012_tab,x
sta $d012
ldy spointers_tab,x
tya
and #8
bne !+
.for(var i=0;i<7;i++) {
sty p_ColorMap+$03f8+i
iny
}
bne !next+
!:
.for(var i=0;i<7;i++) {
sty p_ColorMap2+$03f8+i
iny
}
!next:
lda Row_Y_tab,x
.for(var i=0;i<7;i++)
sta $d001+i*2
IRQ_EXIT: inc $d019
pla
tay
pla
tax
pla
_RTI: rti
//--------------------------------------------------
D012_tab:
.by $31+9*21, $31+8*21, $31+7*21, $31+6*21
.by $30+5*21, $31+4*21, $31+3*21
.by $30+2*21, $31+1*21, $31
Row_Y_tab:
.fill 10,[9-i]*21+$32
spointers_tab:
.fill 10,[9-i]*8+$20
co do części z dzieckiem: zmiana obrazów nie ma żadnych kombinacji - w pamięci są dwa obrazy mucsu, które są wymieniane (można nawet zmienić to dziecko na Carriona "Train"), warstwa sprites jest na całym ekranie - po prostu nie wszędzie "wykorzystana".
@nes to co analizujesz to jest już druga wersja MUCSU- ze zmianą d025 i d026, co linię - oczywiście w tym wypadku to już marny tryb, bo proca zajmuje tyle co NUFLI (i w tym wypadku NUFLI ma większe możliwości,tyle że pamięci zajmuje mniej.
Tu kolory ustalasz raz przy inicjacji, a potem tylko przerwanie przy zmianie kształtów dla sprites i przesunięcie w dół: czyli 10 razy w trakcie wyświetlania ekranu.
Bo pecet to zwykły banan...
skull - ok, ale jak piszę edytor to w sumie mogę napisać na ten z przeplotem i zrobić opcję wyłączania przeplotu..
czyli w tym co jest zamieszczony obrazek, to nie ma ani zmiany ekranów, ani zmiany $d025/$d026 co linię ? (w wyświetlarce w pliku .prg jest..)
ps. ja to na PC piszę.. żeby nie było wątpliwości..
czyli w tym co jest zamieszczony obrazek, to nie ma ani zmiany ekranów, ani zmiany $d025/$d026 co linię ? (w wyświetlarce w pliku .prg jest..)
ps. ja to na PC piszę.. żeby nie było wątpliwości..
"A ile zrobisz pompek ?" (c) 2o11 eLban
http://apt.hopto.org/nes/impact/
http://apt.hopto.org/nes/impact/
ok.. po całym dniu dupc..nia sie z pecetowym pojęciem programowania, i czytaniem na forach, że dopóki do zmiennej nie dopisze się +"" to będzie integerem a nie char'em, i tym podobnych fantastycznych zagadnieniach, udało mi się w końcu wyświetlić coś co przypomina obrazek.
Ale tylko przypomina. Stąd pytanie - czy na pewno dobrze rozumiem, że to jest hires w którym znak 8x8 pixeli może mieć 1 kolor + wspólne tło, czy to jest hires z osobnym kolorem tła dla każdego znaku..?
jeśli to drugie, to nie wiedziałem, że da się pod spód sprajty podłożyć
a jeśli nie, to muszę trochę odpocząć, i się zastanowić dlaczego to nadal nie wygląda tak jak powinno..
orginał:
pozdro. uff.
ps. tak piszecie o zajmowaniu pamięci, a że co 8my sprajt jest pusty w tym trybie to już taki drobny szczegół.. też pół godziny dochodzenia miałem dlaczego są rozjechane
Ale tylko przypomina. Stąd pytanie - czy na pewno dobrze rozumiem, że to jest hires w którym znak 8x8 pixeli może mieć 1 kolor + wspólne tło, czy to jest hires z osobnym kolorem tła dla każdego znaku..?
jeśli to drugie, to nie wiedziałem, że da się pod spód sprajty podłożyć
a jeśli nie, to muszę trochę odpocząć, i się zastanowić dlaczego to nadal nie wygląda tak jak powinno..
orginał:
pozdro. uff.
ps. tak piszecie o zajmowaniu pamięci, a że co 8my sprajt jest pusty w tym trybie to już taki drobny szczegół.. też pół godziny dochodzenia miałem dlaczego są rozjechane
"A ile zrobisz pompek ?" (c) 2o11 eLban
http://apt.hopto.org/nes/impact/
http://apt.hopto.org/nes/impact/
ok, rozkminiłem..
muszę przyznać, że do tej pory nie wiedziałem, że w hires da się ustawić sprajty tak że mają priorytet nad kolorem tła znaku, a pod bitmapą
muszę przyznać, że do tej pory nie wiedziałem, że w hires da się ustawić sprajty tak że mają priorytet nad kolorem tła znaku, a pod bitmapą
"A ile zrobisz pompek ?" (c) 2o11 eLban
http://apt.hopto.org/nes/impact/
http://apt.hopto.org/nes/impact/