MUCSU

Szukasz drobnej pomocy przy kodowaniu, albo chcesz przedstawić światu swoją gotową lub w trakcie realizacji produkcję? To właściwy dział.
Wiadomość
Autor
Awatar użytkownika
Digger
Posty: 147
Rejestracja: 18 lut 2011, 19:06
Grupa: Agony
Kontakt:

#1 Post autor: Digger »

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

Awatar użytkownika
carrion
Posty: 2329
Rejestracja: 27 lut 2009, 17:38
Kontakt:

#2 Post autor: carrion »

@dggr
zajebiście! :D
c64portal.pl, retronavigator.com

Awatar użytkownika
isildur
Posty: 276
Rejestracja: 26 paź 2011, 15:04
Grupa: Samar

#3 Post autor: isildur »

carrion pisze:@dggr
zajebiście! :D
Dokładnie, zajebiście. Niestety nie ma do tego trybu edytora i jest się zdanym na łaskę konwertera. Mimo, że dziecko było perfekcyjnie narysowane, to po konwersji zawsze jakieś shity się pojawiały (na rękach zwłaszcza). Niekończące się poprawki poprawek.

bimber
Posty: 813
Rejestracja: 16 wrz 2008, 10:16
Grupa: arise

#4 Post autor: bimber »

isildur pisze:Niestety nie ma do tego trybu edytora
wciąż mam cichą nadzieję, że ktoś kiedyś...

Awatar użytkownika
Digger
Posty: 147
Rejestracja: 18 lut 2011, 19:06
Grupa: Agony
Kontakt:

#5 Post autor: Digger »

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

Awatar użytkownika
skull
Posty: 760
Rejestracja: 15 wrz 2008, 08:18
Grupa: samar

#6 Post autor: skull »

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.
Bo pecet to zwykły banan...

Awatar użytkownika
isildur
Posty: 276
Rejestracja: 26 paź 2011, 15:04
Grupa: Samar

#7 Post autor: isildur »

Digger pisze:Moge napisac taki modul do http://c64.blog2t.net/slixed/ tylko wyjasnijcie zasady/limity.
No świetnie, że w końcu coś się rusza w toolsach do grafy na c64!
Digger, jakie są szanse na Twój Slixed w wersji stacjonarnej (nie online)?

brush
Posty: 254
Rejestracja: 20 kwie 2009, 10:32
Grupa: Elysium

#8 Post autor: brush »

@Digger: Dałoby się to do AIR'a przerzucić?

Awatar użytkownika
kmeg
Posty: 468
Rejestracja: 08 wrz 2009, 15:33
Grupa: Albion Crew

#9 Post autor: kmeg »

isildur pisze: Digger, jakie są szanse na Twój Slixed w wersji stacjonarnej (nie online)?
Nie moje technologie ale:
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...

Awatar użytkownika
nes
Posty: 509
Rejestracja: 21 maja 2010, 22:03
Grupa: Impact

#10 Post autor: nes »

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 ;) :P 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/

Awatar użytkownika
nes
Posty: 509
Rejestracja: 21 maja 2010, 22:03
Grupa: Impact

#11 Post autor: nes »

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.
"A ile zrobisz pompek ?" (c) 2o11 eLban
http://apt.hopto.org/nes/impact/

Awatar użytkownika
isildur
Posty: 276
Rejestracja: 26 paź 2011, 15:04
Grupa: Samar

#12 Post autor: isildur »

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.
Sure :) w zipie masz PRG i RAW z konwertera.
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
child.gif (8.33 KiB) Przejrzano 15903 razy
child.zip
(21.8 KiB) Pobrany 570 razy

k.

#13 Post autor: k. »

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.

Awatar użytkownika
nes
Posty: 509
Rejestracja: 21 maja 2010, 22:03
Grupa: Impact

#14 Post autor: nes »

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/

Awatar użytkownika
isildur
Posty: 276
Rejestracja: 26 paź 2011, 15:04
Grupa: Samar

#15 Post autor: isildur »

Niestety nie mam takiej wiedzy, Skull da Ci rozpiske bez problemu, napisz do niego.

Awatar użytkownika
nes
Posty: 509
Rejestracja: 21 maja 2010, 22:03
Grupa: Impact

#16 Post autor: nes »

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
"A ile zrobisz pompek ?" (c) 2o11 eLban
http://apt.hopto.org/nes/impact/

Awatar użytkownika
skull
Posty: 760
Rejestracja: 15 wrz 2008, 08:18
Grupa: samar

#17 Post autor: skull »

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...

Awatar użytkownika
nes
Posty: 509
Rejestracja: 21 maja 2010, 22:03
Grupa: Impact

#18 Post autor: nes »

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..
"A ile zrobisz pompek ?" (c) 2o11 eLban
http://apt.hopto.org/nes/impact/

Awatar użytkownika
nes
Posty: 509
Rejestracja: 21 maja 2010, 22:03
Grupa: Impact

#19 Post autor: nes »

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..

Obrazek

orginał:

Obrazek

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 :P
"A ile zrobisz pompek ?" (c) 2o11 eLban
http://apt.hopto.org/nes/impact/

Awatar użytkownika
nes
Posty: 509
Rejestracja: 21 maja 2010, 22:03
Grupa: Impact

#20 Post autor: nes »

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ą :oops:
"A ile zrobisz pompek ?" (c) 2o11 eLban
http://apt.hopto.org/nes/impact/

ODPOWIEDZ