Git Product home page Git Product logo

Comments (7)

LagoLunatic avatar LagoLunatic commented on May 28, 2024 1

Indeed, it seems to be hardcoded frame indexes. The prologue event has a line located at 021C6AF8 that checks if Arikado's current frame index is 0xC, and spawns the knife then.
Because my darkFunction exporter/importer only preserves frame indexes when they are not part of any animation, that frame winds up getting changed to frame index 0x20.

Unfortunately, I can't think of any possible way to fix this. You call them "optimizations", but that's not true, it's simply that darkFunction's format doesn't allow me to preserve all of the information I need. A frame can't be in an animation and also have a name used to keep track of its original index. As a result, the order of the frames winds up being different after exporting and importing.

It's most likely not possible to fix while still using darkFunction. The proper solution here would be to code a proper GUI for editing sprites into DSVEdit's built in sprite editor so no conversion is necessary, but the GUI coding necessary to make that editor actually usable is too complex, so I won't do that.

The easy solution to your problem is to just edit that one line of code to use the new frame index instead of the original.

from dsvedit.

piratesephiroth avatar piratesephiroth commented on May 28, 2024

I understand that darkfunction doesn't support that but could you make the program write it as comments to the anim file?
Even if it wasn't able to fix it in the reimport process, it would at least point us in the right direction

from dsvedit.

LagoLunatic avatar LagoLunatic commented on May 28, 2024

I could write anything I wanted in comments of the anim file, since it's just xml.
But it wouldn't help anything since when you open and resave the anim file in darkFunction, darkFunction won't preserve those comments.
It would only allow preserving more information in the case where you click "Export" and immediately click "Import" without making any changes, so it's pointless.

from dsvedit.

piratesephiroth avatar piratesephiroth commented on May 28, 2024

yeah, but could you just write comments pointing that the event checks for this and that specific frame indexes (and where the checks are)?

Even if we had to fix it manually by editing the code.

from dsvedit.

LagoLunatic avatar LagoLunatic commented on May 28, 2024

I think you're underestimating how much work that would take. Just finding that one hardcoded frame index check I told you about took like 15-20 minutes of reading through code. It would probably take hundreds of hours of work manually reading through all of the game's code for me to compile a complete list of every hardcoded frame index in every enemy AI, cutscene, special object, NPC, etc. You're free to do that if you want to but I won't.

You may be able to automate the process by writing a script to parse through all of the game's code, but it won't give as accurate results as if done manually and would still take some work to write the script.

from dsvedit.

piratesephiroth avatar piratesephiroth commented on May 28, 2024

ah that's what I feared

from dsvedit.

piratesephiroth avatar piratesephiroth commented on May 28, 2024

well, it works

https://cdn.discordapp.com/attachments/478455683025469440/710529153849491506/output.mp4

from dsvedit.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.