PSO Weapon and Armor Database (currently v2)

Sylverant is a homebrew open source server for Phantasy Star Online. Dreamcast users still play PSO online with this server even today! This is the official forum for both the online game server as well as the open source project itself. Feel free to post and get a gathering started online! We can also show you how to get connected!

Moderators: BlueCrab, Aleron Ives

Post Reply
Lee
DCEmu Freak
DCEmu Freak
Posts: 53
Joined: Thu Mar 06, 2014 10:28 am
Has liked: 0
Been liked: 0

Re: PSO Weapon and Armor Database (currently v2)

Post by Lee » Mon Dec 01, 2014 6:37 am

My programs are written in delphi, specifically though they are no longer editors as such the itempmt and magedit prs programs, i pretty much rebuild the entire files realigning all pointers to allow addition of items (Blueburst, i can do this in v2 to but i'm sure ives has explained why it kinda sucks).

The reason my older programs do not open v2 pmt files is because the v2 file is actually a lot simpler then the blue burst or gc / xbox files which contain more data in them, also to boot my old programs where hard-coded to look for data at specific offsets (don't shoot me), this was before i decided to read pretty much every pointer that ever existed ever in the files (Was not enjoyable).

Even now though prob because i'm lazy lol my pmt programs exist as 3 different branchs of the same code, one for each version (v1 / v2 with only mag length changes, v3 Gc and xbox, blueburst which has some additional data for impact sound effects extra padding on items etc and team points).

Actually only ives has a copy of my v2 program, no one has a copy of my v3 one and obviously my bb one is public, tbh most of the code in tethella which bluecrabs server is based on was using converted c code from my old delphi readers for it's pmt related data, that and ives obviously has been using my program to tell bluecrab things and well that cleans up why the headers look so familiar.

I don't know if you realise it or not but i already have about a billion editors for things including; itempt itempmt itemmagedit, itemrt battleparam, unitext and many more i can't be bothered to list, but thanks for the offer + they are all coded in delphi which i'm not sure my code would be that helpful anyway;

Image

Image

Just bare in mind my goal was never to display data in a cohesive way for users but to provide server editing tools for actually altering things in pso, which is why i kinda questioned the nature of creating a program to do what an excel spreadsheet could do if you fed it dumps (sorry but that's kinda what i seeing this as).

I'm not knocking this anyway, if you want to display information more power to you, I honestly don't see a reason personally to combine all my various programs in to a swiss army knife so to speak, it could get kinda bloated lol. I mean just editing the pmt for bb to add items has turned in to a uitext editing and adding exe patching mega monster of a program.

Then again 6500 lines of code isn't that bad i guess.

Oh and if i have any information that may be useful to you, feel free to ask.

If you plan on reading a default psobb pmt file, here is a kinda file i made for myself to remind myself how to put the file together when i was reading / rebuilding it yes i know how simplistic this seems but it did help keep things straight in my head:

Code: Select all

Itempmt pointer flow

0x015064 -> 0 0001489C -> 00000001 00004348 // Weapons
	 -> 1 000147A4 -> 00000059 00001500 // Armors // read from here to
			000000A6 00000040 // Barriers
	 -> 2 000147B4 -> 00000065 00002020 // Units
	 -> 3 000147C4 -> 00000003 00003118 // Items
	 -> 4 000147BC -> 00000053 00002804 // Mags
	 -> 5 0000F4CC -> // Weapon animations
	 -> 6 0000DE7C -> // Unknown Weapon related
	 -> 7 0000E194 -> // Weapon Range stats
	 -> 8 0000F5BC -> // Unknown, Weapon related fixed count 165
	 -> 9 0000F850 -> // Unknown, weapon related fixed count 12
	 -> 10 00015044 -> 0000F860 // Mag feed 1
		     -> 0000F8B8 // Mag feed 2
                     -> 0000F910 // mag feed 3
		     -> 0000F968 // mag feed 4
                     -> 0000F9C0 // mag feed 5
                     -> 0000FA18 // mag feed 6
                     -> 0000FA70 // mag feed 7
		     -> 0000FAC8 // mag feed 8
	 -> 11 0000FB20 -> // item star values
	 -> 12 0000FE50 -> // Special data, fixed count
	 -> 13 0000FEF4 -> // Weapon sound effects
	 -> 14 00012770 -> // Item stat boost data
	 -> 15 00011C94 -> // Shield sound effects
	 -> 16 000128A8 -> // Tech Use table
	 -> 17 0001500C -> 0000190 00001298C // Item combine table
	 -> 18 00012768 -> 0000003 000012744 -> 0000003C 000121BC 00012364 //wtf on hit sounds
					  -> 00000023 00012394 0001253C
					  -> 00000029 0001256C 00012714

	 -> 19 0001428C -> // Tech boost table
	 -> 20 0001502C -> 00000003 00015014 -> 00000009 000146AC // Jacko % List
                                          -> 00000009 000146D0 // Easter % List
                                          -> 00000008 000146F4 // Christmas % List
	 -> 21 00015034 -> 00000004 00014714 // Unseal items
	 -> 22 0001503C -> 00000020 00014724 // Super Special List
AmonX
DCEmu Freak
DCEmu Freak
Posts: 80
Joined: Tue Sep 09, 2008 12:49 pm
Has liked: 0
Been liked: 0

Re: PSO Weapon and Armor Database (currently v2)

Post by AmonX » Mon Dec 01, 2014 9:13 am

Lee wrote:Just bare in mind my goal was never to display data in a cohesive way for users but to provide server editing tools for actually altering things in pso, which is why i kinda questioned the nature of creating a program to do what an excel spreadsheet could do if you fed it dumps (sorry but that's kinda what i seeing this as).

I'm not knocking this anyway, if you want to display information more power to you, I honestly don't see a reason personally to combine all my various programs in to a swiss army knife so to speak, it could get kinda bloated lol. I mean just editing the pmt for bb to add items has turned in to a uitext editing and adding exe patching mega monster of a program.
Technically yeah it is just dumps at the moment but yeah I do display it on a cohesive way :). The old files armor.txt and weapon.text could have been opened in excel :P but I am hoping now it is more useful than that. It was easier to grab that information first rather than deal with the files directly which as I said I am planning on doing eventually. I think a skilled excel coder could recreate my program in excel but all I know is basic formulas. It was the quick and dirty way and I think there are a few people that actually use this :) Why you ask do I simply want to display this information? Because I haven't found a website that does and is correct.

Do you have any information on the V1 itemrt? I managed to feed one to sylverant by removing the validity checks and the majority of data seems correct. There are no box drops listed though.

Do you know where the weapon sound effects are in the v2 itempmt? I know Ives really wants to fix the j-cutter or something

Also thank you for all you have done for PSO :D
Lee
DCEmu Freak
DCEmu Freak
Posts: 53
Joined: Thu Mar 06, 2014 10:28 am
Has liked: 0
Been liked: 0

Re: PSO Weapon and Armor Database (currently v2)

Post by Lee » Mon Dec 01, 2014 10:01 am

Do you have any information on the V1 itemrt? I managed to feed one to sylverant by removing the validity checks and the majority of data seems correct. There are no box drops listed though.
Not off the top of my head but when i dig out a v1 disc wouldn't take long to look at it, it's possible the data is not in v1's itemrt but was added in v2, as the versions went on sega moved things out of the main executable to support files, many of the additions to the pmt in v3 and bb are examples of this.
Do you know where the weapon sound effects are in the v2 itempmt? I know Ives really wants to fix the j-cutter or something
The sound effect the weapon group is coded to use, yes, the formatting is different to psobb though prob 16bit inverted or word split or some crap. i didn't spend too much time sorting it out since well only ives even looked at the v2 program anyway this is from my source i don't have raw offsets because i am using the file itself to read itself if you need one i could get my program to spit one out though:

$ in delphi is 0x

Code: Select all

  filepmt := tmemorystream.Create;

  pikapmt := tmemorystream.Create;
  pikapmt.LoadFromFile(FileOpen1.Dialog.Filename);

  SetLength(filebuffer, pikapmt.size);
  pikapmt.ReadBuffer(filebuffer[0], pikapmt.size);

  PikaSize := PikaDecompress(pansichar(@filebuffer[0]), pansichar(@y[0]),
    pikapmt.size);

  filepmt.Writebuffer(y[0], PikaSize);

  pikapmt.Free;

  filepmt.Seek((filepmt.size - $20), 0);
  filepmt.ReadBuffer(Header.data[0], $20); // Read the footer

  SetLength(Point.Flags, Header.data[1] * 2);

  filepmt.Seek(Header.data[0], 0); // Pointer flag section
  filepmt.ReadBuffer(Point.Flags[0], Header.data[1] * 2);

  filepmt.Seek(Header.data[4], 0);
  filepmt.read(Point.block[0], $54); // this is what you want the pointer block for the various data in the pmt

Code: Select all

  filepmt.Seek(Point.block[14], 0); // Weapon sound effects this element 15 of my array which is dword values btw

  SetLength(data.WSFX, WeaponHex);

  for X := 0 to WeaponHex - 1 do
  begin
    for z := 0 to 3 do
      filepmt.ReadBuffer(data.WSFX[X].Sound1[z], 8);
  end;

  // filepmt.ReadBuffer(data.WSFX[0], 7584);

  Action12.Execute;
as you can see i just used my old bb arrays to hold the v2 data while the same size their format is different:

Image

65537 decimal is 0x10001 prob 2 word values though not exactly sure why, never did get the sound formatting really anyway

you can see here in my bb editor which is a bit more refined: the value assinged:

Image

Dunno what ives is complaining about even though the numbers don't make sense they can still be changed in my builder although idk what exact issue he is fussed over this time. if it was just a case of wrong sfx can just copy the random ass numbers from another entry lol. Well unless i over looked making that section editable which would take me like 5 mins to fix which is prob the case.
Lee
DCEmu Freak
DCEmu Freak
Posts: 53
Joined: Thu Mar 06, 2014 10:28 am
Has liked: 0
Been liked: 0

Re: PSO Weapon and Armor Database (currently v2)

Post by Lee » Mon Dec 01, 2014 10:16 am

Oh i found this my v2 retard map for pointers this is prob more clear then my random ass code which prob lacks context:

Code: Select all

00000013
		00 00005AFC -> 00000001 00001874 // Weapon
		01 00005A5C -> 00000035 00000590 // Armor
		02 00005A6C -> 00000044 00000AA0 // Units
		03 00005A7C -> 00000003 00001264 // Items
		04 00005A74 -> 00000039 00000DDC // Mags
		05 00003DF8 -> // Weapon Animations
		06 00002E4C -> // Weapon Photons
		07 000032CC -> // Weapon Range stats
		08 00003E84 -> // Unknown, Weapon related
		09 000040A8 -> // Unknown, weapon related fixed count 12
		10 00005F4C -> 	000040B8 -> // Mag feed 1
				00004110 -> // Mag feed 2
				00004168 -> // Mag feed 3
				000041C0 -> // Mag feed 4
				00004218 -> // Mag feed 5
				00004270 -> // Mag feed 6
				000042C8 -> // Mag feed 7
				00004320 -> // Mag feed 8
		11 00004378 -> // item star values
		12 00004540 -> // Special data, fixed count
		13 000045E4 -> // Weapon sound effects
		14 000058DC -> // Item stat boost data
		15 00005704 -> // Shield sound effects
08 00003E84 -> // Unknown, Weapon related
09 000040A8 -> // Unknown, weapon related fixed count 12
ignore this being listed as unknown, these are just the sell back modifiers to the shop:

Image
AmonX
DCEmu Freak
DCEmu Freak
Posts: 80
Joined: Tue Sep 09, 2008 12:49 pm
Has liked: 0
Been liked: 0

Re: PSO Weapon and Armor Database (currently v2)

Post by AmonX » Mon Dec 01, 2014 11:07 am

Thanks for that :) I should be able to grab the mag feed tables directly now :D
Lee
DCEmu Freak
DCEmu Freak
Posts: 53
Joined: Thu Mar 06, 2014 10:28 am
Has liked: 0
Been liked: 0

Re: PSO Weapon and Armor Database (currently v2)

Post by Lee » Mon Dec 01, 2014 11:20 am

I just thought of something actually, v1 may not have rare table drops for boxes because it doesn't drop rares from boxes, just random pt generated data lol.
AmonX
DCEmu Freak
DCEmu Freak
Posts: 80
Joined: Tue Sep 09, 2008 12:49 pm
Has liked: 0
Been liked: 0

Re: PSO Weapon and Armor Database (currently v2)

Post by AmonX » Mon Dec 01, 2014 11:54 am

I wasn't sure what the case was. Saffo the person who requested the v1 info didn't ever recall seeing rares drop from boxes :). I just wasn't sure because some of the data I grabbed was weird but that is most likely due to the fact I didn't change anything so it is trying to read it as a v2 rt instead of v1 :)

