Jump to content
IGNORED

ATARI 7800 New Cartridge PCB with POKEY and YM2413 Support


Recommended Posts

While doing multiple designs similar to the original Super Cartridge, I decided to try a different one-- support for both POKEY and YAMAHA YM2413 sound chips. This still uses my previous capabilities (GAL22V10 for logic, 64K ROM, 32K RAM, jumpers, etc.) but now can install two different sound chips (though not at the same time).

 

I chose the YM2413 because the POKEY chips are just way too expensive and unavailable in quality, to really be used in any new designs. This YAMAHA is also quite cheap and fairly easy to interface with the 7800. It also has built-in instruments in it's internal rom, FM sound generation, 9 simultaneous sounds or 6 melody sounds plus 5 rhythm sounds. The sound chips share the same address space in my design, and the same chip select. I'll make up some prototype test boards and work out some 6502 assembly sound routines, as my next steps..

 

atari7800-32k-sram-pokey-ym-gal-cart.thumb.png.21f990a92670cd2d50a8963ec7c8fac8.png

  • Like 10
  • 2 weeks later...

Ugh. I am just about to get back some blank pcbs and as I've been writing the YM2413 driver for the 7800, I realized a few issues. First, I missed the part in the datasheet for the YAMAHA, that I needed to latch the !WE line while the chip read the data bus. I thought I could just keep it low. So I needed to rework the gal to now output !WE. Next, since I need to keep the data bus stable for a certain number of microseconds for each setting of the YAMAHA register address and data values, I couldn't use the R/W line to determine address or data. So now I also have A0 as input to the gal, and which address you write to will now determine address or data.

 

The good news though, I am well into the development of the 6502 driver. I thought while I was at it, I'd do a VGM format player (Video Game Music), used by many arcade and console games with different sound chips.. including the YM2413.

 

atari7800-32k-sram-pokey-ym-gal-cart.thumb.png.bbe00a0bec508ff132eeea9a3a8c5e7e.png

  • Like 6
On 12/4/2023 at 3:19 PM, selgus said:

I thought while I was at it, I'd do a VGM format player (Video Game Music)

There is a nice repository for packing the data for a vgm stream at simondotm (Simon M) (github.com).

 

I have used his code for playing Furnace Tracker exported vgm files on the 7800.

YM2413 was my choice for SN cart demoscene version, but now I have YM 2612, YM 2151 and more with VGM FPGA player. 
BTW YM 2413 was consider for Rikki but Tailcho was afraid of the lack of availability of chips and counterfeits. 
I thought about adding this chip to SN2 cart but YM2413 FPGA core is not finished. 
If you planning to add to your cart would be nice if you use $468 address and above

https://forums.atariage.com/topic/160424-a78-header-changes/?do=findComment&comment=5309319


I tested VGM files for this chip an they are not using that much cpu as other YM chips. 
 

But IMHO super game cart mapper should be not use for A7800 anymore for any new games. 
Holey dma can be used only at $Axxx $Cxxx $Exxx

Super cart can only swap 16KB at $8000-$BFFF, giving you only one 4KB Maria bank at cost of 16KB.

A completely waste of space. 

  • Like 3
On 12/7/2023 at 2:21 PM, Eagle said:

If you planning to add to your cart would be nice if you use $468 address and above

https://forums.atariage.com/topic/160424-a78-header-changes/?do=findComment&comment=5309319

I have a15-a10, (along with a0 for communicating with the YM2413 address/data bus register selection) going to the gal, so the lowest address I can check for is %000001xxxxxxxxx. I was planning on putting POKEY and the YM2413 at 0x0800.

 

I also only have d0-d1 as data bus inputs, so 0-3 banks. This means my banks need to be 16K in size, if I use the same hotspot for swapping.

Got my PCB back the other day (though I still need to send off the next revision, where I fixed the issues stated above). I was waiting to get these boards, to see how the physical fit was with the cartridge shells I 3D printed. I wanted to test if the plcc socket would fit inside the shells I made.. and they do. Worked just fine:

 

7800-cartridge1.thumb.jpg.27d018c903bb2c4ac5a4d368a1f33c4f.jpg7800-cartridge2.thumb.jpg.8b7407a43c50c6955b39fc7569865a49.jpg

  • Like 8
4 hours ago, Eagle said:

If I remember correctly $800 will not work with ntsc. 
You need switch on Pokey after bios testing. 

 

Thanks, I'll look at the gal logic and disable the sound chip until a certain enable (will have to see how I wish to do this). I wrote my own bios, which does things a bit differently than the standard bios (this is for my portable), so I'll test on a standard 7800 when I'm ready.

  • Like 1

