SotNgine -- A Castlevania: Symphony of the Night Modding Tool Suite

Started by Nyxojaele, December 17, 2022, 06:28:57 PM

Previous topic - Next topic

Nyxojaele

Hello folks! After taking a small break from my previous SotN related tool SNEER (original thread is here) I've decided to re-visit the project, with a little bit more knowledge/experience under my belt. To be clear tho, this new project is 100% new code -- I'm just revisiting the concept of the original project :)

I've been working on this project in secret for about 10 months now, and have finally now decided it's in a decent enough state to share for the first time~ Worth noting that this project is still very much being worked on, as it's definitely not complete yet. I feel like the majority of architectural work is pretty firmly in place, so all of my future updates can mostly be focused entirely on adding support for "new things you can mod".

An overview of the project as it currently stands:
This project is intended to be a complete package of everything you'll need to make/play SotN mods.

It can handle everything modding-related that you'll need once you've got yourself an original SotN CD Image, and all presented with a nice friendly GUI.
Whether that's creating your own mod to distribute to the world, or you just want to play a mod you've downloaded.

The persistent download link for this project is http://www.rivernyxx.com/projects/download.php?pn=SotNgine -- note that this is a dynamic link, it will always download the most recent version of the project, so there's no need to find a new URL when a new release comes out (the tools also check for updates when you run them, so it should be pretty hard to be unaware of updates!)

The current architecture feature list:
* Extract an original CD Image into a "DevSpace" -- That is, a directory containing the extracted files, as well as some metadata that's helpful to the Tool Suite.
* Create a CD Image from your current DevSpace -- Useful for testing your mod locally.
* Create a mod package from your DevSpace -- Creates a single file containing your mod and some extra data that can be used to apply your mod to another DevSpace.
* Apply a mod package to your DevSpace -- Just the opposite of the above, takes the modded files out of a mod package and applies them to your already existing DevSpace.
* A "simple wizard" that can walk you through the process of creating a modded CD Image (that can be played in an emulator) from an original CD Image and a mod package.
-----
All of the above is just driven by a bunch of command line tools in the background. You can run them if you want to, but I provided a nice GUI that makes it so you never have to.

The current modding feature list:
* Edit map-defined CLUTs (change which colors are on the CLUT)
* Edit map-defined tiles (change which CLUT/collision is assigned to the tile, paint the tile with the assigned CLUT)
* Edit map-defined room layouts (change which tiles are assigned to each space in a room)
-----
I tried to implement as many modern standards people have come to know and love from editor interfaces, so the above is all supported with a nice GUI, full undo support, context menus, both inline and online documentation, tooltips, etc... There are multiple ways to do various things, so hopefully you'll find a way that works for you~

