Jump to content
A 2021 backup has been restored. Forums are closed and work in progress. Join our Discord server for more updates! ×
SoaH City Message Board

NiGHTS into Dreams clone


Surixurient

Recommended Posts

NiGHTS into Dreams clone

----------------------------------------------

The development of the project will be devided into 7 phases.

Phase I - Aquiring the media/artwork

Phase II - Aquiring the course data

Phase III - Programming the rendering/animation engine

Phase IV - Programming the game/physics engine

Phase V - Fine tunning

Phase VI - repeat of previous steps for boss battles

Phase VII - menus/videos/etc

Phase I and II are basicaly just hacking/reverse engineering of the saturn game to aquire the authentic art and data. The saturn emulator yabause is being used because it can actualy execute nights and because it has a decent debugger.

Phase III and IV will be developed with XNA studio for C#, so the target platform is both windows and xbox 360.

Phase V is going back over III and IV and tweaking them until it is descided that the clone is as close to a "clone" of the origional as desired.

Phase VI is repeating the previous steps, but this time for boss battles. The reason being, boss battle will be a whole different story from the start. From ripping to coding it is too different to be worth developing at the same time as the course portion of the game.

Phase VII is just the finishing touches, making it a complete game. (it will include more graphics, audio and video ripping of the game menus and such)

Current Status: Phase I

more details on any phase available on request!

:) wish me luck, i want to get it finished before a nights sequal is released

Link to comment
Share on other sites

Pretty cool job, I saw your thread in Sonic Cult (IIRC) and it's awesome so far ^^ Just wondering, how did you rip the nights level?

with a bit of speculation and a bit of luck.

i figured it must be 2 heightmaps. i figured it must be short integer to save memory. i figured it must be in low user ram (being the only giant block of solid data large enough to be heightmaps was in low user ram)

so i started graphing the values on a scale of 0 to max short. in that large chunk area i saw chaotic lines on my graph. so i only graphed every other short. now i definately saw a nice contour for a period, then noise then a nice contour then noise, etc, so i skipped over the noise areas which ended up being 81 points, then noise then 81 points then noise etc.. seems like a 9 by 9 grid right? that would make sense 9 by 9 vertex would be 8 by 8 quads. so i graphed 9 points, droped a line graphed the next 9 points underneith graphed the next 9 points underneeth that etc. now i definately saw terrain like contours in all these grids i graphed. so i knew i found it :) was a happy day

Link to comment
Share on other sites

Awesome, what about textures, though? Did you found the coordinates? Or is it a bitmap on top the heightmap so no coordinates are needed?
well that was the "noise" areas between the 81 points. the 81 points made up the 9 by 9 vertex grid. so the area inbetween each grid of vertecies was 256 bytes. 256 /4 is 64. so that is a 8 by 8 grid with 4 bytes describing each quad. through tests i found that the first 2 bytes described the texture mapping for the quad, and the remaining 2 bytes i dont know what they are. maybe an offset to the goroud shading table? anyways all the info i wanted came from the first 2 bytes. heres how it worked out. bits 0 through 11 is an index to the heightmap texture table. bit 12 represents verticle flip of texture, bit 13 represents horizontal flip of texture bit 14 is unknown(ive never seen it on) and bit 15 represents 90 degree rotation of texture. this is all the mapping info needed because on sega saturn there must be a 1 to 1 fit between quad and texture. there are no 3 sided polygons on saturn. just 4 sided quads and a texture is stretched over the entire quad. 1 quad cant have 2 textures. and 1 texture cant be spread over more than 1 quad.

how i found the heightmap texture table was just searching and knowing how textures referances are usualy stored on saturn. they are stored like this

(offset into vram of character map(bitmap data))/8 as an unsigned short. then (offset into vram of color lookup table)/8 as an unsigned short

so for the conversion i made 1 bitmap of all the textures on the table, and maped the polygons to that 1 bitmap based on their index to the table, and their flilping/rotation values

here is the bitmap of table entries

texterrainclaris11ap.jpg

Link to comment
Share on other sites

  • 2 weeks later...

Ooh, sweet :cool:! Well, I hope for your sake that you do finish this game before Sega ever (if ever) decides to make and finish NiGHTS 2 -- and I say make and finish because they might start making it before you finish your game, but you might then complete yours first. I wish you luck (and skill, for that matter) on this project of yours!

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...