Hey all,
(hopefully this is the right place to post this kind of thing)
I have been working for some time on a sega hikaru emulator, valkyrie. You may have seen a couple of screenshots on R.Belmont's blog[1], but there have not been any official news; so I figured I should write a status report of some sorts.
A short introduction: valkyrie is an incomplete, slow, primitive, crude and sometimes hacky sega hikaru emulator, written from scratch by reversing the few existing hikaru dumps, in my very limited spare time. Only linux is currently supported (it should be rather easy to port to windows/osx, but I can't do the porting myself, as I use linux boxes only.)
At the time of writing, valkyrie is able to run the bootrom almost fully, including the simple 3D triangle strips making up the bootrom menu. Furthermore it can display the bitmap layers used to render 2D stuff on screen: planet harriers and airtrix up reach the title screen; sega nascar arcade also shows the intro screen; brave fire fighters is trying desperately to display the title screen, but given that there are no dumps for most of the texture data, it renders garbage. So there is some promise here.
(An appetizer: the 3D intro in pharrier is actually being pushed to the GPU, the problem is that I don't know yet how to render it. I mean, valkyrie _can_ render the meshes somewhat using a canonical orthographic viewport, but I don't know how to make use of the viewport and modelview matrices uploaded by the game. At some point the game just uploads NaNs, though.)
However there is still a ton missing stuff: AICA and input emulation (I'm using an ugly hack to fake them; probably missing AICA/input IRQs are the main cause of current emulation errors), my understanding of the graphics hardware is still rather limited (I _think_ I figured out most of the GPU ISA; but many instructions are still unknown), and the exact ROM mapping of some games (sega nascar arcade, and likely podrace) is unclear.
I'll take some time in the next few weeks to fix the obvious warts in the code, and then upload a git tree to github, so that people can start looking at it and possibly contribute some man power. The ETA is likely 2-4 weeks.
The code will be licensed under the GPL2 or GPL3 (I have yet to pick one.), so it's free and open source, and yours to improve upon (or port to MAME.) :-)
Have fun,
Stefano
[1] http://rbelmont.mameworld.info/?p=726
|