The most immediate roadmap items I have on my list to implement:
* Support to change the size/placement of rooms
* Support to define transitions between different zones/maps
* Support for editing "System" CLUTs/Tiles (these aren't saved in individual maps, and are reused between them, such as save rooms and CD loading rooms)
* Some nicer tools to help with editing
  - Some sort of tile placement helper that hilites proper placement of tiles with certain collision types (certain collisions are supposed to be placed next to each other in order to work correctly, for example)
  - Maybe an eyedropper to easily copy/paste tiles around
* Experimenting with visual scripting ideas

SotNgine GUI

This is the main launchpad for doing everything. In addition to providing a way to quick launch things at the bottom, each expandable row provides a nice GUI to call some command line tools in order to perform a specific task.

ZoneEd

This is the main editing tool currently. It allows editing of the map/zone files. There are a ton of modes in this tool, but they all follow this same basic layout -- controls on the left, and a rendering on the right.

Aceearly1993

Hello friend, greetings! I'd like to ask some technical information about this tool.
1. Do we need some specific OS version/ environment/ system language/ system update patch/ hardware requirement meet in order to run this tool properly? Currently I cannot use this tool properly, once it loads "ZoneEd" it throws errors starting with CLR20r3 and crashed. I thought it would be the native language for my PC is not in English and I'm on Windows 7. Changing the file path to somewhere else with only English letters for file name did not work either.
2. Do we need to install some specific plugin/ external tool in order to use this tool properly? I did quick search about CLR20r3 error and it seems more complicated than I thought. DSVania editor requires Visual C++ Redistributable for Visual Studio 2015 to run properly so I'm not sure a similar (but not exact the same) thing is also the case.
3. It seems like we need a specific version of SotN game image in order to use this tool properly (the "redump.org" version). I think it would rock if this is also listed in the readme txt. The readme txt did not mention about this so it locks me away from using this program in a while until I further dive into the documentation web page about it.

A more detailed description about environment requirement of this program in the readme txt would be welcome. Thanks in advance.
Quote"Did you know when one's most desperation time is? It's when he was beaten up by someone critically...
And he can't find who caused this."

Nyxojaele

Hi!
Let's get to those questions~

1. Not to my knowledge. To be clear, is it ZoneEd that's crashing, or SotNgine GUI? (They're two different apps) If you could get me the complete error you're seeing, I can investigate further ~
2. These apps use the .NET Framework 4.8, I'm not at my computer at the moment to check on whether this should get handled by Windows for you or not, but if you're technically minded, you can look at manually installing that if you some have it.
3. Thank you for the feedback! I'll be sure to add some extra info to the readme.txt about the specific image required. The intent is that the readme is slim, with most of the info in the online docs, but I agree, this is important! To give you some info here tho, the image necessary is a CUE + 2x BINs (track 1 and track 2)

Aceearly1993

The error is on ZoneEd. I copied from the error:


问题签名:
  问题事件名称:   CLR20r3
  问题签名 01:   ZoneEd.exe
  问题签名 02:   1.0.0.0
  问题签名 03:   8bd7f654
  问题签名 04:   RiverNyxx.WPF.DirectX11
  问题签名 05:   1.0.0.0
  问题签名 06:   9322c098
  问题签名 07:   1f
  问题签名 08:   e
  问题签名 09:   System.NullReferenceException
  OS 版本:   6.1.7601.2.1.0.256.48
  区域设置 ID:   2052
  其他信息 1:   0a9e
  其他信息 2:   0a9e372d3b4ad19135b953a78882e789
  其他信息 3:   0a9e
  其他信息 4:   0a9e372d3b4ad19135b953a78882e789

I don't know if this is caused by not using non-English language, or the PC being very low-end.
Quote"Did you know when one's most desperation time is? It's when he was beaten up by someone critically...
And he can't find who caused this."

Nyxojaele

Oh interesting, it's crashing in DirectX11. You mentioned that PC is very low end — do you know if it supports DirectX11?

Aceearly1993

dxdiag says I'm already at DirectX11. But there's no individual graphic card for this PC. I'm not sure if this program really needs one.
The PC I currently have is a i5-2450M laptop with 12G of memory and a 500G-ish hdd.
Quote"Did you know when one's most desperation time is? It's when he was beaten up by someone critically...
And he can't find who caused this."

Nyxojaele

Hm, I would imagine that if Dx11 already works on that PC, that it shouldn't need a dedicated graphics card for this app. All of the other specs sound like they'd be fine for this.
I suppose there's a small chance it's caused by using non-English Windows, but it seems a bit unlikely since the error is in the DirectX11 part, which largely shouldn't care about that kinda stuff. I'm gonna do some investigating here to see what I can find, but I'll likely need to hit you up for more details. Ok if I DM you?

Aceearly1993

Quote"Did you know when one's most desperation time is? It's when he was beaten up by someone critically...
And he can't find who caused this."

VincentNL

Great job! :)

Loving to see SOTN modding scene so active!

SotNgine GUI is pretty good, would be nice to export tiles/map into .png and being able to insert edited tiles by importing from clipboad / png

Keep it up!
If you like my work or just want to show some love:
https://ko-fi.com/vincentnl
https://www.patreon.com/VincentNL

