
Hello all !
Does anyone can help us to extract map content from both PSOV2 (PC) and PSOBB ?

Code: Select all
stage = {
num_sections : dword,
iff_str : dword,
section_addr : dword,
texture_addr : dword
};Code: Select all
[{
id : dword,
pos : {
dx : single,
dy : single,
dz : single
},
rot : {
x : int,
y : int,
z : int,
},
radius : single(),
//pointers
model_addr_a : dword,
unknown : dword,
model_addr_b : dword,
//number of
num_model_a : dword,
num_unknown : dword,
num_model_b : dword,
end : dword
}
...]
Looks great in Noesis with textures! (Though the meshes are not that detailed.)PsowKion wrote:The result of what I was able to analyze is in this folder: here.

Nice !!shakotay2 wrote:Looks great in Noesis with textures! (Though the meshes are not that detailed.)PsowKion wrote:The result of what I was able to analyze is in this folder: here.
Finally I managed to get that nasty beast compiled using my old Delphi2005 PE:
I don't think, but I will let PsowKion answer this, he know better than me about this subject.shakotay2 wrote: Is there any newer source version of the mapviewer?


The holes which are fixed by Noesis using face culling?PsowKion wrote:I turned to Kryslin's ExMLDNet and started working on .nj models to see if there were any hits that could help me fill in the holes I had for PSOBB maps and .xj models.
For testing I've been exporting to .obj and would like to try writing a noesis plugin down the line once I get a better handle on the file formats and 3d in general. As for .nj, it's a "Ninja-Chunk Model" file format that Sega developed and used for Phantasy Star Online in the Dreamcast, and for a lot of other games. And .xj is a variation of that format which Sega used for Phantasy Star Online Blue Burst on the PC several years later. The stage files use these model formats internally to build scenes which make up parts of the stage.shakotay2 wrote:I myself don't know about .xj and .nj model formats. Is this really needed? Why not use some more popular format? SMD, FBX, DAE whatever.
I skipped over most of the details for textures, but I was able to port the important parts for how to parse the triangle strip, and the matrix functions needed to render the model correctly. Here's the code I ported for how to parse .nj models: njcm.js, and here's the code I ported for the matrix functions: MatrixUtil.js.ExMLDNet uses Visual Basic? Really? Well, ok, just another transformation hurdle to transform it to javascript
In this case I meant it figuratively. I can pretty much parse out all of the vertexes, normals, and triangle strips from the file format. Often they are intended to be double sided and fixed with culling. The "holes" that I meant were lapses in understanding like flags, or vertex alpha and other parts of the file which I'm able to read, don't completely understand what they do from the file definition. Mainly small things for flags on when to flip the UV or things like that.The holes which are fixed by Noesis using face culling?
To be honest I just starting using Nodejs on a whim one day for this kind of thing and it ended out working pretty well. If you're looking at Nodejs tutorials, I think a lot of them are going to be server oriented. Here's a quick video I made for the how/why I use Nodejs: Youtube Link. Personally I'm just using it for file I/O stuff in this case, so there's nothing too special about it beyond personal preference.Anyway, one of my next aims is to get familiar with Node.js.