How do area maps work (i.e. how does QEdit visualize areas)?

Haven't you looked at the script in QEdit?
It's not complicated, just again the program being not user friendly, it's a PIA to have to select a line, then select insert or edit, select the instruction in a combobox and input the parameters.
 
Well not bad...
Came about the same stuff as you did, but in blender... haven't made a 3d viewer in C#/WPF yet.

jwQ5Kw7.jpg


eho1wz0.jpg


Indeed this opens the eyes about the other formats as well.
 
Well not bad...
Came about the same stuff as you did, but in blender... haven't made a 3d viewer in C#/WPF yet.

jwQ5Kw7.jpg


eho1wz0.jpg


Indeed this opens the eyes about the other formats as well.
:eek: ??!?!?! Could I finally be able to complete my PSO Project?! Que va! Ya, cocine un plato de platanos para usted! Tomalo!

Who are you Wilhuf?.... A masked hero...the world may never know....
 
Haven't you looked at the script in QEdit?
It's not complicated, just again the program being not user friendly, it's a PIA to have to select a line, then select insert or edit, select the instruction in a combobox and input the parameters.
qedit_script.png
Are you looking at this from a programmer's perspective? To laymen this is utter gibberish. We can guess the meaning of most of these things without ever having seen this specific asm, regular people can't. The names are meaningless, there's a lot of boilerplate and jmping around your code isn't exactly easy either (even programmers can't seem to do this correctly in large programs!) Now look at something like this or this.

And to be honest, I don't know what's going on in this example, I can guess the function of most of the asm, but I can't make out the big picture from just looking at this code. Does 200 warp all players to forest 1 or something? I'm just saying, things *can* be made easier.

Imagine implementing say a counter by dragging a box on a screen and putting an initial value of 0 in it. Then connecting an event (visualized as a circle on the screen) to the box by drawing an arrow from the event to a slot on the box. Then you specify that any signals received on that slot increase the value in the box by 1. You could even drag multiple arrows from all kinds of sources (e.g. a timer box that sends a signal every 10 seconds) to the same slot on the box. Then when the value in the box reaches a certain value, it sends its own signal, which can of course be connected to something else (a slot on a gate to make it open).

Then image being able to simulate the quest by dragging a little RAmarl through the quest area. Having it trigger events and seeing the signals flow and seeing the boxes light up and change their values as you "play" the quest. This will make things so much more tangible to people and would really spur creativity.

This would take quite a bit of time and effort of course.

hey this is pretty much what I was gonna work on over my winter break.

Sounds awesome, I'm curious what your ideas are so far. Even a nice python-like language or something would be a *huge* improvement for most people.

I'm also glad my tinkering is helpful. :) And @ScoobyDew, I'll take another look at that thread of yours. I'm not entirely sure what your project is about, but maybe I can help. You can of course always ask me specific things. And also, I've left plenty of clues as to my identity, it shouldn't be hard to track me down to send me that plate of bananas.
 
This is...absolutely beautiful... Code is beautiful... each Mathematician has his/her favorite theorem. Mine is Green's theorem. A special case of Stoke's theorem. Simple, yet effective. Code is just as gorgeous. I'm extremely jealous of you programmers. Looking at lines of code, tinkering with them. Especially with those libraries like Blockly & Luna.

I'll take another look at that thread of yours. I'm not entirely sure what your project is about, but maybe I can help.

Oh my thread? It's not what you think. It just where I dump all my PSO animations & documentation on where to find the files in case I lose mine. The "PSO Project" was an idea I had to hand animate a trailer-like video for PSO. It has nothing to do with coding. I've just been waiting for someone to figure out the n.rel files, then perhaps I'd be able to export maps.

plate of bananas.
Claro! Fried Plantains!
 
Idk, I guess I'm just too used to it, and as you said it would take time and effort (for something that not many people would use?).

At some point I briefly discussed with Tofuman about having a C like syntax script but was just that, casually talking about it.
 
This is...absolutely beautiful... Code is beautiful... each Mathematician has his/her favorite theorem. Mine is Green's theorem. A special case of Stoke's theorem. Simple, yet effective. Code is just as gorgeous. I'm extremely jealous of you programmers. Looking at lines of code, tinkering with them. Especially with those libraries like Blockly & Luna.

I find programming languages so incredibly clumsy and ugly compared to mathematics! But there are pieces of code and algorithms I've marveled at and they are the best tools we have at the moment for producing tangible things. And math is beautiful but useless without a computer (machine or human).

Oh my thread? It's not what you think. It just where I dump all my PSO animations & documentation on where to find the files in case I lose mine. The "PSO Project" was an idea I had to hand animate a trailer-like video for PSO. It has nothing to do with coding. I've just been waiting for someone to figure out the n.rel files, then perhaps I'd be able to export maps.

We might get there soon. :)

Claro! Fried Plantains!

Hmm, grilled with a little rum.

it would take time and effort (for something that not many people would use?).

Oh, absolutely, this would have to be a labor of love. But I don't think anyone here is in it for money or fame. I've written interpreters before and always wanted to write a compiler that compiles to Java bytecode or machine code or so. A C to pso asm compiler would be a fun exercise.

And you never know, maybe a lot of people want to create quests, but just don't have the skills or time to figure it out right now.

A new quest editor would also open up new possibilities such as dynamically generated quests. If we can modify the Tethealla server, it would be possible to generate quests on the fly based on a template. If I understand correctly this should be possible because the server sends the quest info to client every single time you start a quest (if not, we know we can make the quest lady's list dynamic, so that solves the problem too). Every play-through of the quest would have different paths and enemies to keep you on your toes (scaled to your party's combined lvl total?). That would be awesome in my opinion. :D
 
Indeed, Soda has at least thought of on the fly compiled quests...
Idk... I still have to finish my ship in C#.
 
Indeed, Soda has at least thought of on the fly compiled quests...

Cool, someday...

Idk... I still have to finish my ship in C#.

You are ambitious. :) Are you actively working on it or something else? Would be great if we could keep writing code and sharing documentation (sharing code would be appreciated too, but I understand your hesitation).

Also, the n.rel format is indeed way more complex, you weren't lying. :s But with Schthack's docs and code it should be doable to write a nicer spec and my own implementation.
 
Not really, but is the last thing I need in C# (I think), I have been way too lazy with it, it should be the next thing after getting rid of everything windows/"net" only and making the login work correctly in mono/linux

One problem specifically with the server source code is that it includes code that is not mine and can't share it, that wouldn't be a big deal but I don't want to maintain 2 different sources... Of course for binaries is not a big deal since I can use #if them

Yeah, imagine looking at that format first....
I don't know how the implementation could vary, but the documentation definitely has to be remade...
I believe the maps still follow the tree like structure of NJ/XJ, but not sure to what extent
 
Sounds awesome, I'm curious what your ideas are so far. Even a nice python-like language or something would be a *huge* improvement for most people.

Code:
(set-episode 1)
(make-pioneer2-npcs 1)

(floors
  p2 -> pioneer2
  f1 -> forest1-1
  c1 -> caves1-3
  c2 -> caves2-2)

(quest-reward
  (cond (get-difficulty)
    (normal
      (window-message "ez game")
      (play-bgm 1)
      (give-meseta 1000))
    (hard
      (window-message "ez game")
      (play-bgm 1)
      (give-meseta 2000))
    (very-hard
      (window-message "ez game")
      (play-bgm 1)
      (give-meseta 3000))
    (ultimate
      (window-message "ez game")
      (play-bgm 1)
      (give-meseta 4000))))

(quest-failure
  (window-message "game is hard"))

(floor-handler f1
  ())

(make-npc +hopkins+ floor: p2 x: 120 y: 30)

(make-variable *talked-to-hopkins* false)

(npc-action +hopkins+
  (if *talked-to-hopkins*
    (npc-say +hopkins+
      "go away man")
    (block
      (npc-say +hopkins+
        "hello!"
        "here is some cool text!"
        "and now I`m<CR>done")
      (set *talked-to-hopkins* true))))



(colision-event f1 x: 30 y: 20 z: 10 event: 1111)

(make-event 1111 area: f1 section: 11 delay: 10
  (spawn booma 100 100 5)
  (spawn booma 100 140 5)
  (spawn booma 120 140 5))

(event-finish 1111
  (start-event 1112)
  (unlock 12))
just playing with ideas when I made this, would have a 3dview UI of sorts to go with the scripting language.
syntax not set in stone at all, lisp is just the easiest way to show ideas without thinking about it.
 
syntax not set in stone at all, lisp is just the easiest way to show ideas without thinking about it.

Very true, love the idea. If there's one language I'd call beautiful, @ScoobyDew, it would be Lisp. Especially Scheme because of its simplicity. Clojure is nice too because everything is immutable by default and it has reader macros for vectors, sets and maps.

And despite (or maybe because of) its simplicity it's incredibly powerful. Though the function call syntax might be confusing to people that are used to mathematical notation and programmers not used to Lisp.
 
And to be honest, I don't know what's going on in this example, I can guess the function of most of the asm, but I can't make out the big picture from just looking at this code. Does 200 warp all players to forest 1 or something? I'm just saying, things *can* be made easier.
FWIW we did try to make the script use more friendly names. Schthack, Jodin, Gatene, and I spent years documenting opcodes and trying to give them meaningful names, and then Lee came along and ripped all of Sega's shitty opcode names from PSOv1 and overwrote all of our work. Now not only do people have no idea what many of Sega's unintuitive names mean, but those names don't match up with V2 and V3 opcode names anymore, because Lee only replaced the V1 opcode names.
 
FWIW we did try to make the script use more friendly names. Schthack, Jodin, Gatene, and I spent years documenting opcodes and trying to give them meaningful names, and then Lee came along and ripped all of Sega's shitty opcode names from PSOv1 and overwrote all of our work. Now not only do people have no idea what many of Sega's unintuitive names mean, but those names don't match up with V2 and V3 opcode names anymore, because Lee only replaced the V1 opcode names.

That's why I'm open sourcing whatever I manage to create. Right now I want to write a quest viewer that displays the areas with enemies and other entities plus some useful information like enemy counts etc. So initially it will be useful to the min-maxing crowd and maybe to quest designers too. Later on I might turn it into a full featured editor.

Of course if people want to join in, this can happen much faster... And I really hope people will join (@ToasterMage?) so we can create one polished tool that can do everything.

Every project needs a leader in my opinion and since it looks like I'll be the main (only?) developer initially, I elect myself. :D The job consists mainly of coordination, integrating everyones work and mitigating conflicts (programmers are smart, opinionated people, getting them to work together can be a challenge). Now, since everything is open source, if people dislike this state of affairs they can just fork the code and go their own way. No one has absolute control and egomaniacs will quickly be supplanted. It's anarchy in the best possible way.

Also, Aleron, you seem to know so much about PSO's implementation details and now you say you also helped document opcodes. Were you part of the original reverse engineering efforts and did you help develop QEdit or other software? Do you have the source code or know people who have it? I'm curious what happened to the original people that did the RE and development of Schtserv and related tools. Would you be willing to share what you know?
 
After googling your name I found this page:
http://www.schtserv.com/credits/
Thanks for the work you did, @Aleron Ives!

And from what I can tell you created/helped create a bunch of DC/GC related software, you run PSO Palace and you were on the Schtserv staff, cool! You're really omnipresent in the PSO community in both space and time! I'm definitely going to take a look around your forums.

I've sent the one person that left their email address on there an email asking for help. Hopefully they can help me out with some of the file formats. Completely REing a format myself would be a nice challenge, I've never done anything like that. But I'd rather spend the time on creating something useful if I can.
 
It's been on my to-do list to make a full manual for Qedit for some time, as I think I'm the only member of the original team who is still active. The problem is that I've continued to document opcodes and monster parameters over the years since the last public Qedit release, so my documentation doesn't necessarily do people much good when the public Qedit doesn't have the same names that I do. I think Schthack and possibly Lee are still the only people who have the source to Qedit.
 
It's been on my to-do list to make a full manual for Qedit for some time, as I think I'm the only member of the original team who is still active. The problem is that I've continued to document opcodes and monster parameters over the years since the last public Qedit release, so my documentation doesn't necessarily do people much good when the public Qedit doesn't have the same names that I do. I think Schthack and possibly Lee are still the only people who have the source to Qedit.

Does your opcode documentation map the names to binary values? If so, it will definitely be useful to me. A full manual would be a good thing too if you're the only one left who can do it. Please try to stay clear from life-threatening situations until you finish. No bungee jumping please. :p

You also mentioned that Lee used sega opcode names, did he retrieve them from the client binary? And if so, why does the binary have a textual representation of the opcodes?

Can you contact Schthack or Lee? I can't imagine none of you guys knew each others email, real name or facebook or anything. Would they be happy to pass on the torch?
 
Back
Top