Nyxojaele

Quote from: VincentNL on December 18, 2022, 07:29:45 AMwould be nice to export tiles/map into .png and being able to insert edited tiles by importing from clipboad / png
Interesting idea! I've written it down on my list of things to explore.
The big challenge, however, would be dealing with the fact that tiles' graphics are using indexed colors, which means they're tied to a specific CLUT, and it only has 16 colors. This isn't much of an issue when thinking about exporting the graphics, but there would be some challenges when trying to import them again (for example, what do I do when an imported tile has a color set that isn't in the assigned CLUT? I can't just add it to the CLUT, because what if the tile is already using all 16 colors on that CLUT?)
Worth noting tho, that none of this is an issue when editing the tile graphics directly within ZoneEd. It properly ensures that these constraints are handled.

VincentNL

Not familiar with PSX hw, but if imported tiles use indexed png (max 16 colors), shouldn't be an issue.
Alternatively, round color ranges >16 or just give out an error.
If you like my work or just want to show some love:
https://ko-fi.com/vincentnl
https://www.patreon.com/VincentNL

Midnight Metronome

Great another SotN editing tool within a couple months. Where were you people 10 years ago? ...... anyways, great to see it.

Nyxojaele

Quote from: Midnight Metronome on December 19, 2022, 01:26:25 PMGreat another SotN editing tool within a couple months. Where were you people 10 years ago? ...... anyways, great to see it.
I ... was the people 10 years ago.  :)
(See this post)

gledson999

I tried use your tool, but it contains an error in which I cannot see the clut and tiles, they are automatically extracted when opening the bins of <devSpace>/img/ST/?



This is my configuration:

Nyxojaele

Quote from: gledson999 on December 21, 2022, 05:35:18 PMI tried use your tool, but it contains an error in which I cannot see the clut and tiles, they are automatically extracted when opening the bins of <devSpace>/img/ST/?
Wow, that's an interesting looking bug! Your settings look fine BTW :)
Yes, everything should work automatically when you open the bins in <DevSpace>/img/ST/ -- it looks like you might be running an old version of Windows.. what version are you running? Also, what kinda video card do you have?

Midnight Metronome

Hi, will this tool eventually let you edit all tiles and rooms? What about about in-game cutscenes, like scripted events, being able to move sprites and edit dialogue?

gledson999

Quote from: Nyxojaele on December 21, 2022, 07:08:43 PMWow, that's an interesting looking bug! Your settings look fine BTW :)
Yes, everything should work automatically when you open the bins in <DevSpace>/img/ST/ -- it looks like you might be running an old version of Windows.. what version are you running? Also, what kinda video card do you have?
I'm using Windows 10 Pro Version 21H2 and I'm not using any kind of video card.

Nyxojaele

Quote from: Midnight Metronome on December 21, 2022, 10:55:18 PMHi, will this tool eventually let you edit all tiles and rooms? What about about in-game cutscenes, like scripted events, being able to move sprites and edit dialogue?
The next major items on my roadmap to to add support for editing the remaining tiles (save & load room tiles), and then to allow moving/resizing rooms. Deleting rooms has potential to be fairly easy to implement, but adding new rooms will be a longer term plan.
Editing cutscenes/scripted events, entities/sprites, and dialogue are all much more involved, as it requires MIPS editing. That's also on the roadmap, but it's much further along, and I'm not making any promises on that, other than "I'm going to explore options".

Quote from: gledson999 on December 21, 2022, 11:15:53 PMI'm using Windows 10 Pro Version 21H2 and I'm not using any kind of video card.
So you're saying you're using an on-board (ie. it's built into the motherboard) video card? Mind if I DM you and we try to get this bug fixed?

gledson999

Quote from: Nyxojaele on December 22, 2022, 11:48:39 AMSo you're saying you're using an on-board (ie. it's built into the motherboard) video card? Mind if I DM you and we try to get this bug fixed?
yes, built into the motherboard, feel free to dm me