New User Here! Hello everyone!

By keith56

Master (152)

keith56's picture

05-04-2017, 11:32

Can I take this opportunity to say hello and introduce myself!

I'm mainly a CPC developer - I was the author of the game 'Chibi Akumas' which was written in assembly

I've had an MSX1 for a little while, but I want to start learning more about it, so I thought I'd sign up and start reading the forum
I've got a working MSX1 (Casio MX-101), and MSX2 (Panasonic FS-A1MKII) which has no power supply (I got both cheap from the 'Junk' section of Hard off) - it has a weird three prong PSU which looks to be the same as the NeoGeoCD one (but the voltages are different, and it needs AC!)

I'm interested in learning the MSX for three reasons

1. I like learning about old systems, and the MSX is very different to the CPC even though they were the same generation and CPU - so I'm curious to see how it works!

2. I'm living in Japan and I can speak and read Japanese - I want to learn about the 'local' 8 bit worked, and how it worked with Kanji etc.

3. I'm thinking the MSX might be interesting to develop for - I want to understand it enough to work out if there's a possibility to write a future game which can be compiled for both CPC and MSX2

Well, a couple of questions if I may

1. I did all my CPC development with Winape, and it's built in assembler made it really easy - do any of the MSX emulators have a similar inbuilt assembler?

2. if anyone can point me to some good 'Low level' guides to the MSX2 that I can start reading to get an understanding of programming the hardware - On the CPC I found it best to avoid using the firmware, so I would like to try to learn to do the same for the MSX

Thanks in advance! I'll be lurking around here reading up everything I can, and maybe one day I'll be in a position to develop something for MSX!

Thanks,
Keith

Login or register to post comments

By hamlet

Scribe (2467)

hamlet's picture

05-04-2017, 12:28

Welcome keith56!
It´s very nice to see people from other systems joining the MSX scene. Often there is a lot in common, and old experience brings new ideas to the group. Recently I worked with my C64 stuff and get an Apple IIe, to see they join the same processor, even the same BASIC language. Back in the 80s the users didn´t communicate with each other too much and many similar problems and bugs had to be fixed in both worlds. With OpenMSX we have an great emulator and a lot of fantastic people doing great work. But there are other users who can explain more detailed than I could.

By sd_snatcher

Prophet (3047)

sd_snatcher's picture

05-04-2017, 13:30

Hello, and be very welcome to the MSX community, keith56!

It's always good to have experienced developers coming to the party. Smile

You have some nifty machines at hand. If I may, since you're in Japan I would advice you to take the opportunity to also get a Panasonic MSX2+ (WX or WSX models) or an MSX Turbo-R too.

As you can read Japanese, the best source of information is the official MSX Turbo-R datapack. You can download it in PDF format here, and there's an online OCR project o going here. It's the book you should read before anything else.

Another invaluable source of information is the MSX Assembly Page.

The MSX-Wiki here on MRC has also many excellent articles. Some of them I can promptly recommend you:

- Compatibility Testing
- Joystick
- Mouse/Trackball
- Touchpad
- Light Pen
- Light Gun

Bifi also published a very detailed and useful article on the MegaROM mapped types used on the MSX.

And if you like challenges, take a read on the MSX AcidTests page too.

By Eugeny_Brychkov

Paragon (1088)

Eugeny_Brychkov's picture

05-04-2017, 13:31

Welcome!

keith56 wrote:

I'm mainly a CPC developer

In late 80s I had been visiting community with CPC computers - enjoying rectangular shape of their 160K diskettes Smile I still would want to have cassette and disk version of machines into my collection. Only game I recall we were playing on it is Jet Set Willy...

keith56 wrote:

1. I like learning about old systems, and the MSX is very different to the CPC even though they were the same generation and CPU - so I'm curious to see how it works!

Probably you may start with this resource, though I only used "MSX Red Book Revised" from the set. Another good one is here. But all these are just dump of tech info, and you will, most probably, require examples as sometimes explanation may not be sufficient and there're dependencies on the devices' programming and a lot of different configurations to be aware of when programming.

keith56 wrote:

2. I'm living in Japan and I can speak and read Japanese - I want to learn about the 'local' 8 bit worked, and how it worked with Kanji etc.

