Jump to content
IGNORED

sd cartridge for 7800?


metzger130

Recommended Posts

Put in a Pokey, connect the audio out to an oscilloscope. Measure the maximum peak-to-peak signal. Put in some random game with obnoxious sound effects; rinse and repeat. Peak-to-peak levels should be about the same if the mod is balanced properly.

 

Does anyone have a Best AV modded 7800 and a Commando to test with? Not Electronic Sentimentalities or any other 3rd party AV + S-Video mod, but just Best audio + composite. Best used an "official" AV mod developed in house by Atari engineers.

That is the one I have, bought it from best a little over a year ago.

Link to comment
Share on other sites

Not all 2600 games will work yet. Mostly it was just a few of the more obscure bankswitch types that I didn't get to yet, but currently, 2k games will not work unless you double up the file to 4k (or find a 4k version of it.) This will be addressed soon so all of those games will work.

 

As for the DK game with POKEY: The version out there (at least the one I found) does not have the POKEY bit set in the A78 header. However, setting this bit will not fix it yet - I also need to add 48k+POKEY support to the firmware.

 

I saw some questions about HSC as well. I'm working on the code for that. In addition, HSC-enabled games will need the HSC bit set in their A78 headers to work, once this code is finished.

 

I may investigate ways to detect POKEY and/or HSC in the binary itself so games can work without header changes.

 

Lastly, I'm sure you all want to know when the remaining carts from PRGE will go on sale. I plan to make a few small changes to the firmware (support more of those missing 2600 games, the 48k+POKEY, and improve a few other things). Then I will set up an inventory-controlled order page and post here when they go on sale. Should be about a week or so.

  • Like 6
Link to comment
Share on other sites

Not all 2600 games will work yet. Mostly it was just a few of the more obscure bankswitch types that I didn't get to yet, but currently, 2k games will not work unless you double up the file to 4k (or find a 4k version of it.) This will be addressed soon so all of those games will work.

 

As for the DK game with POKEY: The version out there (at least the one I found) does not have the POKEY bit set in the A78 header. However, setting this bit will not fix it yet - I also need to add 48k+POKEY support to the firmware.

 

I saw some questions about HSC as well. I'm working on the code for that. In addition, HSC-enabled games will need the HSC bit set in their A78 headers to work, once this code is finished.

 

I may investigate ways to detect POKEY and/or HSC in the binary itself so games can work without header changes.

 

Lastly, I'm sure you all want to know when the remaining carts from PRGE will go on sale. I plan to make a few small changes to the firmware (support more of those missing 2600 games, the 48k+POKEY, and improve a few other things). Then I will set up an inventory-controlled order page and post here when they go on sale. Should be about a week or so.

Once that page is set up, those things will probably fly out the door pretty fast. Any ideas on lead time for the next batch?

Link to comment
Share on other sites

That is the one I have, bought it from best a little over a year ago.

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

Link to comment
Share on other sites

Not all 2600 games will work yet. Mostly it was just a few of the more obscure bankswitch types that I didn't get to yet, but currently, 2k games will not work unless you double up the file to 4k (or find a 4k version of it.) This will be addressed soon so all of those games will work.

 

As for the DK game with POKEY: The version out there (at least the one I found) does not have the POKEY bit set in the A78 header. However, setting this bit will not fix it yet - I also need to add 48k+POKEY support to the firmware.

 

I saw some questions about HSC as well. I'm working on the code for that. In addition, HSC-enabled games will need the HSC bit set in their A78 headers to work, once this code is finished.

 

I may investigate ways to detect POKEY and/or HSC in the binary itself so games can work without header changes.

 

Lastly, I'm sure you all want to know when the remaining carts from PRGE will go on sale. I plan to make a few small changes to the firmware (support more of those missing 2600 games, the 48k+POKEY, and improve a few other things). Then I will set up an inventory-controlled order page and post here when they go on sale. Should be about a week or so.

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?

Link to comment
Share on other sites

Batari,

Does the Concerto respond to the control register, $470, used by XBOARD and XM to enable the POKEY? If the bit in the a78 header is enabling the POKEY, is it being enabled at $4000 like on Ballblazer or at $450 like on XBOARD and XM? I have DK XM setup to disable POKEY using $470, check for it's presence, then enable depending on if it is found. The intention is to avoid enabling the XM POKEY if there is another POKEY present. I'll need to make sure the header is setup properly depending on how Concerto handles it.

  • Like 1
Link to comment
Share on other sites

Hopefully, header details handling for Concerto and stand alone game (a78) files should be following what is laid out and downloadable here.

 

The code appears as follows in the available Assembler file from the aforementioned link:

        SEG     ROM
