MSX and whatnot

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.).

Another case concept. Right now it feels like most form factors are either... these big stealth-look towers, or the smaller apple rounded corner squares thingies that's hard to get into. I guess in my timeline, the MSX3 materialised in 1990 as it was supposed to, and then MSX4 in say 1994 (almost missing the 3D train?). My machine here would be a sort of... maybe 10 year anniversary model of the F1XD, supporting the older games, whilst also working as a compact tower PC if upgraded with a larger HDD and more work RAM (8 work, 4 graphics by default?). I'm assuming they've turned the legacy hardware functionality into ASICs at this point, to keep things compact... or likely removed, though not on this system.

Joypad redesign of the JS-55.

It's a Sony64? 1 2 3

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.

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:

Download the .dmg install thingy from openmsx.org. 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... 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? Rumours hint at a treasure map located on the island of machines/ 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. ... 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. Go into BASIC, and type 10 a=a+2

20 print "Bobby eats";A;"disgusting snails!"

30 goto 10

run 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

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.

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.

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.

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...?

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.

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

SDC-750 Loving the old datacorders which puts the tape up on an easel. This is a variant of the SDC-500.

Purple/Trans Cassette tape design

Floppysette. Best, or worst of both worlds?

Final Soldier - 16KB BASIC game I started on for my 101. It's a simplified X-COM/RebelstarRaiders-like. Considers the Screen 2 tile table divisions (pink lines). Font has to be duplicated, but most GUI gfx are static and won't move so I'm able to use like 600 tiles or somesuch.

Design sketches for Final Soldier

PC-8801FE-like MF2DD concept sneaking in here.

Art by Arne Niklas Jansson