I’ve continued to poke around at the XaviX emulation and figured out what was preventing the Namco Nostalgia 1 TV game from running. Namco Nostalgia 1 contains Mappy, Xevious and arranged versions of said games.
(technical reason, the lda ($0a), y style instructions are expected to fetch the pointer from zero page ram, but the actual data pointed to needs to be fetched from ROM, at least for upper banks)
The Nostalgia collections also make aggressive use of the screen clipping registers, for whatever reason in the Mappy remix the developers decided to clip the house to a single pixel at each side of the playfield, even if the full house is present in the graphics. I implemented the clipping based on other games, but it seems like I was clipping a pixel too much off the left side, so in the video I recently uploaded the left border is missing. Not clipping that column of pixels does result in an unwanted space where you can see the background between the status bar and left edge in Snowboarder, but I have a feeling that would happen on hardware, and Mr. Do’s videos of the Nostalgia games are of far higher quality than any of the Snowboarder (non SSX version) so I’m going with what the better videos show as evidence.
Interestingly the high score handling on both the Mappy games in this collection appears to be broken, showing the high score as ’00’ or ‘000’ in / when the high score table is presented rather than the true high score. I thought this was an emulation bug, but again checking Mr Do’s original hardware videos the exact same thing happens there. I’m not sure what happens if you beat the real score, possibly that fixes it, unless high scores simply don’t work at all?
Below are some screenshots of the boot screens and the arranged Mappy game, which plays like an Arkanoid style game where holding the button down at the right time gives you extra jump height (but don’t do it 3 times in a row as your rope changes colour and will snap if you attempt to do a high jump while it’s red)
The Xevious arrangement takes the form of a flag collection / bombing run style game, where you’re rushing to the end of stages against a clock with various things slowing you down rather than outright killing you.
The classic versions of each game run too
Fixing the bug that was causing Namco Nostalgia 1 to not boot also allowed Radica’s Baseball 2 to show some screens, although I haven’t got the analog inputs hooked up, so it isn’t yet playable.
Adding EE-PROM support allowed Excite Fishing to show a few more screens, before moaning about the EE-PROM again because presumably my hookup is still incorrect (the Nostalgia games no longer moan either, but don’t remember your changes properly even if they do write them to the EE-PROM)
I also started looking at the Super XaviX a bit, which needed additional opcodes etc. implementing in the CPU core. The most impressive progress with that one is Dirt Rebel MX, where the menu screens are fully functional, and the game even seems to control, but graphics need work (definitely needs raster interrupts for the road rendering)
XaviXport Tennis also reaches ingame, although again probably needs raster interrupts to do the linescroll effect on the court, and also has no working controls other than a single button to advance through menus. This also runs in an interlace mode and sends the fields on alternating frames, which means the entire image shakes ups and down at the moment, I’ll probably have to figure out a ‘clean’ way to deinterlace and render in a higher resolution otherwise it’s migraine inducing.
Lord of the Rings shows some stuff, but appears to use DMA in a strange way, and doesn’t transfer a valid palette (and goes no further than these screens)
Dragon quest does similar also expecting a weird DMA behavior, but gets stuck on this screen instead (it does actually upload a palette, but I’d hacked up palette use for making the previous screenshots and not restored it)
Star Wars seems to make more extensive use of the custom opcodes and is currently not showing anything.