Log In  

Cart #fairchild001-6 | 2019-05-23 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Update 1 - full speed & better sound.

What is this?

An emulator for the Fairchild Channel F, the first console to use programmable ROMs and a microprocessor.
The console was released in 1975, so don't expect much in the way of graphics, gameplay, or usability.
See Wikipedia for more info.

And what's that game running?

That's a homebrewed (i.e. - NOT original) game made by Blackbird and e5frog. You can find it here.
Any sound glitches are due to the emulator, not the game, by the way. (See below)

It pushes the capabilities of the console to its limits, so its quality is considerably higher than that of the other games for the console.
It's also anachronistic - the original Pac-Man wasn't released until 1980.

And how do I play other games?

In order to play other games, you first need the console's BIOS files and the ROM for the other game you want to play. (Having these is up to you and they cannot be shared)

If you have those, press F12 to open developer tools and copy/paste the following javascript (feel free to examine it first to ensure it's safe):

Link to Javascript

After copy/pasting the above javascript, some new UI will appear in the bottom-left of the page that will allow you to upload the BIOS and cart files straight to the emulator running inside pico-8! (Via the gpio pins, if you're wondering)

By the way, a BIOS is needed since the "BIOS" included with the emulator is a homebrewed one which is only good enough for running a few games which don't use it much.

If you wish to copy the BIOS and ROM to the cart yourself - e.g. via cstore, they should be copied sequentially: BIOS SL31253 or SL90025 to location 0x0, BIOS SL31254 to location 0x400, and the cart to location 0x800. (Just like the Fairchild's own memory layout)

What are the controls?

In "1P" mode (default), the controls are:

  • arrow keys = move
  • Z = push
  • S/F = rotate left/right
  • E/D = push/pull
  • left shift = hold to control player 2 instead of player 1

In "2P" mode, the controls are:

  • arrow keys = move
  • N + arrow keys = rotate/push/pull
  • S/F/E/D = player 2 move
  • left shift + S/F/E/D = player 2 rotate/push/pull

In both modes, additional controls are:

  • X + left/down/up/right = press console key 1/2/3/4. (can also use the mouse)
  • X + Z = switch between 1P/2P modes. (can also use the mouse; only affects the controls)

What's working well?

All functionality is working and most likely bug-free, so all original and homebrew games work well, including the carts with extra memory.
(Exception: no support for the homebrewed multicart, which is too large for pico8 anyway)

Thanks to some optimizations, games now usually run at full speed.

What's not working well?

Sound has occasional glitches (either due to pico8's sound limitations or my implementation).

Keys sometime need to be pressed for a few moments to work in some games. This might be due to the original console's controls being slow to press.

What's the point of this?

Proving that emulators for non-trivial systems are possible to do in pico-8.
And just for the fun of creating and/or playing an emulator!

P#64568 2019-05-18 21:25 ( Edited 2019-05-23 18:48)

:: z80jim

Wow. Not only an emulator in Pico-8 but of a Channel F, which almost no one has heard of.. Had one of these as a kid and, yes it was crude, but it was the FIRST cartridge system. So many good memories. Great job!!!

P#64662 2019-05-21 23:27

Wow. Wonderful job!

P#64681 2019-05-22 22:33

I don't understand how this slipped by me back in May, but this is truly amazing. Your tool for "inserting" another cartridge via GPIO is an ingenious idea.

Post this on a website with a UI for uploading BIOS/games instead of having to use the console (host it on itch?) and post about it on the AtariAge forums if you haven't already, that's where the Channel F people (including e5frog) are hanging out.

P#69876 2019-11-13 13:00
:: dw817

I've seen this for a-while. Definitely beyond me. Can someone please explain to me the importance of GPIO, what it does in your own words, and why it's useful in carts ?

I've been doing a little reading up on it myself and although the documentation I found shows HOW to use it, it does not explain WHY it should be used outside of any other memory location like the very useful and valid 256-byte Cartridge Data cartdata().

P#69881 2019-11-13 17:12 ( Edited 2019-11-13 17:13)

[Please log in to post a comment]

Follow Lexaloffle:        
Generated 2019-12-09 06:01 | 0.030s | 2097k | Q:35