game idea!

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

Par hit9918

Prophet (2896)

Portrait de hit9918

17-05-2014, 15:25

"the mirroring does not work at all. On this VDP only the top 1/3 of the screen will be shown correctly"

I got problems with the wording.
does it say that things are masked to the top charset?
or does it say that 2/3 of screen region is random messed?

Par Grauw

Ascended (9266)

Portrait de Grauw

17-05-2014, 16:46

ARTRAG wrote:

sorry this is the link
http://pastebin.com/DCvQXwnS

Thanks, that is very helpful!

You mention:
“Somewhat like control register #4 for the pattern generator, bits 6 - 0 are an AND mask over the top 7 bits of the character number during color generation.”
“NB: another issue is about the Texas Instruments TMS9118, where the colour table (r#3) bits 0-3 do not mask the pattern number.”

Isn’t it like, bits 0-4 are an AND mask over the top 5 bits of the character number? And in both colour and pattern generation? I think that’s what I think I saw in those TI-99/4A tests.

Bits 5-6 are an AND mask on the upper / middle / lower colour table selection.

hit9918 wrote:

The toshiba.
I read it as "the top 2 mask bits, as soon as you set one to 0, it is like both got set to 0"?
Is there still pattern versus color masking or is it "as soon as you touch anything, it is down to 1 charset"?

Where did you read this? What I understand from dvik’s post [url=here]here[/url] and also ARTRAG’s notes he posted above, things simply don’t work at all.

Information on the Toshiba VDP is very, very limited… this was all I could find.

hit9918 wrote:

"On a Yamaha V9938 / V9958: Behaves like the TMS9918."

I think 9938 does like 9118. And emulators.
The extra mask bits work like a continuation of the top two color mask bits.
While on 9918 the mask goes on the pattern name.

Oh, interesting. I suppose someone should test this to confirm it :).

hit9918 wrote:

Oh another text.
The headlines of those documents, I would like to remove the uncertainty.
"hybrid" - the word sometimes seems to be used for funny mode register setups. the topic is mask registers in screen 2.

Yeah you’re right, “mask registers in screen 2” is a much better name.

hit9918 wrote:

"unofficial" - TMS manual officialy tells you will meet the sprite bug :) 9918 9118 behaviour is known.

Can you tell me where precisely? I saw that mentioned, however then looked in the TMS9918 application manual and was not able to find that…

hit9918 wrote:

"the mirroring does not work at all. On this VDP only the top 1/3 of the screen will be shown correctly"

I got problems with the wording.
does it say that things are masked to the top charset?
or does it say that 2/3 of screen region is random messed?

I don’t know, this is all the information I got from a post by dvik here. Unfortunately he passed on some indirect information from the Karoshi forums, which are no longer available.

Par Grauw

Ascended (9266)

Portrait de Grauw

17-05-2014, 17:09

Also, the Toshiba T6950 VDP seems to be relatively uncommon (only used in 3 machines that I know of), but is this also true of the Texas Instruments TMS9118?

Par ARTRAG

Enlighted (6427)

Portrait de ARTRAG

17-05-2014, 18:08

Grauw wrote:

