Multi-review: MSX Memory Mapper, MEGA-MAPPER and MEMORY SAMURAI (Part 1 of 2)
Posted by Javi Lavandeira in Hardware, MSX, Retro, Reviews, Technology | July 13, 2016How do you even review a memory expansion cartridge? Usually you just plug it into a cartridge slot, turn on the computer, and that’s all: your MSX computer now has more memory. There isn’t really much else to say, or at least there wasn’t, until now.
In this review we’re going to see two traditional MSX memory expansions (Repro Factory‘s MSX Memory Mapper and 8bits4ever!‘s MEGA-MAPPER), plus a very special new arrival: Classic PC & Game Rescue Committee’s MEMORY SAMURAI, which brings an astonishing 16MB of memory to our MSX computers.
I’ve never seen so much memory in an MSX computer before, much less know what to do with it. It is awesome nonetheless.
Keep reading, because there’s a lot to talk about.
First, some technical background
All these cartridges are memory mappers. Before getting into the review itself I’m going to explain roughly how memory works in MSX computers.
Slots
The CPU in MSX computers is the Zilog Z80 (or a compatible one). This processor can access only 64KB of memory at a time, so in order to use more memory the MSX uses a technique known as bank switching. The MSX has up to four memory banks of 64KB each, called slots.
It works like this: the Z80 address space is split up in four 16KB pieces called pages:
Then, using a hardware mechanism, the programmer selects what memory bank will appear on each memory page of the CPU. This means that page 0 of the CPU address space can be connected to page 0 from slots 0 to 3, page 1 of the CPU can be page 1 from slots 0 to 3, and so on.
As an example, the Toshiba HX-10 (64KB model) has this memory configuration:
- ROM in pages 0 and 1 of slot 0
- RAM in pages 0 to 3 of slot 2
- Slots 1 and 3 are connected to the cartridge slots.
- Pages 2 and 3 of slot 0 are unused
When this machine boots into MSX BASIC it starts with this slot configuration:
All MSX generations support this kind of bank switching, from the most basic MSX(1) computer to the most powerful MSX turbo R.
We can easily see that using only these slots an MSX computer can have at most 256KB of total memory, after adding together ROM, RAM, and whatever we plug into the cartridge slots.
Subslots
The second generation of MSX computers extended the concept of slots in order to allow for more memory. From MSX2 and up a slot can be extended in order to support up to four subslots (also called extended, secondary, or expanded slots).
The Z80 address space is still split into four 16KB pages, and each of them can be connected to any slot from 0 to 3 as before. However, when a page is connected to a slot that is extended we have to also specify a subslot.
As an example, the Panasonic FS-A1F. This machine is a basic MSX2 with 64KB of RAM, the A1 Cockpit application in ROM, and a floppy disk drive. It has the following slot configuration:
Slots that aren’t expanded are known as primary or basic slots. In the case of the Panasonic FS-A1F, slots 0, 1 and 2 are primary, and slot 3 is expanded.
Expanded slots cannot be expanded any further.
A simple calculation gives that if all slots were expanded (which never happens), an MSX2 computer (or higher) could have at most 1MB of total memory, if we were relying only on these memory banks.
Using slots and subslots works well enough for the applications that come integrated with the computer and for system ROMs. However, having several subslots full of RAM wouldn’t be very helpful because we can only connect a given slot/subslot page to the same page number of the CPU address space. Locating and using all the RAM in this situation is complicated for the programmer because of all the bank switching required.
Memory mappers
In addition to these, the MSX2 standard defines an optional extension to support more memory: the memory mapper. Most (if not all) the MSX2/MSX2+/MSX turbo R computers with more than 64KB of RAM use this.
The mapper consist in a collection of RAM blocks, each of them 16KB, called segments. Depending on its size it can contain from 4 to 256 of these segments, always in powers of two: 4, 8, 16, 32, 64, 128 or 256 segments for a total of 64, 128, 256, 512, 1024, 2048 or 4096 KB.
A mapper occupies the four pages of the slot or subslot to which it is connected, and there’s a hardware mechanism that allows the software to select what mapper segment is connected to each page of the slot:
Note that the same mapper segment can be assigned to more than one page simultaneously. In the example above, segment 0 is assigned to page 0 and 3 at the same time. This means that both pages contain a mirror of each other.
The Philips NMS 8250 is an MSX2 machine with a 128KB memory mapper connected to subslot 3-2. A possible memory configuration under MSX BASIC could be this:
The memory mapper is perfect for storing program data because we can very easily swap the visible segment(s) and put them in any page of the Z80 CPU.
Note that there can be more than one memory mapper in an MSX computer. MSX-DOS2 supports up to 8 of them. As a curiosity, after accounting for slots assigned to ROM an MSX can have a theoretical maximum of up to 52MB of RAM.
MSX1 computers can use memory mapper cartridges, but since the mapper is an MSX2 extension, software written with the MSX1 specification in mind will only be aware of the active 64KB, regardless of the mapper size. Some applications written for MSX2 and higher (such as the MSX-DOS2 operating system) will run just fine on an MSX1 and will be able to use the mapper without issues, as long as they don’t require any other hardware not present in the MSX1.
The reviews
Now that we know that a memory mapper is, let’s review the cartridges.
MSX Memory Mapper by Repro Factory
Manufacturer: Repro Factory
This is a 1MB (64 segments) memory mapper. It is very well built with a full-color label and uses the injection moulding cases built by Korean user Overrich, which are top quality. You wouldn’t be able to tell the difference between this product and something sold by a large-scale manufacturer during the commercial years of the MSX.
I don’t have much to say about how it works, because it’s dead simple: just plug it into an available slot cartridge. It works perfectly regardless of whether it’s plugged directly to a primary cartridge slot, or to an extended slot in an expander such as Supersoniqs‘ Modulon.
It’s also very economical: just 36 euro + shipping. However, it’s out of stock as of this writing and not listed anymore in Repro Shop’s online shop.
For just a little more (42 euro) Repro Factory also sells the Musical Memory Mapper, a version of this cartridge that in addition to the memory mapper also contains the Sega SG1000 sound chip. This cartridge is also out of stock, but you can register your email address to be notified when there are more units available.
This cartridge is sold standalone: no box and no instructions (they aren’t needed).
Summary
MSX Memory Mapper
- Size: 1024KB (64 segments)
- Price: 36 euro + shipping
- Availability: currently unavailable
- Packaging: none
- Works on slot expanders: yes
- Country of origin: France
Musical Memory Mapper
- Size: 1024KB (64 segments)
- Price: 42 euro + shipping
- Availability: out of stock (ask Repro Shop for information about future batches)
- Packaging: none
- Works on slot expanders: yes
- Country of origin: France
MEGA-MAPPER by 8bits4ever!
Manufacturer: 8bits4ever!
Like the MSX Memory Mapper this cartridge also uses Overrich’s case. It usually comes in black, but mine is white, kind of a limited edition. ;-)
As you can see in the photos below, the cartridges look fantastic:
As with all their other MSX products, this one is also very professionally built. It’s available in three sizes: 1MB, 2MB or 4MB and it’s also very economical: 45 euro (1MB version), 50 euro (2MB) or 55 euro (4MB) with worldwide shipping included. It works flawlessly both in the primary slot and in an slot expander. I have the 4MB version.
It arrives well protected in a cardboard case with a paper label. Nothing fancy, but it’s perfect to keep the cartridge nice and clean when not in use.
As of this writing it’s also out of stock, so please contact 8bits4ever! for availability.
Summary
MEGA-MAPPER
- Size: 1024 / 2048 / 4096 KB (64 / 128 / 256 segments)
- Price: 45 / 50 / 55 euro (worldwide shipping included)
- Availability: out of stock (ask 8bits4ever! for information about future batches)
- Packaging: cardboard box with bubble-wrap
- Works on slot expanders: yes
- Country of origin: Spain
MEMORY SAMURAI by Classic PC & Game Rescue Committee
Manufacturer: Classic PC & Game Rescue Committe
This one is a very different beast. At 16 MB, it is, to my knowledge, the biggest memory expansion built so far for MSX computers. If I’m not mistaken, it’s the biggest memory expansion that can be built. Update: Laurens points out that the Playsoniq also comes with a 16 MB mapper. Thanks!
However, that’s not the only striking feature of this cartridge. The case design itself is another first, and it looks very different from any other MSX cartridge I’ve ever seen, while still looking good.
Because of these two points this one requires a more extended review. Stay tuned for the next day or two.
Nice article, and really good that memory mappers are readily available! I have the MMM myself, pretty happy with it. Maybe worth noting for your follow-up, the PlaySoniq afaik also has a 16 MB mapper.
Updated, thanks!
Pingback: Completo artículo sobre las últimas expansiones de memoria de MSX – MSXBlog
Pingback: Slots y subslots, ¿qué son? – MSXBlog
I really ask how to get advantage of 1024Kb RAM on MSX. Perhaps custom apps to store a lot of info in RAM in order to optimize, but in real games is not easy to use.
Thanks for the complete review.
Offtopic question: How to define custom avatar as Laurens does? I don’t see a register button.
Thanks.
It’s a Gravatar (https://en.gravatar.com).
Well, in games it’s easy to use as well, once you have a few routines to access the mapper segments and put/retrieve data from there…
Instruction for Musical Memory Mapper is available here:
http://www.msxvillage.fr/upload/mmm_doc.zip
Pingback: Domingão do Ag0ny: slots, slots, expansões e mais expansões! | Retrocomputaria
“MSX1 computers can use memory mapper cartridges, but because they don’t have the circuitry to change the active segments they can only see 64KB of RAM, regardless of the mapper size.”
Wait, I have an “IDE Mapper” cartridge by Tecnobytes, and apparently the computer CAN switch segments, since it runs MSXDOS 2. Or am I understanding something incorrectly?
No, you’re understanding it correctly and you’re completely right. That sentence I wrote in the review isn’t completely accurate.
The memory mapper was defined in the MSX2 Technical Handbook, so it’s not part of the MSX1 specification and there are no MSX1 machines that come with it.
However, the memory mapper cartridge itself contains the circuitry. MSX-DOS2 was created with MSX2 and higher in mind, but the only MSX2 hardware it used is the mapper, so it runs fine on an MSX1 if you happen to have a mapper cartridge plugged in.
This would be similar to plugging an FM-PAC cartridge to an MSX1, or a cartridge with a V9938 video chip: as long as you have software that supports it, it will work.
I’ll fix the article to clarify this.
I’ve fixed the article to clarify that part. Now it says:
“MSX1 computers can use memory mapper cartridges, but since the mapper is an MSX2 extension, software written with the MSX1 specification in mind will only be aware of the active 64KB, regardless of the mapper size. Some applications written for MSX2 and higher (such as the MSX-DOS2 operating system) will run just fine on an MSX1 and will be able to use the mapper without issues, as long as they don’t require any other hardware not present in the MSX1.”
Thanks for pointing it out. :-)