I have been working on a driver for the YM2413 in 6502 assembly, to be used on the 7800. I made the driver expose all the functions/features of the YM2413 and interfaces with my new 7800 cartridge design (i.e memory mapped control of setting the YM2413's registers and timings). I haven't been able to test it yet, but once I get my current pcbs back and build up one, I will do so. I am also going to do a simple VGM player (it just needs the register setting function from my driver and some of the initialization), which would provide easy music playback.

 

atari-ym2413-driver.thumb.png.3afaea802571867e5a7169a33932f58c.png

  • Like 3
On 12/16/2023 at 11:13 AM, selgus said:

Thanks, I'll look at the gal logic and disable the sound chip until a certain enable (will have to see how I wish to do this). I wrote my own bios, which does things a bit differently than the standard bios (this is for my portable), so I'll test on a standard 7800 when I'm ready.

All you have to do is disable sound in the last bank, and make sure the cartridge always starts up in this bank. The last bank is basically useless (since the data in the last bank is always present in upper memory anyway) so there should be no loss by disabling sound there.

  • Like 2

The YM2413 is also a write only device, so placing it alongside your paging registers above $8000 is a good option. This would avoid any conflicts in the $04xx or $08xx areas, or at least that's what I was planning on doing when it was still a candidate.

  • Like 2
  • 3 weeks later...

The final boards.. the left is for the masses.. all chips (except for the rom) not socketed and cheap. The right is the one I use for new logic testing of the gal and all chips socketed. I settled on placing the YM2413 above $8000 in the memory map and this specific board has 64k rom and 8k ram (though the pcb supports up to 32k ram). I also have a13-a15 and d0-d3 available to the gal, for addressing/hot-spots.

 

I'm working on a game for the 7800 which will use this cartridge and sound chip.

 

7800-cartridge-pcbs.thumb.jpg.1ca1c18114570cadea4decefe8cc1331.jpg

  • Like 7
11 minutes ago, karri said:

What is the difference between solder wires W1 and W2? The silkscreen appears to label them both as "ROM 48k or less".

One jumpers a14 and one a15, to either be high or gal logic output.

  • Thanks 1
  • 1 month later...

In a different thread, @karri mentioned he was wanting to implement a 7800 cartridge that supported both a POKEY and YM chip, at the same time. This was a configuration I didn't even consider, but I spent some time after the Super Bowl last night and designed these. The new design allows for both a POKEY and YM2413 to be active at once, or having one of the other. I did need to increase the physical height of the cartridge.. but it still should fit into the cartridge shells I had designed.

 

I also needed to change the gal logic to include each having their own /CS lines, as they were sharing one before. They are also at slightly different addresses in the memory map, to allow them both to exist simultaneously.

 

I'll need to get some PCBs made so I can test them out..

 

atari7800-64k-sram-pokey-ym-dual-gal-socket-cart.thumb.png.c0d204ceda89f6c941aa2eb1797bed88.pngatari7800-64k-sram-pokey-ym-dual-gal-cart.thumb.png.7cff90378ab0f06bf805b83ae0e476a0.png

  • Like 3

I am not sure that it makes sense. It may be that the Yamaha chip is capable of creating good noise instruments and square wave instruments. Perhaps some experienced chiptune composers could chime in here to give their opinions.

32 minutes ago, karri said:

I am not sure that it makes sense. It may be that the Yamaha chip is capable of creating good noise instruments and square wave instruments. Perhaps some experienced chiptune composers could chime in here to give their opinions.

Well then that was a wasted few hours! 😜 If nothing else, I know it can be done now. I do enjoy PCB design as my hobby.

I would not say the time is wasted. I just went through all instruments I could find in OPM (YM2151) and OPLL (YM2413). There is some square wave instruments available. But no noise stuff. Also all arcade soundtracks I found combine the music with two chips. One FM channel capable chip and one percussion chip.

 

The TIA is capable of decent percussion. So a combination like TIA + YM2413 sounds ok. The question is: does the POKEY produce better percussions than the TIA?

 

Edit: after playing with POKEY for 15 minutes I really don't see the advantage of POKEY + YM2413 vs TIA + YM2413. All the chromatic sounds are better on a YM2413 than on POKEY imho. For percussions there is no difference between POKEY and TIA. (I may be all wrong here...)

 

  • Like 1

@karri @selgus YM 2413 sounds very good with SN76489

 

Streets of Rage 2 (YM2413+SN)

 

 

 

and Zelda just for YM 2413

 

 

 

  • Like 3

Streets of Rage 2 sounds really good!

 

I really like the sound of SN76489. That chip is the way to go.

 

I know I should not say this... But Zelda lacks breaks in the music. This YM 2413 chip is very good for simulating a multitimbral synth with chromatic sounds. But the percussions are not there.

So is the suggestion using a SN76489 instead of a POKEY, but along with the YM2413? I haven't used the SN76489 before, so I'll need to look at the interfacing. At a quick glance it looks like I'll need the data lines and a few control signals to the chip. I do like some of these samples posted, so maybe one more revision of my board also wouldn't be a waste of time..

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