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

superxavix: some research on the bitmap layer, slight visual improvement where it gets used + general XaviX refactoring and improvements + 7 new sets #13074

Open
wants to merge 62 commits into
base: master
Choose a base branch
from

Conversation

mamehaze
Copy link
Contributor

@mamehaze mamehaze commented Dec 12, 2024

  • Started to refactor XaviX bus accesses, moved some in-cartridge logic for e-Kara SEEPROMs to cartridge space
  • XaviX external bus accesses can now go through memory, avoiding the speed-up bypass
  • Mapped RAM in external space for Super TV-PC sets, as well as a ROM bank, allowing bitmaps in RAM to render
  • Added Bitmap plotter, again used by Super TV-PC sets for constructing some bitmaps and the paint program in Super TV-PC Hello Kitty
  • Added previously unsupported video mode used by Excite Stadium
  • Swapped background order when priorities are equal, issue higlighted by Excite Golf
  • Added some XaviX2000 (2nd Gen and SuperXaviX) opcodes needed by Let's! TV Play Touin Ougi Onmyou Taisenki: Mezase Saikyou Toushinshi for sprites to show
  • Added reduced size sprite DMA transfers, used by Choro-Q Byun Byun Racer
  • Allow SuperXaviX sets to render in higher horizontal resolutions for proper display of the bitmap layers, doubling the standard XaviX output to match
  • Began some research on SuperXaviX extended ROM modes, used by anpanmdx for sprites and the bitmap layer

new NOT WORKING machines

Anpanman Kazoku De Ikunou Mat DX (Japan) [TeamEurope, David Haywood]
Let's TV Play Dragon Ball Z Battle Experience Kamehameha 2 Ossu Ome Goku Tenkaichi Budokai (Japan) [TeamEurope, David Haywood]
Doraemon Moving! Oekaki (Japan) [TeamEurope, David Haywood]
Anpanman Pyon-Pyon Ikunou Mat (Japan) [TeamEurope, David Haywood]
Doraemon anywhere - Japan travel game DX experience! Where is the Dragon Grand Prix! (Japan) [TeamEurope, David Haywood]
Let's! TV Play Futari wa PreCure MaxHeart Dance on the mat Let's go to MaxHeart (Japan) [TeamEurope, David Haywood]
Let's! TV Play Disney Characters Oto! Iro! Don-Don! Miracle Parade [TeamEurope, David Haywood]

@mamehaze
Copy link
Contributor Author

0000

the title of the tmy_thom set could probably be improved now the title screen renders more correctly

@ajrhacker
Copy link
Contributor

The Japanese title is Soreike Thomas - Sodor Tou no Nakamatachi (それいけトーマス ソドー島のなかまたち). The English title (Thomas & Friends on the Island of Sodor) should be noted too, though.

@mamehaze
Copy link
Contributor Author

there are some baby steps in here regarding a general XaviX cleanup, with a view to moving the SoC logic into a core, rather than the driver at some point. There will likely be a performance hit to doing this, but it feels like the right time to start doing it.

@mamehaze
Copy link
Contributor Author

While there are definitely still some issues, being able to map RAM into external space, and adding the bitmap plotter allows the Super TV-PC units to start drawing to their bitmap layer, which is important as they decompress data there. Some of the data that gets copied is corrupt though, I suspect due to bad XaviX2000+ opcodes, although there could also be a data conversion feature I'm missing.

0006
0009
0010
0017

This will eventually lead to a cleaner implementation of the XaviX memory handling, even if it'll be a few PRs beyond this one before we're fully there.

@mamehaze
Copy link
Contributor Author

The bitmap plotter was further improved, might not be perfect, but the different width data can now be written which fixes things like the filling in the Hello Kitty paint demo in attract
0002
0005
0031

@mamehaze
Copy link
Contributor Author

Outside of that, this set of changes gives improvements to various other SuperXaviX games using the bitmaps.
0001
0002
0003
rockman_xavix_1
rockman_xavix_2

@DopefishJustin
Copy link
Member

DopefishJustin commented Dec 13, 2024

The bitmap plotter was further improved, might not be perfect, but the different width data can now be written which fixes things like the filling in the Hello Kitty paint demo in attract

Definitely some issues with the text rendering still. It's readable but seems to be missing pixels on the thinner lines, and the parentheses in the quiz answers look messed up.
E.g. I think the top left answer should say "本(ほん)" or maybe "本〖ほん〗"

