Jump to content
IGNORED

My experiments with Atari 7800


Eagle

Recommended Posts

22 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

Knocking it out of the park with this 7800 stuff!  It's finally looking like a step up from the 8-bit computer/5200 chipset.

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

Covox version of Bloodfighter music by Tomasz Liebich from xl/xe  

http://asma.atari.org/asmadb/search.php?play=280

So far is missing one covox channel. I've no idea why (just switch off for now)

I don't have much time this week so I'm attaching the latest version of the file.

BTW I'm using 135 DLI to emulate XL/XE VCount and VBLKI ;) 

Sorry only PAL version 

bloodfighter7800PAL.a78

  • Like 3
Link to comment
Share on other sites

Another Covox demo for @rj1307Dragonfly. Similar to @playsoft but mine is 31440 Hz

Interesting is how easily you can load file into 63 cart banks using Mads assembler.

	.macro load_sample
		org $8000
		opt f+
		ins 'beemoved2.raw',16384*:1,16384
		opt f-
	.endm

; loading file into 63 banks!!!
		:63 load_sample #

Timing it's not bad. But when I was counting the cycles was a little bit too slow.

Probably I should switch off Maria

 

playsample
		lda $8000			;4
		sta	Covox			;3
		sta	Covox+1			;3
		inw playsample+1	;6+3 and 6+2+6 every 256 bytes
		bit playsample+2	;4cyc
		bvc no_change_bank	;2 or 3
		lda #$80			;2
		sta playsample+2	;4
		inc bank_counter	;5
		lda bank_counter	;3
		cmp #63				;2
		beq	end_demo		;2 or 3
		sta $8000			;4
		jmp playsample		;3

no_change_bank

;The directive #CYCLE generates code to take a given number of cycles. 
;The generated code does not modify any memory or any general purpose register.

		#cycle #19	;19 cycles	

		sta BACKGRND	;3
		jmp playsample	;3


end_demo
		lda #$00
		sta bank_counter
		jmp playsample

Must say that I start liking Mads much more.

 

For anyone interested whole source code:

 


		icl 'c:\jac\maria.h'

	opt f+h-

bank_counter	equ $82
Covox			equ $430


          ORG     $8000-128
HEADER       .byte    1  ; 0   Header version     - 1 byte
        .by    "ATARI7800       "     ; 1..16  "ATARI7800   "  - 16 bytes
        .by    "Covox 31440 Hz  "; 17..48 Cart title      - 32 bytes
        .by    "2021 Eagle Soft "     ; 2 line
        .byte    $00,$10,$00,$00; 49..52 data length      - 4 bytes
        .byte    $00,$02  ;01= pokey4000 40=pokey450 ; 53..54 cart type      - 2 bytes
    ;    bit 0 - pokey at $4000
    ;    bit 1 - supergame bank switched
    ;    bit 2 - supergame ram at $4000
    ;    bit 3 - rom at $4000
    ;    bit 4 - bank 6 at $4000
    ;    bit 5 - supergame banked ram
    ;    bit 6 - pokey at $450
    ;    bit 7 - mirror ram at $4000
    ;    bit 8-15 - Special
    ;   0 = Normal cart
        .byte     1  ; 55   controller 1 type  - 1 byte
        .byte     0  ; 56   controller 2 type  - 1 byte
    ;    0 = None
    ;    1 = Joystick
    ;    2 = Light Gun
        .byte    1  ; 57 0 = NTSC 1 = PAL
        .byte    0  ; 58   Save data peripheral - 1 byte (version 2)
    ;    0 = None / unknown (default)
    ;    1 = High Score Cart (HSC)
    ;    2 = SaveKey
        .byte 0,0,0,0	;ORG     HEADER+63
        .byte    0  ; 63   Expansion module
    ;    0 = No expansion module (default on all currently released games)
    ;    1 = Expansion module required
	.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
     ;   ORG     HEADER+100      ; 100..127 "ACTUAL CART DATA STARTS HERE" - 28 bytes
        .by    "ACTUAL CART DATA STARTS HERE"


	.macro load_sample
		org $8000
		opt f+
		ins 'beemoved2.raw',16384*:1,16384
		opt f-
	.endm

; loading file into 63 banks!!!
		:63 load_sample #

		opt f+h-
        org $c000
;
START
		sei
		cld
		lda	#$07
		sta	INPTCTRL
		lda	#$7F
		sta	CTRL
	    sta	BACKGRND
		lda	#$00            
		sta	OFFSET
		sta	INPTCTRL
		sta bank_counter
		ldx	#$FF
		txs
		ldx	#$00
CopyLoop:
		lda	.adr DLLs,x
		sta	$1800,x
		inx
		bne	CopyLoop

		lda	<DLLogo		;
		sta	DPPL		; setup the pointers for the output
		lda	>DLLogo		; description (DLL) according to
		sta	DPPH		; the PAL/NTSC test to $1840/$184C
		jsr	WaitVBoff	;WaitVBLANK	; wait until no DMA would happen

		mva	#$40	CTRL
		mva	#$00	BACKGRND


		jmp playsample


