MSX <-> ZX Spectrum

Page 2/5
1 | | 3 | 4 | 5

By ro

Scribe (4564)

ro's picture

12-12-2006, 14:06

damn, that ATM_turbo could be family to MSX Turbo R, gheh. (check them specs on wiki, it's funny)

By Shiru

Expert (115)

Shiru's picture

28-12-2006, 20:16

Russia, as a rather poor country still had people using 8-bitters as primary machines.
We not so poorSmile Most of that peoples is just enthusiasts of ZX (or other platforms), as many of peoples on this forum is enthusiasts of MSX. ZX was very popular in Russia until ~1995-1997, later PC's spreads widely. I don't know any peoples, who now use only ZX - most of ZX users also have PC.

ATM2 does not have 'videochip', i.e. 'VDP with VRAM, connected thru I/O ports'. There is some raster modes, with video memory as part of main RAM. No hardware sprites, no fast blocks transfers, etc. But ATM not just ZX clone, it's have 1mb RAM, and banking capabilites is extended - four 16K segments in address space, any 16K memory page can be attached in any segment.

I'm sure, AlCo can port any of his ATM games to MSX, he just need good tech docs and information about MSX - not only I/O and memory map, but also info (links to documents) about MSX-DOS, filesystem, 'executable' structure, how game code must be placed in RAM (or how MSX-DOS and other system things use RAM), and so on.

Some notes:

- Why i say all that instead of AlCo hisself? He live in small city, there is problems with internet availability. But we often communicate thru e-mail and other ways, because we often work on some projects together (all ATM games for example). And i don't have problems with internet.

- AlCo have old and slow PC, so he can't use openMSX (it's work with fps<10).

- I have two Daewoo MSX (cpc300, cpc400s), so goes a question - can we test projects on this machines? What there problems with specific memory layout, compared to standart MSX2?

- We simple russian guys, we badly know English, and rare speak on it (i write this post with dictionary, autotranslator, and my poor english lexiconWink. So AlCo did not wish to offend anybody with words 'forums freak'.

By Manuel

Ascended (18395)

Manuel's picture

28-12-2006, 21:07

Hey man, it's OK Smile

Anyway, some general remarks:
- many technical docs can be found on MAP: http://map.tni.nl
- memory map: each MSX2 with mapper can have it in a different slot. Compatible programs find out where the mapper is (in which slot) and then use it. Even more compatible is using the MSX-DOS2 routines to handle memory management. The memory mapper itself is just a thing with 16kB RAM blocks that can be switched in any of the 4 16kB pages in the Z80 memory space
- the filesystem of MSX-DOS is just FAT12. (AFAIK there are no real differences.)
- executable structure: depending if you make a DOS or BASIC loadable program, it's only a header you need to think about. The rest is Z80.
- openMSX should be able to run on old PC's. Please check the performance tuning section in the manual and make sure you use the latest version. E.g. on a 200MHz PC it should work, if you use minimal settings. Contact us on IRC if you need help: #openMSX on irc.freenode.net
- You can test on Daewoo machines, but be careful that the slot in which RAM is located is not the same for every machine. Especially for Daewoo machines this is important, as they have the mapper in slot 0. If you use standard routines from the BIOS to get info, you should be OK.
- Your English is OK! At least good enough to communicate clearly, I think :) Keep in touch!

By Shiru

Expert (115)

Shiru's picture

07-01-2007, 20:25

Thank for answers.

Report about progress:

By our tradition, which have developed last years, Alone Coder came in Moscow (where I live) in first days of January, to work together on any project (in previous years it was games for ATM). As this time we had no plans for any ZX-game projects, we have decide to concentrate on porting of our ATM game Ball Quest (2st place in Combined Game Compo on Chaos Construction 2006 demoparty) to MSX2 platform. This time 99% of work were made by AlCo, I mainly just looked and distracted AlCo with extraneous questionsWink

For testing we used openMSX and blueMSX, and real Daewoo CPC400 (where we tested all important hardware-related things).

