Jump to content
IGNORED

My experiments with Atari 7800


Eagle

Recommended Posts

Damn - I see a competition coming up with the 8-bit (ANTIC/GTIA) folks.  We pick fights all the time.  We generally lose them.  But we like to swing.  So - um yeah, bring it :)

 

All kidding aside - very nice looking stuff, I just got a DragonFly cart, so my real 7800 is going back on the shelf.  Hope to see some of this on a real CRT soon.

  • Like 1
  • Haha 3
Link to comment
Share on other sites

On 2/13/2021 at 2:22 PM, Eagle said:

I would like to present my new idea for A7800 - new graphics mode - Multicolor 160B+

 

Orginal picture - One Zak and his Kracken by Carrion (commodore plus 4) 89 colors used

https://tomseditor.com/gallery/i/33074/one-zak-and-his-kracken-by-carrion

 

Converted for A7800 has 55 colors

I'm still working on glitches and color palette ? 

I hope I'll finish in next few weeks

 

https://raz0red.github.io/js7800/?cart=https://atariage.com/forums/applications/core/interface/file/attachment.php?id=811209

 

Multicolor160Bplus.a78 32.13 kB · 27 downloads

 

CarrionA7800emu.png

BTW - there is some weird kind of synchronicity going on here.  I just converted this to A8, and did a worse job than someone when they did it back in 2015:

https://atariage.com/forums/topic/200118-images-generated-by-rastaconverter/?do=findComment&comment=3147608

 

  • Haha 1
Link to comment
Share on other sites

@Philsan @Stephen try this one :)

Maybe one day @ilmenit will make RastaConverter versions for the Atari 7800 ;)?

 

Wonderland by @Piesiu Commodore+4

https://tomseditor.com/gallery/i/33068/wonderland-by-piesiu&lang=en

 

DLI only changes 3 colors per line, but that's enough.

Timing almost perfect (A7800 emulator has some small issues)

Colors much better now (about 80 thist time)

 

 

 

wonderlandByPiesiu.png

WonderlandByPiesiu.a78

  • Like 8
Link to comment
Share on other sites

1 hour ago, Eagle said:

@Philsan @Stephen try this one :)

Maybe one day @ilmenit will make RastaConverter versions for the Atari 7800 ;)?

 

Wonderland by @Piesiu Commodore+4

https://tomseditor.com/gallery/i/33068/wonderland-by-piesiu&lang=en

 

DLI only changes 3 colors per line, but that's enough.

Timing almost perfect (A7800 emulator has some small issues)

Colors much better now (about 80 thist time)

 

 

 

wonderlandByPiesiu.png

WonderlandByPiesiu.a78 32.13 kB · 1 download

I'll give it a shot, but that's quite a few colours per scanline.

  • Like 2
Link to comment
Share on other sites

  • 3 weeks later...
On 2/21/2021 at 7:04 PM, Synthpopalooza said:

But yes, you guys should try to make a game.  Even a port of Robbo would be great.

 

Robbo, but with the TIA music from Robomechanik.  Not just because it's a great tune, but because it'll lead to all sort of questions about that thing 7800 programmers love: POKEY + TIA sound :D

 

(Seriously, though, it has to be one of the better TIA tracks.  Would be awesome in Robbo, even if ported to POKEY.)

Link to comment
Share on other sites

8 minutes ago, DrVenkman said:

I just tried it on my NTSC console via my Dragonfly Cart, but no go. Not sure if I need to manually set some of the cart options to make it work. 

Hmmm, Pal worked on Dragonfly. Pokey address is $4000.

I've added signature just in case. Check this one.

It's working on A7800 emulator as well.

Do you have bars on screen or just blank?

 

CamouflageNTSC.a78

  • Like 2
Link to comment
Share on other sites

3 minutes ago, Eagle said:

Hmmm, Pal worked on Dragonfly. Pokey address is $4000.

I've added signature just in case. Check this one.

It's working on A7800 emulator as well.

Do you have bars on screen or just blank?

 

CamouflageNTSC.a78 32.13 kB · 0 downloads

The first one just gave rolling bars - most of us have original NTSC bios chips that will require a signature check.

 

But the new version you just posted actually plays the music, along with a display of colored pulsing bars. Sounds really good. :)

  • Like 1
Link to comment
Share on other sites

@DrVenkman thanks, good to know.

 

For anyone interested.

Music source code from dis6502

 

jsr init_music

jsr Play

Spoiler

 


; Code equates
;
L00F0       = $F0
L00F1       = $F1
L4D78       = $F2    
L4D79       = $F3    
L4D8B       = $F4    
L4D8C       = $F5    
;
; Start of code
;
pokey        equ $4000

            org $8000
;
            .byte $00,$00,$00
L4803:      .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
            .byte $39,$39,$39,$39,$39,$00,$39,$00,$39,$00,$39,$00,$39,$00,$39,$00
            .byte $48,$48,$48,$48,$48,$00,$48,$00,$48,$00,$48,$00,$48,$00,$48,$00
            .byte $55,$55,$55,$55,$55,$00,$55,$00,$55,$00,$55,$00,$55,$00,$55,$00
            .byte $3F,$3F,$3F,$3F,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00
            .byte $39,$00,$00,$00,$00,$00,$48,$00,$00,$00,$55,$00,$00,$00,$55,$00
            .byte $3F,$00,$00,$00,$3F,$00,$00,$00,$3F,$00,$00,$00,$3F,$00,$00,$00
L4873:      .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
            .byte $64,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
            .byte $C8,$00,$00,$00,$14,$00,$C8,$00,$C8,$00,$00,$00,$14,$00,$00,$00
            .byte $C8,$00,$00,$C8,$14,$00,$C8,$00,$C8,$00,$00,$00,$14,$00,$00,$00
            .byte $C8,$00,$00,$C8,$14,$00,$C8,$00,$C8,$00,$14,$14,$14,$00,$14,$00
            .byte $00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$00,$0A,$00,$00,$13,$00
L48D3:      .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
            .byte $BF,$7E,$5D,$BF,$7E,$00,$BF,$00,$7E,$00,$BF,$00,$4E,$00,$5D,$00
L48F3:      .byte $08,$04,$03,$02,$02,$01,$01,$00,$00,$00,$08,$07,$06,$05,$04,$03
            .byte $02,$01,$00,$00,$0F,$06,$00,$00,$00,$00,$00,$00,$00,$00,$0F,$0A
            .byte $08,$06,$04,$02,$00,$00,$00,$00,$0C,$0B,$0A,$09,$08,$07,$06,$05
            .byte $04,$03,$0C,$08,$06,$04,$02,$00,$00,$00,$00,$00,$0C,$0A,$09,$08
            .byte $07,$06,$05,$04,$03,$02,$08,$0A,$0A,$09,$08,$07,$06,$05,$04,$04
