Jump to content
Blinky

Cheap 2K/4K X-in-1 menu driven Multicart for Atari 2600

Recommended Posts

It's probably because of the cpld but I was getting occasional spurious bank switches.  I ended up making a seperate lock register, that required 7 bits to be written correctly before it would unlock.

 

I think The spurious behaviour is caused at the begining and end at a addressing cycle when the address lines are not yet stabelized causing multiple addressings. the capacitor solves it for the cart design. But a different design I did a while ago for a homecomputer which had simmular problems I used a transparent latch to solve the problem. One delayed signal in the address decoding controled the latch and would keep the other signals stable during the address decoding. Maybe something like this could be done with your pld.

 

The timing on the write line is a problem.

 

I haven't looked into it much. But I'd say delay the decoding by

two different (RC) delays and mix them together to get a write strobe.

The cpu datasheet may help in getting the right timings.

 

BTW, I can do your boards for ~$6 but I'd have to order 50.  If you just want a prototype I can probably work it into the next panel I'm doing for a reasonable cost.

 

I'm interrested in a prototype. I don't know how much space there is on your board but i'm looking for a PCB that can fit the 3 DIP size ICs and a 32pin EPROM socket (273 can be put inside socket) and fits into an existing cartridge something simmular to a 32-in-1 PCB but then witout the 'T' flaps.

Share this post


Link to post
Share on other sites

 

I think The spurious behaviour is caused at the begining and end at a addressing cycle when the address lines are not yet stabelized causing multiple addressings. the capacitor solves it for the cart design. But a different design I did a while ago for a homecomputer which had simmular problems I used a transparent latch to solve the problem. One delayed signal in the address decoding controled the latch and would keep the other signals stable during the address decoding. Maybe something like this could be done with your pld.

 

The problem is I have to go outside the cpld to do that and I lose 2 pins.

 

I haven't looked into it much. But I'd say delay the decoding by

two different (RC) delays and mix them together to get a write strobe.

The cpu datasheet may help in getting the right timings.

That would probably work. I'm not planning on doing any more work to the hardware, though.

 

I'm interrested in a prototype. I don't know how much space there is on your board but i'm looking for a PCB that can fit the 3 DIP size ICs and a 32pin EPROM socket (273 can be put inside socket) and fits into an existing cartridge something simmular to a 32-in-1 PCB but then witout the 'T' flaps.

 

I'll PM you.

Share this post


Link to post
Share on other sites
Whats up with your cool Xin1 Cart ?

finished ? or freezed ?

 

I didn't spent much time on Atari lately so things are getting along a bit slow. The project is still alive and the design has completely changed now into a new design. The Menu Driven Mega Cart.

 

More recently I thought that for larger ROMs a 2K bank mode is not that important and by removing it. I got a few bits and gates to work with. So I did a redesign and ended up with another two chip design (with less passive components) that can support a 1Mbyte ROM.

 

The addressing scheme is the same as before. Any read (or write if you want) in the $0800-$0FFF range will latch the least significant byte of the address (A0-A7) so there are 256 banks of 4K that can be selected.

 

As before There is also a lockout mechanism. But it is now activated when one of the higher banks (128 to 255) is selected. The lower banks 0 -127 leave the bankswitching enabled.

 

I've also added a Menu button in the design. All it takes is a pushbutton and some special code in the 1st 4K bank as described earlier.

 

Heres the new schematic:

 

MegaCartSchematic.gif

 

I have not yet build, tested andwritten any code for it. Because I'm also working out another crazy idea of mine. A Flash Cart that is programmed in cuircuit by the Atari 2600 itself with again a minimum of standard components. But I'm not sure if this idea will work.

Share this post


Link to post
Share on other sites

Hi Blinky Hi guys!! :)

 

I found the schematic Bliky and it seemed extremely important so I took the liberty of drawing it as if in physical mode

and wanted to ask if you have time to review it when I tell if it is correct as i draw.

 

Circito%20elaborado%20por%20mi.PNG?psid=1

 

 

Greetings all.

 

and prepare for my first 3 cart with 64, 32 and one with 2 games but the topic interests me enough to publish here without switch, would best achieve onscreen menu.

 

thanks to you. :thumbsup:

Share this post


Link to post
Share on other sites

image is broken to me, when I tried to load the image manually, I got a Microsoft live screen asking for logon. You should try something different for photo hosting like photobucket.com

Share this post


Link to post
Share on other sites

Too bad this never took off. I'd love to create a 128k game even if it meant calling assembly to switch which 4k "ROM" the multi-cart changes to. I wish batariBASIC was updated with the capability of accessing the extra space on Harmony boards.

Share this post


Link to post
Share on other sites

Too bad this never took off. I'd love to create a 128k game even if it meant calling assembly to switch which 4k "ROM" the multi-cart changes to. I wish batariBASIC was updated with the capability of accessing the extra space on Harmony boards.

 

