Download CoreWin
Here's where you can download the latest version of CoreWin (version 2.3):
- The CoreWin executable is ready to run. No installation necessary; just extract it to somewhere and double-click on it.
- The user's guide comes in three formats: the Word 2000 document and HTML page have screen shots, while the text version does not.
- Need some simple warriors to get started? This set of basic warriors includes some classics (Imp, Midget, Mice). They're small and easy to understand, but no competition for modern warriors.
- If you'd like all of these files in a single download, here's the whole package.
Release Notes for version 2.3
New Features
- Maximum speed is 2.5x faster than before
- Unlimited number of warriors
- Smaller memory usage
- New tournament type: Benchmark (each warrior in group 1 fights each warrior in group 2)
- Control over warrior placements
- Click display to select view location
- Highlight range of locations shown by core views
- Go to effective address location
- New pre-defined source code variable: RANDOM
- Custom core initialization instruction
- Support of ;author directive
Future Versions
The list of planned enhancements is finally starting to shrink, but there are still at least two more versions' worth.
Here's what the current schedule looks like:
- 2.4: Customization and usability
- Keyboard shortcuts
- Custom warrior colors
- Resizable main window
- Selectable display scaling
- Complete visibility of large cores
- "Clear core display" button
- Save and restore core state
- Tools for automating optimization (randry operators)
- Help buttons
- 2.5+: The rest of the list (some of these are speculative)
- Core view option: follow processes of selected warrior
- Ability to run a battle backward
- Search for pattern in core, with wildcards
- Search and replace capability in Edit Warrior window
- Window showing Core statistics (live warriors, total processes, % coverage, I'm open to suggestions)
- Advanced developer tools (optima constants calculator, simulated annealing, P^3 creation tool, others? What would you like to see?)
- Database for storing warriors and tournament results
- Integration with an external MARS engine
- P-warrior statistics (how often each component is used, and results)
Departures from the '94 Draft standard
The '94 Draft has some major flaws in the way it handles read/write limits. Warriors break or behave oddly when the two limits are not equal to each other, or when they are not factors of the core size. In order to fix these problems, I've made two changes to the algorithm that the draft recommends for calculating effective addresses:
- I inserted the following code between lines 0815 and 0816 of the draft:
if (pointer > M - (limit/2)) { return(pointer); }
This change ensures that all "local" addresses, from -limit/2 to +limit/2, remain unchanged during folding, even when the read/write limits are not factors of the core size. When they are factors of the core size, the draft behavior is unchanged.
- I inserted the following line of code immediately after lines 0938 and 0944 of the draft:
RPA = WPA;
and inserted the following line of code immediately after lines 0976 and 0979 of the draft:
RPB = WPB;
This change means that the pre-decrement and post-increment indirect address calculations use the write limit for the intermediate address calculation, leading to consistent behavior. When the read and write limits are equal to each other, the draft behavior is unchanged.