I only used C# because it was so quick to throw together a gui.

As you can see below the monster values 0x33, 0x3f and 0x60 are giving drop info :) and also there is drop info for ultimate lol those are the only ultimate drops I forgot to stop after vhard so it must be garbage data that got interpreted as an item :)
Difficulty, ID, Monster id, Monster id, RT rate, dar*rt rate, the 1/(dar*rt) thingy, item name, and box drop location (-1 for enemy drops) [decided to have a single table for both monster and box drops]

Code: Select all

dataGridView6.Rows.Add("2","6","0x33","0x33","0.000001","0.000000","1/inf","Varaha","-1");
dataGridView6.Rows.Add("2","6","0x3f","0x3f","0.000000","0.000000","1/inf","Monomate","-1");
dataGridView6.Rows.Add("2","6","0x60","0x60","0.000048","0.000000","1/inf","Sword","-1");
dataGridView6.Rows.Add("3","0","0x02","0x02","0.000000","0.000000","1/306783379","Mechgun","-1");
dataGridView6.Rows.Add("3","1","0x02","0x02","0.000000","0.000000","1/306783379","Mechgun","-1");
dataGridView6.Rows.Add("3","2","0x02","0x02","0.000000","0.000000","1/306783379","Mechgun","-1");
dataGridView6.Rows.Add("3","3","0x02","0x02","0.000000","0.000000","1/306783379","Mechgun","-1");
dataGridView6.Rows.Add("3","4","0x02","0x02","0.000000","0.000000","1/306783379","Mechgun","-1");
dataGridView6.Rows.Add("3","5","0x02","0x02","0.000000","0.000000","1/306783379","Mechgun","-1");
dataGridView6.Rows.Add("3","6","0x02","0x02","0.000000","0.000000","1/306783379","Mechgun","-1");
dataGridView6.Rows.Add("3","7","0x02","0x02","0.000000","0.000000","1/306783379","Mechgun","-1");
dataGridView6.Rows.Add("3","8","0x02","0x02","0.000000","0.000000","1/306783379","Mechgun","-1");
dataGridView6.Rows.Add("3","9","0x02","0x02","0.000000","0.000000","1/306783379","Mechgun","-1");
basically I check if it is a valid item and if it is fprintf that line :P
Lee
DCEmu Freak
DCEmu Freak
Posts: 53
Joined: Thu Mar 06, 2014 10:28 am
Has liked: 0
Been liked: 0

