So I’ve been feeling a little run down lately, with all the hard work of getting RedPower 2 out there and working in all the various cases. Especially considering how badly 1.8.1 broke Forge.
So today, being a Friday and being a good day for goofing around, I put on my mad hat and threw a mad tea party. By which I mean, I decided to do something fun for the pure fun of it.
I make no big secret of the fact that I have a full 3-tier tech tree planned for RedPower, stretching far into the technological future. It’s easy to lose sight of that fact when RedPower World just looks like another “ores and tools” mod, rather than the resources for future mods. The existing work on RedPower is Tech 1, and I’m just starting to inch into Tech 2 with Blue Alloy and the Blutricity system. It takes a while, though, because I have to clear all the prerequisites, figure out crafting paths to each planned milestone, and all that.
Today, though, I threw all of that to the wind. In the name of my own sanity, I broke ground on a new RedPower module: RedPower Control.
It’s a Tech 3 module.
The items to craft the items to craft the items required to craft these blocks don’t exist yet.
There are a lot of new blocks there, so here’s a brief rundown:
The CPU block (on the left) contains a 6502 microprocessor, 8K of RAM, and a Universal Parallel Bus interface, with a stylish front-end modeled after the famous PDP-8.
Behind the CPU block is a trail of backplane blocks, which provide expansion for the CPU local bus. You can connect up to 7 backplane blocks, and each one represents the next 8k bank of the 64k address space.
8k RAM expansion
Currently the only expansion block you can add to the CPU local bus, it adds 8k more RAM to the computer. You can have up to 64k, but you will likely save one bank for a system ROM (to be added soon).
The ribbon cable connects Universal Parallel Bus (UPB) endpoints. It comes complete with all the features you would expect in a RedPower wire.
A monitor modeled after the one Commodore sold with the C64, except this one is a UPB peripheral, and has a built-in keyboard. Right-clicking it opens the GUI, where you interact with the computer.
So let’s have some FAQ’s before anyone asks them:
Is this a real computer in Minecraft?
YES. This is a real 8-bit microcomputer like a family might have owned in the early 1980s. It’s based on the same 6502 microprocessor that drove the Commodore 64, and it supports up to a full 64k of RAM.
Does it work?
To be honest, I spent most of today doing up the art assets, getting the basic framework to work, and writing the console font rendering code. At the moment, it doesn’t do anything. But it will!
What does it run?
Whatever is on the system ROM. I haven’t finished that part yet. I plan to start by writing a FORTH interpreter, to get people started, but since the system is relatively simple and 6502-based, I expect other people will send in system ROM images that I can add to the default set. Who knows, maybe someone will write a BASIC interpreter eventually.
What can I do with it?
In addition to the various things that you can do with just a computer and a display, I plan to add a UPB-connected IO expander, which connects to a bundled cable. That way, you can control your world using a computer, if you’re not afraid to write a little software!
When is this coming out
This is a Tech 3 module. I may choose to release an early-adopters preview with temporary crafting recipes (probably involving diamond blocks), or I may wait until Tech 3.
Do the backplanes have to be behind the CPU
Yes. The local bus has to be fast, or using computers would cause considerable lag. Really, it’s for your own good.
Can I network them to make a cluster?
The UPB is multimaster capable, so you can put multiple CPUs on the same ribbon, but they can’t directly address one another. Still, a clever person might find a way to pass messages between CPUs this way, by using a shared peripheral of some sort.
I just uploaded a new version, RP2pr2b. This is basically just prerelease 2 with a bunch of bug fixes, so no new content.
The following bugs are fixed:
Duplication bug with filter on a chest with single items.
Losing the item inside a filter when broken.
Panel placement failing.
Multiple tube placement eats tubes.
TileTube is missing a mapping on server.
Diamonds get renamed to emeralds (you will have to delete redpower.lang from your config directory for this to be fixed).
Breaking rubber saplings creates items that crash.
Hollow covers and tubes.
Missed a texture case with custom-textured jacketed.
Bundle colors are getting mixed up.
Shears on rubber leaves drop the wrong block.
RedPower 2 Prerelease 2 (RP2pr2) is out.
You can get it here, or click the Download button at the top.
New in this version: - The Filter has been added, and tube routing has been completed. This should make Machine quite usable now. - The Deployer is an almost complete rewrite, and can do almost anything a player can. This includes using buckets, throwing eggs, and many other things. - SMP support! Relatively untested, so there may be bugs. - Re-modularized the release. - Fixed a mess of bugs. - New config system should automatically resolve ID conflicts from now on. - Fixed TMI issues.
Known issues: - The Forge ore dictionary isn’t done yet, so it will still generate its own ores. - There are still game balance issues. - This version is save-incompatible with RP2pr1. The save format should be stable now, though, so future versions should remain compatible. - Microblocks can’t be broken in Creative mode. This isn’t a simple bug, but a major architectural change in 1.8.1. I’m working on it, but it’ll be a bit before I can fix it.
- Panels are currently broken.
- In certain cases, tubes get used up without placing.
- The Filter has an item duplication bug.
Unofficial recipe list (expired, to be fixed).
So I’ve been working on RedPower Machine some more.
The first thing I did was implement all the missing tube routing code. Tubes are actually useful now. An item will move to the first available valid destination, and in the absence of valid destinations, will instead move to the output of a transposer or block breaker, back-stuffing the output buffer and shutting down that machine until space clears for it to continue operation.
The next thing I did was to start work on the next new block in Machine, the Filter. It’s an upgraded Transposer that contains a single inventory slot to determine which types of items it can process. If you’ve ever used the Allocator, this is the same idea. It’s not done yet, but I have graphics:
In other news, SMP is working and I’m half-way through the configuration system update. RP2pr2 should be out in a couple days.
Okay, so if you’re using the prerelease, here’s a list of FAQs. If you ask any of these, not only won’t I respond, but I’ll delete your comment.
The Forge ore dictionary will handle any interaction between mods that make similar ore types. This means that copper, tin, etc will share nicely with IC². It’s not done yet, but this is still a prerelease.
TMI doesn’t work properly with the prerelease.
- The dark matter pick from EE gets confused by marble and basalt. It tries to mine the whole deposit using a recursive algorithm that isn’t suited for mining thousands of blocks at once.
- There are some major bugs in the Deployer that are causing item duplication in some cases.
- The whole tube routing system is missing, so if you do anything more than simple A-to-B with them, they won’t do what you want.
- Stone bricks can’t currently be cut up, but that will be done for the next version.
- Custom-textured jacketed wires have texture issues right now.
Dirt covers render incorrectly in inventory.
I haven’t done any playtesting yet, so this isn’t what I’d call the final balance. Ores may be too common.
Trees and volcanos are currently using a relatively boring algorithm to determine placement. I have a better one planned, but that won’t get in until pr3.
Yes, I plan to make RedPower 2 modular. I didn’t get a chance to finish up some internal architectural changes that currently make that impossible, but RPpr2 should be.
Alright, I finally got through the work list for RedPower World, and I know a lot of people are getting impatient, so here we go.
This is ALPHA GRADE software. It is positively FULL of bugs. More than that, Prerelease 2 will change the way RedPower is configured, so unless you’re very careful to update your config files when that happens, your PR1 saves will be corrupted upon load in PR2.
This is a prerelease version of RedPower 2. It comes complete with all the things in RP1, plus World and Machine. A lot of things have changed, and much of it is undocumented. Recipe book is probably a good idea.
You make wafers by baking smooth stone in a furnace, and red alloy can only be made with an alloy furnace. Try to make a furnace with brick blocks to get one.
I have every intention of making RedPower 2 modular, but there’s still a lot of work going on internally that will make that rather difficult, at least for the time being. And a small technical hiccup has broken SMP, but I’ll have that sorted for PR2 also.
EDIT: Yes, I know that it might be interacting badly with item spawners like TMI right now. That’s just a side-effect of the code that I didn’t finish for PR2.
So I’m working on a new tile for RedPower, the Alloy Furnace.
It’s meant to handle cases where you want to heat a bunch of things together. It’ll be the main way of making Red Alloy, Blue Alloy, Brass, and any other alloys I decide to add. Since I have 3 alloys already, it felt like the right time to add this. I’m also going to add a bunch of convenience recipes that I think should be quite useful.
This will likely ship as part of Core, and be enabled by any package that uses it. I plan to make RedPower Wiring require them, as well as Blutricity.
The “on” screenshot doesn’t yet include the flame particles, so it looks a little flat.
I added some primitive tool selection, which lets me build slightly more complicated things.
I also did a lot of invisible work under the hood.
So I decided to tinker with Minia a little tonight. To be honest, I needed the same function for both RP and Minia, so it gave me an excuse to finally re-work the block tracer in Minia. The new one actually works.
I also imported a lot of the new textures from RedPower, making sure to remove any layers that were derived from Minecraft media. For example, here’s my own cobblestone layers applied to my Minia base granite:
It currently looks a little dull because I have no lighting engine, but at least I’m building things now.
I’m thinking I should re-do the granite texture though. It’s a little dull and not rock-like enough. It works out well as a cobblestone but not as well on its own or as a brick.