Dx7 to Dx8

Okay, so before anyone asks i won’t be changing engine.

Kryce is developed in EE (heavily ripped up and modded). Now it would be very interesting and benefitial to change from DX7 to DX8.

However, i have ABSOLUTELY NO IDEA how DX8 works, and it is one hell of a job. I mean it’s not just ripping the initial subs from EO/EN, it’s then getting EVERYTHING to work on the game screen alongside then changing every editor to work correctly. Plus from what i understand it also means converting my tilesets so they’re only 512 px high, and then re-mapping the entire game world to suit this new tile format.

I’d happily keep my tiles as a .bmp, realistically i only want dx8 for fog, quite literally the only reason i want it.

Can anyone shed some light on somewhere i can get a grip of how DX8 actually works inside vb6 for a 2D engine? (or if somebody would happily be paid to convert for me I may consider this, although i would expect the job to be done properly and completely by a trusted member of the community.)

I would think of a few more reasons for switching than just ‘I want fog’.

Such as? The real only benefit of DX8 in a 2d game is the use of it’s alpha channels…

With such things you can produce massive lighting effects that are apparently impossible with DX7…

Well, you’ve got two options. if this is too much work, you could always make a data converter, and just convert all of your stuff to work with a newer engine. Apart from maps and how tilesets would need to be modified, this can be seen as WAY less work than a D3D8 conversion.

But, you know the source well enough, so it shouldn’t be hard to copy the initialising and destroying subs, and effectively copy the way rendering is handled. D3D8 conversions are WAY less work than the community here make it out to be, to the point it’s not even funny.

It’s really just a simple (but long-winded) matter of converting all of the rendering at once, and copying across some initialising and destroying subs, if I’m honest.

You don’t understand how much I’ve edited in the source of Kryce… It’s not simpler to just switch to a new engine…

But even with a large amount of edits, you’re only editing the rendering routines, which in itself is fairly linear.

It isn’t difficult to just re-write the various BltFast/BltToDC, whatever else you’re using in the DD7 rendering routines to the standard texture rendering subs.

Like I said, there are literally only three steps to this, the last two being long:

  1. Add in the initialising and destroying routines, and add calls to them in Sub Main/DestroyGame (Or whatever your equivalent is.)
  2. Go through EVERY sub that renders something, and simply write out the equivalent in the RenderTexture equivalent of the D3D8 engine you’re using.
  3. Convert all of your graphics to the PNG format.

Does DX8 support .bmp textures larger than it’s .png counterpart?

i’ve no issue with doing all my characters items and stuff…

It’s just the tile sets. Mine are huge… I can’t think of any easy way to change this to suit 512 maximum height of textures as far as the map data goes for tiles.


link=topic=81989.msg877939#msg877939 date=1343757830]I can’t think of any easy way to change this to suit 512 maximum height of textures as far as the map data goes for tiles.

Well, technically speaking, most modern-day graphic cards can use textures up to 8,192, however I don’t recommend you go anywhere over 1,024.

D3D8 can use PNG, GIF, JPEG, BMP, and various other raster image formats, and even a few vector formats (Can’t remember exactly).

As for the tileset thing, I suggest splitting them all into 512/512 textures, and making use of the Mod function in a map converter, that’ll change the tileset x/y to loop over 16 tiles, and then increment to the tileset value when moving along, essentially just converting them across. Will definitely require some amount of testing, but if you have an idea on how to get it done, I’d assume it’d be quicker than remapping the entire thing.

Log in to reply