You mention:
“Somewhat like control register #4 for the pattern generator, bits 6 - 0 are an AND mask over the top 7 bits of the character number during color generation.”
“NB: another issue is about the Texas Instruments TMS9118, where the colour table (r#3) bits 0-3 do not mask the pattern number.”

Isn’t it like, bits 0-4 are an AND mask over the top 5 bits of the character number? And in both colour and pattern generation? I think that’s what I think I saw in those TI-99/4A tests.

I haven't tested this bit of information. If Tursi says that lower bits of r#3 masks the character number I can only believe him.
I've tested these values:

db 0x9F ; Reg# 3 [COLOR BASE ADDRESS] = 2000h ; hybrid mode for colors (one bank for all tiles)
db 0xFF ; Reg# 3 [COLOR BASE ADDRESS] = 2000h ; regular mode for colors

db 0x1F ; Reg# 3 [COLOR BASE ADDRESS] = 0000h ; hybrid mode for colors (one bank for all tiles)
db 0x7F ; Reg# 3 [COLOR BASE ADDRESS] = 0000h ; regular mode for colors

Par Grauw

Ascended (9266)

Portrait de Grauw

17-05-2014, 23:46

Ok I think I’ll do some tests then Smile.

Par hit9918

Prophet (2896)

Portrait de hit9918

18-05-2014, 00:08

@grauw,
the book called vpd_prog_guide.zip , scanned images.
The messed sprites are mentioned in "chapter 8.4.2 Playing Games with VRAM Addressing" and further entertaining wording like "and leave the rest to you" Smile
Now it's official, mask registers exist. And rest is up to us Smile

the 9918 masking is clear, I saw with my own eyes. a 9929 actualy, telling that PAL makes no difference.
and hap added how 9118 has colormask and still same messed sprites.
that was in http://www.msx.org/forum/development/msx-development/new-hyb...

and here
http://www.msx.org/forum/msx-talk/development/only-one-chars...
I just told about a bug in text claims. but there are no questions.
could need a confirmation that 9938 does same look as emu, which is colormasking.

and then all is clear except the toshiba.

Par hap

Paragon (2029)

Portrait de hap

18-05-2014, 00:19

Differences I know between VDP models are documented in meisei source code. See line 36 for quirks:
http://pastebin.com/u9e398Wu

Par hit9918

Prophet (2896)

Portrait de hit9918

18-05-2014, 00:41

some lines further down in the book
"if you try to put more than eight sprites on the screen at once, they will start to duplicate".

"at once", the wording gotta be wrong, there is always the same 32 bytes Y DMA, no matter how many sprites used.
I think it's SAT positions 0-7 that keep working.

Par Grauw

Ascended (9266)

Portrait de Grauw

18-05-2014, 02:13

hit9918 wrote:

the book called vpd_prog_guide.zip , scanned images.
The messed sprites are mentioned in "chapter 8.4.2 Playing Games with VRAM Addressing" and further entertaining wording like "and leave the rest to you" Smile
Now it's official, mask registers exist. And rest is up to us Smile

Ah, I wasn’t aware of that document… I’ve added it to the MAP Smile.

hap wrote:

Differences I know between VDP models are documented in meisei source code. See line 36 for quirks:
http://pastebin.com/u9e398Wu

Great!

Par hit9918

Prophet (2896)

Portrait de hit9918

18-05-2014, 20:14

The 9118 is very common! ... because it is the masking sheme used by MSX2.
(strictly speaking this still needs confirmation)
Want game on emulator, need a 9118 version.

I think the 9118 was done to allow doublebuffered monochrome bitmap!
If you mask color down much, it costs no space. except the display will loose one or two columns.

rest is all same as 9918, also sprite bugs.
the 9918 version does mask pattern in submask, but those address lines are not related to scanline Y, that is why they don't trigger the sprite bug.
mhm strictly speaking maybe I never tested submask with sprites...

... testing right now real machine and VDP does the expected:
with VDP(3) = 0 , all mask bits engaged, the sprites stand rock solid.
but dare you set just one 0 bit in VDP(4), then immedeately mess.

And I test the sprite 0-7 thing:
when I remove the BASIC "put sprite" for 0-7, the mess situation of the others not change.

the TMS manual wording indicating about how many sprites used "at once" is wrong
(the wording is right when SAT is built in a way that using 8 means never using upper SAT positions).

but still, unused SAT positions make no difference. well what is an "unused" sprite. it's a sprite with Y hanging around in the border.
that wont make a difference to Y comparator fail that happens in different time with another sprites Y.

it's all about SAT positions.
maybe the Y DMA of SAT 0-7 is in the horizontal border outside display area, i.e. the voltage trouble causing parts inactive.

actualy all sprites always work in the middle screen region.
I feel some asymetry between the two mask bits.
there is the issue of cloning vs the issue of disappearance.
I never see disappearance with sprite Y in middle zone. but in the lower zone.

a matrix. 
Fn = first line of a region. 
I feel they behave different and I not cover all cases. 
maybe also using last line of a region is to be avoided, I am not sure.

---------
mask = 00
sprite Y region	sprites work	clones region
0		yes		1,2
1		yes		F0,F2
2		no		F0
---------
mask = 01
sprite Y region	sprites work	clones region
0		yes		2
1		yes		-
2		no		F0,F2
---------
mask = 10
sprite Y region	sprites work	clones region
0		yes		1
1		yes		F2
2		yes		-

p.s. all the deails about sprites 0-7, maybe I should add: they always worked, I never saw them fail.

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