MSX and whatnot

MSX hybrid concept by Arne

Thoughts

Apparently the Japanese microcomputer market was very fragmented in the early 80's, lacking a standard, and the MSX was a successful attempt to address this. Here in my parts of Europe we had the popular ZX Spectrum and C64 so the MSX didn't do so well.

The MSX is a bit of a character, which makes it interesting to me. The hardcoded 16 color palette is not bad compared to other palettes, and the graphics chip is quite unusual in how it stores color data, giving the graphics both a 2 color and 15 color feel.

There are a lot of interesting MSX cases (most of them keyboard-style computers) to choose from (from many manufacturers), so it's not hard to find a few favourites. Having gone through them all, the European computers suddenly seem rather dull in their design! I think the reason for this is partly that the MSX has more exposed features for the designer to work with (cartridge slots, arrow keys, indicator lights, heat dissipation, etc.).

It's a SONY!

This is my SONY HITBIT F1XD MSX2, ain't she a beauty? I need a new drive belt for the floppy drive, a Japanese travel adapter (230V to 100V, 40A), and perhaps a RGB-SCART cable for improved image quality. This model is from 1987 and sold for... ¥ 54,800 according to one source. Possibly first MSX with internal floppy drive. The Amiga had better specs (and double the retail price), but the Japanese also had the Sharp X68000 which was superior to the Amiga (and much more expensive).

Now looking to acquire a red HB-101 or 201, which is the other half of "my" concept above.

SONY HITBIT F1XD MSX

Look at them sliders! REN-SHA... it sounds like a state of mind, a Nirvana achievable by tapping a button really fast. The LED array is delicious too. Oh, what's that? A perfect-yellow Pause button?

SONY HITBIT F1XD MSX

The red floppy drive makes the design. The F1XV variant with the black drive isn't as good looking even though it's identical in form. Sticker/print placement is excellent.

SONY HITBIT F1XD MSX

Yeah look at that drive. You just want to stick a floppy in it. You know, the floppies which go into this thing are actually pretty stiff.

SONY HITBIT F1XD MSX

Two cartridge slots. One could be used to unlock secrets in games, or expand memory. Built in PSU. There's a foot under the centre of the machine, preventing the sag you might see on Amigas. Realizing this, I immediately put some (adhesive) small furniture pads in front-back middle positions on my A500 and A1200.

SONY HITBIT HB-201 MSX

What's this? A white HB-201 is taking the stage! Look at this thing! Now look at the turd sitting on your desk. Oh, what's that? You've got an RGB-LED backlit turd? Hold on, let me just push these orange missile-base security override keys, head over to the tactile joystick interface panel and pilot an ICBM to your doorstep. It is time to rid the world of minimalist rounded corners and F-117 Nighthawk wannabe garbageware!

SONY HITBIT HB-201 MSX

Such joy... stick. You just want to waggle it. Trust me, you DO want to waggle it. It makes a very satisfying click-clack sound. The HB-201 is from 1984 and thus predates the F1XD. It allegedly packs 64kB of RAM, whilst my HB-101 (codename MEZZO?) has 16kB RAM (plus 16kB VRAM). Speaking of...

SONY HITBIT HB-101 MSX

Hhhhngh.

SONY HITBIT HB-101 MSX

Hhhhngh.

SONY HITBIT HB-101 MSX

...!

OpenMSX

In case you are looking to install and setup OpenMSX (0.13.0) for OSX, here's a guide/tutorial which can save you some trouble:

  1. Download the .dmg install thingy from openmsx.org.
  2. Inside is a penguin ".app" (mascot from a well known MSX game). I dragged this to my application folder, but maybe it can go anywhere. Now, if you start OpenMSX you'll just see the built in BIOS. I think it provides the foundation for loading cartridge games and stuff. This is probably done by drag-drop or console (Cmd+L). However, your adventure has just begun if you are to reach the land of BASIC...
  3. The application is actually a folder. Right-click on it and Show Package Contents. Navigate to the systemroms/ folder. This is the part of your journey where you must raise the Jolly Roger, set sail and find a treasure chest full of RUM... sorry, ROMs. But... how do you know what to look for?
  4. Rumours hint at a treasure map located on the island of machines/
  5. Trek back to machines/ you hopefully will find a whole bunch of .xml files, one for each machine. These contain references to the ROM files that you're looking for.
  6. ...
  7. Back from your adventure? On Linux I'd set the machine via command line / boot parameter, but on OSX I couldn't figure out how so instead I started OpenMSX, then brought up the console (Cmd+L) (or F10 elsewhere). The console is like the Quake console - a place to type the magic words. Our spellbook tells us the words are set default_machine Sony_HB-101P (or whichever beast you wish to summon). Close OpenMSX and restart it, and the ancient beast will appear.
  8. Go into BASIC, and type
    • 10 a=a+2
    • 20 print "Bobby eats";A;"disgusting snails!"
    • 30 goto 10
    • run
  9. Hover with the mouse near top of window - a strip might appear. It's a time vortex! Click it to jump in. Remember when Bobby only ate 14 snails? Now you can experience that moment again! Go back even further, to before The Program was finished, and change history.

