Jump to content
IGNORED

Pac-man for Channel F first and only cartridge yet...


e5frog

Recommended Posts

First off, this is very cool - I would have never thought that the Channel F could do this.

 

That said, and don't take this the wrong way, but if the posted video is accurate, the game plays slower than the arcade. I compared it against MAME running Pac-Man, and my unscientific estimate is that the arcade runs roughly 50% faster. Assuming my observations are correct, is the Channel F simply running as fast as it can, or is there a delay loop in your code that can be modified to speed up the game?

 

Also, I'm curious what it takes to build a cart. Do you need some of the original Fairchild chips, or did you manage to replicate their functions with modern hardware?

Link to comment
Share on other sites

First off, this is very cool - I would have never thought that the Channel F could do this.

 

That said, and don't take this the wrong way, but if the posted video is accurate, the game plays slower than the arcade. I compared it against MAME running Pac-Man, and my unscientific estimate is that the arcade runs roughly 50% faster. Assuming my observations are correct, is the Channel F simply running as fast as it can, or is there a delay loop in your code that can be modified to speed up the game?

 

Also, I'm curious what it takes to build a cart. Do you need some of the original Fairchild chips, or did you manage to replicate their functions with modern hardware?

 

 

It's running as fast as possible, I've put a lot of effort in trying to shorten code and speed things up (counting cycle times of routines) and currently that's the best I could do. The most time consuming are the necessary delays in graphics plotting, these have been shorten as much as possible. In MESS there's no need for them, but a real unit will get distorted graphics if it's set to small.

 

For a "professional" Pac-Man player it should be no great effort to play through all levels... A mediocre player like myself runs out of lives after a few levels and set high score around 50000 perhaps. ;-)

 

To be able to run your own programs you need a memory interface circuit, it's a co-processor of the F8 that gives you a full address bus that the F8 processor system doesn't originally have. Communication between CPU an co-processors uses five control lines and an 8 bit data in/out-put, the control lines makes the built in registers (like the program counter) in all co-processors change according to set rules. Sending 00000 on the control lines makes something happen in all chips and so on up to 11111... There are fairly detailed information about this on http://www.veswiki.com in one of the pdf-files.

 

You could of course get a "Program Storage Unit"-chip and thereby eliminate the need for a memory interface, but I don't think these exist in a programmable version, only as "masked roms". Another option is to use a FPGA-circuit or similar to emulate the function of the memory interface, a large enough FPGA-circuit will probably hold all available programs as well. As there aren't any detailed information (in the pdf mentioned above) what exactly happens at all control line states this option is a bit tricky - not that anyone tried it (yet) as far as I know.

 

 

It's a little tricky. ;-)

Link to comment
Share on other sites

Wow I just watched the video that you posted on YouTube and I see what a difference the Channel F II sound makes. I had been playing Pac-Man on MESS using the original Channel F audio and the intro song to the level sounded horrible, but it sounds great in this version. I'm going to have to download the modified MESS so I can play this with the sounds the way they're supposed to. This game is a masterpiece on so many levels....great work!

Link to comment
Share on other sites

First off, this is very cool - I would have never thought that the Channel F could do this.

 

That said, and don't take this the wrong way, but if the posted video is accurate, the game plays slower than the arcade. I compared it against MAME running Pac-Man, and my unscientific estimate is that the arcade runs roughly 50% faster. Assuming my observations are correct, is the Channel F simply running as fast as it can, or is there a delay loop in your code that can be modified to speed up the game?

 

Also, I'm curious what it takes to build a cart. Do you need some of the original Fairchild chips, or did you manage to replicate their functions with modern hardware?

 

 

It's running as fast as possible, I've put a lot of effort in trying to shorten code and speed things up (counting cycle times of routines) and currently that's the best I could do. The most time consuming are the necessary delays in graphics plotting, these have been shorten as much as possible. In MESS there's no need for them, but a real unit will get distorted graphics if it's set to small.

 

For a "professional" Pac-Man player it should be no great effort to play through all levels... A mediocre player like myself runs out of lives after a few levels and set high score around 50000 perhaps. ;-)

 

To be able to run your own programs you need a memory interface circuit, it's a co-processor of the F8 that gives you a full address bus that the F8 processor system doesn't originally have. Communication between CPU an co-processors uses five control lines and an 8 bit data in/out-put, the control lines makes the built in registers (like the program counter) in all co-processors change according to set rules. Sending 00000 on the control lines makes something happen in all chips and so on up to 11111... There are fairly detailed information about this on http://www.veswiki.com in one of the pdf-files.

 

