Oznámení
Sbalit
Aktuálně žádná oznámení.
Assembler - všeobecná logika
Sbalit
X
-
Mám pocit, že se to běžně dělá tak, že máš buffer v chip ram a ten naplniš a hraješ z něj z fastky ho naplňuješ to ti může ušetřit čas nemusíš dělat čtení tak často/zápis.
- Poděkování 1
-
Jasné, ale to práve chcem, audio/sample uložené vo fastmem kvôli veľkosti (viac ako 8mb). CPU ich rovno podáva do audio registrov cez CIA časovač aby bol tok konštantný, chipmem sa celkom obchádza.
- Poděkování 1
Vložit komentář:
-
No ale to je chyba... data jako zvuk nebo grafika pokud to jedeš přes chipset, musíš nasypat do chipram. Jinak tam máš navíc to kopírování. Tak je to namyšlené z hlediska HW.
Vložit komentář:
-
No za mě to nedává smysl.. používat WAV. 8SVX jako zdroj dat bohatě stačí, převedení do RAW formátu a šup s tím na zvukového čipu.
Vložit komentář:
-
Myslím že na 7mHz je už spomalenie citeľné, ale stále som to netestoval na realHW. Audio je 11kHz takže ten datový tok je slušný.
Vložit komentář:
-
Autorem citovaného textu je ObiWanKen Přejít na původní příspěvekVo verzii s WAV je hudba len vo fastke a "ručne" posielané do audio HW.
Vložit komentář:
-
Ešte ukážka ako si pripravujem gfx objekty v DPaint pre blitter. Nahrám obrázok, dám zobraziť koordináty aby som videl rozmer. Pre blitter musí byť šírka násobok 16 (blitter pracuje vo Word) inak môže byť násobok 8. Uložím ako "štetec", importnem do ASM hotovo. Pokiaľ treba masku tak použijem spomínaný IFF-Master alebo vlastnú rutinu.
Naposledy upravil ObiWanKen; 02.08.2025, 21:07:55.
- Poděkování 2
Vložit komentář:
-
Autorem citovaného textu je ObiWanKen Přejít na původní příspěvekAko si ty pripravuješ obrázky ? Používaš ich uložené nekomprimované ? Alebo ich konvertuješ do RAW a potom "INCBIN-tneš" do kódu ?
- Poděkování 1
Vložit komentář:
-
V podstate INCBIN a INCIFF sú takmer zhodné, oboje ti pridajú data do tvojho kódu. Ibaže INCIFF ti obrázok dekomprimuje do použiteľnej formy a môžeš si ešte vybrať ako budú uložené.
A áno vloženie grafiky do kódu je OK. A nielen grafiky ale aj iné, mody, sprajty, znaková sada atď. Keď robíš drobné veci tak riešíť ešte alokáciu pamäte a HDD loader pre rôzne data je asi aj zbytočné. Aj keď na druhej strane je to také profi
Ako si ty pripravuješ obrázky ? Používaš ich uložené nekomprimované ? Alebo ich konvertuješ do RAW a potom "INCBIN-tneš" do kódu ?
- Poděkování 1
Vložit komentář:
-
Ja si to asi povkladam primo do kodu jak jsem psal ty bitplany. AI se tvari, ze pristup k datum pomoci INCBIN nebo vlozenim do kodu je flexibilnejsi / lepsi nez pomoci INCIFF, ale asi to nebude pravda? Já dneska prubnul instrukci MOVE.W #$00F, 2(DFFxxx) tak nic no
Jenze ja jsem asm slabsi jedinec, tak se nekomu kdo je zbehlesi zda normalni neco co mne se normalni nezda. Na rozsah grafickych dat se kterymi hodlam pracovat je povytahovani grafiky do kodu si myslim ok, jine by to bol u komplexnejsich grafickych obrazku.
Vložit komentář:
-
Lisiak Ak by si mal záujem o RLE depacker. Nie je to môj výtvor a ani ho nemám otestovaný. Možno stojí za otestovanie.
Code:; ; ILBM to RAW. ; ; IN: ; D0 - Size. ; A0 - Source. ; A1 - destination. ; ; OUT: N/A ; ILBMtoRAWdemo lea SourcePic,a0 lea DestPic,a1 move.l #1424,d0 bsr RLEDecrunch rts RLEDecrunch moveq #$00,d2 move.b (a0)+,d2 bmi Pixels CopyPixs move.b (a0)+,(a1)+ subq.l #$01,d0 dble d2,CopyPixs bra NoPixel Pixels neg.b d2 move.b (a0)+,d1 CopyRepeat move.b d1,(a1)+ subq.l #$01,d0 dble d2,CopyRepeat NoPixel tst.l d0 bgt RLEDecrunch rts ILBMColorsLoop moveq #$00,d0 move.b (a0)+,d0 lsl.w #$04,d0 move.b (a0)+,d0 and.b d6,d0 move.b (a0)+,d1 lsr.b #$04,d1 or.w d1,d0 move.w d0,(a1) add.w #$04,a1 dbra d7,ILBMColorsLoop rts SourcePic incbin 'dh1:work/pictures/BoingBall.iff' DestPic blk.b 8192,00
Vložit komentář:
-
Len pre ukážku jednoduchosť použitia.
Code:; Show screen. include 'Work:MyProjects/Assembler/Includes/Custom.i' include 'Work:MyProjects/Assembler/Includes/Offsets.i' Begin Section MainCode,Code_F ; Code to Fast memory ; Set VRam pointer move.l #MyVRam,d0 move.w d0,MyCopperPlanes+6 swap d0 move.w d0,MyCopperPlanes+2 ; Clear sprites DMA move.w #$0020,$dff096 ; DmaCon / No Sprites ; Start MyCopper list lea MyCopperStart,a1 move.l a1,$dff080 ; Cop1LcH move.w #$0000,$dff088 ; CopJmp1 ; Wait LMB WaitLMB ; Restore system copper list. move.l $04,a6 ; Exec base move.l $9c(a6),a1 move.l $26(a1),$dff080 ; Cop1LcH Exit rts ; ; My Copper list. ; Section MyCopper,Data_C ; Copper list to Chip memory MyCopperStart dc.w $01fc,$0000 ; FMode dc.w $0100,$1000!$8000 ; BplCon 0 / 1 Bitplane / HiRes dc.w $0102,$0000 ; BplCon 1 dc.w $0104,$0000 ; BplCon 2 dc.w $0106,$0000 ; BplCon 3 dc.w $010c,$0011 ; BplCon 4 dc.w $0108,$0000 ; Bpl1Mod dc.w $010a,$0000 ; Bpl2Mod dc.w $0092,$003c ; DDF Start HiRes dc.w $0094,$00d4 ; DDF Stop HiRes dc.w $008e,$2861 ; DIW Start dc.w $0090,$28c1 ; DIW Stop ; Planes MyCopperPlanes dc.w $00e0,$0000 ; Bpl1PtH dc.w $00e2,$0000 ; Bpl1PtL ; Sprites MyCopperSprites dc.w $0120,$0000 ; Spr0PtH dc.w $0122,$0000 ; Spr0PtL ; Colors MyCopperColors dc.w $0180,$0000 ; Color 00 / Black dc.w $0182,$00f0 ; Color 01 / Green ; Copper end dc.l -2 ; End MyCopperEnd ; ; MyVRam inciff "Work:MyProjects/Pictures/Pic_01.iff",RN,N,ECS MyVRamEnd PrintT 'VRam Size : ' PrintV MyVRamEnd-MyVRam
Vložit komentář:
-
Autorem citovaného textu je Lisiak Přejít na původní příspěvek
Diky za tip,
tohle bude urcite fajn na nejake vetsi obrazky, ale v ramci mensich jednoduchych obrazku zustanu u toho, ze si vykopiruji data bitplanu z obrazku IFF primo do kodu a barvy urcim v kodu taky. Melo by to si myslim mit i imensi rezii na CPU vuci INCIFF ?
Ty v te sve hre nacitas i data k postavam pomoci INCIFF ?
Je to vhodné na všetky obrázky. Tieto data sa jednoducho naimportujú pri kompilácii a CPU už ďalšie zaťaženie nemá.
Niektoré gfx data som robil po starom (IFF Master) ale toto je pre mňa super.Naposledy upravil ObiWanKen; 01.08.2025, 16:14:53.
Vložit komentář:
-
Autorem citovaného textu je Defor Přejít na původní příspěvekTo jsou mi vymoženostiPředpokládám, že to INCIFF dělá načítání, dekompresování (ILBM používá RLE kompresi) a případně de-interleaving při kompilaci assembleru. Takže to jen zpomaluje assembler. :
Vložit komentář:
Vložit komentář: