6741db421471f

Post Reply

Your name:
Subject:
Message Icon:

Verification:
This box must be left blank:

In which year was System Shock 2 released:

Shortcuts: Alt+s to submit/post; Alt+p to preview


Topic Summary

Posted by: dertseha
« on: 16. May 2023, 20:17:23 »

The one tool I know of (heh, I built it) is "chunkie" - https://github.com/inkyblackness/chunkie
It is part of the now deprecated "deck" release: https://github.com/inkyblackness/deck/releases/tag/v1.3.2

I've never come round to provide all the import/export functionality into hacked, so there are still some functions here and there in "deck" that aren't supported by hacked.
Posted by: TheNate
« on: 16. May 2023, 20:12:44 »

And like I mentioned before, I'd like to know how to import custom files into RES sprites too
Posted by: dertseha
« on: 16. May 2023, 19:58:06 »

Posted by: JosiahJack
« on: 16. May 2023, 19:50:01 »

https://raw.githubusercontent.com/NightDive-Studio/shockmac/master/ShockMac/Game%20Src/PALFX.C

The textures are indexed meaning each color refers to one of 256 index values (0 to 255).  The 256 colors are not static.  A few colors at the end are changed dynamically at run time such that, say, index 252 will change colors.  The texture used by a wall or sprite is the same, always drawing the indexed color at 252, it's just that the color there changes with an up down fade at a regular rate.

There's probably a better topic for this somewhere.
Posted by: TheNate
« on: 16. May 2023, 18:34:49 »

Tried this just now, but the extracted sprites seem to be really low-res and I was also looking for a way to import into .RES files too

EDIT: Apparently that's what they're supposed to look like? I guess EE just uses the Mac sprites or something by default

EDIT 2: I'd also like to know how it manages to do the palette cycling animation on graphics like the Rail Gun and the Ion Beam
Posted by: JosiahJack
« on: 16. May 2023, 11:26:23 »

Posted by: TheNate
« on: 14. May 2023, 17:03:16 »

TheNateIf you are referring to the sprites of objects that you see in the world, those are in the "Objects" window.
If you are referring to the "2D" graphics of the muzzles, those aren't available in the editor. You'd need one of the exporter/importer tools for that.
What would be the best tool to extract those?
Posted by: dertseha
« on: 14. May 2023, 07:16:55 »

TheNateIf you are referring to the sprites of objects that you see in the world, those are in the "Objects" window.
If you are referring to the "2D" graphics of the muzzles, those aren't available in the editor. You'd need one of the exporter/importer tools for that.
Posted by: TheNate
« on: 13. May 2023, 23:06:34 »

How do I find and extract the weapon sprites? I looked through bitmap and texture windows, but I couldn't find them
Posted by: Xkilljoy98
« on: 01. October 2021, 02:43:40 »

We need an update tutorial for this mod editor, only two exist and both are for an older version of the editor with a different UI and don't explain some things very well.

To this day I still can't figure out how to get custom logs to work.
Posted by: dertseha
« on: 31. August 2021, 20:18:16 »

Oops. Thank you for the heads-up. I seem to have uploaded the wrong binaries.
I'll update as soon as I get to my dev laptop
Posted by: VDubs93
« on: 31. August 2021, 19:11:53 »

I know it's been like 10 days, but it seems like the 1.8.0 release on github still points to 1.7.0.  Is this intentional?
Posted by: dertseha
« on: 21. August 2021, 14:11:27 »

HackEd v1.8.0 has been released.

This one is again in the light of usability - with a lot of internal rewiring going on.

It's been sitting for several months already and I wanted to include more, yet I should rather do smaller releases (and more frequent) than sitting on several features at once. For instance, I wanted to include a better orientation view for level objects - though I failed to nicely show this - especially since various objects don't make it easy as to what their default orientation is. Cameras, for example, are oriented West by default, while buttons are oriented South.

And no, so far I do not intend to create a mini-renderer, showing a 3D section. There are way more features (and internal refactoring) pending before I enter the third dimension in the editor.
Posted by: dertseha
« on: 28. December 2020, 08:03:19 »

HackEd v1.7.0 has been released.

As promised, this one now allows to save and load projects as dedicated files. The central file stores the settings as long as they weren't saved as a dedicated project file. After that, the central file only points to that project file, as a "reopen last project" feature.
This now allows to have everything in one place, and the recommended project layout has been updated.

Furthermore, as a first showcase of project-specific settings, it is now possible to document and modify parameters of game variables, such as names and enumerated values. These names are now shown in object properties.

And slider controls allow manual entry of numbers - as this one was easily added as a by-product of other internal changes.

See the linked release notes above for pointers to further documentation.

Project files are one precondition for the requested feature of "prefabs", but there are further dependencies that have to be implemented first - such as copy/paste and drag'n'drop movement of tiles and objects. Still a lot on the list of open usability features.
Posted by: dertseha
« on: 18. October 2020, 07:46:38 »

...and as answered on the NDS discord: One of the next steps is to have a project selection within the editor. I'd like to avoid the need for users to copy around the binary files.

My goal is to get most the things for one project be in its own folder, so that it can then be version controlled. I needed to start somewhere. Right now we have an "undefined" project that the editor needs to store. As soon as the concept of a project is implemented, then its details can be saved wherever you want, and the central place points there as the "last project". A project is more than just a mod path, so that's not the same.
I took this inspiration from the Sublime Text editor, where you can have some "undefined" project, that is restored when reopening the editor. When you save that project (in a folder of your choosing), then you can close that project and open another.
Right now HackEd only supports "undefined" projects, which is more than it had previously.

I believe we are on the same page as to what the editor should be doing eventually. Sadly, with only a few hours per month available for this pet project, the steps are small ones.

I hope that the benefits of the current solution still outweigh the drawbacks it currently has. For example, I doubt that the different workspaces you currently have need a different list of static files.
Posted by: voodoo47
« on: 17. October 2020, 21:59:35 »

you mean not all the application files being located inside its root folder? I couldn't agree more, avoiding this would be much more more preferable - hunting cfgs/saves/whatever all around the hard drive is definitely not on my favorite things to do list.
Posted by: 3RDplayer
« on: 17. October 2020, 21:52:16 »

I already pinged you on the NDS discord. I'm not a fan of centralized settings files in any software ever. I prefer instanced workspaces rather than this. Where the setting file is located in the same folder as the executable. Hopefully there will be a solution that allows instanced workspaces in the editor versions going forward.
Posted by: dertseha
« on: 17. October 2020, 17:31:56 »

HackEd v1.6.0 has been released and it now remembers the last editing state! So, no more tedious loading of static assets and the active mod every time.

Finally tackling the oldest feature request in my backlog (from 2018), this is the first one to follow up on various pending user requests.

I can't say which ones I'll go handle next, I only know that I was working on this released feature on and off during the past weeks, starting early September.
Posted by: dertseha
« on: 22. September 2020, 20:31:58 »

Thank you for the requests. Adding text-input fields would probably address a lot of this, yes.
As for the different units for height/rotation: That's because the engine itself uses different base units for these things (Plus, these sliders are for both new archives, and savegames). Only degrees are the "common" abstract unit here.
I'm adding the requests to the list of usability, which I'm now working on - slowly.
Posted by: Gawain
« on: 22. September 2020, 11:58:46 »

Allowing keyboard input on values (+ copy&paste) would help a lot.
Posted by: 3RDplayer
« on: 22. September 2020, 00:26:04 »

I have some recommendations (annoyances) for the sliders in the Archive - Game State Window:

Hacker Position X,Y,Z,Yaw Sliders:
--------------------------------------
Spawning hacker dead center of a tile is impossible. To start hacker in the center of tile 32x32 would be 32.500 for both X and Y value. The way the sliders are right now does make setting this value impossible because it changes the raw value by 000001. Why would anyone want to spawn hacker at game start in the upper right corner of a tile?
My suggestion is to fix the X,Y sliders to 0.500 or 0.250 steps. So if anyone ever wishes to spawn hacker between two tiles, they can (but I highly doubt that).

Z slider: Make it conform to the values for setting F,C heights of the Level Tile Window.
(I know that depending on level height the incremental values change. But maybe having them set to 0.125 steps makes it more precise.)

Same with the Yaw slider. Make it conform with the values found in the Level Object Window Z rotation slider.


This one is hard for me to explain. I try regardless:
---------------------------------------------------------
When setting floor heights and adjusting slope heights, you can see via the green outline between tiles if they are on the same height and go into each other seamless. This makes setting floors with varying slopes very easy.
BUT this does not apply to ceiling heights! Having a setting that allows switching back and forth to check if ceiling heights and slopes go seamless into each other would be much appreciated.
Posted by: szmotsu
« on: 19. September 2020, 00:35:19 »

Thank you very much! :) really appreciate your work for whole community
Posted by: dertseha
« on: 12. September 2020, 16:42:34 »

OK, I've investigated further, thank you for the example files.
It seems there's a change in the engine's behaviour. I'm trying to contact Nightdive devs about this on Discord. I don't know how and when this will be fixed.
Posted by: szmotsu
« on: 07. September 2020, 21:12:11 »

Hello
it was index 19. i have prepared new file - image was exported, colours were inverted (using GIMP) and then it was imported back.


Issue still exist - game crashing on startup.
gofile.io/d/sUDzQ8
Posted by: dertseha
« on: 07. September 2020, 18:23:57 »

@szmotsu, I had a look at the .res file - I could not find any image in there - which MFD Bitmap Index did you replace?
Perhaps also, send me the image you wanted to import, so I'll try to reproduce it on my machine.
Posted by: szmotsu
« on: 07. September 2020, 06:56:46 »

Hello @dertseha
Editing the bitmaps seems to work completly fine in editor - unfortunatelly trying to load things in the game is causing an error: Error - Exception caught in main: see CRASHLOG.TXT for info
and fragment from crashlog: Access violation at 00000000250b0b50. The memory could not be read. ¯\_(ツ)_/¯
What i have done: export one MFD bitmap (SHODAN face) and just import it back to the game.  :cyborg: For me it looks like some issue during  converting png into indexed bitmap but strangely overriting of textures works fully fine. I have also find mod which using MFD overrite and works fine. Download of my "mod" :https://gofile.io/d/5Oo2Qa
Of course its possible that i am doing something wrong...
Posted by: dertseha
« on: 06. September 2020, 18:41:42 »

Hello @szmotsu, thank you for the post - and it's great that you are picking up SS1 modding :)

As for your question, I'd expect bitmap editing to work, yet since it hasn't been touched in a while and automated tests are quite lacking in this area, I have no current proof.
When you say "ending with error" - which app is reporting an error, the editor, or the engine when you load/use the mod?
Posted by: szmotsu
« on: 06. September 2020, 00:08:45 »

Hello everyone,
first - awesome work! i have never thought that editing SS1 would be so easy! I was playing a lot with these tools and its really powerfull. Unofortunatelly on my side editing bitmaps seems to be broken - i am not able to create any working mod for this - its always ending with error no mather if i edit graphiti or mfd. Could you please confirm if this is working okay?
Posted by: Gawain
« on: 30. August 2020, 08:50:26 »

I haven't worked on it, but would like to continue.
Ask away :)
Posted by: dertseha
« on: 30. August 2020, 08:24:18 »

Also, @Gawain , I'm now looking at your feature requests. They give me ideas on what to focus on internally to enable them.
At least two features from your lists are possible now:
* There's no need to rename archive.dat, I found a way to structure a mod/mission that allows to work with the original names and have both the editor & engine running on the same files in parallel - see here. (Examples for this are found in the mod-examples - CortexReaverChallenge and Museum work this way - links are above)
* v1.5.0 now allows you to set and modify the values of game variables. User defined names need more work, ideas are forming.

Given that your requests are over a year old - are you still working on a mission? Or: Would you still be available to provide details to some feature requests when I come to them?
Posted by: dertseha
« on: 29. August 2020, 16:55:24 »

GameState editing! HackEd v1.5.0 has been released with the capabilities to change the game state - even the starting state for fan missions!



The two major features:
First: Allow for GameState override for fan missions - let the protagonist start on a different level, with different inventory, and also have the variables have a different value.
Sadly, this is only for supporting engines, which currently is only the Source Port. Shockolate does not support this yet, and has received a feature request. (Thinking about it, perhaps this could be my first ticket to finally get hacking on there as well...)

This feature also allows for "New Game Plus" missions! To get people started, I created a template project, available here.

Second: Load and edit savegames. This can help struggling players, and also aid in looking for another case of "deleted plot items".

[edit]Oh, the static resources can now also load the source port "sshock.kpf" file, which is a ZIP file in disguise that contains all the resource files.[/edit]

In other news, since I was working on the "mod-examples" project, I updated both the "Cortex Reaver Challenge", as well as the "Museum" missions to have mission.as files for Source-Port.

Since I also figured out a way to let the Source Port load mod/mission files without having to rename the resource files, I documented the recommended project layout in the Wiki as well.
This allows to run the editor and the engine in parallel, without the constant need of renaming/copying files.

What's up next? I have no idea. There are still things like editing of 3D objects or fonts missing, yet there are also a many many feature requests from users. Next to my own unhappyness of the internal structure to "easily" implement these feature requests... All combined with little time to follow up on this.
Posted by: dertseha
« on: 22. April 2020, 13:51:21 »

The readme of the mod contains the link, and here for ease of use: https://freesound.org/people/Reitanna/sounds/242623/
Posted by: JosiahJack
« on: 22. April 2020, 13:25:34 »

Pony tail seems a little short, but otherwise not too shabby.  I'm not sure how I feel about it but I spose it's cool.  Do you have the pain sound separate for download?
Posted by: dertseha
« on: 22. April 2020, 06:49:59 »

This one took a while. HackEd v1.4.0 has been released and I'm very happy to have finally included a movie editor!



Also included are an editor for the sound effects, as well as native file/folder browse dialogs for import/export.

All of this comes paired with a first showcase of movie editing: My first true "mod", System Shock: Female Hacker. (I'm still waiting on moddb to accept my release article there, after which I'll add a separate thread for this.)
Posted by: dertseha
« on: 21. April 2020, 11:29:03 »

Hello there, Anon, thank you for your message. And yes, you are in one of the right places :)
First of all, I'm with you, the whole thing could be way more performant. Lack of "optimized graphics thinking" and "feature/time pressure" are probably the main causes.

I don't remember precisely why I'm using OpenGL 3.2, at least it's one of the earliest versions to properly support the "core" profile. It might be because I wanted to make use of single-color-channel textures to have palette bitmaps be rendered by the shader. If memory serves right, this is not available in earlier versions. Sure, things can be handled differently.
As for overkill: The editor is surely not using the full featureset of that API. Though, the API itself is probably hardly the issue. I'm pretty sure if I were to port the usage to, say, 2.1, the performance would still suck (if not worse) :)

I believe all of the versions draw a lot of resources. The main culprit is the implementation of the map renderer, which needs to render the 64x64 tiles with all the objects.

I'm sorry I can't help you further. I also can't tell you when I would be able to tackle this. There's a lot of things to do, and little & undeterministic free time available for this hobby project.
Posted by: Anon
« on: 18. April 2020, 11:50:57 »

Sorry for bumping this thread, I wasn't sure where to ask (and I don't have a GitHub account).

Is there a specific reason for this editor requiring a GL3+ card? Isn't this a total overkill? What is it even used for?

While my system is old, it still runs some demanding games just fine, but the thing struggles with hacked (and eventually overheats).

What can I do to improve performance? Or which is the last version that has comparable features yet less performance-hungry?
Posted by: Gawain
« on: 10. September 2019, 10:19:55 »

More requests

I'm in need of game variable editor (initial values).
It would be nice if you could add name/description to them and it would show in the action.
List of objects (in all of the levels) that use that variable would be very helpful.

Reordering of textures.
Indicator to show what textures can be used as floor and texture
(I had to reorder some textures to be able to use them as floors or ceiling)

Show sprite in object editor and in the drop down to select object type that you want to create. If there is no sprite the editor icon could be used as fallback.

Bug:
Door access level names doesn't seem to match names that are shown in game.
Posted by: dertseha
« on: 24. August 2019, 19:59:37 »

Thank you for all the feature requests. I will have a look at them and formulate corresponding tasks. I believe some of them have also been mentioned by 3rdplayer.
While I might not be able to get to them immediately, at least I have a direction to go to when I finally do :)
Posted by: Gawain
« on: 22. August 2019, 11:12:11 »

More requests:

  • Mirroring selected (textures, slopes, moves selected objects)
  • Rotating (+-90 deg) selected (textures, slopes, moves and rotates objects)
  • List of objects in selected tile. (Sometimes it is necessary to have multiple objects on same XY and selecting is cumbersome)
  • Show object id:s in map icons
  • Rendered 3D objects (bounding boxes would be enough)
  • Arrows to show object orientation in map.
  • Tile floor&ceiling heights shown in map (and corner/side heights for slopes) Maybe match texture view setting for floor/ceiling heights?
  • Use keyboard to set object property values
  • Use mouse to select object from map or list in object id references (traps and doors).

There are also lot of special cases that needs custom value editors, such as screens.

I have been slowly doing FM. That's why I'm posting these :)
Posted by: Gawain
« on: 16. August 2019, 21:27:43 »

Couple of requests for HackEd:

  • Custom name for archive instead of archive.dat. SS1EE missions doesn't seem to work with archive.dat as filename. It always loads the original one.
  • Move objects (with edge snap when shift, align to floor height modifier)
  • Copy&paste tiles
  • Copy&paste (or clone) objects
  • Prefabs. Create piece of corridor and then stamp them.
  • Delete object and tiles (make solid) with delete key.



Posted by: JosiahJack
« on: 07. June 2019, 11:51:31 »

Ok, codesploring time....

AI Moods:
#define AI_MOOD_FRIENDLY   0
#define AI_MOOD_NEUTRAL    1
#define AI_MOOD_HOSTILE    2  Josiah: seems to force enemy into combat state
#define AI_MOOD_ISOLATION  3
#define AI_MOOD_ATTACKING  4

AI Orders: //Josiah: Oh interesting how in the code it is treated like SHODAN giving orders
#define AI_ORDERS_GUARD    0     // hang out until player comes around
#define AI_ORDERS_ROAM     1     // wander about
#define AI_ORDERS_SLEEP    2     // do nothing ever until awakened
#define AI_ORDERS_PATROL   3     // back n forth between 2 points
#define AI_ORDERS_HIGHWAY  4     // follow invisible highway
#define AI_ORDERS_NOMOVE   5     // like guard, but will never move //Josiah: I guess like a turret mode, I wonder if any cyborg assassins use this?

Hmm...critters can sometimes be flagged with AI_FLAG_CONFUSED which is treated the same as AI_ORDERS_ROAM but critter is more impatient to wander when confused.  I guess this is a possible result of disruptability of some weapons?



Hang on what's this?!
Code: [Select]
if ((rand() & TRANQ_RAND_MASK) < TRANQ_RAND_LEVEL)
         {
            objCritters[osid].flags &= ~AI_FLAG_TRANQ;
            if (CritterProps[CPNUM(objCritters[osid].id)].flags & AI_FLAG_FLYING)
               apply_gravity_to_one_object(objCritters[osid].id,0);
         }

Does this mean that a stunned flyer will fall?  Need to test this.
Posted by: dertseha
« on: 07. June 2019, 05:08:03 »

Heya!

I'm sorry, critter data is one of the least documented (and worked on). Mostly because their changes and effects couldn't be easily reproduced.
So at this point I'll have to point you to the source until I have done that to update the editor.
Posted by: JosiahJack
« on: 07. June 2019, 02:10:03 »

Hey so I'm using this to determine enemy states and positions as I go through and place enemies for Citadel, at least, following the original in part.  I'm not 100% sure what each enemy state means and can't find an explanation.  Also, the roaming behaviour is random?  Or patrolling to specific cells?  Or what?  Any help is appreciated or pointing out the particular source code files for critter behaviour.
Posted by: dertseha
« on: 07. January 2019, 06:13:46 »

