Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

taito/taito_f3.cpp: split graphics into TC0630FDP device #12345

Draft
wants to merge 30 commits into
base: master
Choose a base branch
from

Conversation

12Me21
Copy link

@12Me21 12Me21 commented May 6, 2024

<wip, not ready for review>

  • move FDP (and FDA) functionality into a separate device (tc0630fdp.cpp)
  • rearrange ROM layouts: merge tiles_hi/sprites_hi into tiles/sprites
  • simplify gfxdecode slightly
  • add second palette device for 12-bit palette mode (both can be used at the same time, per-scanline)
  • implement programmable timer interrupt

todo:
cleanup, scroll register frame timing, sprite timing, correct maincpu and esp clocks, use fdp in 2mindril
bubsymph bootleg

@12Me21
Copy link
Author

12Me21 commented May 6, 2024

need to rewrite 2mindril to use fdp device instead of inheriting from taito f3 class

@12Me21
Copy link
Author

12Me21 commented May 7, 2024

wow we've been ignoring 3 bits of color this entire time (in the few games that use this color mode).. we thought the format was RRRRGGGGBBBBxxxx but it's actually RRRRGGGGBBBBRGBx !
before/after comparison on ringrage: (look at the floor texture)
pjgds
arabianm before/after:
image

@y-ack
Copy link
Contributor

y-ack commented May 12, 2024

kaiser knuckle monitor calibration screen is using sprites for color bars and displays wrong graphics.
sprite id 0x1ffff (out of range)
0002
existing behavior is sprite id % length
highest rom chip is too small, probably effectively mirrored by address mapping pld.
this is awkward to fix, ... not fdp's responsibility ... should happen at gfxdecode but then implies lying about rom size and loading 4 times?

0003

@angelosa
Copy link
Member

this is awkward to fix, ... not fdp's responsibility ... should happen at gfxdecode but then implies lying about rom size and loading 4 times?

Not sure why lying, sounds pretty normal ROM mirroring to me.

@mamehaze
Copy link
Contributor

mamehaze commented May 13, 2024

yeah using ROM_RELOAD or having a larger region size and filling it with 00/ff is a common way to handle this kind of thing - empty sockets often pull high or low, or in some cases there will be an addressing PAL/GAL of some kind causing mirroring.

there are plenty of other games that use sprite values that would pull from empty sockets for what would have been debug sprites, or disabled sprites.

a comment with the ROM loading explaining why it's being done is usually helpful to prevent anybody from changing it back thinking it's a mistake.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants