| |
taper
Registered: Dec 2001 Posts: 119 |
Event id #2391 : The 2015 REU Compo
Welcome to the 2015 REU Compo --- Hosted by LFT, Ruk and Taper!
See the event-page on: The 2015 REU Compo
Your mission is to create the most awesome one-file demo that runs on a standard C64 with a 512 kB REU and no disk drive.
Background
==========
The Commodore RAM Expansion Unit (REU) is a cartridge that provides secondary storage to the C64. It was introduced at CES in 1985. The memory in the REU cannot be accessed directly from the CPU (hence
"secondary"). Instead, the CPU must instruct the REU to transfer a given amount of data to or from the cartridge. The REU then takes over the bus, stalling the CPU, and transfers one byte per cycle.
This is basically all there is to it. Apart from the extra storage, the REU does not make the C64 faster or more powerful---although see below for some intriguing possibilities.
The largest REU available from Commodore (the 1750) was equipped with 512 kB of RAM. Nowadays, it is possible to emulate REUs with as much as 16 MB, e.g. using VICE or the 1541 Ultimate. Even though you can only use 512 kB in this competition, there should be no problems using
the RAM expansion features in the 1541U/1541U-II, Chameleon64 or any other device fully compatible with the Commodore 1750 REU.
Rules
=====
1. Your entry must be in .PRG format with a BASIC header. The file must load to address $801, and end before it reaches the I/O area at $d000. The gives a maximum file size of 51201 bytes.
2. You may assume that a REU of at least 512 kB is available.
3. Your entry must work with a larger REU (i.e. you cannot assume that the upper address bits are ignored). You may not use the extra RAM available in such configurations.
4. You cannot make any assumptions about the initial contents of REU memory.
5. Your entry must work on a real C64 with a real 512 kB REU from Commodore. Please keep in mind that there could still be bugs in the emulators.
6. Deadline is set to 2015-12-31 at 23:59 in a time zone of your choice. Your contribution needs to be mailed to reu@wuff.se to be accepted. You are free to create a CSDb entry for your contribution, else we will do it for you.
7. Immediately following the deadline, voting will take place on CSDb during a period of two weeks. Anonymous votes will be counted. We allow self-voting unless you have multiple personalities.
Suggestions
===========
For your inspiration, here are some ways in which a C64 demo might benefit from an REU:
Obviously, the extra RAM is useful. For instance, the demo might pre-compute large amounts of sprite graphics, and then quickly retrieve a subset of the data just before it's needed.
The fast transfer rate could be used to speed up scrolling operations: You can copy a large bitmap from the C64 to the REU, and then back again at a slightly different address.
Last but not least, the REU has a mode where every byte in a transfer gets written to the same destination address. This can be used to display graphics using the idle byte, for instance. The target address
could also be an I/O register, and this might enable some new VIC tricks.
Technical information
=====================
Please refer to the following documents for details about the REU programming interface:
http://www.zimmers.net/anonftp/pub/cbm/documents/chipdata/progr..
http://codebase64.org/doku.php?id=base:reu_registers
Happy hacking!
/LFT, Ruk & Taper |
|
... 70 posts hidden. Click here to view all posts.... |
| |
Trash
Registered: Jan 2002 Posts: 122 |
Quote: When the VIC needs to steal cycles for DMA, will the currently running REU-DMA simply be halted and resumed after the VIC-DMA? Will the VIC also stall the REU an additional 3c like it does when stalling the CPU?
It will be halted and then resumed after the VIC-DMA is finished (I verified this during my shortlived idea of 40 columns of FLI)... |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
Quote: It will be halted and then resumed after the VIC-DMA is finished (I verified this during my shortlived idea of 40 columns of FLI)...
Yeah, trying to use the REU on a bad line is a bad idea... :) |
| |
Firehawk
Registered: Aug 2011 Posts: 31 |
Yes the VIC will take the bus from the REU when it needs to (try streaming lots of data to $d021 when display is enabled) - this is also seen if you try to make i.e. $d020 splits and have sprites on the screen (this is a good way to understand where and when each spritecombination halts the bus - I would advice using VICE in border=debug to see this).
Another thing that is possible though (although not FLI, but close) would be to stream to $d021 during the non-badlines, which would add some color freedom. |
| |
Dane
Registered: May 2002 Posts: 423 |
A CSDB REU category would be nice. If not, I'm sure the onefile-demo chart will look different next year. |
| |
Rastah Bar Account closed
Registered: Oct 2012 Posts: 336 |
Bit off-topic, but have you seen this cool REU project?
http://dragonslair64.areaaperta.com/ |
| |
T.M.R Account closed
Registered: Dec 2001 Posts: 749 |
Quoting DaneA CSDB REU category would be nice. If not, I'm sure the onefile-demo chart will look different next year.
Yeah, that's a very good point... |
| |
Slammer
Registered: Feb 2004 Posts: 416 |
Really interesting compo, and good limitations.
Does anybody know how well tested the VICE emulation of the REU is? Is it cycle exact? If we are going to make VIC-timing effects this is critical. How many have an actual REU so they can test their productions? |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
We've done some cycle exact tests in Booze and so far Vice, x64sc latest version has delivered correct behaviour. I'm sure there are flaws, but the obvious REU-parts, like FPP variants and the like seems to work. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11390 |
recent VICE passes all known testcases .... and no other emulation does so far, so better have a real REU handy for testing on the real thing :) |
| |
ChristopherJam
Registered: Aug 2004 Posts: 1409 |
I thought we pretty much agreed over in When is a One-File Demo not a One-File Demo? that the one-file category was for entries fitting Krill's definition:
Quoting Krill Classic onefilers are up to 202 blocks, $0801-$cfff, and load in a single pass before running, no autostart, no tricks, no disk images. |
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 - Next |