...plus cutscene import/export - which I want especially :)
Posted by: 3RDplayer
« on: 07. January 2019, 01:43:30 »

Lots of old and new properties. Will take a time to get used and figuring out how exactly some of them affects things. (especially now that I do a sshockmodding break). Maybe I can upgrade my weapon mod with the new found possibillities.

What's left is being able to edit 8way critters and door animation frames. Etc.
3d model im/exporter I dont even talk about. Cuz friend told me the format is archaic custom made stuff. Not sure how much that is true.
Posted by: dertseha
« on: 06. January 2019, 19:49:26 »

It took a while to get back to coding, yet release of v1.3.0 is done!.



This release adds the editor for game object properties (also called "gamesys" by some) - finally obsoleting the old editor as now all old featuers are now present in the new one, and even better. Because I also took another sweep at the data structures of the source-port, the properties are now pretty much complete. Some units are missing here and there, though this can be added later.

There is also the currently known bug of incompatible files modified via the bitmaps window - crashing the engine on startup. This is something I need to clarify with Axemelon, as it rather points to an issue in the engine (or a different view on how bitmap-layering is intended).

edit: The new sweep over the property structures also revealed a different size-layout than was previously thought :) Fun fact: Applying the sizes to the byte makes an error of 2 byte compared with the objprop.dat file, which also the mac-source indicates by a dirty hack and corresonding comment ;)

Also, forgot to mention: ss-specs was updated accordingly of course.
Posted by: datiswous
« on: 29. September 2018, 18:33:20 »

The project window will show in its title bar: how many files need saving, and after a few seconds after a change, a timer will appear that will cause an auto-save when reaching 0. This timer is reset for each further change you make. By double-clicking on the title bar of the project window, you can "minimize" this window to just show the title bar.

Yeah I see it now. I expected I would see the message in the main menubar, but it was in the Project titlebar. This is correctly documented in the wiki and you said it as well. I always closed the project window, since I don't need it after loading the mod and it seamed in the way (before I figured you can fold it in).
Posted by: datiswous
« on: 28. September 2018, 22:57:56 »

Thanks both for the explanations.  It does make it more clear.
Posted by: 3RDplayer
« on: 28. September 2018, 08:06:16 »

Hey-o @datiswous

I just reorganised and restructured the wikipage for the archive window. I do hope its more clear this way to understand what Clear and Remove do. It's not perfect. But if you think that you understand it better how it is now, please do tell.

https://github.com/inkyblackness/hacked/wiki/Archive
Posted by: dertseha
« on: 28. September 2018, 05:23:49 »

So if you still want to use the assets originally used in that level, but want to empty the level itself, you can use Clear. But if you want to remove the level from your mod, you use the remove option?
Umm... almost.
"Clear" wipes the level in order to create one from scratch - it is a level with 64x64 solid blocks and all properties set to default. "Remove" tells the engine "This mod does not provide this level" - it is not present in the resource files.
Let me try to explain with a different example.
If you wanted to create a mod that makes better/bigger versions of the groves, while also supporting other changes to the main levels, you'd need an archive that has only the levels 11, 12, and 13 modified. All other levels would need to be "removed" in order for the original archive to provide the standard levels. If you additionally wanted to have a second mod that has different "endgame" cyberspace level, this further mod would need level 10 to be present, and all other levels removed.

I open it as mod. In this case the Steam version SS1 classic. ...
I'll try to reproduce your sequence.

Maybe I'm missing something, but I can't see when an automatic save is done. I also tried manual saving, same result.
The project window will show in its title bar: how many files need saving, and after a few seconds after a change, a timer will appear that will cause an auto-save when reaching 0. This timer is reset for each further change you make. By double-clicking on the title bar of the project window, you can "minimize" this window to just show the title bar.
Contact SMF 2.0.19 | SMF © 2016, Simple Machines | Terms and Policies
FEEP
6741db421653d