You could of course get a "Program Storage Unit"-chip and thereby eliminate the need for a memory interface, but I don't think these exist in a programmable version, only as "masked roms". Another option is to use a FPGA-circuit or similar to emulate the function of the memory interface, a large enough FPGA-circuit will probably hold all available programs as well. As there aren't any detailed information (in the pdf mentioned above) what exactly happens at all control line states this option is a bit tricky - not that anyone tried it (yet) as far as I know.

 

 

It's a little tricky. ;-)

So which control line states do you use? If you are really only using a few, that would make custom hardware easier to design.
Link to comment
Share on other sites

That's a good question, I don't know, I haven't checked, as I can get the original interface circuits I don't really care about that right now.

 

If I was to make a replacement I'd make sure it works like the original one to make sure that it would work with any future programs as well.

Edited by e5frog
Link to comment
Share on other sites

I'd just like to add that I found a relatively inexpensive source of 3583 chips, so Fredric could order some in order to make cartridges. Without them, it may have been even harder or never had happened to see Pac-Man in a real cartridge.

 

BTW: I was the auctioneer (or the auctioneer's apprentice) at the Retro Gathering. The Pac-Man cartridge was the 3rd most expensive item on the whole auction, after a boxed Atari TT030 and a PAL Commodore SX-64. Actually the price difference between this Pac-Man cartridge and a whole SX-64 was 35-40 USD... :-D

Link to comment
Share on other sites

If I was to make a replacement I'd make sure it works like the original one to make sure that it would work with any future programs as well.

 

How about using something like a PIC or 8x52 CPU in the cartridge which would actually run the game, and a CPLD to feed instructions to the F8 micro in the console? I would think that would open up all sorts of interesting possibilities. Beyond having more RAM to play with, the game-engine code could run a lot faster and even screen redraw code could run somewhat faster. Further, from what I understand of the display hardware, writes to the display are delayed while awaiting a blanking interval. If that is the case, it may be possible for a microcontroller to observe write behavior and infer from that when the blanking intervals occur. Once it has locked on, it could use a timer to predict each vertical blank.

 

Wonder if that would work?

Link to comment
Share on other sites

  • 1 month later...

Wow, I didn't realize there was such an active Channel F homebrew scene. Pac-man definitely looks impressive!

 

If I may, I'd like to take this opportunity to promote my Channel F and VideoBrain Yahoo group:

 

http://tech.groups.yahoo.com/group/channel_f_and_videobrain/

 

Anyone interested is free to join. At the moment, I'm particularly interested in getting the VideoBrain (a cartridge-based computer also using the Fairchild F8 CPU) dumped. Maybe someone here would be able to help.

Link to comment
Share on other sites

Sean Riddle built a dumper for the Channel F carts and also the 3851 program storage units that are usually used with the CPU-circuit. I'm guessing the Videobrain has at least a CPU and one of these 3851-circuits unless they have a 3850 (CPU), a 3853 Static Memory Interface and plain Eproms...

 

 

I have looked into making a manual and box for the Pac-Man game as well. We'll see how it comes out. Main priority is however to make the PCB.

Link to comment
Share on other sites

  • 3 weeks later...

First working prototype:

 

Pq2rMrbJ.jpg

 

 

Now there are two finished PCB:s that I'm going to build Pac-Man cartridges of, I'm planning on getting as much money for these two as possible to be able to buy parts to build more.

 

Pq2rOiqr.jpg

 

The first and second all-new Pac-Man built from scratch!

 

 

Are you interested in buying one of these, please reply in thread or via message/e-mail with your bid.

I might put them on eBay or similar but I thought I should ask here first.

 

 

 

In the total series so far this will be #4 and #5, and as before I'll add the buyer's name on the back label (or any name the buyer prefers), see previous posts.

Link to comment
Share on other sites

The first three Pac-Man cartridges were built on modified SABA#20 (Chess) carts, all the upcoming carts will be built from scratch on brand new PCB:s and new components (well as new as they come, NOS would perhaps be more correct).

 

The game is still the same.

 

Perhaps I should make a post in "Marketplace" instead.

Link to comment
Share on other sites

Are RPGs (simple ones) possible on the system? Or is there enough memory?
So the only RAM you have (unless there's extra RAM in the cartridge) are the 64 bytes that are internal to the CPU. Which is not very much.

 

 

Found this old quote and I just wanted to add that Pac-Man has 2kB extra RAM, and without using bank switching you can have 63487 bytes of RAM on a cartridge, not that it would be useful unless you already had something programmed into it.

 

But let's say you have a game of 16kB, you could have as much as 47103 bytes of RAM if you'd like to.

 

Why? The first $0000-$07FF is used by BIOS, so there's "only" $F7FF left for ROM and RAM of your choice. But as demonstrated in Sean Riddle's Multi-Cart build - it's quite easy to add a bank-switcher to use even more memory for a game, a whole '040-circuit could be used using the proper switching (that's 512 kB)!

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