I have counter-question to you. Do you know any Japanese MSX communities? I was trying to find those with no luck. People who may be in such communities just do not respond for email, Facebook and LinkedIn contacts. We are actually almost missing Japanese coverage here on MRC (and I personally having issues covering Japan with my GR8NET device).

keith56 wrote:

3. I'm thinking the MSX might be interesting to develop for - I want to understand it enough to work out if there's a possibility to write a future game which can be compiled for both CPC and MSX2

I am not a specialist in CPC, but to my understanding compiling should br no issue because of same CPU, but designing will require finding similarities in the configurations - you should consider different access to video, and memory expansion methods for MSX (e.g. memory mapping) - I am not sure what similar methods exist for CPC. What you can do is to look into Gremlin games (Auf Wiedersehen Monty, Death Wish 3, Venom Strikes Back) - they are ports from Sinclar (if I am not mistaken), and use commonalities of both platforms.

keith56 wrote:

1. I did all my CPC development with Winape, and it's built in assembler made it really easy - do any of the MSX emulators have a similar inbuilt assembler?

I use two emulators - openMSX and blueMSX. OpenMSX is active, blueMSX (to my understanding) is not much in development and support any more. Both are having debuggers, with their features, pros and bugs. OpenMSX, while provides more features to developer, is also more complex in use, but you always can find people who may advise and there's documentation available on the web. Compiling can be performed by standard Z80 assembler, or native MSX assembly compilation tools (M80/L80).

keith56 wrote:

2. if anyone can point me to some good 'Low level' guides to the MSX2 that I can start reading to get an understanding of programming the hardware - On the CPC I found it best to avoid using the firmware, so I would like to try to learn to do the same for the MSX

Already did, but you will surely have questions. Search answers on the internet, or come here asking them.
You can use MSX firmware, but due to MSX architecture, it will be your task as programmer to ensure firmware is in place where you expect it to be.

keith56 wrote:

Thanks in advance! I'll be lurking around here reading up everything I can, and maybe one day I'll be in a position to develop something for MSX!

Maybe first thing to do is trying its MSX BASIC. Write simple graphical program using sprites, very basic game where you must press arrow keys to move the character. I am sure you will manage it quickly and effectively.

By sd_snatcher

Prophet (3047)

sd_snatcher's picture

05-04-2017, 14:40

keith56 wrote:

1. I did all my CPC development with Winape, and it's built in assembler made it really easy - do any of the MSX emulators have a similar inbuilt assembler?

There isn't such an emulator for the MSX. The devkit I use and recommend is:

- openMSX and openMSX-debugger
- sjasmplus

Quote:

- On the CPC I found it best to avoid using the firmware, so I would like to try to learn to do the same for the MSX

After so many years programming the MSX, the best tip I can give you on this topic is that in the MSX a programmer has to learn how to have a good relationship with its BIOS ecosystem. In the 90s until 2000s, the first thing I always did was to kick the BIOS out of the way, because I always thought it was "inefficient".

Time has passed, and from my experience, the more you fight the BIOS ecosystem, the more it hurts since it's no less than the dorsal spine of the system. You can reasonably get away bypassing the BIOS if you target only at a plain vanilla MSX1 with up to 32KB of RAM without a disk drive, and your software will probably end up restricted to that generation too.

But the MSX is all about compatibility/expansibility and as your software is expected to run on higher generation and with more extensions, it will face more compatibility problems with those, for trying to kick the BIOS butt. In the end, you end up with a program that runs only in your own machine model, and probably will require the user to strip every single extension from his computer, be it cartridges or even a mouse or touchpad.

Another tip for an aspect that usually byte he hand of developers coming from other platforms: the MSX isn't a platform for "racing the beam" algorithms, because the timing to access the VDP can vary from one machine to another. And while the CPU is synchronized with the VDP in most machines, it isn't in others.

But it's not all about bad news. On the MSX you'll have:

- A plethora of different extensions to have fun. Dozens of soundchips (IOW, "chiptune dreamland"), Kanji ROM driver, ethernet, modems, and multiple simultaneous: RS-232, mice, trackballs, touchpads, light-pens, light-guns, paddles etc
- If you follow the coding guidelines, you'll amazed by the diversity of hardware where your software will be able to run on without a single modification and while keeping the code very compact. It will run from floppy disks to hard-disks and modern SD-Cards, all in FAT file format. It will support the extensions mentioned above with very little modification. It can support different soundchips (OPLL, OPL3 and OPL4) with no modification.
- It can even run on machines with turbo, or in MSX1 models with an external cartridge to upgrade them to MSX2
- It can easily support from 8KB to more than 16MB of RAM

