CAESAR Logo

Catalogue of Arcade Emulation Software - the Absolute Reference

Valid XHTML 1.0! Valid CSS!

X-Arcade

X-Arcade

Large CAESAR Logo

hng64.c

0.80u1 [David Haywood]


TODO:

- Find where the remainder of the display list information is 'hiding'. Complete display lists are not currently found in the dl_w memory handler (this manifests itself as 'flickering' 3d in fatfurwa and missing bodies in buriki. It's been thought the display list may be FIFO - this may tie into the BufferA and BufferB thing look into it!

- The effect of numerous (dozens of) 3d flags needs to be figured out by examining real hardware

- Populate the display buffers (A&B) with the data based on Elsemi's notes below maybe there are some frame-buffer effects which will then work

- Determine wether or not the hardware does perspective-correct texture mapping - if not, disable it in the rasterizer.

- Clean up I/O implementation, currently it only 'works' with Fatal Fury WA, it has issues with the coins and causes the startup checks to fail. This most likely relies on the z80-like cpu

- Work out the purpose of the interrupts and how many are needed

- Correct game speed (seems too fast)

- Figure out what 'network' Road Edge needs to boot, it should run as a standalone

- Make ss64 boot (io return 3 then 4 not just 4) then work out where the palette is (mmu?)

- Fix remaining 2d graphic glitches: Scroll (base registers?), roz (4th tilemap in fatal fury should be floor [in progress], background should zoom), find registers to control tilemap mode (4bpp/8bpp, 8x8, 16x16), fix zooming sprites (zoom registers not understood, definatley differs between games - center versus edge pivot), priorities and still some bad sprites (waterfall level 'splash' - health bar at 50% - intro top and bottom).

- Fix communications CPU (z80 based, we have bios rom)

- Hook up CPU2 (v30 based?) no rom? (maybe its the 'sound driver' the game uploads?)

- Add sound

- Backup ram etc. (why does ff have a corrupt 'easy' string in test mode?)

- Correct cpu speed and find idle skips

- Work out what other unknown areas of ram are for and emulate...

- Cleanups!


WIP:

- 0.101u2: Aaron Giles added MMU support to the non-drc MIPS3 emulator. Converted the Killer Instinct, Seattle, Vegas, and Hyper Neo-Geo 64 drivers to a proper physical memory layout. Disabled the drc MIPS3 core until MMU support is added there as well. Removed gfx3 dispose flags in all games.

- 28th August 2005: Andrew Gardner - I've come dangerously close to implementing the 'linescroll' feature of the hng64. This enables the floor in fatal fury wild ambition! Pay close attention to the recognizable features on the floor (like the stars) as they're foreshortened by perspective effects. The way the hng64 does this is pretty strange (but quite cool). Basically, they load up a 2048x2048 pixel tilemap and then sample it based on lines drawn through it. So if you wanted an orthographic projection of the tilemap, you'd ask for a line from [x,y] (0,0) to (2048,0), then a line from (0,1) to (2048,1), then one from (0,2) to (2048,2), and so on. If, instead, you wanted something interesting, you'd ask for lines calculated based on a perspective projection into the tilemap. You can then rotate the sample-lines to make the floor appear as it's rotating, or scale the sample-line lengths to make it look like the floor's moving further away. Quite spiffy to be sure, but I can't figure out anything this would be used for except rendering planes... To give the hardware designers credit, it may have been necessary to include this specialized 'textured plane-drawer' since the hng64 polygon rasterizer is probably very slow when drawing large triangles. The rasterizer probably also messes up the textures pretty badly on large polys because of an assumed lack of perspective-correct texture mapping (?). Anyways, hopefully as we improve the emulation further, we'll see how other software uses it. The implementation isn't complete yet - I'm ignoring 32 bits per [x,y] coordinate and my implementation fails miserably when the camera points down. I do think I'm onto something though, because when the players move around the groundplane moves and rotates correctly - it's just a matter of figuring out the finishing touches.

- 22nd February 2005: Guru - SNK Hyper Neo Geo 64 driving-style main board just arrived.

- 0.87u4: Andrew Gardner improved the Hyper Neogeo 64 rendering, 3d graphics can now be seen although emulation is still incomplete and Fatal Fury WA still needs a hack to boot - rasterizing code provided in part by Andrew Zaferakis.

- 0.86u4: David Haywood added preliminary background zoom in HNG64. Added V30 (8MHz) CPU2 to all games.

- 5th September 2004: David Haywood - Slightly updated HNG64 driver. This adds zooming tilemaps for the backgrounds in ff, however it causes some problems in buriki due to me not understanding how the effect is enabled.

- 0.86u3: More HyperNeogeo64 improvements. A *very* ugly hack with modified CPU core files can be downloaded extra.

- 1st September 2004: David Haywood - More work on the sprites (and some faked inputs). Roms for FFury were redumped at the corret size, this fixes some problems with the 2d gfx.

- 31st August 2004: David Haywood - All the current hyperneogeo dumps seem to have bad Sc and Sp roms, so some graphics are garbage, I did however manage to make some progress.

- 0.86u2: ElSemi and David Haywood improve the HyperNeogeo64 emulation.

- 30th August 2004: David Haywood - We've managed to get Buriki putting some more interesting tilemaps in Ram.

- 29th August 2004: David Haywood - Thanks to some work from ElSemi the HNG driver does something much more interesting now, and there are a few ideas to try tomorrow as well. More HyperNG64 games were dumped (FF Wild Ambition, RoadEdge) but I'm still not sure what they are doing...

- 28th August 2004: David Haywood - Not sure if the messages the driver now displays are going to prove useful or not...

- 12th March 2004: David Haywood improved the Hyper Neogeo 64 driver a little further.

- 10th March 2004: David Haywood added a skeleton driver for Hyper Neogeo 64 and R. Belmont improved it a little, but it's far from working.

- 14th August 2002: Hyper NeoGeo64 mother board received from Japan. The Dumping Project wishes to thanks all the people who have contributed funds.