Re: PSO Weapon and Armor Database (currently v2)

Post by Lee » Mon Dec 01, 2014 1:37 pm

c sharp isn't all that different from delphi tbh, same goal, rapid gui development makes it really easy to make gui fronts for reading data files, still haven't found my v1 disc, prob have to download one when i get time lol.
User avatar
Aleron Ives
DCEmu Nutter
DCEmu Nutter
Posts: 811
Joined: Wed Jan 05, 2011 2:15 pm
Location: California
Has liked: 0
Been liked: 0
Contact:

Re: PSO Weapon and Armor Database (currently v2)

Post by Aleron Ives » Mon Dec 01, 2014 2:03 pm

Regarding the sound effects, you said the SFX tab was disabled for editing, since you didn't know what any of it did at the time. I tried to edit a sound effect just now, but when I click off of the field and then click back onto it, the "LabeledEdit13" value reverted to its previous state, so apparently the "Update" button is disabled. The "Update" button on the Shield SFX tab doesn't work, either.

The old version I have looks like yours with all of the Unknown checkboxes. I wanted to fix the J-Blade (V2 equivalent of S-Rank Katana), since it's supposed to make the Agito sound effect, but it makes the Saber noise, instead. Apparently I just need to change the 65537 (Saber) noise to 65560 (Agito), but that's not possible in V1.0 of the PMT Builder.