L4943:
data_music
        .byte $01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
            .byte $6B,$80,$00,$00,$5A,$80,$6B,$80,$00,$00,$6B,$80,$00,$00,$6B,$80
            .byte $5A,$80,$00,$00,$47,$80,$5A,$80,$00,$00,$5A,$80,$00,$00,$5A,$80
            .byte $87,$80,$00,$00,$6B,$80,$87,$80,$00,$00,$87,$80,$00,$00,$87,$80
            .byte $78,$80,$00,$00,$5F,$80,$78,$80,$00,$00,$78,$80,$00,$00,$78,$80
            .byte $00,$00,$00,$00,$00,$00,$8F,$00,$5A,$00,$5A,$00,$5A,$00,$5F,$00
            .byte $00,$00,$6B,$00,$00,$00,$00,$00,$00,$00,$00,$00,$47,$00,$50,$00
            .byte $00,$00,$47,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
            .byte $00,$00,$00,$00,$50,$00,$50,$00,$50,$00,$50,$00,$47,$00,$50,$00
            .byte $00,$00,$78,$00,$00,$00,$78,$00,$5A,$00,$00,$00,$5A,$00,$5F,$00
            .byte $00,$00,$6B,$00,$00,$00,$00,$00,$47,$00,$00,$00,$47,$00,$50,$00
            .byte $00,$00,$47,$00,$00,$00,$00,$00,$00,$00,$5A,$00,$5A,$00,$50,$00
            .byte $00,$00,$50,$00,$50,$00,$50,$00,$50,$00,$50,$00,$47,$00,$50,$00
            .byte $00,$00,$5A,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
            .byte $00,$00,$00,$00,$00,$00,$8F,$00,$5A,$00,$00,$00,$5A,$00,$5F,$00
            .byte $00,$00,$6B,$00,$00,$00,$00,$00,$47,$00,$00,$00,$47,$00,$50,$00
            .byte $00,$00,$47,$00,$00,$00,$5A,$00,$5A,$00,$00,$00,$5A,$00,$50,$00
            .byte $00,$00,$50,$00,$50,$00,$50,$00,$50,$00,$50,$00,$47,$00,$50,$00
            .byte $00,$00,$78,$00,$00,$00,$78,$00,$5A,$00,$00,$00,$5A,$00,$5F,$00
            .byte $00,$00,$6B,$00,$00,$00,$00,$00,$47,$00,$00,$00,$47,$00,$50,$00
            .byte $00,$00,$47,$00,$00,$00,$00,$00,$00,$00,$5A,$00,$5A,$00,$50,$00
            .byte $00,$00,$50,$00,$50,$00,$00,$00,$50,$00,$47,$00,$00,$00,$50,$00
            .byte $00,$00,$5A,$00,$00,$00,$5A,$00,$00,$00,$00,$00,$00,$00,$00,$00
            .byte $6B,$80,$5A,$80,$6B,$80,$87,$80,$00,$00,$00,$00,$00,$00,$00,$00
            .byte $6B,$80,$5A,$80,$50,$80,$43,$80,$00,$00,$00,$00,$47,$80,$00,$00
;bylo $4ad3 start muzyki
song        .byte $00,$00,$10,$00,$00,$00,$10,$00,$10,$00,$10,$00,$20,$00,$10,$00
            .byte $30,$00,$10,$00,$40,$00,$10,$00,$10,$00,$10,$00,$20,$00,$10,$00
            .byte $30,$00,$10,$00,$40,$00,$10,$00