The JSM

Xanadu mockup

While the MSX2 is nice in some ways, I don't like when graphics chips become bloated with legacy features. The MSX1 restrictions have more character, but I didn't like the 1-bit sprites. I thought, wouldn't it be nice if the sprites used the background tile restrictions, so I begun writing an emulated Video Display Processor of my own.

To the left: Xanadu gfx test (in Photoshop). Note that sprites are using the same format as background tiles in my VDP design. Tiles can only have 2 colours per 8 pixel row, and 8 of these rows make up a 8x8 tile. The MSX could only scroll on a tile-step resolution, giving games a rather jerky appearance. Castle Excellent didn't have screen scroll, but used background sprites for the enemies and characters, making those movements jerky. Some games would overlay sprites to "break" restrictions. Megaman 1 on the NES did this with the face, and Dragon Slayer II on the MSX did it for the main character.

JSM Mode 0 design

This is the basic idea for mode 0. I use a Display List which can be read at scanline porch, reading info about mode, byte skipping (pitch), scanline height, etc. Tiles are stored using eight color and eight bitmap bytes. The tile maps are stored in 16-bit cells, and atm. I use 10 bits to select tile, so I can have 1024 of them. The tile maps can be any size that fits in VRAM and can be easily scrolled.

JSM Mode 0 design

Very sloppy code testing the basic idea out. Sub-tile scrolling, not yet implemented, requires extra attention for the two edge cases (tile column 0 and 32) which must/should not draw outside of the virtual 256x192 screen. Of course, an actual ASIC implementation would look very different from whatever I write, however optimized.

JSM Mode 1

JSM Mode 1

I also wrote a mode 1 which is just reads the VRAM bytes as 4 bit per pixel framebuffer (chunky pixels, not bitplane'd). 64kB fills up pretty quickly in this mode. Would be cool to write emulated HW acceleration for BLIT'ing, lines and filled polygons too. Mode 1 supports the DisplayList so I can for example show the same memory area on different scanlines, creating split screen or mirror effects. Scrolling works, but since each byte is 2 pixels some extra work is needed for the "uneven" edge cases. Currently I'm safe from out-of-bounds errors because I "AND" all memory addresses with a bounds constant. Naturally, the VDP can be told to read any memory address as display list, tile graphics, tile map or frame buffer, causing glitch effects.

JSM? That stands for "Japanese Simplified Machine" (MSX *cough*), or "Jansson's Simulated Microcomp", or... just some madness. I'm using my JMP v3 palette for this project.

Cartridge design

To be perfectly honest, I'm not all that excited by game cartridges. I can see their advantages, such as loading time and data retention, but floppy disks are much more mechanical and alive. Still, never having designed any cartridges, I had to try. First I was thinking that the cartridge and label band colour could together indicate genre/game type, but being able to match colours to the mood of the game and label cover art is artistically useful. I made a few different models.

Regarding the trans plastic one... the chips should really face the back of the cart instead, so a label won't obscure them. This way the label will only obscure the naked back of the circuit board. On the other hand, this means that without label, the boring side will face the user while in the slot. With a trans case, you want the user to see the parts, so maybe label should go on the back of the cart then...?

JSM Cartridge

JSM Cartridge

JSM Cartridge

JSM Cartridge

JSM Cartridge

JSM Cartridge

JSM Cartridge

JSM Cartridge

JSM Cartridge

JSM Cartridge

JSM Cartridge

Box

A sturdy, thick Nintendo DS style box which can hold either disks or carts. Though Psygnosis' Amiga boxes were nice, cardboard is terrible for longevity. I'm thinking the box/clam covers should have a theme like Nintendo's (EU) black boxes, or Casio's MSX boxes.

While no game should be garbage, my Seal of Quality would have more to do with polish, effort and craftsmanship than the game being good (which can be subjective). If Nintendo's Seal of Quality was a response to the crap-game-spam of the video game crash, mine would perhaps be a response to how some games are delivered/presented nowadays. Just opening a game box should not be the first disappointment. Points given for stuff like posters, game maps, bestiary...

For the cover, I'm using Metrostyle, a font similar to the Eurostile used on the Casio MSX covers, which I... borrowed heavily from. The design is missing some scanlines of increasing thickness... which are a very 80's arcade thing. Maybe on the back. I guess it would be nice to have a custom drawn logo/title on the cover, but it's useful to have a readable, standardised one too. Maybe the Metrostyle title text could go on the top of the carts, because that area feels redundant with the drawn logo I have there now.

Being able to swap out the cover would be cool, but there's no way to fit an alternative one inside the box without folding I suppose. The Seal of Quality would be gold-emboss print.


Science keyboard!

Unrelated, a keyboard which lets you do science even when you're just tweeting garbage. I mean, how can pushing keys like these not be science?

Evaporate, Wave, HandEdit/End, Repeat, Target, Y split, Under, info, Orbit, Print, All select/list, Save, Destruct, Find, Grab, Half, Join, Kill, Load, Undo/Recurve, Cut out, Contain Copies, paste, Blank, +New, Move.

Extras


Art by Arne Niklas Jansson

AndroidArts.com