As for ItemRT, here's the one from PSOv1. It's smaller than the one from Ver.2 since there is no Ultimate, and each table is also smaller: 448 bytes vs 640 bytes. The table does contain box drops, though. Box drops start at 0x194 in the Ver.2 RT and 0xD0 in the Ver.1 RT; however, Ver.1 only allocates 26 box slots, whereas Ver.2 allocates 30 slots. Most of the slots are unused (0xFF) in both versions. The first drop in both RTs is always Mine 1 boxes, which drop Mag at rate 0xCA.
"Fear the HUnewearl."
Image
Lee
DCEmu Freak
DCEmu Freak
Posts: 53
Joined: Thu Mar 06, 2014 10:28 am
Has liked: 0
Been liked: 0

Re: PSO Weapon and Armor Database (currently v2)

Post by Lee » Mon Dec 01, 2014 2:17 pm

https://www.mediafire.com/?ebcaiu767238248

there it took me what 2 mins to make the update button do something. (i only did the weapons one since you complained about that).

Not even going to comment on the itemrt files, they are standard pso rel file format they tell you how to read them in the footer.
Ver.1 only allocates 26 box slots
Image

0x1E = what in decimal ives.

as you can see box floor designation starts at 0xCC and has a count of 0x1E
User avatar
Aleron Ives
DCEmu Nutter
DCEmu Nutter
Posts: 811
Joined: Wed Jan 05, 2011 2:15 pm
Location: California
Has liked: 0
Been liked: 0
Contact:

