Correct usage of VDP ports following the standard

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

By hit9918

Prophet (2866)

hit9918's picture

02-06-2017, 14:44

is that topic so unsolved?
one cant line interrupt with the bios... but can do it with port retargeting.

"the story is passee with MSX2+". I rather see the opposite, I see it most useful for 9958 games. "plug a 9958 without butchering the MSX2".
and it could work on MSX1, too.

ROM 6 vs 7, separate read port, what is it about. it smells like it was about saving some gates on some cheap board.
no hardware did it so far, therefore: standard fix: ROM 6 and 7 must be the same. new 2017 hardware must not be cheap gates.

By Wlcracks

Champion (321)

Wlcracks's picture

02-06-2017, 14:49

Lol @ ARTRAG

By ARTRAG

Enlighted (6240)

ARTRAG's picture

02-06-2017, 15:09

DarkSchneider wrote:

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.

Do the same on msx1 using bios, I am curious to see what you get and how long it takes.
I'm sure it can be done, but spending much more time and energies => much less fun => I will not do that.

Same for the pcmplayer, one could to a software measuring the time taken by the bios code on each machine, but why?

By hit9918

Prophet (2866)

hit9918's picture

02-06-2017, 16:16

yeah bios you can forget in a game. except in a little game.
there is this idea "code it like a PC" and it is unclear what it is about.
if you think to code it like MS GDI X Window - even on pentium was not coded like that.

your only chance is to first code a game lib to the metal.
afterwards could come a library coding feel.

for MSX sprites I suggest the array of pointers to struct { Y X P C }
then comes the library call that brings it all onscreen with colorcopy fix and SAT dump.
then "PC" coding dream could reach top speeds
especialy when you make bubble free lists for bounding box collision checks, too.
all that stuff is on C struct level except that one SAT dump function.
and its implementation to the metal is not in conflict with neos, can be coded to variable port.

By Wlcracks

Champion (321)

Wlcracks's picture

02-06-2017, 17:35

So everybody ready for a poll? 98 99 or the official way?

By Louthrax

Prophet (2076)

Louthrax's picture

02-06-2017, 17:45

Official way for me Smile (patching the code in RAM with the ports value read from BIOS for speed sake)!

By Wlcracks

Champion (321)

Wlcracks's picture

02-06-2017, 17:52

98 99 for me.
even worse looking at the code of my current project: a0, a1, a2, a8, a9, aa.
Damn i feel a rebel!!

By PingPong

Prophet (3438)

PingPong's picture

02-06-2017, 18:01

ARTRAG wrote:
DarkSchneider wrote:

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.

Do the same on msx1 using bios, I am curious to see what you get and how long it takes.
I'm sure it can be done, but spending much more time and energies => much less fun => I will not do that.

Same for the pcmplayer, one could to a software measuring the time taken by the bios code on each machine, but why?

there is also another thing that stop the use of the BIOS when doing time critical operations: the fact that the bios implements functions that are 'trusted' to do a task (I/O, set graphic mode, set a point, draw a line, set psg etc) does not mean that the BIOS IS THE SAME on every machine, implementation could vary.
plus the interrupt handler of the BIOS is 'sensitive' to hw configuration (floppy drive or hw that do interrupts).
the BIOS is fundamentally not only slow, but also timing-unreliable.

say we need to write a charater on screen at a specific time: the BIOS guarantees that the charater will be printed but say nothing about the time it spend to achieve the result. If you talk to bare metal directly you can have a control even on this aspect, (or more precisely you can have better control on timing).

By ricbit

Champion (437)

ricbit's picture

02-06-2017, 21:49

That's what I like about targeting software to the turboR. There are only 2 machines, I can code exactly to them and ignore the official specs.

For MSX2 I'm on the other side, Aleste 2 ROM uses the bios ports because I want it to run on the MA-20.

By santiontanon

Paladin (824)

santiontanon's picture

02-06-2017, 22:05

I don't think there is a definitive answer. As someone said above, the important thing is to know what you are doing and be aware of the tradeoffs. If you really need to speed, and are ok with not targeting 100% of the machines, then direct port access is the right thing to do, otherwise, using BIOS should be preferable. But again, I think that that should be a choice of the developer, and what is important is that when we make that decision, we do so knowing exactly what using the ports directly or using the BIOS might imply for compatibility and for speed.

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