For this time (2-7 Jan) main part of game was ported to MSX2, and almost works. Its now have some graphical problems, but these will be solved soon. Preliminary i can tell that game works better than on ATM, i.e. faster - I think, 20 or more fps, compare it to 10+ on standart ATM (it was hard to play with such framerate). Game not used tile-based modes and hardware sprites, and work in G4 mode instead (because it hard to change program for tile-based mode). Game now work with 64KB RAM and 64KB VRAM. We also plan to change all music, because original music has been written for Turbo-Sound add-on (2xPSG soundcard), and its be too hard to remade it for standart AY (anyway, music was not original, just covers from some console games).

Today AlCo returns to his city, and there will finish porting process in near future (possibly in January).

Fun fact: instead of using cross-assemblers, AlCo decided to use Alasm - one of russian ZX Spectrum assemblers, running in emulator (because he don't have experience with cross-asm, but he have many exp with Alasm). Thus, possibly this game will be first project, developed for MSX on ZX SpectrumWink

By Manuel

Ascended (18395)

Manuel's picture

07-01-2007, 21:25

GREAT NEWS! Keep up the great work!!

Thanks for this update, and please do keep us posted!

There are quite some useful cross assemblers available: pasmo, z80asm, sjasm, tniasm, etc...

By Shiru

Expert (115)

Shiru's picture

07-01-2007, 21:58

There are quite some useful cross assemblers available: pasmo, z80asm, sjasm, tniasm, etc...
Yes, I know. I personally prefer asm80 (old russian cross-asm, I like it because it have short form of code - like a=0 instead ld a,0 or a++ instead of inc a) and also I used WLA DX and some other more known cross-assemblers. Sjasm now have some popularity in Russia too. But I use cross-assemblers, because I don't have real ZX long time, and use emulators. AlCo prefer to use real hardware, so he mainly write his projects on real ZX/ATM (big piece of Ball Quest code was written on real ZX too), in Alasm, which he strongly modified and upgraged. And he actively use many features, which he added in Alasm and ZX/ATM firmware, which does not exists in cross-assemblers. So converting this project from Alasm to any cross-asm will be great pain in ..head Wink

I think, next time, if we shall decide to do initially cross-platform project (ATM/MSX), we will use cross-assemblers, of course - using of three emulators and transferring files between different disk images is headache too.

By ro

Scribe (4564)

ro's picture

08-01-2007, 11:51

hmm, where can we find more info on that speccy assembler?

btw. you prefer a=0 and a++ instead of the REAL z80 mnemonics, why? I mean THAT's assembly, dude. You prolly like the C language more, eh.

By Shiru

Expert (115)

Shiru's picture

08-01-2007, 12:38

I'm afraid, all info about Alasm and other russian ZX assemblers available only in russian language (because all they TR-DOS and 128+KB oriented, and can't be used on original ZX models).

I prefer short form for code because I think that spend many time of working on project just for typing many mnemonics LD and other is slightly unoptimal. In case of LD we need to use 3 really unneeded symbols, used in early assemblers just because simple parsing algorithms used in translators. In same way 8080 translators use different mnemonics for transfers with different methods of addressing. Now computers and translators can do more dirty work easily, so I let them to do itSmile

Assembler is still assembler anyway, and such form of code can be autoconverted to standart Z80 mnemonics, if this is needed.

By ro

Scribe (4564)

ro's picture

08-01-2007, 13:36

Hmm, you might have a point. typing just 'a,0' or 'a=0' would mean "ld a,0" for example. it save typing, but it's assembly. so we'd have pseudo assembly..
altho I agree an assembler/editor has to be somewhat "smart".. oh well. lez hack into wbass again Smile

By wolf_

Ambassador_ (9918)

wolf_'s picture

08-01-2007, 13:55

A=0 for LD A,0 would work..

But how to make DJNZ look more high-level without drowning in type work? Tongue

Page 2/5
1 | | 3 | 4 | 5