Jump to content
metzger130

sd cartridge for 7800?

Recommended Posts

Yeah, its the former; the ROM is completely ignored. I'm not against throwing in some passive bytes into future releases to satisfy the heuristics.

 

 

 

I'm not aware of any. I don't think the XBoard sold in large quantities, so using it would have severely limited a homebrew's potential audience. However once XM comes out I expect to see at least some XM-only homebrews that use the extra ram.

 

In case you haven't seen it, here's the the XBoard access info.

Hmm... Well, what do you do to detect the presence of HSC? And do you know if the other games detect it the same way? It may be possible to detect the detection ;)

  • Like 1

Share this post


Link to post
Share on other sites

I just want to say thank you batari for making this product. I am having a blast with my cart and already have a 7800 night planned with friends to play some great games. This cart also will be assisting a release of a future homebrew as well :).

  • Like 1

Share this post


Link to post
Share on other sites

The HSC has a formatted has a 5-byte signature at $1002. 7800basic just checks the first 2 bytes of the signature value.

 

I'm not sure if Bob does the same, or looks for some bytes in the ROM. In my case, since I didn't build in a format routine, I didn't want the games to use an unformatted card.

Share this post


Link to post
Share on other sites

Do you have a Commando? How is the Pokey/TIA balance? My Ballblazer sounds pretty loud despite not using TIA, so I don't imagine the Pokey will be too weak like with the other 3rd party mods. If someone with a Best modded 7800 could test, I would appreciate.

 

I assume there's a resistor voltage divider somewhere in the mod circuit, unless all the output pins are shorted together to let the chips fight for dominance, which would likely sound like shit and put unneeded stress on the vintage chips.

 

Each audio source gets a resistor to connect it to the input on board. Assuming the input impedance on the amp circuit is higher than the resistor values, not necessarily a given, the proportion of signal level from the output will be reflected in the values of the resistances. Increasing the value of a resistor will soften the channel it's connected to and brighten the others proportionally.

 

Not all chips output the same voltage levels so the chosen values of the resistors need to reflect this. For instance if the TIA had peak-to-peak of 5V and the Pokey had a peak-to-peak of 2V, then you might get balanced sound by connecting a 2.2k to the Pokey and a 5.6k to the TIA. This is just an example. I don't know what the true values of the components are.

 

If the amp has low input impedance, then lower resistances will be needed or the console audio output will be too faint. Likewise connecting raw chip input or too low value may very well overdrive the circuit and sound horrible. NES used 10k and 22k resistors to mix the pulse and noise channels of the NES CPU. Again, the sound mixer on the TIA and in cart audio may be completely different so that range of values may not be suitable.

 

It is likely the creators of the 3rd party AV mods did not reference internal Atari docs when hacking the 7800, and may have tuned the circuits by ear without access to a cart that generated both Pokey and TIA audio. If Ballblazer played sound, then the mod was working...

I will check it may be on my cuttle cart, if not never could figure out how to add files etc.

Share this post


Link to post
Share on other sites

Not sure if it may help, but here are the X-Board description details:

; X-Board Description
; The X-board (iet7830) is an internal expansion board for the ATARI 7800 which
; gives the system 128 Kbyte of SRAM and one POKEY chip.
;
; The expansion SRAM is located from $4000 up to $7fff and is divided into 8 banks
; of 16Kbyte each. The SRAM is by default disabled when the system starts up and
; has to be enabled by the application. This is so that existing games and software
; will function properly. To enable the SRAM write a "1" to Bit 3 of the XCTRL
; register.
;
; The POKEY is located in the high section of the available memory area at $0400
; of the 7800. It is selected from $0460 - $046f when Bit 4 of the XCTRL register
; is set to "1" if Bit 4 = "0" the POKEY is disabled.
;
XCTRL           =       $0470  ; Note Write only
; Bit 4 = Enable POKEY chip
; Bit 3 = Enable Banked 128Kbyte SRAM
; Bit 2 = Bit 2 of SRAM bank select
; Bit 1 = Bit 1 of SRAM bank select
; Bit 0 = Bit 0 of SRAM bank select

;
; Bit patterns for enabling/disabling XBoard features.
XENABLEMEM      =       %00001000
XENABLEPOKEY    =       %00010000

XPOKEYBASE1     =       $0450
XPOKEYBASE2  =       $0460

MEMTESTCOUNT    =       10     ; Number of iterations when testing the XBoard Memory
XMEMORYSTART    =       $4000  ; This is where the memory of the XBoard starts

;************************************************************************
;*
;* Function:    SetXCtrl
;*
;* Description: This function sets the XCTRL register to the value in
;*              acc and updates the shadow
;*
;************************************************************************
SetXCtrl:      sta     XCTRL
               sta     XCTRL_SHDW
   
               rts
;************************************************************************
;*
;* Here's the code for checking and enabling the XBoard SRAM
;*
;* This test fills the entire 16K memory bank with a known pattern
;* and then compares it with the same pattern. If any byte is unequal
;* the memory test aborts and reports no memory.
;*
;* For this test to be effective the length of the test pattern must
;* not be equal to a power of 2 base. So it has been chosen to just
;* repeat all strings used into memory.
;*
;************************************************************************
; First we load the memory with a known test string......
               lda     #XENABLEMEM
               jsr     SetXCtrl        ; Enable XBOARD SRAM and set to bank zero

               lda     #<XMEMORYSTART
               sta     MemTest
               lda     #>XMEMORYSTART
               sta     MemTest+1      ; Loads the memory address

               lda     #MEMTESTCOUNT  ; Number of iterations to test in memory (<256)
               sta     Iterate

               ldy     #0
XCheck0:        
               ldx     #<MEMTESTLEN   ; Load memory test string length (<256)
XCheck1:        
               lda     Text1,X
               sta     (MemTest),Y    ; Store test character

               inc     MemTest
               bne     XCheck15
               inc     MemTest + 1    ; Increment the XBoard memory pointer
               
XCheck15:
               lda     MemTest        ; Check low target adress for zero
               bne     XCheck2        ; Skip if not zero
               
               lda     MemTest + 1    ; Check high target address
               cmp     #$80           ; If it's hex 80 we have a wrap = done
               bne     XCheck2        ; Loop again if not zero
               jmp     XCheck25       ; Break out of this loop

XCheck2:        dex
               bne     XCheck1        ; Store the entire test data set
               beq     XCheck0        ; Reload test string counter

; Second phase of the memory test
; Now we compare the stored data in memory with the reference content....
XCheck25:                
               lda     #<XMEMORYSTART
               sta     MemTest
               lda     #>XMEMORYSTART
               sta     MemTest+1      ; Loads the memory address

               lda     #MEMTESTCOUNT  ; Number of iterations to test in memory (<256)
               sta     Iterate

               ldy     #0
XCheck3:        
               ldx     #<MEMTESTLEN   ; Load memory test string length (<256)
XCheck4:        
               lda     Text1,X        ; Load the known data to compare memory contents with
               cmp     (MemTest),Y    ; And do the comparison.
               bne     XCheck6        ; Skip further checking if not equal, ie. memory error

XCheck7:        inc     MemTest        ; ... otherwise continue to compare.
               bne     XCheck5
               inc     MemTest + 1    ; Increment the XBoard memory pointer
XCheck5:        
               lda     MemTest        ; Check low target adress for zero
               bne     XCheck55       ; Skip if not zero
               
               lda     MemTest + 1    ; Check high target address
               cmp     #$80           ; If it's hex 80 we have a wrap = done
               bne     XCheck55       ; Loop again if not zero
               jmp     TA1            ; Break out of this loop
XCheck55:
               dex
               bne     XCheck4        ; Store the entire test data set
               beq     XCheck3        ; And reload the test length counter

TA1:            jsr     XMemOK         ; Go show memory indicator

Share this post


Link to post
Share on other sites

I just finally had a minute to plug this in, what is supposed to happen, when there is no SD cart in the cart?

Share this post


Link to post
Share on other sites

I just finally had a minute to plug this in, what is supposed to happen, when there is no SD cart in the cart?

You should get a warning message saying "SD card initialization error" and some other text suggesting possible remedies.

Share this post


Link to post
Share on other sites

Hmm, I got a black screen. I don't really have time to make a SD cart right now. Thanks.

Share this post


Link to post
Share on other sites

Awesome, I am just loving this Concerto even as is. Any firmware improvements are just icing on the cake. Couple of Q's, Batari-

1) will you send a label or label file to those of us with a PRGE pre-release cart?