Re: PSO Weapon and Armor Database (currently v2)

Post by Aleron Ives » Mon Dec 01, 2014 3:11 pm

Ha. I saw the 06 at 0xD0 and missed the four bytes above it. :lol:

Thanks for the update, but it doesn't seem to work. If I open ITEMPMT.PRS, I get "List index out of bounds (78)". If I try to open ITEMPMT.bin, I get "Range check error". The old version specified file type as "PSOBB Item Parameter Files (*.prs)", but this one lets you select any file. At least the exit option works. :P
"Fear the HUnewearl."
Image
Lee
DCEmu Freak
DCEmu Freak
Posts: 53
Joined: Thu Mar 06, 2014 10:28 am
Has liked: 0
Been liked: 0

Re: PSO Weapon and Armor Database (currently v2)

Post by Lee » Mon Dec 01, 2014 3:18 pm

open a prs, the list out of bounds error relates to the ini files count being out apparently.

Scratch that, it doesn't even want the ini files, get it a unitext file and shove it where the program exe is that will solve it.

if fileexists(extractfilepath(application.ExeName) + 'unitxt_e.prs') = true
User avatar
Aleron Ives
DCEmu Nutter
DCEmu Nutter
Posts: 811
Joined: Wed Jan 05, 2011 2:15 pm
Location: California
Has liked: 0
Been liked: 0
Contact:

Re: PSO Weapon and Armor Database (currently v2)

Post by Aleron Ives » Mon Dec 01, 2014 3:25 pm