Batari actually designed 128K, 256K, and 512K techniques that have never been used by any game. I can't tell you for sure, but I remember reading that melody cartridges can be made in higher capacities, which would make it possible to make these cartridges.

 

http://atariage.com/forums/blog/134/entry-4239-512k-superbanking-with-ttl/

Share this post


Link to post
Share on other sites

Batari actually designed 128K, 256K, and 512K techniques that have never been used by any game. I can't tell you for sure, but I remember reading that melody cartridges can be made in higher capacities, which would make it possible to make these cartridges.

 

http://atariage.com/...nking-with-ttl/

 

No doubt! Which is why I hope that batari focuses on finishing the DPC+ work including using that extra space :) Definitely something I'm looking forward to.

Share this post


Link to post
Share on other sites

Hi All!

 

I was just checking AA out again and noticed the recent posts. It's nice to see someone interested again in my project :) It's been years!. I didn't continue with the project after I had a system crash and thought I lost all my projects and moved on to other interests. But last year I did find a backup which contained the project :D

 

Dangelte great to see you've draw up a physical version as you call it. Unfortunately I don't have the time to check your schematic. But I've attached the original schematics and roms so I hope they are helpfull. I love to pick up the project again. But I'm too focused on Adventure Vision currently so It be a while.

 

About the attachments.

 

I've attached the schematic of the original 8 in 1 concept with PAL and a hacked NTSC version. I've also attached the Mega schematic version which supports up to 255 roms (4K roms only) when a 1 Mbyte EPROM is used and still supports 32K/64K/128K EPROMs through a jumper. The menu rom does not work yet with the later though.

when I find the time I will come up with some addresses so you can hack the menu to choose any combination of 2k/4K roms. Bit hacker can be used to 'draw' the titles in the roms. like I show in the clip below. I made that clip for someone in brazil that rebuilded my project. You can check out his site at http://spaceinvader....cart_w_menu.htm

 

http://www.youtube.com/watch?v=Xj4xmcD7rVs

post-5461-0-67336700-1367623117_thumb.gif

post-5461-0-61286900-1367623124_thumb.gif

mmc-8-in-1(ntsc).zip

mmc-8-in-1(pal).zip

Share this post


Link to post
Share on other sites

@Blinky:

I'm very much interested in your schematics, but I have a few questions.

 

1) In case of the mega-cart, do you need to switch the upper and lower 2k of a 4k ROM?

 

2) a - You also mention a jumper for using 64K EPROMs, I'm not sure where in the schematic that is located. Is it the dotted line at the address-line 17?

b - And should it be open or closed for 4K roms?

 

3) a- What should the menu program do for switching banks and running a game. Is it still the same as before 'LDA $0800-$0FFF'?

b- if a bit more is needed, could you give an example, maybe some assembler code.

c- could a batari program be used as a menu in the first bank? Or do I really need to write it completely in assembler?

 

Your help is much appreciated.

Share this post


Link to post
Share on other sites

When rereading I noticed that you actually already gave an answer to most of question C. Sorry.

But if possible could you give a small assembler example of how to preform a bankswitch, making sure the next address executed is the start of the selected ROM.

Just executing the LDA would result in jumping in the middle of the selected ROM right?

Share this post


Link to post
Share on other sites

3) a- What should the menu program do for switching banks and running a game. Is it still the same as before 'LDA $0800-$0FFF'?

When you do a bankswitch by hitting that address range, the program counter is not effected (will go onto the next instruction as expected), but the ROM will be completely different. So you will end up in the same address, with no idea what the next instruction will be because the games will all be different.

 

An easy way to get around this is to do the bankswitch while executing from RAM. Once a game is selected, you would load a little routine in RAM that looks like this:

 

    ldx SelectedGame
    lda $0800,X
    jmp ($1FFC)

Then just jump to wherever you loaded that. That way the ROM will change, but since you're in RAM you will know exactly what comes next. And that happens to be jmp ($1FFC), which will enter the game at it's reset routine.

Share this post


Link to post
Share on other sites

I will, but it might be a slow one since I still have to learn Atari programming. I've been reading about it before but I never got to any programming yet. I had a look at visual batari last night, but I have the feeling that the Visual part cuts you off from a lot of options. I'll have a look at plain Batari next when I have the time. If I manage to make a working menu then I'll be sure to let you know and share it.

Share this post


Link to post
Share on other sites

The past few weeks I have been spending some free hours on learning the 6502 assembly language.

Since the lack of free time it took me a while, but I managed to write myself a menu for the latest design of Blinky's (Edwin Blink) Menu Driven Multi Card. During this process I contacted Stephen Anthony to ask if Stella could be used to test this rom. Steve was a great help and started adding the MDMC Bankswitching to the new build of Stella. Because of his effort I felt obligated to write a new menu, one with more flexibility that can be used to select as many titles as possible.

So... without stretching this post even further I give you my first version of the;

 

Menu Driven Mega Cart Menu (v1.0)

 

