jotego / jtcores

FPGA cores compatible with multiple arcade game machines and KiCAD schematics of arcade games. Working on MiSTer FPGA/Analogue Pocket
https://patreon.com/jotego
GNU General Public License v3.0
202 stars 37 forks source link

s18: bad graphics #686

Open jotego opened 2 weeks ago

jotego commented 2 weeks ago

These games have bad GFX. The tile bank seems wrong (a8cad670).

jotego commented 1 week ago

Enemies are not visible in ddcrew. It might be related to the tile map.

gyurco commented 1 week ago

Here there are more inputs than sa, sb and fix from the tilemap chip: image

Just for record, the logic: https://wiki.pldarchive.co.uk/index.php?title=315-5373

gyurco commented 1 week ago

Do you have an idea what are the Tilemap0-4 lines on the tilemap chip? Also objcol[1:0] is used here for vdp/s16 priority, but in s16 itself, obj_prio=obj_pxl[11:10], strange.

jotego commented 6 days ago

I am not sure. The arcade GFX chipset seems to be a redesign of the System 16B chipset with slightly different IO. The original chipset seemed to identify which tilemap layer was active. The priority of that layer may have been available too. The file s16b/doc/s16b.txt has a good and short description of the layer priorities around line 1086.

Because S16B video comes already mixed, S18 cannot do much when merging the VDP video. Particularly, you cannot have sprites hide each other depending on the y position. That's why the sprites used on the VDP look flat in Alien Storm, so as to make this limitation less noticeable.

MAME identifies some scenes and priority values but they ignore the real connections on the board. I have been trying to make sense of the decoding signals in the PAL (315-5373) but I could only be sure of what I wrote in the colmix case statement.

gyurco commented 6 days ago

That probably need more time then, various priority values are used in every game (5 in D.D.Crew for example). Also 4 (Moonwalker) seems not perfect, as the to-be-rescued kids are look like ghosts sometimes.

gyurco commented 6 days ago

Shouldn't this VDP-S16 priority thing belong to a different issue?

jotego commented 5 days ago

That's fine. Let's limit this one to fix the garbled graphics. Layer priority will be handled on a different one.

gyurco commented 5 days ago

I opened https://github.com/jotego/jtcores/issues/701

jotego commented 4 days ago

Fixed

Clitch Hitter seems ready to go. Thank you. hamaway and *desertbr have a layer priority problem (#701) but tile mapping seems fine. For lghost I cannot pass the calibration screen so I do not know yet.

ddcrew

This is the image that should appear right after booting up ddcrew. The tilemap bank is pointing to a different place, producing a completely different scene.

0002

wwallyj

The tile bank is wrong in several scenes, including the title

0000

gyurco commented 4 days ago

ddcrew also a priority issue (the image you should see comes from the VDP). What's currently seen is the background with the policeman - it's good. Write 4,5: instead of just 4: for the case to the VDP priority mixing, you'll see.

wwally - probably wwally should be wwallyj in the TOML file. But even with this change, there are still issues probably due to unhandled VDP priority level. Also wally needs trackball control.

terminator2k2 commented 3 days ago

@jotego i have a version of laser ghost which is modded and uses joystick controls and im sure it bypasses the calibration screen. I also have a wally modded rom which uses joystick controls aswell. Theres also Clockwork Aquario.