What's new

Direct64 v0.5 ALPHA

Orkin

d1R3c764 & g1|\|64 m4|<3R
For the past few months I've been working on a DirectX 9 plugin that uses the latest features of today's GPUs to get as close to the N64 as possible. That plugin is called Direct64 (original name, huh?).

I had planned on getting more much done on this before releasing, but it's been so long since I've released anything to the public that I'm going to go ahead and release it as an alpha version. As such, keep in mind that this is very much a WIP, so expect bugs, crashes, and various glitches.

Direct64 is based on the glN64 source code, but many changes have been made since I began working on it. Here's what's different in Direct64 v0.5 ALPHA from glN64 v0.4.1:

  • Changed graphics API from OpenGL to DirectX 9
  • Changed combiner to use pixel shaders (PS 2.0 recommended)
  • Added software triangle clipping
  • Added overscan simulation
  • Added software depth buffer rendering (see Zelda coronas/lens flare)
  • Added Zelda "four suns" bug hack
  • Added OrkinSampling (FSAA doesn't work with the new framebuffer
  • Added preliminary LOD factor support (see SM64 Bowser/Peach painting transition)
  • Added HQ2X and HQ4X texture filters (thanks to Maxim Stepin)
  • Improved S2DEX and S2DEX2 microcode support
  • Improved blender emulation
  • Improved noise emulation using pixel shaders
  • Improved depth image support
  • Improved color image support
  • Improved depth bias for decals
  • Fixed a bug related to switching microcodes using gSPLoadUCodeEx

The plugin requires DirectX 9, and at least PS 1.1 support (although PS 2.0 is recommended).

The future of glN64 is unclear. Although it will definately be continued in some form, whether or not I will integrate the two plugins into one, or keep them seperate, I haven't decided...

I hope you all enjoy the plugin. I expect to be able to put more work in to it in the future, as next week is finals week...

EDIT (5-2-2004):
I fixed a couple bugs tonight and updated the ZIP, so re-download to get the following fixes:
  • Fixed a bug in the blender that could cause fog to be enabled at the wrong time
  • Fixed a bug that could cause missing textures if an advanced filter is selected

EDIT (5-3-2004):
Fixed a few more bugs, and updated the ZIP file:
  • Changed TEX_EDGE mode detection method (Paper Mario sprites bug fixed)
  • Added a combiner hack to fix Majora's Mask pause screen with new TEX_EDGE detection method
  • Improved texture rectangle texture coordinate generation when using a frame buffer texture (doesn't blur the background in Zelda pause screens)
  • Fixed a bug that caused slow-downs when changing microcodes mid-ROM (Majora's Mask motion blur faster now).
  • Fixed a matrix bug that could show up in some games (i.e. Diddy Kong Racing)

EDIT (5-4-2004):
Here we go again. Re-download to get the following updates:
  • Updated the Banjo-Tooie shadow hack
  • Fixed a bug that caused alpha to get messed up when lighting was enabled (1080 Snowboarding board selection)
  • Improved TEX_EDGE support (1080 Snowboarding character-selection)
  • Improved OrkinSampling stability somewhat
  • Improved resolution switching, shouldn't be as troublesome as before
  • Removed some old code that was messing up cards with PS less than 1.4, it should work now (still untested)

EDIT (5-5-2004):
Time for tonight's update. I got tired of the slowness, so I made some optimizations. Let me know if they help (or if they break anything).
  • Optimized vertex handling
  • Optimized triangle clipping
  • Optimized texture updates
  • Added partial F3DEXBG2 microcode support (CBFD)
Next I'll be working on the compatibility issues (both video card and game).

EDIT (5-8-2004):
Another update! Here's what's new:
  • Added nearly complete Sprite2D microcode (more like nanocode) support (Space Station Silicon Valley backgrounds/menus)
  • Changed RDRAM size detection to a constant value (was causing problems when switching ROMs)
  • Fixed LOD factor computation that broke from vertex handling optimizations (Bowser/Peach painting transition)
  • Fixed bugs in primitive depth decoding (Space Station Silicon Valley and others)
  • Fixed incorrect matrix stack size detection (Space Station Silicon Valley objects)
  • Improved state synchronization (no longer messes up when switching ROMs)
  • Improved color image/depth image handling (reduced black screens)
A partial rewrite of color image handling is in the works that should eliminate the black screen problem that appears in several games.

EDIT (3-12-2005)

I was bored tonight so...here's something new for ya'll to play with. I can't believe it's already been 10 months since the last update! I've fixed several things with the little bit I've been able to work on Direct64 over the last 10 months, but I probably broke some things in the process too...here's what I can remember being changed:
  • Fixed a slow-down problem related to newer ATI Catalyst drivers
  • Fixed OrkinSampling
  • Added preliminary Majora's Mask point lighting support
  • Improved color and depth image support (should be nearly complete now)
  • Dunno what else...I tend to forget alot over 10 months...
Anyways, I hope ya'll enjoy this...it took me long enough.
 
Last edited:

LazerTag

Leap of Faith
Very nice work Orkin.

Pretty cool to see that Peach/Bowser transition effect in game.

Not sure what caused it, and like you said this will have issues, but it seemed when I changed some of the vairous setting I could barley get over 10VI in most games. SWitched everything back and tried closing 1964 and such still with slow problem. I changed the plugin to Rice's Video ran a ROM and then back to Direct64 and everything was fine after that. So far have not ben able to reproduce it.
 

-Shadow-

Banned
Ummm... Muhar i'm the first one who posts his problems :D

Ok , it shows completely nothing on the screen except a Green bar on the bottom of the screen o_O . I got DX9b....
 

Trotterwatch

New member
Doesn't work for me or Gent either - both using a Radeon 8500 with 3.10 drivers.

/Edit

Just checked latest drivers too, again no workie. Hopefully this can be sorted out, as I believe this card has Pixel Shader 1.1-1.4 so should be capable of decent things.

The attached picture is Mario 64 - the picture I got to show up by going to fullscreen then back to window. The picture in the current state doesn't update unless the procedure is repeated :/
 
Last edited:

Clements

Active member
Moderator
Wow! I love what you have done with the plugin! Super Mario 64 is 99.9% flawless (Peach-Bowser transistion!), and extremely good looking. I have to turn the resolution down to 800x600 to play games with the hq2x filter, but it looks amazing. I understand that the plugin has bugs, but judging from Zelda and SM64 it's fantastic. The overscan feature is so awesome in getting rid of that annoying artifact in Zelda's Hyrule field and massive borders. Everything is just so crisp- you have implemented the filters into your plugin so cleanly that there are no sprite artifacts whatsoever. I guess you need an extremely powerful graphics card if you want to play in high resolutions due to the DX9-ness.

Good luck in your finals! (I have some tests of my own coming up too :p)
 

-Shadow-

Banned
Man , Orkin must've VERY few time ! He didn't even stay in this forum to eventually answer questions :(
 

ScottJC

At your service, dood!
Maybe it doesn't work because you don't have PS 2.0, i do, with my fancy new ATI 9600, I shall try it out in a min...
 
Last edited:

Hexidecimal

Emutalk Bounty Hunter.
This plugin shows a lot of promise, a WHOLE lot of promise, in the alpha release, SSB os playing very well, aside from a message box that says unable to create D3D Textures, I hit ok 4 times, i get no flat bombs or fireballs, or shields, the out of screen indicator work perfectly, the only thing i can see wrong is the collusion graphics, which are black, amazing work Orkin, keep it up.
 

-Shadow-

Banned
Argh , look at my specs , theres a BIG FAT Radeon 9800Pro , a PS2.0 performance monster ! It should work , ive got exactly the same issue like Trotterwatch !
 

ScottJC

At your service, dood!
looks like I was wrong :p, I get absolutely no picture at all, its pure black, using 3.10 drivers. (using 1964, if that matters.)
 
Last edited:

-Shadow-

Banned
I've got 4.4 drivers , I don't think that the driver matters , and pj64 and mupen are producing error messages...
 

ScottJC

At your service, dood!
Yes clements, but you have a Nvidia card.

I think this is only happening to ATI card owners. (So far it seems to Affect 8500/9600 & 9800), or maybe all of them?
 

-Shadow-

Banned
hmmmm , I think we should make the best of it.... Clements , can you please test if the texts Mace-the dark age are working now ? And can you please show some other shots ? Pleeeaase ^_^
 

ScottJC

At your service, dood!
Then clearly this plugin works for some ATI users and not others then, It *should* work fine but the sad truth is it doesn't, maybe its driver related or something, can't really know for sure.

but I understand it is alpha so stuff like this is to be expected.

Yeah, clements post some more shots, we are hungry:p
 
Last edited:

Clements

Active member
Moderator
Couple of shots, Motion Blur on Majora's Mask works, Super Smash Bros. has no annoying border and shields are round, and the F-Zero cars are SHINY! :D Again these are PNGs since they convey the IQ much better.
 

-Shadow-

Banned
Whoah....want.....more.....screeens.... :D

Ok , normal speech : Super nice shots ! Screw those 56kler and post some more screens pleeeease ^_^
 

Top