Oznámení

Sbalit
Aktuálně žádná oznámení.

Assembler - všeobecná logika

Sbalit
X
 
  • Filtr
  • Čas
  • Zobrazit
Vymazat vše
new posts

    Mod player by sa iste dal upraviť ale v podstate mod je zbytočný keď je možné takto prehrávať wav o veľkosti aj niekoľko desiatok megabajtov, limit je len veľkosť fastmem.
    Skúsil som pridať prehrávanie audia do jedného môjho 4P pokusu kde viem že blitter už ide na maximum a nespozoroval som spomalenie.




    Čo ale neviem ako je uložené stereo v súbore. Pri mono idú data pekne za sebou, stačí ich len po wordoch pchať do Pauly
    Keď tento postup použijem pri stereo tak z repro lezie bordel. Zrejme data budú za sebou po bajtoch takže bude treba "vyskladať" word pre každý kanál.
    A600 Furia020 | A1200 PiStorm32 Lite | A1200 ACA 1231 | Sharp MZ800 | ZX Spectrum | Didaktik M / Gama | C64 U1541II | Atari 800XL / 130XE U1MB+SIDE2 | Nintendo DS | MiST

    Komentovat


      Upravil som poslednú verziu CG aby prehrávala WAV-ka.
      16kHz audio už spomaľuje dosť citeľne, preto v deme používam 11kHz audio/SFX a niekde je už vidieť spomalenie ale nie je to nič hrozné (na 68020/14mHz). Hlavne na miestach kde je viacej NPC a top-layer objektov. Pri 8kHz je už kvalita zvuku tragická. Celá audio knižnica je uložená vo fast-mem a má viac ako 8mb.
      Ešte by to chcelo testnúť na skutočnom železe.


      A600 Furia020 | A1200 PiStorm32 Lite | A1200 ACA 1231 | Sharp MZ800 | ZX Spectrum | Didaktik M / Gama | C64 U1541II | Atari 800XL / 130XE U1MB+SIDE2 | Nintendo DS | MiST

      Komentovat


        Kde ze se mohu dostat k downloadu?
        Amiga 1200 + Blizzard 1260 + 64 MB RAM + CF2IDE + Indivision AGA Mk1 + PCMCIA2CF + WHDLoad registered + GOTEK

        Komentovat


          Doplním, ale zatial som na dovolenke asi 4 dni.
          A600 Furia020 | A1200 PiStorm32 Lite | A1200 ACA 1231 | Sharp MZ800 | ZX Spectrum | Didaktik M / Gama | C64 U1541II | Atari 800XL / 130XE U1MB+SIDE2 | Nintendo DS | MiST

          Komentovat


            Moc pekna prace. Jenom zvidava otazka. Ty assety (sprity a graficke objekty) jsou loadovane najednou nebo se nejak prubezne nahravaji a uvolnuji podle pohybu hrace?

            Komentovat


              Všetko je nahrané na jeden krát (jeden súbor). GFX do chipmem a zvyšok do fastmem.
              A600 Furia020 | A1200 PiStorm32 Lite | A1200 ACA 1231 | Sharp MZ800 | ZX Spectrum | Didaktik M / Gama | C64 U1541II | Atari 800XL / 130XE U1MB+SIDE2 | Nintendo DS | MiST

              Komentovat


                Jak se to pak dostava z FastRAM do CHIP? Jakoze podle ceho delas presun dat, podle pozice na mape nebo nejak jinak?
                Amiga 1200 + Blizzard 1260 + 64 MB RAM + CF2IDE + Indivision AGA Mk1 + PCMCIA2CF + WHDLoad registered + GOTEK

                Komentovat


                  O umiestnenie dát na to správne miesto sa postará AmigaDOS hneď pri nahraní. Assembler má na to "direktívu", sú tuším tri typy Chip/Fast/Public a podľa toho ich umiestňuje do tej správnej pamäte.
                  Na ostatné veci sú v mape "commands" ktoré nie je bežne vidieť, vo verzii s MODs sú všetky mody uložené vo fastke a len tá hudba ktorá je prehravaná sa kopíruje z fast do chip. Vo verzii s WAV je hudba len vo fastke a "ručne" posielané do audio HW.

                  Tu je video so zobrazenými príkazmi (aj keď viem keď chcem prechádzať cez steny a zabíjať NPC pre potreby testovania).

                  Napr.
                  C1 je neprechodná pre hráča a NPC.
                  C2 je neprechodná pre NPC.
                  M - kové su AMMO a pod.
                  T - čkove teleport.
                  A - zmena audia.

                  ATD.







                  Demo tu: https://drive.google.com/file/d/143w...ew?usp=sharing dúfam že to je funkčné (link), demo som zatiaľ netestol na realHW.

                  Naposledy upravil ObiWanKen; 31.07.2025, 20:59:47.
                  A600 Furia020 | A1200 PiStorm32 Lite | A1200 ACA 1231 | Sharp MZ800 | ZX Spectrum | Didaktik M / Gama | C64 U1541II | Atari 800XL / 130XE U1MB+SIDE2 | Nintendo DS | MiST

                  Komentovat



                    Autorem citovaného textu je ObiWanKen Přejít na původní příspěvek
                    Ak chceš vložiť obrázok do ASM tak je na to direktiva priamo v assemblery.

                    INCIFF "cesta",RN,B,ECS

                    RN/RB - Raw Normal alebo Raw Blitter.
                    B/A/N - Kde majú byť uložené farby Before, After, None.
                    ECS/AGA - Farebna paleta.

                    Priklad:
                    Code:
                    IncIff "DH0:ornela.iff",RN,B,ECS
                    Nahrá obrazok zo zadanej cesty vo formate raw normal / definicia farieb bude uložená pred samotným obrázkom, takže prvých 64 bytes budú farby vo formate 0RGB.
                    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 ?
                    Amiga - PMD 85

                    Komentovat


                      To jsou mi vymoženosti Př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. V devadesátkách bych to na svých tehdejších procesorech v Amigách dělat nechtěl. Ale dneska v emulátorech se to asi ani nepozná.
                      Ale zahanbujete mne chlapci. Já jsem stará konzerva. Stáhnul jsem si open-source libIFF a libILBM knihovny, přeložil si je a na windowsech si v céčku IFF obrázky vždy načtu, udělám si s nima, co potřebuju, a uložím jako binárku, kterou pak do assembleru dostávám přes INCBIN. Za starých dobrých časů na to byly na Amize mraky různých "demo" konvertorů. Každý si nějaký udělal, a pak je cpal na Aminet. Zlaté časy

                      Komentovat


                        Autorem citovaného textu je Defor Přejít na původní příspěvek
                        To jsou mi vymoženosti Př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. :
                        Spomalenie a náročnosť nie sú nijak citeľné. Chová sa to presne ako INCBIN. V starých časoch som musel každý obrázok konvertovať do RAW cez rôzne utility a nakoniec som skončil pri IFF-Master 1.0 od Arcane. Ale táto cesta mi vyhovuje najviac. IFF-Master 1.0 používam keď chcem/potrebujem k obrázku vytvoriť masku pre blitter, ale aj toto riešim často krátkou rutinou.
                        A600 Furia020 | A1200 PiStorm32 Lite | A1200 ACA 1231 | Sharp MZ800 | ZX Spectrum | Didaktik M / Gama | C64 U1541II | Atari 800XL / 130XE U1MB+SIDE2 | Nintendo DS | MiST

                        Komentovat



                          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.
                          A600 Furia020 | A1200 PiStorm32 Lite | A1200 ACA 1231 | Sharp MZ800 | ZX Spectrum | Didaktik M / Gama | C64 U1541II | Atari 800XL / 130XE U1MB+SIDE2 | Nintendo DS | MiST

                          Komentovat


                            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


                            A600 Furia020 | A1200 PiStorm32 Lite | A1200 ACA 1231 | Sharp MZ800 | ZX Spectrum | Didaktik M / Gama | C64 U1541II | Atari 800XL / 130XE U1MB+SIDE2 | Nintendo DS | MiST

                            Komentovat


                              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
                              A600 Furia020 | A1200 PiStorm32 Lite | A1200 ACA 1231 | Sharp MZ800 | ZX Spectrum | Didaktik M / Gama | C64 U1541II | Atari 800XL / 130XE U1MB+SIDE2 | Nintendo DS | MiST

                              Komentovat

                              Zpracovávám...
                              X