Also, are the colours supposed to be so desaturated?

@mamehaze
Copy link
Contributor Author

mamehaze commented Dec 13, 2024 via email

@mamehaze
Copy link
Contributor Author

cq1
cq2
cq3

the current changes improve the visuals on Choro Q, although it still crashes shortly after this (it doesn't crash if you return 0 from the math unit, although then the cars don't move either)

@mamehaze
Copy link
Contributor Author

there do still seem to be some plotter issues, but it is a bit better with the full horizontal resolution for the bitmap layer
https://www.youtube.com/watch?v=IDu_wXxyOow&t=224s

@mamehaze
Copy link
Contributor Author

FWIW, a future PR will likely move the XaviX chips to be SoC/CPU implementations, but that will require significantly more refactor and is out of the scope for this.

The work done here is basically tweaks and improvements based on new knowledge gathered from recent dumps.

@mamehaze
Copy link
Contributor Author

I've added a better summary of the changes too

@mamehaze
Copy link
Contributor Author

The Anpanman game is the first SuperXaviX one we know to use the extended secondary bus feature which appears to be usable by the sprites and bitmap layer at least. We have a few others with extended ROMs, but it isn't clear if they're doing the same, or have banking, because those don't boot far enough yet. Unfortunately implementing this requires some extra checks in places, which slows things down, but the current line of thought is "make it work" while re-optimizing it will be looked into later.

It also uses the bitmap plotter to plot to main ram instead of extra RAM, which will need some work (for the graph in one scene)

There seem to be some opcode / logic bugs with a few of the mini-games too, but in this case I'd consider that a positive because the more 'not quite right logic' places we find, the better when it comes to debugging it.

0033
0035
0036
0037
0041
0044
0048
0051
0054
0059
0063
0064
0072
0073
0076
0078
0009
0010
0017
0028

@mamehaze mamehaze changed the title superxavix: some research on the bitmap layer, slight visual improvement where it gets used + general XaviX refactoring and improvements + 2 new sets superxavix: some research on the bitmap layer, slight visual improvement where it gets used + general XaviX refactoring and improvements + 6 new sets Dec 23, 2024
@mamehaze
Copy link
Contributor Author

Doraemon Moving! Oekaki (Japan) [TeamEurope, David Haywood]
Anpanman Pyon-Pyon Ikunou Mat (Japan) [TeamEurope, David Haywood]
Doraemon anywhere - Japan travel game DX experience! Where is the Dragon Grand Prix! (Japan) [TeamEurope, David Haywood]
Let's! TV Play Futari wa PreCure MaxHeart Dance on the mat Let's go to MaxHeart (Japan) [TeamEurope, David Haywood]

likely need better translations at least, maybe the other Anpanman mat too

@mamehaze
Copy link
Contributor Author

Disney needs a better name
0005

@ajrhacker
Copy link
Contributor

ajrhacker commented Dec 24, 2024

Disney Characters Oto! Iro! Don-Don! Miracle Parade (ディズニーキャラクターズ オト!イロ!トン・トン!ミラクルパレード)

@mamehaze mamehaze changed the title superxavix: some research on the bitmap layer, slight visual improvement where it gets used + general XaviX refactoring and improvements + 6 new sets superxavix: some research on the bitmap layer, slight visual improvement where it gets used + general XaviX refactoring and improvements + 7 new sets Dec 24, 2024
@mamehaze
Copy link
Contributor Author

mamehaze commented Dec 24, 2024

thanks, replaced that one. I've left the "Let's TV Play" part because it's on the box even if it isn't on the screen https://muuseo.com/henly/items/561

are the others OK?

Doraemon Moving! Oekaki (Japan) [TeamEurope, David Haywood]
Anpanman Pyon-Pyon Ikunou Mat (Japan) [TeamEurope, David Haywood]
Anpanman Kazoku De Ikunou Mat DX (Japan) [TeamEurope, David Haywood]
Doraemon anywhere - Japan travel game DX experience! Where is the Dragon Grand Prix! (Japan) [TeamEurope, David Haywood] https://muuseo.com/henly/items/499?theme_id=23686
Let's! TV Play Futari wa PreCure MaxHeart Dance on the mat Let's go to MaxHeart (Japan) [TeamEurope, David Haywood]

@ajrhacker
Copy link
Contributor

Correction: the transliteration should be Ton-Ton, not Don-Don.

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.

4 participants