HEADER  ORG     ROMTOP-128
        DC.B    1  ; 0   Header version     - 1 byte
        DC.B    "ATARI7800"     ; 1..16  "ATARI7800   "  - 16 bytes
        DS      7,32
        DC.B    "Your Name Here"; 17..48 Cart title      - 32 bytes
        DS      HEADER+49-.,0
        DC.B    $00,$00,256->ROMTOP,$00; 49..52 data length      - 4 bytes
        DC.B    $00,$00  ; 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 8-15 - Special
    ;   0 = Normal cart
        DC.B    1  ; 55   controller 1 type  - 1 byte
        DC.B    1  ; 56   controller 2 type  - 1 byte
    ;    0 = None
    ;    1 = Joystick
    ;    2 = Light Gun
        DC.B    0  ; 57 0 = NTSC 1 = PAL
        DC.B    0  ; 58   Save data peripheral - 1 byte (version 2)
    ;    0 = None / unknown (default)
    ;    1 = High Score Cart (HSC)
    ;    2 = SaveKey
        ORG     HEADER+63
        DC.B    0  ; 63   Expansion module
    ;    0 = No expansion module (default on all currently released games)
    ;    1 = Expansion module required
        ORG     HEADER+100      ; 100..127 "ACTUAL CART DATA STARTS HERE" - 28 bytes
        DC.B    "ACTUAL CART DATA STARTS HERE"

ROMTOP  ORG     $8000

Link to comment
Share on other sites

Batari,

Does the Concerto respond to the control register, $470, used by XBOARD and XM to enable the POKEY? If the bit in the a78 header is enabling the POKEY, is it being enabled at $4000 like on Ballblazer or at $450 like on XBOARD and XM? I have DK XM setup to disable POKEY using $470, check for it's presence, then enable depending on if it is found. The intention is to avoid enabling the XM POKEY if there is another POKEY present. I'll need to make sure the header is setup properly depending on how Concerto handles it.

Or a homebrew demo could be designed to take advantage of both the XM Pokey and the Concerto Pokey since they use different registers. Plug the Concerto into the XM and get musical overload from a dual Pokey soundtrack! :D

 

But that brings another issue. If games search for the on cart pokey at a different address that the XM pokey, I assume the Concerto could enable the Pokey at either address depending what the game wants to do. It's not unfathomable that certain combos of a Concerto with or without Pokey, with or without the XM module, playing games with or without a proper a78 header, might or might not cause bus conflicts between the XM and Concerto. I'd also like to see what happens when two XMs are piggybacked... Does the universe implode? :P

Link to comment
Share on other sites

But that brings another issue. If games search for the on cart pokey at a different address that the XM pokey, I assume the Concerto could enable the Pokey at either address depending what the game wants to do. It's not unfathomable that certain combos of a Concerto with or without Pokey, with or without the XM module, playing games with or without a proper a78 header, might or might not cause bus conflicts between the XM and Concerto. I'd also like to see what happens when two XMs are piggybacked... Does the universe implode? :P

This is why I took the precaution of checking for POKEY before enabling the XM's. The XM could do the same check. Disable the onboard POKEY if it finds one at the same address.

Link to comment
Share on other sites

Interesting, when did the HSC bit get added to the A78 spec? I must have missed that.

 

Mitch

 

 

 

What, you forgot? ;)

Back in 2010. :)

 

Nobody ever updates the ROM sets. So if I download a "No Intro" A78 set, I have to manually hex edit all the A78 headers for the original HSC games... Why cannot the Concerto just assume the HSC exists and emulate it for all games if they write to the address? For XM owners, a Concerto menu setting would be wise to disable the High Score Cart emulation to prevent conflicts if they have the XM plugged in. This could be saved to the SD card in an INI file or something. Or better yet, the Concerto just detects presence of the XM and disables High Score Cart emulation.

Link to comment
Share on other sites

Nobody ever updates the ROM sets. So if I download a "No Intro" A78 set, I have to manually hex edit all the A78 headers for the original HSC games.

 

They work 'as is' with HSC saving if HSC support is present...At least under emulation (MAME with XM module or HSC present).

 

Why cannot the Concerto just assume the HSC exists and emulate it for all games if they write to the address?

Don't believe anyone stated that is not possible. ;)

It may very well be an option, batari is addressing possibilities. See his post here:

 

"I may investigate ways to detect POKEY and/or HSC in the binary itself so games can work without header changes."

Link to comment
Share on other sites

Once that page is set up, those things will probably fly out the door pretty fast. Any ideas on lead time for the next batch?

Probably a few weeks after that will be another batch of about 15-20. I'm making a few changes for better fitment in the various cartridge cases and other minor things, and getting a small trial run to see how it is. After that, not sure, maybe around the end of the year, or early 2016.

  • Like 3
Link to comment
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?

1. Yes, labels will be available for buyers once finished.

2. I don't know. I'm sure that will come out in time.

3. DD works for me. Make sure it says "Detected as 7800 AC" on the bottom of the screen while loading, otherwise it definitely will not work. Also, the A78 I have has the swapped banks, so that is the one supported (if there are others, I am not aware of them.)

  • Like 1
Link to comment
Share on other sites

Batari,

