The OUT (#99) discussion (again?)

Page 1/3
| 2 | 3

By Wlcracks

Champion (314)

Wlcracks's picture

30-01-2019, 17:30

I am busy with an MSX(1) project and i was wondering how many hardware doesn't use the 99 98 port for the VDP.
I am aware of some obscure MSX1 cart deep down in the jungle of Brazil, with an external MSX2 video chip that doesn't use the 99 98 port.

Is there any other like NEW hardware or old hardware i never heard of, you have to take in account?

Login or register to post comments

By ToriHino

Champion (298)

ToriHino's picture

30-01-2019, 20:02

Why the question? It's not that much additional effort to just read the ports from adress #0006 and #0007? Just to be sure...

By Grauw

Enlighted (7960)

Grauw's picture

30-01-2019, 21:07

Old hardware is the Japanese NEOS MA-20. New hardware is an open source clone of that by fzanoto, who produced at least two batches, the first batch was 50 pieces.

By Wlcracks

Champion (314)

Wlcracks's picture

31-01-2019, 04:14

Its not so, the effort, its aleady working the legal way, but more like speed wise and having register C free for other use. I was just wondering, not like people who have this 0.1% "incompatable" hardware going to play my game haha. Its not that good of a game. I guess people who have this kind of hardware these days, will have other hardware too? Writing ASM in 1987, you had to do it legally, you could not predict what hardware was coming in the future. Now we know whats out there, and if you going to design new hardware, you maybe smart enough, looking backward, using 99 98? Just my thoughts. I am very curious what kind of harware this is not using the general ports.
I am writing for a ROM target, but adding some patch for other ports could be an option.
Damn this reading 0007 looks so stupid every time, like the computer forgot were the ports are, oh yeah maybe the ports went somewere else in the meantime, 1/50 seconds ago, lets waste some cycles reading it again for were they went.


Enlighted (5250)

NYYRIKKI's picture

31-01-2019, 06:00

If you are making MSX1, MSX2+ or MSX tR game, don't worry... it will work what ever is your approach.
If you are making MSX2 game, give a thought to MA-20 users... I bet there are close to 100 devices that are used for gaming purposes almost each decade. Since there are more than 1000 other MSX2 games to select from it indeed needs some luck that they pick your game specifically when they select to test their hardware. If you find it hard to implement or you need those max ~3000 cycles out of 3 579 545 cycles/sec to something more useful, I can promise, I won't be the first person to stone you.

By gdx

Prophet (2655)

gdx's picture

31-01-2019, 06:12

All MSX1s use the ports #98 and #99 for VDP. MSX2 upgrades use the ports #88 to #8B but no problem it is a cartridge so we can remove it to play MSX1 games that make direct access to VDP. MSX2 upgrades also cause incompatbilites with software that uses 64KB on MSX with the slot 0 expanded and with keyboard layouts. You can ignore this upgrade if you need quick access to the VDP.

By Grauw

Enlighted (7960)

Grauw's picture

31-01-2019, 11:38

In my projects I tend to access 98H directly, however I do think it’s nice to support those upgrade cartridges, so it’s my ambition going forward to try to add support for them to my projects at the appropriate time.

I don’t think speed is a real issue in general, those few cycles aren’t enough to make a significant difference, and when it does you can use self modifying code. However the usage of the C register and general ease of use is a bit more of a concern and could sway the decision towards hardcoding 98H.

By ducasp

Rookie (23)

ducasp's picture

31-01-2019, 12:53

Could you have a middleground solution such as releasing two versions of the ROM/Executable/etc, one acessing 98 directly and other acessing 88? So everyone is happy, including you... Should not be that much trouble to use Assembler directives to have alias to the port, so you can compile both versions easily just changing the directives...

By zett

Champion (509)

zett's picture

31-01-2019, 16:31

dont use the vdp9938 cardrige. its not real. with it you just have a msx1 with 2 vdps. ppl dont go that way. its evil

By Wlcracks

Champion (314)

Wlcracks's picture

31-01-2019, 16:51

Like i mentioned in the first sentence, its for MSX1.
I think the biggest "flaw" in MSX v1 is not be able to use the VDP at "full speed". Only in the area from the interrupt to the first line, you can use e.g. otir.
I think MSX2 and all versions after are really nice, but as being a vg8020/00 my first (youth) computer in i guess 1985 or something, this still has the most attraction for me. I was always interested to get deeper into the system. Not a lot of documentation was available at the time, missing something called THEY INTERNET. When MSX2 showed up i sold my other MSX. Sure MSX2 was really nice, but i was always a bit "jealous" on the C64 scene. They all had the same system and the "scene" could squeeze out every bit, byte, gfx, sound and processor cycle. Not because they were better programmers i guess, but just because, take it or leave the system. This is what you had, no worries. When MSX2 came out, every "active" MSX-er bought an MSX2, leaving the MSX1 what it was.
Long story short, i think MSX1 still the way to go.
Seeing this video
Amazed me. This computer was only usable between vblank and the first tv line.
MSX1 you can use full VDP speed in this area. De Sinclair could fit an whole system in there.
So its not that i don't have enough cpu cycles in one frame, its not about heavy calculations, its not about reading joysticks direct or psg, its not because my game is going to amazing, and its not i am not able to read 0007 and load it in the c register, but i think when u want to use MSX1 at full potential you need to do it in this area as fast as possible. When using a ROM you cannot pre-render the port in code (Mmm thinking now: maybe only the fast parts in RAM).
That's why i am interested how many hardware actually uses this non 99 98 ports. I looked on eBay for this MSX->MSX2 unit, but non available. Its not somebody gonna buy it for upgrading an MSX1 due to cost, an MSX2 will be cheaper i guess when this cart ever will appear on eBay.
The reactions amaze me, using 99 98 is not done but when using psg direct port nobody cares, while this could actually blow up an MSX1.
Problem maybe with distributing a "free" game, not sure the "extras" will survive in the distribution like patch or different versions. Maybe include hard coded different ports but yeah i hear 88 are there more ports for VDP?

By Pencioner

Paladin (874)

Pencioner's picture

31-01-2019, 18:31

zett wrote:

dont use the vdp9938 cardrige. its not real. with it you just have a msx1 with 2 vdps. ppl dont go that way. its evil

what about v9990 cartridge? is it more evil or less evil? LOL!

Page 1/3
| 2 | 3
My MSX profile