By keith56

Master (152)

keith56's picture

06-04-2017, 00:50

I will keep an eye out for MSX2+/R hardware - I'll buy anything that shows up in the cheap junk but it's pretty rare these days! I'm looking mainly at the MSX2 - as it's graphically better than the CPC, and seems to be a good 'base level' that everyone can support

Those Datapack docs are spot on! exactly what I needed to get started! also thanks for all the other suggestions, I've seen a few already, but I'll read over them all when I have free time until I get my head around it all!

I can't say I know of any MSX communities, I've only really started looking properly into the MSX over the last week or so though, but I've tended to end up on the european sites even when searching on google japan

I'll have a look at the OpenMSX emulator, I've been using BlueMsx a bit, but I'm so new to it it makes no difference to me, and want to do some serious reading up of the tech docs before I start ASM development - as people have said, I will do some basic programming first to get the hang of the different features.

Re disabling the bios - on the CPC ditching the bios gave full access to the shadow registers and all the memory (Amstrad Firmware uses about 8k ram) - when using 2 screen buffers, 32k of the 64k ram was used by the screens alone, so getting rid of the firmware was a must (I actually recall it from the rom when I need to read from disk again) - it may not be so needed on the MSX2 with it's separate video ram - I'll have a better idea what I want to do when I understand more about the hardware.

Thanks for all the replies!
Keith

By sd_snatcher

Prophet (3047)

sd_snatcher's picture

06-04-2017, 01:38

[qoute]I will keep an eye out for MSX2+/R hardware - I'll buy anything that shows up in the cheap junk but it's pretty rare these days!

Tip: You can buy them for decent prices at Yahoo Auctions Japan.

Quote:

I'm looking mainly at the MSX2 - as it's graphically better than the CPC, and seems to be a good 'base level' that everyone can support

The MSX2+ is, as the name suggests, an enhanced MSX2. They fixed some of the bloopers of the MSX2, and as a bonus they added the video modes that support 12499 or 19268 simultaneous colors. Not bad for an 8bit machine, don't you think? :)
As another bonuses, the majority of the MSX2+ models come with an FM soundchip, have better image quality and are much easier to have their internal RAM expanded.

The MSX2+ are pretty common these days. Nearly everyone in the community have one. And there are very few software for it, so it would be really very welcome if you were to create some gems for this underrated machine.

Datapack: Since you are an experienced Z80 coder, those docs will be a lot of fun. :)

Reading the MSX-Datapack, you'll see that the MSX in in fact an architecture, much like a miniature of a modern computer, and not just a CPU with some chips attached. There are APIs clearly defined for nearly everything. Each of the extension BIOSes add up to the ecosystem and interact with the other BIOSes as needed.

Quote:

Re disabling the bios - on the CPC ditching the bios gave full access to the shadow registers and all the memory (Amstrad Firmware uses about 8k ram) - when using 2 screen buffers, 32k of the 64k ram was used by the screens alone, so getting rid of the firmware was a must (I actually recall it from the rom when I need to read from disk again) - it may not be so needed on the MSX2 with it's separate video ram - I'll have a better idea what I want to do when I understand more about the hardware.

Interesting. Indeed, with such restrictions I agree that it was necessary to kick the BIOS away on the CPC.

On the MSX, you have complete access to the entire address range, because of the ingenuity of the slot selection architecture. This means that each slot is individually addressable, similar to nodes in a network. There are no devices occupying a fixed range, nor there are address conflicts at all on the MSX because of this characteristic. And this is the basis of its real zerocfg/plug-and-play system. No configuration jumpers are needed, and no complicate protocol to negotiate addresses is needed to. All of this just because the architecture solves the address conflict problem on its root.

openMSX vs BlueMSX: When it comes to development, openMSX is unbeatable. There are many juicy features for developers, like watchpoints, conditions, breakpoints with very complex conditions. And its built-in TCL script support is very powerful.

By msx fan finland

Champion (479)

msx fan finland's picture

11-06-2017, 14:33

Welcome to all new.
we all love MSX

M.S.X. = Music Sex eXtacy

write : what.mika@gmail.com if you need msx machines

Mika