Correct usage of VDP ports following the standard

Page 3/18
1 | 2 | | 4 | 5 | 6 | 7 | 8

By ARTRAG

Enlighted (6236)

ARTRAG's picture

02-06-2017, 11:29

Totally forbidden, sorry, there is no exception to the direct I/O access rule if not for the VDP. You should ban ALL the productions that are using the PT3 player and all the games that use AY8910 ports directly.
Wink

Naturally you should swap in the bios rom, call the bios entries for audio access, swap back to your ram or rom any time you need to write a register.... Anything needing cycle accurate code is totally forbidden oO
I hope you do not mind if I do not care a piss of what a polite msx software fully compliant to the msx specs should do.

By DarkSchneider

Paladin (862)

DarkSchneider's picture

02-06-2017, 11:33

Well that is as mentioned a personal preference.

But is not unique the case of some incompatibilities like Rune Master 2 not using the built-in MSX-Music, games not launching if multiple RAM modules installed, or some games not launching when I try them on the MSX2+ FS-A1WX (expanded to 256KB), probably by using the slot/mapper by its own way.
Things like these, IMO, are a failure for the whole system. The pathcing of software for a platform for making it to work should not be even mentioned.
There are others like the PSG can be burnt, OK we can suppose all modern MSX's have the PSG protected, but that is, "suppose".

Then is a personal preference about how each one views the MSX:
- Like a videogame console with a keyboard and disk attached. This is exactly the C64.
- Like a full open architecture computer system.

Mine personally is the 2nd one. Because that I usually am very strict about this also not allowing exceptions at development, I have to follow the system designer directives. And it not varies for programs nor games development, but maybe for programs instead the VDP direct access (with reading the port from system), I would use the library access operations, slower but easier to handle, and who cares in a word processor.

Also, usually I think the speed problems are not because "wasting" 20-30 cycles in some operations. We should look for the bottlenecks in the algorithms and things at higher levels.

By ARTRAG

Enlighted (6236)

ARTRAG's picture

02-06-2017, 11:46

There as so many things you simply cannot do using only bios... look at the
pcmencoder...
Or that become so clumsy to make that you loose all the fun in them (e.g. this screen split)...

As I want to push the HW to its limits, my approach is very pragmatic.
But anyone is free to follow any prescription he likes. Pastafarianism exits too.

By DarkSchneider

Paladin (862)

DarkSchneider's picture

02-06-2017, 12:10

Not sure about what you mean about that "screen split".

Anyway the software design itself is part of the process. Look what is available and adapt it.

The question can be easily summarized: some are happy getting some cycles from here and there or fulfilling some "effect", some others are happy when feel they fully comply with the standard, it's all. That simple, nothing hidden to look for.

Haha the Pastafarianism is great!

By AxelStone

Prophet (2674)

AxelStone's picture

02-06-2017, 12:14

At the end it's a personal preference. I also prefer aproach 2, consider MSX as open standard and not a console + keyboard. I suposse that this is due to the path we are following (I'm talking about The Bit Knights). Our aproach is to design a game engine (Knights Engine) not a specific game, so for us is very important follow the standard as much as possible, since we can't patch a engine to make it work in a specific model: engine must work in every system.

If every game is handle as individual, perhaps you can use other aproach (anycase I still prefer 2nd one), but for a game engine 1st aproach is really a bad choice.

By ARTRAG

Enlighted (6236)

ARTRAG's picture

02-06-2017, 12:22

Axel, it is a matter of your goals, if supporting ma-20 users is more important of having smooth scroll and screen split, go ahead. I'm using a paradox, but the idea is do what you like provided you know what you do and what can get and what you cannot.

By DarkSchneider

Paladin (862)

DarkSchneider's picture

02-06-2017, 13:22

I think that is a mistake. BIOS is not equal to not smooth scroll or not line interrupt, if that is what means "screen split" for placing the top fixed layout.

By PingPong

Prophet (3435)

PingPong's picture

02-06-2017, 13:26

the story is full of similar issues. even on PC some old programs skipped the bios while doing video I/O. IMHO it's only a question of goal.
- Wanna achieve performances / effects not available with BIOS ? Then pay for some incompatibility.
- Your main issue is compatibility an do not worry about speed because for your goal it is not an issue? use BIOS.

By DarkSchneider

Paladin (862)

DarkSchneider's picture

02-06-2017, 13:35

Yep, I remember also cases of games that doesn't sound if you varied the soundblaster default values (port 220h irg 5 dma 1 if I remember well), because they supposed those values as the "driver" installed with that by default. While the compatible way was to read from the "SET BLASTER" that the "driver" set on the system.

By AxelStone

Prophet (2674)

AxelStone's picture

02-06-2017, 14:08

@ARTRAG Knights Engine supports split screen using BIOS. Sometimes I feel that people thinks that BIOS is as limited as BASIC. BIOS can handle almost same effects / routines than hard coding but in a standard way. Performance could be a bit lower, but not as BASIC vs ASM, you can get about 90% of performance compared to hard coding. For our purposal (engine) is quite reasonable to get thinks done in a standard way.

Anyway as mentioned before, it's a preference matter. If you are focusing of doing a game, perhaps you want that 10% of extra performance, but probably you are not doing a reusable component.

Page 3/18
1 | 2 | | 4 | 5 | 6 | 7 | 8