;bylo $4afb
restartsong .byte $10,$20,$10,$00,$20,$30,$10,$00
            .byte $30,$20,$10,$00,$40,$30,$10,$00,$10,$20,$10,$00,$20,$30,$10,$00
            .byte $30,$20,$10,$00,$40,$30,$10,$00,$10,$20,$10,$08,$20,$30,$10,$10
            .byte $30,$20,$10,$18,$40,$30,$10,$20,$10,$20,$10,$08,$20,$30,$10,$10
            .byte $30,$20,$10,$18,$40,$30,$10,$20,$60,$20,$00,$00,$00,$10,$00,$28
            .byte $10,$20,$00,$30,$20,$30,$00,$38,$30,$20,$00,$40,$40,$30,$00,$48
            .byte $10,$20,$00,$50,$20,$30,$00,$58,$30,$20,$00,$60,$20,$30,$00,$68
            .byte $20,$40,$00,$70,$10,$20,$10,$78,$20,$30,$10,$80,$30,$20,$10,$88
            .byte $40,$30,$10,$90,$10,$20,$10,$98,$20,$30,$10,$A0,$30,$20,$10,$A8
            .byte $20,$30,$10,$B0,$10,$20,$10,$08,$20,$30,$10,$10,$30,$20,$10,$18
            .byte $40,$30,$10,$20,$10,$20,$10,$08,$20,$30,$10,$10,$30,$20,$10,$18
            .byte $40,$30,$10,$20,$60,$20,$00,$00,$00,$10,$00,$28,$10,$20,$00,$30
            .byte $20,$30,$00,$38,$30,$20,$00,$40,$40,$30,$00,$48,$10,$20,$00,$50
            .byte $20,$30,$00,$58,$30,$20,$00,$60,$20,$30,$00,$68,$20,$40,$00,$70
            .byte $10,$20,$10,$78,$20,$30,$10,$80,$30,$20,$10,$88,$40,$30,$10,$90
            .byte $10,$20,$10,$98,$20,$30,$10,$A0,$30,$20,$10,$A8,$20,$30,$10,$B0
            .byte $50,$20,$00,$B8,$50,$30,$00,$B8,$50,$20,$00,$C0,$50,$40,$00,$C0
            .byte $50,$20,$00,$B8,$50,$30,$00,$B8,$50,$20,$00,$C0,$50,$40,$00,$B8
            .byte $60,$50,$00,$00,$00,$10,$00,$70,$10,$20,$10,$78,$20,$30,$10,$80
            .byte $30,$20,$10,$88,$40,$30,$10,$90,$10,$20,$10,$98,$20,$30,$10,$A0
            .byte $30,$20,$10,$A8,$20,$30,$10,$B0,$FF,$FF,$FF,$FF,$20,$4B,$4C
            nop
            nop
            nop
            nop
            nop
            nop
            nop
            nop
            nop
music_init
            lda #<song    ;$D3
            sta L00F0
            lda #>song    ;$4A
            sta L00F1
            lda #$0F
            sta L4E16
            lda #$00
            ldx #$07
L4C5C:      sta POKEY,X
            sta L4E02,X
            dex
            bpl L4C5C
            sta L4E15
            sta L4E0E
            sta L4E18
            lda #$09
            sta L4E12
            sta L4E10
            sta L4E11
            lda #$02
            sta L4E17
            rts
Play:
            lda #$40
            sta POKEY+8        ;AUDCTL
            lda #$03
            sta POKEY+$0F    ;SKCTL
            ldx #$07
L4C8B:      lda L4E02,X
            sta POKEY,X
            dex
            bpl L4C8B
            inc L4E18
            lda L4E18
            cmp #$02
            bne L4CA6
            lda #$00
            sta L4E18
            rts
            nop
            nop
L4CA6:      inc L4E17
            lda L4E17
            cmp #$03
            bne L4CBA
            lda #$00
            sta L4E17
            sta L4E17
            beq L4CBD
L4CBA:      jmp L4D94
L4CBD:      inc L4E16
            lda L4E16
            and #$0F
            sta L4E16
            bne L4CEE
L4CCA:      ldy #$03
L4CCC:      lda (L00F0),Y
            sta L4E0A,Y
            dey
            bpl L4CCC
            cmp #$FF
            bne L4CE3
            lda #<restartsong    ;$FB
            sta L00F0
            lda #>restartsong    ;$4A
            sta L00F1
            jmp L4CCA
L4CE3:      clc
            lda L00F0
            adc #$04
            sta L00F0
            bcc L4CEE
            inc L00F1
L4CEE:      lda L4E0D
            asl @
            php
            clc
            adc #<data_music    ;$43
            sta L4D78
            sta L4D8B
            lda #>data_music    ;$49
            adc #$00
            plp
            adc #$00
            sta L4D79
            sta L4D8C
            lda L4E0A
            ora L4E16
            tax
            lda L4803,X
            beq L4D1D
            sta L4E04
            lda #$00
            sta L4E12
L4D1D:      lda L4E0C
            ora L4E16
            tax
            lda L48D3,X
            beq L4D31
            sta L4E02
            lda #$00
            sta L4E10