2) sorry in advance for this question as it may seem a little green: what can the XM do that the concerto cart cannot?

3) are you able to get any .a78 of Double Dragon to work on the current firmware version?

 

XM has extra ram (concerto might also have this), Yamaha sound chip, built in Pokey, built in HSC functionality and a port for the XE keyboard.

 

 

Concerto has the potential for HSC capabilities, a slot for pokey, and a SD slot to load games.

 

Did I miss anything?

Edited by toiletunes

Share this post


Link to post
Share on other sites

Cool! I saw a post on Facebook about this. I'm not much into multicarts but this will be a VERY useful item. Sign me up for the general release. :)

Edited by shadow460

Share this post


Link to post
Share on other sites

Hmm, I got a black screen. I don't really have time to make a SD cart right now. Thanks.

You don't get the Atari logo at boot?

Share this post


Link to post
Share on other sites

You don't get the Atari logo at boot?

 

Nope, black. I'll try to pop the PCB out later and try again.

Share this post


Link to post
Share on other sites

I think the pin numbers I used on the card edge may be different than convention. I think most schematics list pin 23-24 for VCC and GND, while on Concerto, it's 11-12. If you bought a bare board and are going from pin numbers alone, the board could be in backward. The POKEY should face toward the back of the console when inserted. Just a guess.

Share this post


Link to post
Share on other sites

Do you think we can get a Moderator to create and pin a "Concerto Status and Updates" thread here to collect all the latest info in one single thread instead of being scattered across several threads in several sections of the forums? :)

  • Like 3

Share this post


Link to post
Share on other sites

Do you think we can get a Moderator to create and pin a "Concerto Status and Updates" thread here to collect all the latest info in one single thread instead of being scattered across several threads in several sections of the forums? :)

Depends when I get my Concerto cart. :D

 

..Al

  • Like 7

Share this post


Link to post
Share on other sites

I think the pin numbers I used on the card edge may be different than convention. I think most schematics list pin 23-24 for VCC and GND, while on Concerto, it's 11-12. If you bought a bare board and are going from pin numbers alone, the board could be in backward. The POKEY should face toward the back of the console when inserted. Just a guess.

 

No, it is in a shell, with cutouts. I just popped it out of the shell and it doesn't work at all, even with a SD cart in it. :(

Share this post


Link to post
Share on other sites

 

No, it is in a shell, with cutouts. I just popped it out of the shell and it doesn't work at all, even with a SD cart in it. :(

PM me your address so I can send a replacement, and I'll send mine so you can mail the old board back and I can figure out the issue.

Share this post


Link to post
Share on other sites

PM me your address so I can send a replacement, and I'll send mine so you can mail the old board back and I can figure out the issue.

 

Gonna inspect the board with my stereo microscope, tomorrow, and see if it isn't something simple first, like a bridged pin, due to heat or something. When it arrived, it was over 90 degrees here, not enough to melt solder, but enough to drop a solder drip from the PCB and lodge it somewhere.

 

And yeah, no worries about it. Not like I actually need it, my MCP cart does well enough for the crap I dabble in. :)

Share this post


Link to post
Share on other sites

PM me your address so I can send a replacement, and I'll send mine so you can mail the old board back and I can figure out the issue.

 

Done, I could not see anything horrible under the microscope. Thanks.

Share this post


Link to post
Share on other sites

Possibly dumb question: does Concerto detect a 2600 console and launch in a 2600-only mode?

 

You can not insert it into a 2600, it is a 7800 PCB. Or did I misunderstand the question?

Share this post


Link to post
Share on other sites

Possibly dumb question: does Concerto detect a 2600 console and launch in a 2600-only mode?

No.

 

 

You can not insert it into a 2600, it is a 7800 PCB. Or did I misunderstand the question?

What he said.

 

7800 PCBs have 8 additional pins in the form of two fingers to either side of the 24-pin connector. These PCBs would be physically impossible to insert into a 2600, and even if they were, the boot-loader would likely not be compatible.

AAVersa_post.jpg

Share this post


Link to post
Share on other sites

Here's a functionality-type question: when playing 2600 ROMs, can the Concerto handle SARA and DPC/DPC+ games? I would be sad if it couldn't play Millipede, Pitfall II or Space Rocks, for example.

 

 

Sent from my iPhone using Tapatalk

Share this post


Link to post
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.

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