Amiga RTG (Graphics card) working and in Beta
The latest Amiga AGA core is in beta with support for P96 compatible RTG. It also includes a hardware blitter engine which is used by the card driver to speed up window movements.
There is still work to do increasing the pixel clock, but it’s nice to see these modes working cleanly over DVI/HDMI. Thanks especially to Jim Drew for work on the driver.
See the forum for more details.
/Mike
Amiga roadmap and DDR memory fun
Time for another update. Sometimes it seems things go a bit quiet here – while it’s true September is a busy month with my other (money earning) activities, there has been a lot going on with Replay.
I’ve just finished the tweaks for the DDR controller needed for the vector games (Asteroids and StarWars) and the RTG graphics mode for the Amiga.
Now we can get 2 x 128bits per system clock (~8MHz) from the memory system, which is enough to run the CPU at full speed and decent resolution on the RTG. The RTG is fully written, including the driver, but there is still some work to do debugging the new code.
I’ve completed the Amiga cache system as well, but it requires some tuning to get timing closure still. This gives about x4 performance increase on the current core. The cache features prefetch which will read ahead of the CPU and try to keep the buffer as full as possible. For burst access, the memory system can keep up with the CPU, but I noticed today that it’s possible for DRAM refresh to get locked out. I’m adding a mode (refresh panic) which asks the cache to hold off for a cycle while the DRAM catches up with the house keeping.
I’m still working hard to test and ship boards, and I’m heading to China shortly to see how the production run is going.
/Mike
Libs and Pacmans
I’ve been working on moving the existing (old) cores like Scramble and Asteroids over to the new Replay framework. While I was at it, I tidied up the library wrapper which has made the “plumbing” a lot simpler. I’ve started documentation and work on a webpage for this.
I also realized that my Pacman core was a little dated, other people had added Pengo and other variants to the hardware – so we needed to catch up, this is the original after all.
The Replay framework lets you easily change the ROM contents in an ini file :
ROM = roms_pengo/ep1689c.8, 0, 0x00000000
ROM = roms_pengo/ep1690b.7, 0, 0x00001000
ROM = roms_pengo/ep1691b.15, 0, 0x00002000
The command ROM is followed by a file name, a size (or 0 for all of it) and an address to upload to.
If the top bit is set in the address, the data is routed to an internal bus and used for loading internal FPGA memories. In this case it goes to external DRAM.
The Pacman core is a good starting point to see how the library DRAM controller is used, as well as the block RAM init blocks.
I discovered Pengo has additional ROMs, but also (and it’s not well documented) an additional SRAM
— vram 0x000-0x3FF
— cram 0x400-0x7FF
— ram 0x800-0xBFF << PENGO ONLY
— ram 0xC00-0xFFF
The game actually runs reasonably without this memory, so it took a while to find.
I also needed a way to enable/disable the extra Pengo features from the INI file (which also comes up as an option on the OSD – On Screen Display).
title = “PacMan Setup”
item = “Hardware”, 0x0000000F,static
option = “Pengo”, 0x00000001,default
Here, config bit 0 is set high for Pengo hardware. Static means a core reset is required to change this (done from the OSD or by selecting a new INI file)
I’ve got a little work to do still for LizWiz and MsPacman.
This code is checked in and available on the public SVN.
/MikeJ
Back from holiday
Right, returned from a brief holiday.
I’ve moved all the CAD projects and libraries over to my internal SVN repository. This was necessary to sync the work between the workstation and laptop, so I can get the daughter board and AGA debug board out to production.
Focus this week is shipping more boards, I know some of you are waiting patiently….
I’m also going to start adding project pages to this website, and see if I can fix a few more bugs in the Amiga core.
As always, check the forum for the latest gossip.