Posté le 14/04/2017 à 22:53 Membre depuis le 29/05/2014, 24 messages
I was just reading through the hardware manual. I don't understand why these are necessary

5. The following initialization is also necessary after the CPU is reset.
[I] Write the transparency character (e.g. 0020H) into the VRAM
address 0 to 3FH.
[2] Write OOOOH into VRAM address 8200H.
...

8. When the vertical reduction ratio of a 3D-LINE SPRITE is set to a value other
than OFFH, the characters which are addressed by 1EH and 20H of that 3D-LINE
SPRITE need to be transparent characters. Or, put a transparent dot in the
locations one dot below IEH and one dot above 20H.

Page 11 Neo Geo Hardware reference

What is the reason for both of these measures? Thank you
Posté le 15/04/2017 à 23:24Edité par HPMAN le 16/04/2017 à 22:54 Membre depuis le 28/01/2003, 160 messages
I don't think 5 is necessary at all. You don't have to worry about CPU reset anyway unless you are writing a bios.

8 Is to avoid artefacts when scaling sprites (see topics/185847-graphic-error-during-sprite-shrinking-on-particular-systems)
Posté le 16/04/2017 à 21:50 Membre depuis le 29/05/2014, 24 messages
Thanks very much HPMan. I see, so the Sprite height is really specifying a view window onto the sprite. Strange the manual doesn't explain this fully!

Interesting you have to watch out for this (below) when scaling.

furrtek (./8) :
Also, this can cause problems with the 96 sprites per line limit because even if the tiles are transparent, they still count as sprite pixels and count in the limit.
So you can also automatically adjust the sprite's height by computing the value from the real graphics height and the shrink value.
Posté le 17/04/2017 à 13:50 Membre depuis le 05/04/2016, 50 messages
Sprite 0 has issues on the system and is not really usable. Its best to init it like those instructions to stop it showing on screen in case for some reason those VRAM locations have been set.
Posté le 20/04/2017 à 20:58 Membre depuis le 29/05/2014, 24 messages
Thanks Razoola. That makes sense. I remember reading it can repeat across the screen if you try to make use of it.

Just one more question why are IRQ1 and IRQ2 swapped on the Neo Geo CD? I am not that technical (I'm still learning 68000) but I presume this is to prioritise a Vertical Blank interrupt over a Timer Interrupt. What is the reason for this? and Why wasn't it necessary on the Neo Geo AES/MVS?

Thanks.
Posté le 20/04/2017 à 23:31 Membre depuis le 28/01/2003, 160 messages
I have no idea why they did that, however I wonder is that change is why they had to remove raster effects in games like Last Blade 2 or Metal Slug 2 confus
Posté le 22/04/2017 à 01:02 Membre depuis le 29/05/2014, 24 messages
That's interesting, I didn't know they did that. Surely though, they could have easily re-coded to take account of the swap?

Maybe also they were streaming off the CD a lot at the same time and the raster interrupts would take priority over the CD interrupts and slow things down too much or even more - in the case of MS2 smile