Site logo

Software Hardware Music Rants About Me

Radish Sabre

Radish Sabre is my entry for the 2012 #msxdev compo. Naturally, it's a work in progress, but here's what I'm willing to reveal at this point: it's a top-down action-adventure for the MSX and MSX2 platforms in a 128KB MegaROM cartridge format. It's more than a little inspired by the Legend of Zelda games (particularily the Gameboy Color entries,) but I hope to make sure it has its own special feel to it. Also, it stars a bunny-girl.


This is our protagonist. She's a young swordswoman whose village is under threat, and she must embark on a quest to save it, using a sword carved from a woody radish (hence the title, if you couldn't tell.) Her journey will be long and difficult, but she's a scrappy young lady and can probably handle it okay. Also she has a not-exactly mysterious past which may possibly figure into the story somehow, hint hint.

This is our villain. He's the big-shot ruler of a sizable empire on the other side of the mountains from the heroine's village. He's also responsible for a lot of their woes. Thus, she needs to go pay him a visit and make him see the light of reason, by means of whacking him about the head with the flat of her sword. He has a not-at-all mysterious past which may possibly figure into the story somehow, hint hint.


So obviously, as I mentioned, this is more than a bit inspired by The Legend of Zelda, in particular the Oracle duology. I want it to have a bit more of an emphasis on speed and movement than those games, though - the MSX has more screen space to work with than the Gameboy, and Link always felt a bit sluggish to me. It's also going to draw a bit from the Seiken Densetsu/Mana series, though not quite as much.

I also want to get a bit more story going than your usual action-adventure, though we'll see exactly how well that works with the space constraints; I don't know exactly how much text I'm going to be able to fit in with everything else, and I don't want to cut down on the game significantly to make room for more text. Guess we'll see...

The game will be compatible with plain MSX1 computers with 64KB of RAM - I hope to cut that down to 48KB or 32KB if possible, but we'll have to see on that. However, it is going to look better on MSX2 machines (or MSX1 machines with a V9938 VDP added.) The music will play on a machine with a plain PSG, but if you have an MSX-Music expansion or an SCC cartridge, it'll sound a whole lot nicer :)


As of 4/28/2011:

I've got the basics of the plot all hashed out, although I'm not going to share too much here ;) It's not exactly a stunning tale of intrigue that will defy all expectations, but I think it's all right for this kind of game.

I've got character designs for most of the important characters done - still need to take care of the minor characters, though.

If you were paying way too much attention, you might have noticed that the title screen up top is colored differently than the version on the MSXDev site. One of the advantages to playing this game on the MSX2 is that I can make use of tweaked palettes, though I'm not going to stray too far from the MSX1 palette, otherwise I'd need separate graphics data...

I've got a nice little text scroller for the intro that uses double-sized sprites for a full-height vertical scroll. It's not quite finished, though - I need to put together a routine to assemble the appropriate sprite data from a variable-width font, as storing the raw sprite data would eat up far too much ROM. (Since I'm doing this, I'm also considering using the variable-width font for the game text - it'd certainly look nice.) Unfortunately, I really want to do a fire effect for the background of the scroller, but my attempt to write one gives a single-digit FPS :( I do have an idea to make it faster, but we'll have to see how that works out...

I'm working on getting a music engine put together, as I need something that's both compact and flexible, since I only have 128KB of ROM to work with. I'd guess that it's between 33% and 50% complete, though that's not counting the debugging. The real tricky bit is going to be making it work with MSX-Music expansions, since the Yamaha FM chips have a completely loony way of working the pitch calculations that's going to make implementing pitch-bends hell :/

I do have a number of kick-ass songs written for the game. Since one of the MSXDev requirements is that it work with only the PSG, I've been writing the songs with three square-wave channels and then re-arranging and expanding them for SCC (five user-defined waveform channels plus PSG drums) after the base song sounds good; this seems to be working very well.

I've got a simple dictionary-based text compression scheme set up and some tools built to compress the text. The compression isn't terribly great, though (only around 70%,) unless I can build the dictionary more efficiently. This is kind of a problem, as I think text is going to be one of the things most compromised by my space constraints. I may wind up swapping this out for a different scheme; decompression speed is not an object, since gamers are used to character-delay printing, but I'm going to need something with a small memory footprint.

As of 3/10/2012:

Well, time for an update. Other projects and general lack of personal time got in the way of Radish Sabre and I had to abandon it for MSXDev '11, hoping to continue it in MSXDev '12. Then, for a bit it looked like there wouldn't be an MSXDev '12, and while that's thankfully not the case, the new MSXDev '12 has tightened the restrictions to the point (48KB ROM, 16KB RAM) where there's frankly no way the game I want to make is going to fit in this contest. Therefore, I've re-entered Radish Sabre in the #msxdev 2012 compo, instead. I regret this, because I liked MSXDev's focus on MSX1 projects, but if I have to choose between chopping vast chunks off the game or entering it in a broader contest, I know which I'm going to pick.

However, I don't plan on that really changing anything about the game, other than upgrading MSX2 and SCC or MSX-Music from a suggestion to a strong recommendation - the game will still run on a 64KB MSX1, but it really is going to be nicer on MSX2. It's also possible that I'll ditch my plans for compression and upgrade the ROM to 256KB, but I'd prefer not to do that - I find 128KB ROMs to be much more manageable in my MegaFlashROM cart, and I'm sure other people do too.

So yes, Radish Sabre is back underway. Hopefully this year I can do a better job of making time for it, and see it through to completion by December!

On the subject of what did get done:

The soundtrack is somewhere around half-complete. The aforementioned write-in-three-channels technique actually worked quite well, and some of the songs are among my favorites out of everything I've written. On the other hand, what I had for the player code turned into a mess, so I ditched it and have to start from scratch...ah well, as Fred Brooks said, "plan to throw one away; you will, anyhow."

The plot has also gotten a lot more fleshed-out (though still not finished.) Again, this isn't exactly Tolstoy, but I find it always helps to have a coherent thread to a project for everything else to arrange itself around. (Though oddly enough, it's taken on some themes that I never really intended or expected...crazy, crazy.)