L4D31:      lda L4E0B
            ora L4E16
            tax
            lda L4873,X
            beq L4D6D
            sta L4E14
            ldx #$1E
            cmp #$14
            beq L4D54
            ldx #$28
            cmp #$64
            beq L4D54
            ldx #$32
            cmp #$14
            bcc L4D54
            ldx #$14
L4D54:      stx L4E15
            ldx #$00
            cmp #$C8
            bcs L4D65
            ldx #$02
            cmp #$64
            bne L4D65
            ldx #$FB
L4D65:      stx L4E0F
            lda #$00
            sta L4E11
L4D6D:      lda L4E16
            and #$01
            bne L4D94
            ldy L4E16    ;;;ldx L4E16 

modify1:
            lda ($f2),y    ;;;lda L4943,X    ;zamiana na strone zerowa dla A7800 
            beq L4D94
            sta L4E08
            lda #$00
            sta L4E13
            lda #$46
            sta L4E0E
            iny        ;;;inx
modify2:
        lda ($f4),y    ;;;lda L4943,X    ;zamiana na strone zerowa dla A7800
            bpl L4D94
            lda #$3C
            sta L4E0E
L4D94:      ldx L4E10
            lda L48F3,X
            ora #$20
            sta L4E03
            inx
            cpx #$0A
            beq L4DA7
            stx L4E10
L4DA7:      ldx L4E12
            lda L48F3,X
            ora #$C0
            sta L4E05
            inx
            cpx #$0A
            beq L4DBA
            stx L4E12
L4DBA:      lda L4E0E
            clc
            adc L4E13
            tax
            lda L48F3,X
            ora #$A0
            sta L4E09
            ldx L4E13
            inx
            cpx #$0A
            beq L4DD5
            stx L4E13
L4DD5:      lda L4E15
            clc
            adc L4E11
            tax
            lda L48F3,X
            ora #$80
            sta L4E07
            ldx L4E11
            inx
            cpx #$0A
            beq L4DF0
            stx L4E11
L4DF0:      lda L4E14
            sta L4E06
            clc
            adc L4E0F
            bcs L4DFF
            sta L4E14
L4DFF:      rts

; Ram for A7800
    org $1800,*
            nop
            nop
L4E02:      .byte $00
L4E03:      .byte $00
L4E04:      .byte $00
L4E05:      .byte $00
L4E06:      .byte $00
L4E07:      .byte $00
L4E08:      .byte $00
L4E09:      .byte $00
L4E0A:      .byte $00
L4E0B:      .byte $00
L4E0C:      .byte $10
L4E0D:      .byte $00
L4E0E:      .byte $00
L4E0F:      .byte $00
L4E10:      .byte $09
L4E11:      .byte $09
L4E12:      .byte $09
L4E13:      .byte $09
L4E14:      .byte $C8
L4E15:      .byte $00
L4E16:      .byte $0F
L4E17:      .byte $02
L4E18:      .byte $00,$00,$00,$00,$00,$00,$00,$00,$70,$70,$70,$70,$70,$70,$70,$70
            .byte $54,$23,$50,$54,$A3,$50,$54,$23,$51,$54,$A3,$51,$54,$23,$52,$54
            .byte $A3,$52,$54,$23,$53,$54,$A3,$53,$30,$41,$20,$4E,$A9

 

  • Like 2
Link to comment
Share on other sites

6 minutes ago, Eagle said:

First attempt to my sprite engine.

Up to 32 on screen with background , maximum 16 per line.

Flexible width, height, color and collisions for every sprite. 

 

JS7800:

Sprite engine test - link

 

 

enginetest.a78 32.13 kB · 3 downloads

Looks fantastic on real hardware. :) 
 

D19C454F-8180-4E1D-8D8A-6BCC0134F876.thumb.jpeg.6771d89c04cddc7ccb35e39f687afe72.jpeg

 

  • Like 7
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...