What to expect?

  • A menu that can be used with up to 230 Roms
    (sorry, at this point I didn't reach the 255 that I wanted... but if you really want you could squeeze out some more titles)
  • Each title can be up to 12 characters
  • All 230 titles are just stored in plain ASCII
  • Color's can be easily changed
  • You can select at which bank the first title is located
    (If you configure them right you could combine menu's to create sub menu's)
  • Easy navigation
    (up/down = next/previous title) (left/right = next/previous page)
  • The complete menu fits in a 4k rom

 

What not to expect?

  • A fancy menu with music and wonderful graphics
    (If you want this then please be my guest and add it to the menu, although you will have to sacrifice a number of titles)
  • A big font
    (My current design only uses 6 sprites in a row, this doesn't allow for a big font)
  • Not tested on real hardware yet
    (Not yet doesn't mean it won't.. but not yet)

 

Everyone is welcome to improve this menu for own or public use. I just started writing 6502 assembly and have never made a ROM for Atari before, so I can imagine that people with more experience could improve it. For now I'll only add the source and empty binary. But I might create an even more easy way to make a multi card rom. For testing you can concatenate the rom with some other 4k roms and download the latest version of Stella (4.1). I would advice to make a rom of 8,16,32,64,128 or 256 banks. But be warned that you can only access 230 banks with the menu, so 25 banks will not be reachable. The menu however doesn't have to be a power of 2, it can be any number of 8 to 230.

 

Concatinating roms is easy in dos with the following command:

copy /y /b MDMCMenu.BIN+ROM01.BIN+ROM02.BIN+...+FINALROM.BIN MDMC-OUT.BIN
(the compiled rom provided expects that the Menu is bank0 and games start from bank1 up)

 

More details will be given later, but for now it's goodnight for me.

 

Here are the files:

http://s000.tinyupload.com/?file_id=70555840589262040904

 

 

PS: When testing remember that in Blinky's design bank 0-127 are not locked! meaning that some roms might accidentally switch banking. But there are some tricks to fix this. More about that later.

  • Like 1

Share this post


Link to post
Share on other sites

Nice to see you're interested in my MDMC project DrWho198 and I'm very pleased to read support for it has been added to stella :D

I just don't seem to find the time to pick up this project again so It's nice to see someone continuing the idea.

 

I've attached the assembly source of the menu. menu5.asm is the one used in the menu iirc. the menu is 512 bytes and the remaining data is for bitmapped menu items.

There are some variables you can set to vary the number of scanlines per title, the number of total menu items in the menu and the number of items on a single menu page and colors. Maybe it will be some use to you or may give you a nice idea

 

multimenu.zip

Share this post


Link to post
Share on other sites

DrWho198 sugested changing the address range to $X800-$XBFF as there are some games (like battle zone) that won't work properly with the original addressing. Attached is a a revision that uses the $X800-$XBFF address range. Like in the previous design the top 128 banks will lock the address latch to protect from unwanted bankswitching. If you don't wan't this protection and have all 256 banks unprotected you can leave out the 1N4148 diode. In that case you can also replace the 1K resistor with a wire bridge to save on parts :P

 

 

post-5461-0-64994200-1413382572_thumb.gif

Share this post


Link to post
Share on other sites

Thanks for the modifications, this opens up more doors :)

I'll quickly mention here for others to read that a new, more powerful menu is on its way and I'm working on a pcb using blinky's design.

This will allow others to make multicards easaly and I'll try to make it easy to add roms that are bigger than 4k.

Not all >4k roms will work, but I'll give it my best shot and it sure will be worth it.

Right now I have limited time to work on this project, but I put a few minutes in it at least 5 days a week.

More to come!... hopefully others will get interested.

 

And thanks again for the source code, I will check it out later.

It's always interesting to see someone else's code.

Edited by DrWho198

Share this post


Link to post
Share on other sites

After a setback shortly after the previous post, I had to buy myself a new computer and lost track of the project.

Knowing this project is getting old I would still like to keep you guys posted of progress.

At this point I have working PCB's, and working menu's. I used to have some tools, but I need to reprogram them because the source was in VB6 and now I'm using VB.net.

 

One of the problems I have with the menu that I have now is to get a perfect scanline count. I made the source dynamic so that changing the menu would be a breeze, but when I lower the number of games on screen, the scanline count drops. This can be fixed ofcourse, but my atari programming is only at a beginners level and tricks to keep a steady scanline count somtimes still puzzle me. Too often things happen that I can't explain yet. That said... I will release some source code for those interested.

 

Here is a pic of the PCB I made:

post-37130-0-46035500-1441018242_thumb.jpg

 

At the left is my testing PCB with eprom socket. The reset button is still missing.

Share this post


Link to post
Share on other sites

You can use a timer for the menu too. That should help getting the total scan line count constant.

Share this post


Link to post
Share on other sites

It's the timer that confuses me, can you give me a clear example of how to use it?

Here is the code that I'm working with now.

I know its still a bit messy and the documenting is sometimes out of date, but I guess that's not a big problem for you.

MegacardMenu v1-4.asm

Edited by DrWho198

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