If I rename description.ini (which you didn't include with the old builder), I get "List index out of bounds (465)" on ITEMPMT.PRS instead of (78). Either way, only the first field on each weapon hex group has any data; the rest is blank, and there are no names anywhere. The Mag tabs, Photon tabs, Star tab, etc. are all blank and do nothing at all in this version.

*edit*

There we go. It works with unitxt_e.prs. :P
"Fear the HUnewearl."
Image
Lee
DCEmu Freak
DCEmu Freak
Posts: 53
Joined: Thu Mar 06, 2014 10:28 am
Has liked: 0
Been liked: 0

Re: PSO Weapon and Armor Database (currently v2)

Post by Lee » Mon Dec 01, 2014 3:33 pm

// LoadStringList.Execute;
UnitextLoad1.Execute; <---

It has elements of the updates done to psobb version, it wants a unitext file, you can erase the ini files it is looking for:

unitxt_e.prs
User avatar
Aleron Ives
DCEmu Nutter
DCEmu Nutter
Posts: 811
Joined: Wed Jan 05, 2011 2:15 pm
Location: California
Has liked: 0
Been liked: 0
Contact:

Re: PSO Weapon and Armor Database (currently v2)

Post by Aleron Ives » Mon Dec 01, 2014 3:37 pm

Does that mean this one does everything by reading the pointers now, rather than using static offsets? I notice that the option to add weapons and other items seems to work, not that you can edit the unitxt to make names and descriptions for new items with only this tool. I guess it's time to play with sound effects a little. :mrgreen:
"Fear the HUnewearl."
Image
Lee
DCEmu Freak
DCEmu Freak
Posts: 53
Joined: Thu Mar 06, 2014 10:28 am
Has liked: 0
Been liked: 0

Re: PSO Weapon and Armor Database (currently v2)

Post by Lee » Mon Dec 01, 2014 3:45 pm

the old one did everything by reading pointers, just nothing was enabled. The unitext editing ability is not enabled in the v2 builder atm, neither is the extra ui's that would replace and remove the sfx range and stars tab etc:

Image

reason why is the formatting of the sfx in v2 is just well frankly i just don't like the numbers and i need to find the formatting that displays them correctly.

It's missing some drop down box conversion of numbers like special etc too but that's not important.

I would not recommend adding items without knowing what the hell you are doing because you need to patch the executable which is another reason why not everything is enabled, the bb one has an exe patching setup too to automate that lol.
User avatar
Aleron Ives
DCEmu Nutter
DCEmu Nutter
Posts: 811
Joined: Wed Jan 05, 2011 2:15 pm
Location: California
Has liked: 0
Been liked: 0
Contact:

Re: PSO Weapon and Armor Database (currently v2)

Post by Aleron Ives » Mon Dec 01, 2014 4:27 pm

Adding new hex groups is pretty much out of the question at present, but adding new subtypes (e.g. another Saber after Durandal) seemed to work fine the last time I tried it. The problem is that you have to use an existing name and description from the unitxt, since you can't add new entries from the PMT builder. The weapon you add also inherits all of the properties from that hex group, which can be undesirable in some cases.

I suppose trying to add Mags, units, and other things would require the more advanced BB functions you designed, since you'd have to change stuff in pso.exe to augment those lists. Oh well. Maybe some day.
"Fear the HUnewearl."
Image
Lee
DCEmu Freak
DCEmu Freak
Posts: 53
Joined: Thu Mar 06, 2014 10:28 am
Has liked: 0
Been liked: 0

Re: PSO Weapon and Armor Database (currently v2)

Post by Lee » Mon Dec 01, 2014 5:08 pm

but adding an id requires editing the exe.
User avatar
Aleron Ives
DCEmu Nutter
DCEmu Nutter
Posts: 811
Joined: Wed Jan 05, 2011 2:15 pm
Location: California
Has liked: 0
Been liked: 0
Contact:

Re: PSO Weapon and Armor Database (currently v2)

Post by Aleron Ives » Mon Dec 01, 2014 5:37 pm

The builder has options to both add a new ID (which doesn't work) and to add a new weapon to the existing ID (which does work, assuming you tie the new weapon to an existing unitxt ID). It's good enough for testing, but it doesn't really work for adding finalised content.
"Fear the HUnewearl."
Image
AmonX
DCEmu Freak
DCEmu Freak
Posts: 80
Joined: Tue Sep 09, 2008 12:49 pm
Has liked: 0
Been liked: 0

Re: PSO Weapon and Armor Database (currently v2)

Post by AmonX » Mon Dec 01, 2014 7:56 pm

Again Lee thank you very much. If it wasn't for you I don't know where we would be today with v2 and pso in general. Do you have steam? I have a few games I could throw your way as thanks :)
Post Reply