Chris' Epoch
Game Pocket Computer
ƒGƒ|ƒbƒN ƒQ[ƒ€ ƒ|ƒPƒbƒg ƒRƒ“ƒsƒ…[ƒ^[ iƒQ[ƒ€ƒ|ƒPƒRƒ“j
Information Page
Yes, it's huge.








What is the Game Pocket Computer?

The Epoch Game Pocket Computer (henceforth "Pokekon", its Japanese abbreviation*) was a handheld game system released by large Japanese toy manufacturer Epoch in 1984/85. For its time, it was quite advanced as far as videogames go, sporting a 75x64 pixel B&W dot-matrix display, interchangeable game cartridges, a circular D-pad, and six action/selection buttons.

Inevitable comparisons will be made to Milton Bradley's Microvision and Nintendo's GameBoy handhelds, as those were the major handheld systems that came before and after the Pokekon. The Pokekon trounces the Microvision in speed and specs, but that's understandable given the 5-year technological gap between them. Add another 5 years, and you'd be surprised to learn that the Pokekon compares favourably enough with Nintendo's handheld. (See specs below)

Needless to say since you've probably never heard of the Game Pocket Computer before, the Pokekon was an abject failure, and the GameBoy went on to become a massive success. It's quite a shame considering the system was powerful enough to give 1984 gamers a fun and dynamic experience. Only 5 game cartridges were made.

* NO RELATION TO POKEMON WHATSOEVER

Released Games
Game Pocket Computer BIOS
Mahjongg
The built-in software for the Pokekon doesn't do much, just play a short looping tune and scroll some text while drawing a spiral on-screen. There's also a built-in sliding tiles game and an extremely rudimentary pixel "paint" program. Basically, there's nothing here to hold your attention for longer than 5 minutes. It would have been nice if the system at least included a calculator or some kind of utility function, but no, a game cartridge is practically required... The cartridge that came with my system was this one - not too appealing for a kanjiphobe like myself. (I don't think even Mahjong freaks can read the tiles, they're so small.)
Reversi
Sokoban
Reversi is the non-trademark-infringing title of the popular game of Othello. I'm no pro at the game, so I never do well against the computer opponent - even at level 1. At least it has the options to take back a move, and to have the computer advise you as to the best place to put your pieces. Quite a fun time-waster. This is the ubiquitous Sokoban game. Sure, it's a mindbender, but after playing the same game on 50 different game systems, it begins to lose its lustre. At least it has a nice edit mode.
Astro Bomber
Block Maze
Here's the Pokekon version of Konami's Scramble arcade game. Fly your ship over mountains and through corridors, all the while shooting, bombing, or dodging enemies. Even though the gameplay is rather primitive compared to modern shooters, it still has enough going on at once to be a bit fun. The end-of-round bosses break up the repetition, and the opening and level clear fanfare, rather humourously, rip off a couple of Star Wars themes.
I guess it's my favourite game on the system
 This might look like a Pacman clone, but it has much more in common with BeBall (on the PC-Engine) gameplay-wise. You have to move specially-marked balls from the centre of the maze to the corners, while avoiding or attacking the enemies that chase you. It could have been fun, but the slowness of the gameplay (it moves more like an LSI game than a video game) hinders the experience.


Technical Information
 
Released
CPU
Bits
Clock Speed
RAM (bytes)
ROM
Cartridge ROM
LCD Resolution
LCD Shades
Sound / Channels
Input Buttons
Dimensions (mm)
Batteries
Battery Life
Microvision
1979
TMS1100 / i8021
4/8
100kHz
64
-
2K
16 x 16
2
1 Piezoelectric
12 + Paddle
91 x 245 x 46
2 x 9v
? 6+
Game Pocket Computer
1984
NEC ƒΚPD78c06
8
6MHz
2176
4K
8K/16K
75 x 64
2
1 Piezoelectric
10
215 x 146 x 29
4 x AA
70+
Game Boy
1989
Sharp x80
8
4.19MHz
8448+8192
256 b
32K-1024K
160 x 144
4
4 PSG
8
90 x 148 x 32
4 x AA
15
Pokemon Mini
2001
Nintendo Minx
8/16
4MHz
4096
4K
?K-1024K
96 x 64
2*
1 PSG
7
58 x 74 x 23
1 x AAA
60
* Some games display 4 shades of grey, but it is done through flickering between black and white in software. Any of the above systems can do this.
Here's the inside of the unit. Even though the LCD board necessarily takes up a lot of space, all the other boards seem very wastefully made. The spacing and layout just looks so inefficient. The Game Pokekon overall could have been made MUCH smaller, if a bit more planning had been done. Even with the same 1984 technology. Some photos of the CPU main board, courtesy of The Guru. Wow, lots of full-size electronic components here... And here's the underside of the same board. At least the CPU is a SMD.

 

Programming the Pokekon

I had heard of the Epoch Game Pocket Computer a few months ago -- I'd heard that it wasn't the first dot-matrix handheld, but it was the first one in Japan, at least. It seemed like an intriguing and forgotten handheld system. So when I found one selling quite cheaply on Yahoo auctions in January 2008, I picked it up. Of course it is a bulky system in terms of handhelds, definitely not pocket-sized (unless you hide it in Doraemon's magic pocket, as one Japanese website put it,) but its longest side is still shorter than those of both the Microvision and massive Atari Lynx (both I and II.)

It's a shame that only 5 games were released for the Pokekon, since this is a game system, and not just some junky LSI game from the 80s or some Chinese knockoff like the Game King. The LCD screen is big enough to make games almost equal to the Gameboy -- "So why not program for it?", I said to myself. :-)

First off, then, came the usual scouring of the net for Pokekon fansites, tech sites, etc. Not a lot came up. A couple of Japanese sites had some basic information about its CPU speed, RAM, and cartridge pinout. It said the CPU was an NECƒΚPD78c06 microcontroller, but there was almost no information about that on the web. "The Guru" had dumped in early 2007 some of the Pokekon ROMs for eventual emulation, but that's about where the work had stopped. He said that the ROMs are pin-compatible with standard EPROMs, so I removed the ROM from my Mahjongg cartridge, put a socket in its place, and dumped the Mahjongg ROM with my EPROM reader to figure out what made the games (and the system) tick.

My cartridge with a socket, a few wires for line swapping, and a hole cut out for an (E)EPROM.

I then went down to the nearest electronics suppliers and bought an 8K EPROM and a 32K EEPROM. The EEPROM needed a couple lines to be swapped in order to work, but it programmed and worked fine in my new dev cartridge. EEPROMs are much nicer than EPROMs for small ROM projects, because they don't need to be erased with a UV eraser for several minutes before then being programmed. They can be (re)programmed in mere minutes.

Gradually, as I modified the Mahjongg ROM and tested the EEPROM out, I figured out what a few routines did, and made up a small program to display ROM data on the Pokekon's screen. Thus, I was able to look at the Pokekon's memory map and also dump the 4K BIOS ROM internal to the 78c06 CPU. It took a bit of time to do this dumping -- visually -- but in the end the dump was successful and the checksums added up correctly.

At the same time, a few folks in the MESS development world got ahold of a disassembly of the Mahjongg game, a PDF with some instructions and info on the 78c06, and eventually, an almost full instruction list which, as it turns out, is a subset of the NEC ƒΚPD7801 CPU, a bit more common, but still pretty obscure.

Graphics on the Pokekon

Graphics are stored in 1-plane (2-colour) bitmap format and can appear anywhere in the ROM. One byte defines 8 vertical pixels, with bit 0 representing the top pixel, bit 1 representing the pixel below it, etc. The next byte defines the next 8 vertical pixels to the right of the previous byte. A set bit means that a black pixel appears at that position on the LCD, and a cleared bit means that no pixel appears (ie: white.)

Thus, when Pokekon games are viewed in a tile viewer (like YY-CHR), graphics such as the font and bitmap images appear rotated and scrambled. Setting the tile viewer's mode to Vertical rearranges them, but they are still rotated 90 degrees clockwise. The graphics have to be rotated back in order to view them in a familiar orientation. Also, whatever is black on the LCD usually appears as white in a tile viewer, so the palette needs to be adjusted accordingly.

If you want to make graphics on the Pokekon, I'd suggest you save them as 2-colour bitmaps, but also invert the colours before saving. Then import the bitmaps into a program such as YY-CHR, with the tiles set to 1-plane vertical before you do the importing. You can save the graphics to a dummy binary file so you can later insert or include the graphics in a program in the required ROM location.

->->
->->
Essential Files for Programming

A ƒΚPD7801 assembler by John Dyer. It's the only assembler I could find for this CPU family, and thus your only hope for getting your own programs onto the Game Pokekon.

As you may discover upon running it, it's a bit finicky and glitchy. All ASM code must be in UPPERCASE; labels are only distinguished by their first 6 letters, and its assembly output is not in binary, but as hex codes in ASCII. Use a hex editor (like FRHED) to import this ASCII and convert it to binary, then pad it to 4/8/16k for use in an emulator. Yeah, programming on the Pokekon is a bit of a convoluted process.

Also included in the Zip file is the opcode test asm file by the original author of the assembler, and a basic Pokekon demo asm file by me so you can see what things have to be set up in a Pokekon ROM to get it up and running.

A disassembler for the ƒΚPD7801. Should help you to figure out what makes some of the Pokekon games tick. The tracer in MESS is better for this task, I think.
uPD78xx.chl A ConTEXT highlighter for ƒΚPD assembly code. This'll make reading/writing assembly easier, as it changes the colours/text styles for different types of data, comments, and opcodes.


Technical Documents
Pokekon_Tech_Notes.txt A preliminary technical document that I wrote about the Game Pocket Computer.
uPD78c06_Instruction_Set.txt An instruction opcode list, with a few notes by me. Best if used with the PDF below.
uPD78C05A_06A.pdf A PDF from NEC describing (a bit too generally) the 78c06 CPU and its instruction set.
uPD78c06_Opcode_Table.html An opcode table in HTML, showing valid & invalid opcodes, 2-byte opcodes, etc. By me (based on Enri's table.)
EPOCH.DIS_w_Comments.a78 An in-depth disassembly of the Pokekon BIOS! Important subroutines are documented, so look here first if you want to make your own Pokekon demos!
LCD_HD44102CH.pdf A technical document about the LCD drivers, 3 of which are contained in the Pokekon.
   

Pokekon Cartridge Pinout.txt

Here is some data about the pin mapping of the cartridge and some PCB measurements, in case you wanted to try to make your own cart PCB.

(Sorry about the barrel distortion from my camera in these pics!)

Downloads
1st Pokekon Demo (by Chris Covell)

DOWNLOAD HERE

This is a multi-part demo that shows off the basic capabilities of the Game Pocket Computer. It has a scrolltext, slideshow (displaying 3 shades using dithering/flickering), a graphing function, a music, memory, and program editor (monitor), and more!

The demo can be burned to a 16K EPROM/EEPROM, or run in an emulator, like MESS. Bear in mind, however, that this demo will look & sound best on a real Game Pocket Computer system. To run it in MESS, you will need to add the BIOS ROM to MESS' ROM directory, and then point the cartridges directory to wherever you keep Pokekon game ROMs (plus this demo.)

The demo is really simple to use, but just in case, here are full instructions!


Links

Game Pokekon Page from Miniarcade. Has plenty of pics of the system, packaging, and games.
Game Pocket? Computer A Japanese site with some animating pictures of the unit and games.
Enri's Homepage has a few schematics of the Pokekon hardware. Also a ƒΚPD7801 opcode table.
MESS Emulator which has pretty much complete emulation of the Pokekon. (ROMs extra, of course.)

BACK!