Does the Concerto respond to the control register, $470, used by XBOARD and XM to enable the POKEY? If the bit in the a78 header is enabling the POKEY, is it being enabled at $4000 like on Ballblazer or at $450 like on XBOARD and XM? I have DK XM setup to disable POKEY using $470, check for it's presence, then enable depending on if it is found. The intention is to avoid enabling the XM POKEY if there is another POKEY present. I'll need to make sure the header is setup properly depending on how Concerto handles it.

Concerto supports POKEY as write-only at $4000, and I'm told that this is what emulators support (even when ROM is also at $4000), so most games written for emulation will also work. I did toy with POKEY at $450 (and a future update may support that) but I'm not sure if it's a good idea due to obvious hardware conflicts with XM and Xboard. In any case, if a game is set for $450, it shouldn't be too hard to change those addresses to $4000 and have it work fine.

Link to comment
Share on other sites

 

 

 

Nobody ever updates the ROM sets. So if I download a "No Intro" A78 set, I have to manually hex edit all the A78 headers for the original HSC games... Why cannot the Concerto just assume the HSC exists and emulate it for all games if they write to the address? For XM owners, a Concerto menu setting would be wise to disable the High Score Cart emulation to prevent conflicts if they have the XM plugged in. This could be saved to the SD card in an INI file or something. Or better yet, the Concerto just detects presence of the XM and disables High Score Cart emulation.

True, but someone should update them ;)

 

I am reluctant to automatically expose HSC ROM and RAM all the time, as you never know what games or other hardware might try to do. There are probably heuristics to detect HSC games, like accesses to entry points of HSC code. I will look into that as well as header changes.

 

Currently, I have no idea how to detect the XM, but supposedly (as of 4 years ago) I added a signature to Concerto so the XM will supposedly detect it, but I can never be sure if that will change, either. In any case, it's best to err on the side of caution until I know more about the XM and we can be sure there are no conflicts. And if anyone gets ahold of a XM before release, I recommend not using Concerto with it for now.

 

Oh, and yes, HSC will have to be explicitly enabled via a menu setting before it will work with games.

  • Like 1
Link to comment
Share on other sites

Thanks for the updated Concerto info. This technical stuff is really fascinating discussion for those of us interested in the "guts" of how it works. :)

 

If I may ask, for "fun money" planning purposes - do you have an idea of your expected sale price?

Link to comment
Share on other sites

There are probably heuristics to detect HSC games, like accesses to entry points of HSC code. I will look into that as well as header changes.

If you do use heuristics to enable HSC, please share the heuristics you wind up using. 7800basic accesses the HSC NVRAM directly, so it can equally use HSC or AtariVox/SaveKey for high-score and save game support. I understand that Bob also accesses the HSC directly in some games.

 

Both Dungeon Stalker and T:ME Salvo have high score support if you wish to test any heuristics against 7800basic.

 

 

 

Currently, I have no idea how to detect the XM, but supposedly (as of 4 years ago) I added a signature to Concerto so the XM will supposedly detect it, but I can never be sure if that will change, either. In any case, it's best to err on the side of caution until I know more about the XM and we can be sure there are no conflicts. And if anyone gets ahold of a XM before release, I recommend not using Concerto with it for now.

One way to detect XM/Xboard is to try enabling banked RAM @$4000 by writing 8(bank1) or 9(bank2) to the XCTRL register ($470) and checking for the expected results. My 7800 Utility Cart does as much, and it works well with the XM emulation in MESS. No word on the real thing, but I don't anticipate issues.

 

Alternatively, you could enable and check for the POKEY at $450.

  • Like 1
Link to comment
Share on other sites

If you do use heuristics to enable HSC, please share the heuristics you wind up using. 7800basic accesses the HSC NVRAM directly, so it can equally use HSC or AtariVox/SaveKey for high-score and save game support. I understand that Bob also accesses the HSC directly in some games.

 

Both Dungeon Stalker and T:ME Salvo have high score support if you wish to test any heuristics against 7800basic.

 

 

 

 

One way to detect XM/Xboard is to try enabling banked RAM @$4000 by writing 8(bank1) or 9(bank2) to the XCTRL register ($470) and checking for the expected results. My 7800 Utility Cart does as much, and it works well with the XM emulation in MESS. No word on the real thing, but I don't anticipate issues.

 

Alternatively, you could check for the POKEY at $450.

When you say, "directly," do you mean that they completely ignore the HSC ROM and just write directly to the RAM, or do they just use the entry points to add scores? If the former, it will be a lot harder to detect.

 

I wasn't aware that the Xboard had RAM mapped in at $4000. Do any games use this RAM?

 

I may need to acquire an Xboard so I can work this all out. In the meantime, I'd recommend not using Concerto on a system with an Xboard.

Link to comment
Share on other sites

When you say, "directly," do you mean that they completely ignore the HSC ROM and just write directly to the RAM, or do they just use the entry points to add scores? If the former, it will be a lot harder to detect.

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 wasn't aware that the Xboard had RAM mapped in at $4000. Do any games use this RAM?

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.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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