NMI
	RTI
IRQ
	RTI
DLI
	RTI

WaitVBLANK:	
WaitVBoff:
		bit     MSTAT  
		bmi     WaitVBoff
WaitVBon:
		bit     MSTAT
		bpl     WaitVBon
		rts


		ORG	$1800,*
DLLs
DLLogo
	:32	.byte	$0F,>emptyline,<emptyline

emptyline	.byte $00,$00

playsample
		lda $8000			;4
		sta	Covox			;3
		sta	Covox+1			;3
		inw playsample+1	;6+3 and 6+2+6 every 256 bytes
		bit playsample+2	;4cyc
		bvc no_change_bank	;2 or 3
		lda #$80			;2
		sta playsample+2	;4
		inc bank_counter	;5
		lda bank_counter	;3
		cmp #63				;2
		beq	end_demo		;2 or 3
		sta $8000			;4
		jmp playsample		;3

no_change_bank

;The directive #CYCLE generates code to take a given number of cycles. 
;The generated code does not modify any memory or any general purpose register.

		#cycle #19	;19 cycles	

		sta BACKGRND	;3
		jmp playsample	;3


end_demo
		lda #$00
		sta bank_counter
		jmp playsample

;************** Cart reset vector **************************

	 ORG	$fff8
	.byte	$FF
	.byte	$87
	.word	NMI
	.word	START
	.word	IRQ

Tested on PAL (signature added)

Still waiting for an AV mod for my NTSC A7800

I'm also adding audio raw file.

 

Music from Bee Moved

https://helpguide.sony.net/high-res/sample1/v1/en/index.html

 

 

 

covox32khz.a78 beemoved2.raw

  • Like 1
Link to comment
Share on other sites

22 hours ago, Eagle said:

I've tried play Covox with DLI (7720Hz). For some reason wasn't play well.

I changed program to normal loop with 2xWsync and is playing ok. ?

 

Jester - Elysium

 

 

covoxjester.a78 1 MB · 5 downloads

I assume this and the last few are all PAL only correct? I was able to get them to all come up and work in my DevOS modified unit since it plays PAL stuff, but my actual daily driver NTSC only console just gives me the random bars or black screen after the encryption check.

 

Link to comment
Share on other sites

@-^CrossBow^- try to change byte 57 in file header from 1 (pal) to 0 (ntsc) and theoretically should work :)

All files have signature. Sorry but I'm not testing on my NTSC A7800 because have black and white and no sound on my tv.

But I'm working on it.

 

edit:

try this ones

no chance for bloodfighter 

covoxjester.a78 covox16khz.a78 covox94khz.a78

Link to comment
Share on other sites

3 hours ago, Eagle said:

@-^CrossBow^- try to change byte 57 in file header from 1 (pal) to 0 (ntsc) and theoretically should work :)

All files have signature. Sorry but I'm not testing on my NTSC A7800 because have black and white and no sound on my tv.

But I'm working on it.

 

edit:

try this ones

no chance for bloodfighter 

covoxjester.a78 1 MB · 2 downloads covox16khz.a78 1 MB · 1 download covox94khz.a78 1 MB · 1 download

Nope..same thing. Just either a solid grey screen when I try and test the 16khz file, I get the grey screen with 2 yellow vertical stripes in the same place each time on the Jester file and just a black screen on the 94khz file. Again they did work on my DevOS modded system as it will play PAL without issue but RF output only on that console.

 

Anyone else test these files on NTSC and have them working yet?

 

My DF cart is also on FW 1.06a if that helps at all.

 

Link to comment
Share on other sites

  • 6 months later...

A lot. Simply VGM format it's dump of YM registers.

Many of VGM is more than 64kb. But compressed about 3-10kb.

So when I finish my VGM player I will try do something like RMT2LZSS 

Problem with Squadron I have is command 0x61 in VGM format (wait nn samples - one vblank is $372 samples in NTSC).

But in Squadron is using sometimes 2 and half vblank so I have to improvise :) I still don't now how much time is wasted for  Wait_for_YM_ready.

Some other VGM files using commands 0x7n so is even more frustrating. 

I have some tunes done in PAL from @miker and they sound ok.

  • Like 1
Link to comment
Share on other sites

Bionic Commando - The Forest 

Quote

The internal format has not been ripped, but VGM logs have been made from the sound test in the game, emulated using MAMEUI 64 v1.46. Tracks 0x01-0x10 are music and tracks 0x11-0x3F are sound effects.

http://www.vgmpf.com/Wiki/index.php?title=Bionic_Commando_(ARC)

 

It's old VGM format 1.50 and file was 64kb so I cut down to 44kb.

I also ignored commands x7n, I don't see (yet) reason for making delay for 1/44100 of second  

 

PAL only of course ;)

 

bionic.a78

Link to comment
Share on other sites

1 minute ago, DrVenkman said:

Well, it is for most of us.

Hopefully soon... I published my install for the new BIOS over the weekend although the video has been ready for over 2 months. I also have permission from Bob and RevEng to offer them to my clients, but I've only got about 8 on hand right now until AA starts to offer them.

 

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