This page contains hardware and software information about my project GeoAction. GeoAction is my second project of Action Replay clone. The first one was made in 2004, more information you can find here ActionClone
In GeoAction project I've used a part of I2C bus driver made by Lee Davison , please read his page for more details I2C

Special thanks for Jerzy Sobola, YTM/Elysium, Lee Davison and Kenji for information about hardware and software, GEOS modification and other stuff or support

Hardware Information


The heart of GeoAction is Xilinx XC9572XL in vqfp64 package. On the board you can also find :
- 512KB static RAM,
- 32-256 Flash ROM,
- RTC on I2C,
- some TTL chips and other equipment.


The GeoAction can work in four (five in 1.2 version) modes:

Action Replay


In this mode GeoAction emulates full working Action Replay Cartridge version from 4 to 6, Nordic Power or Atomic Power. Here old versions
You can use software made specially for AR,too.


georam.jpg GEORAM at beginning was a memory expansion made for GEOS, but now you can use it with game „Maniac Mansion” or with other tools
In GEOS you can use 512kB of memory expansion as virtual drive(s). Program CONFIGURE in GEOS can set one 1571 virtual drive or two 1541 drives.
GEOS disc with configure for GEORAM GEOSDISC
If you want to change mode to GeoRam you have to setup dip switch, and 'zap' action replay or press F1 and F3 in boot menu.
From version 1.2 GeoRam can be write protected !!! If you want to protect GEOS to wipe out GeoRam drive simply switch SW4 to left

Ram Cart 2.5

Ram Cart is old Polish memory expansion cartridge, with 128KB RAM.
Main goals of this card are:
- GEOS support YTM GEOS
- virtual drive (7) with boot menu after reset Firmware
- macroassembler, install with load”*”8,1, ASSY
- burst copier BURST
Important: If you want to use firmware, set dip-switch and press F1 or F3 in boot menu. It's impossible to boot up firmware with 'zap' command.

Flash ROM

This is only service mode, you can only flash new image of Action Replay , Nordic Power or Atomic Power
Use AtmelFlasher with 1541 Turbo Turbo
or use AtmelFlasher in normal speed (MMC2IEC): Normal

Easy Flash

In this mode (version 1.2 and new) is possible to play games made for Easy Flash module.
For example Prince of Persia PoP very slow install
Games are contained in 0,5MB SRAM without battery game will wipe out after power down.


All modes can be set by dip switch.
1. Flash Mode ⇔ ActionReplay,
2. GeoRam ⇔ RamCart,
4. RamCart WRITE protect ⇔ RamCart READ and write

Update: Easy Flash Mode can be set by switch no 1 in Flash position and switch no. 4 in WRITE position
Flash Mode can be set only with switch no.4 in position READ.


The main emulation of Action Replay is similar to Retro Replay by CyberpunX, but you can't flash rom's made for RR into GeoAction.
Registers and memory map of GeoAction depends of actual mode and looks as follow:

Flash Mode

Writing to registers:

$de00 - LSB address of Flash ROM/RAM

bit (0 to 7) ⇒ address (8 to 15)

$de01 - MSB address of Flash ROM/RAM

bit (0 to 2) ⇒ address (16 to 18)
Bit (7) - 0-RAM 1-ROM


Flash ROM or Ram page memory.

Action Replay Mode

$DE00 (write)

Bit (0) controls GAME line: 0 assert
Bit (1) controls EXROM line: 1 assert
Bit (2) controls ZAP internal signal, 1- turn OFF Action Replay Mode, switch to Memory Expansion
Bit (3) A13, ROM/RAM address line
Bit (4) A14, ROM/RAM address line
Bit (5) RamEnable internal signal, 0-ROM, 1-RAM
Bit (6) Freezer Reset (1) set after freeze
Bit (7) RamAllow internal signal, (1) allow RAM bank switching (8kB)

$DE01 (write only)

Bit (2) A15,ROM/RAM address line
Bit (3) A16,ROM/RAM address line
Bit (4) A17,ROM/RAM address line
Bit (5) A18,ROM/RAM address line

$DE00 (read)

bit (0) GAME status
bit (1) EXROM status
bit (2) ZAP status
Bit (3) A13, ROM/RAM address line
Bit (4) A14, ROM/RAM address line
Bit (5) RamEnable status
Bit (6) Freezer Reset status
Bit (7) A15, ROM/RAM address line

GeoRam,NeoRam, BBram mode

$DFFE (write only)

bit (0 to 5) ⇒ address (8 to 13)

$DFFF (write only)

bit (0 to 4) ⇒ address (14 to 18)

RamCart Mode

$DE00 (write only)

bit (0 to 7) ⇒ address (8 to 15)

$DE01 (write only)

bit (0 to 2) ⇒ address (16 to 18)
bit (7) ⇒ 0 - Memory page at $8000 visible,


$FF Ram page memory.

I2C registers

In register $de02 or $df02(GEORAM mode, version 1.1 and newer) there are only two bits:
bit (0) control of DATA line
bit (1) control of CLOCK line
Write to register
Bit (0) - 0 ⇒ DATA line is always ZERO you can read only ZERO from line
Bit (1) - 0 ⇒ CLOCK line is always ZERO you can read only ZERO from line
Reading from register
Reading status of DATA or CLOCK line is possible only if you set bit (0) or bit (1) to one.
Please visit Lee Davidson web page
I2C driver in assembler

projekt64/geoaction.txt · ostatnio zmienione: 2011/12/14 07:53 przez kisiel
CC Attribution-Noncommercial-Share Alike 3.0 Unported Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0