Comments (7)
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.
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.
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.
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.
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.
ah that's what I feared
from dsvedit.
well, it works
https://cdn.discordapp.com/attachments/478455683025469440/710529153849491506/output.mp4
from dsvedit.
Related Issues (20)
- Error HOT 5
- [enhancement] Add an "open recent folder" option
- I.A HOT 2
- Having trouble figuring out ASM usage HOT 2
- Aria of sorrow
- cant open HoD HOT 1
- Unable to build from source? HOT 9
- [enhancement] Add the posibbility of play with custom music. HOT 1
- Crashlog with dsvedit.rb HOT 1
- something wrong HOT 10
- HoD Issues HOT 1
- HoD: Automatic removal of entity palettes from room palettes list causes issue for some rooms
- HoD: Layer resizing of initial room corrupts built ROM and forces editor crash on startup HOT 2
- rom file not present HOT 2
- Editor crashes after matching new room State to original room - Works on emulator, crashes on editor, no log created HOT 4
- Options I like and others that don't exist DSV HOT 1
- AoS: Problematic door HOT 5
- DSV freeze HOT 2
- DSVEditor
- [bugs] Accessories section displays incorrectly in Japanese version of PoR
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dsvedit.