Jump to content

Eagle

Members
  • Posts

    688
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by Eagle

  1. Minnie soundchip core it's almost done. I tried playing few Pokey RMT music directly on the Minnie I used only square waveform and noise. Still have some problem with volume (because of this -> sample_data = S x (1 + 1/2 x vol2+ 1/4 x vol1 + 1/8 x vol0) x 2^(4 x vol5 + 2 x vol4 + 1 x vol3) ) Also Minnie don't have Zero volume. To make the channel not produce any sound, you need to use Waveform 4. I hope one day someone will make tracker for Minnie. More details about this chip: https://7800.8bitdev.org/index.php/The_7800_Minnie_sound_chip Below song BeniFriends by @VinsCool (sorry ) 2024-04-11 14-03-08.mp4
  2. He’s probably referring to this two video from my Jag tests. My others Jag tests are only on Polish AtariArea discord. BTW MatGuru has something very interesting for Jag fans too but I can’t say anything about it yet.
  3. Just to let you know, A7800 MiSTer core is playing Minnie already 🥳 edit: our version of Minnie has 8 channels (instead of 3) and 7 user 64 bytes wavetables (instead of 2)
  4. @SainT I hope you have some space left in the 7800GD to put Minnie in it when we have the final version 😁
  5. You are the first to see it. MiniGumby for SN2 cart. 🥳🥳🥳 IMG_4197.MOV
  6. This is what I paid for 2600+ about month ago.
  7. Eagle

    BB

    Congratulations 🥳
  8. Let me know if you need some test programs for banking or music.
  9. MatGuru found 2413 core I bet that he will put in SN2 cart by tomorrow https://github.com/MiSTer-devel/SMS_MiSTer/tree/master/rtl/VM2413
  10. I tried my best. You will get idea If I find more time I will do working example double buffered Display List. FirstDL equ $4000 x_player equ $70 y_player equ $71 nr_sprite equ $72 colorwidth equ $73 Sprite_zone equ $80 ;13*2bytes ;**************************************************** ;First Display List List line should point FirstDL=$4000 for first DL and increasing 128 bytes for every next DL ; but if you need more sprites than you can do 256 bytes step ; 128 bytes DL will give you up to 31 sprites for each line ; ;DLL $4F,>FirstLine,<FirstLine ; $4F,>[FirstLine+128],<[FirstLine+128] ; $4F,>[FirstLine+256],<[FirstLine+256] ; etc...... ;**************************************************** Start ;main loop will looks like this Main jsr waitVBlank jsr set_first_dl_sprite_zone ;I'm using name First beacuse this was double buffered sprite procedure ;terminates DL on the start jsr clear_dl_first ;bullet1 - pass in x_player y_player nr_sprite colorwidth jsr fast_sprite ;bullet2 - pass in x_player y_player nr_sprite colorwidth jsr fast_sprite ;bullet3 - pass in x_player y_player nr_sprite colorwidth jsr fast_sprite ;etc.... ;enemie1 - pass in x_player y_player nr_sprite colorwidth jsr fast_sprite ;enemie2 - pass in x_player y_player nr_sprite colorwidth jsr fast_sprite ;enemie3 - pass in x_player y_player nr_sprite colorwidth jsr fast_sprite ;etc.... ;maincharacter - pass in x_player y_player nr_sprite colorwidth jsr fast_sprite ;terminate DL's jsr add_endDl jmp Main ;**************************************************** fast_sprite ldy y_player ;zero page ldx Y_tab_new,y lda nr_sprite ;zero page - addres in Maria bank - sprite number sta (sprite_zone,x) ;LSB inc sprite_zone,x lda colorwidth ;zero page - color + width sta (sprite_zone,x) inc sprite_zone,x lda tab_y_16,y ;adjust Y in Zone sta (sprite_zone,x) ;MSB inc sprite_zone,x lda x_player ;zero page - x position sta (sprite_zone,x) inc sprite_zone,x ; bottom of the sprite ldx Y_tab_new+16,y ;add 16 because 16 line sprite height lda nr_sprite ;sprite number sta (sprite_zone,x) ;LSB inc sprite_zone,x lda colorwidth ;color + width sta (sprite_zone,x) inc sprite_zone,x lda tab_y_16_Holey,y ;Holey DMA sta (sprite_zone,x) ;MSB inc sprite_zone,x lda x_player ;x position sta (sprite_zone,x) inc sprite_zone,x rts ;put second zero on end for all Display Lists add_endDl ldx #$00 lda #$00 loopenddl inc sprite_zone,x ;skip to second byte of double zero for DL (terminate DL) sta (sprite_zone,x) inx inx cpx #13*2 bne loopenddl rts set_first_dl_sprite_zone ; :13 means Repat 13 times this line ; MWA is MADS macro - move word, # - is counter, starting from zero and increase every repaert :13 mwa #[FirstDL+[#*128]] sprite_zone+[#*2] ;you can use +5 after FirstDL if you need put extra 5 byte header for the background ; :13 mwa #[FirstDL+5+[#*128]] sprite_zone+[#*2] ; this looks like this ; lda #<$4000 ; sta sprite_zone ; lda #>$4000 ; sta sprite_zone+1 ; lda #<[$4000+128*1] ; sta sprite_zone+2 ; lda #[>$4000+128*1] ; sta sprite_zone+3 ; lda #<[$4000+128*2] ; sta sprite_zone+4 ; lda #[>$4000+128*2] ; sta sprite_zone+5 ; etc.... ; 13 times (LSB and MSB), but entry 13 is dummy - for anything outside line zone 0 to 11 ; address willby FirstDL+[128*12] but you can set anywher you need (but the best will be on the beginning memory page ; because I'm using only INC (sprite_zone,x) - increasing only LSB - making faster rts clear_dl_first ;zero all sprites at begining lda #$00 :13 sta FirstDL+[[#*128]+1] ;plus 1 on end because second zero teminate DL ;you can use +5 after FirstDL if you need put extra 5 byte header for the background ; :13 sta FirstDL+5+[[#*128]+1] ;looks like this ; sta $4000 ; sta $4000+128 ; sta $4000+128*2 ; etc.... rts Y_tab_new ;address on zero page for INDIRECT,X :16 .byte 0 ;looks like ; :16 - means repeat 16 times ; .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 :16 .byte 2 :16 .byte 4 :16 .byte 6 :16 .byte 8 :16 .byte 10 :16 .byte 12 :16 .byte 14 :16 .byte 16 :16 .byte 18 :16 .byte 20 :16 .byte 22 :16 .byte 24 ;empty - this is dummy line, anything outside zones 0-11 will be written to (indirect+24),x ;but never put on screen, it's easier to put sprite in dummy DL than checking every sprite leaving screen in Y axis ;addres for Dummy DL you can put wherewer you want (page align) :16 .byte 24 ;empty :16 .byte 24 ;empty :16 .byte 24 ;empty :16 .byte 24 sprbank equ $E0 ;MSB of $E000 bank maria holbank equ $D0 ;MSB of $D000 HoleyDMA bank Tab_Y_16 ;every line looks like this ; .byte sprbank+0,sprbank+1,sprbank+2,sprbank+3,sprbank+4,sprbank+5,sprbank+6,sprbank+7,.........., sprbank+15 ; lines are 16 times repeated - for speedcode reason (256 bytes table) :16 .byte sprbank+# :16 .byte sprbank+# :16 .byte sprbank+# :16 .byte sprbank+# :16 .byte sprbank+# :16 .byte sprbank+# :16 .byte sprbank+# :16 .byte sprbank+# :16 .byte sprbank+# :16 .byte sprbank+# :16 .byte sprbank+# :16 .byte sprbank+# :16 .byte sprbank+# :16 .byte sprbank+# :16 .byte sprbank+# :16 .byte sprbank+# Tab_Y_16_Holey :16 .byte holbank+# :16 .byte holbank+# :16 .byte holbank+# :16 .byte holbank+# :16 .byte holbank+# :16 .byte holbank+# :16 .byte holbank+# :16 .byte holbank+# :16 .byte holbank+# :16 .byte holbank+# :16 .byte holbank+# :16 .byte holbank+# :16 .byte holbank+# :16 .byte holbank+# :16 .byte holbank+# :16 .byte holbank+#
  11. Omg looks like at least 427 cycles for DL (maria limit is 400 per line) Fixed DL it’s not the best idea. I will try to convert my latest sprites procedure to plain asm (no MADS) and share here tomorrow.
  12. @PacManPlus Check my code for Commando scroll. It's 8 line zone. https://forums.atariage.com/topic/337580-scrolling-from-memory-buffer-and-256-characters/?do=findComment&comment=5086710 Your code it's not completed, so it's hard to debug
  13. Yes. Like I said before - 2xPokey, 2xSN, YM2151, YM2612, 4 channel Amiga style DMA covox and we will try Minnie. YM2413 core is WIP, but it might work. We will have 24bit Pointers and Blitter, of course SN2 cart it's compatible with SN cart and MariaECI. You can use in dev mode (transfer files by cable). SD card I'm planning use for streaming video and/or music. We have FPGA VGM player because almost every platform with Yamaha sound chips uses an additional Z80 processor just for playing music. This is flash cart (I don't want to make this cart another SD cart) We have MiSTer FPGA core working for devs I believe that is good start for possible future projects (e.g. new XM module and A7800 on FPGA)
  14. Few VGM music YM2413/SN76489 YM_2413_SN.zip
  15. I paid for SN around $1, for Pokey much more But now we have FPGA Trion T20 for SN2 cart (7800GD uses T8)
×
×
  • Create New...