Project:Help wanted: Difference between revisions

Jump to navigation Jump to search
→‎Game logic: One-hit kill protection
imported>Leoetlino
No edit summary
imported>Leoetlino
(→‎Game logic: One-hit kill protection)
 
(6 intermediate revisions by the same user not shown)
Line 35: Line 35:


The format has not seen a lot of research as of September 2018, despite the executable being full of debug strings that include field names and the fact that other recent Nintendo games such as ''Splatoon 2'' ship the library with debugging symbols.
The format has not seen a lot of research as of September 2018, despite the executable being full of debug strings that include field names and the fact that other recent Nintendo games such as ''Splatoon 2'' ship the library with debugging symbols.
=== Event timelines ===
[[bfevtm]] files (binary event timelines) are extremely similar to [[bfevfl]] files (binary event flowcharts), but have a few significant differences that make them incompatible with the [https://github.com/leoetlino/evfl evfl] library as of September 2018.
Because timelines are exclusively used by the event manager — unlike flowcharts which are also used by smaller subsystems like TipsMgr — for [[demo]]s, it has proven difficult to find the code that reads timelines.
If you are willing to take up this task, please ping [[User:leoetlino|leoetlino]] for the Switch 1.5.0 IDC.
'''Update''' (16/12/2018): All timeline-related structures are now known thanks to Nintendo shipping the EventFlow library with full symbols in another game. Some fields are still unknown at the moment, though (see [https://github.com/leoetlino/bfevfl-template/blob/master/timeline.bt leoetlino/bfevfl-template:timeline.bt] and [https://github.com/leoetlino/bfevfl-template/blob/master/actor.bt leoetlino/bfevfl-template:actor.bt] for more details).


=== Havok packfiles and structures ===
=== Havok packfiles and structures ===
Line 54: Line 45:
* Dump reflection data for the Wii U version. Data offsets are different since the Switch uses a different compiler, is a 64 bit little-endian platform unlike the Wii U (32-bit big endian machine).
* Dump reflection data for the Wii U version. Data offsets are different since the Switch uses a different compiler, is a 64 bit little-endian platform unlike the Wii U (32-bit big endian machine).
* Write a library to manipulate binary packfiles: getting, modifying, adding and removing Havok objects from a packfile (and perhaps converting them to XML too?)
* Write a library to manipulate binary packfiles: getting, modifying, adding and removing Havok objects from a packfile (and perhaps converting them to XML too?)
* Figure out how the compression for <code>hkpBvCompressedMeshShape</code>s works. Nintendo uses compressed mesh shapes for all [[Content/Physics/StaticCompound|static compound]] collision files.
* Document how the compression for <code>hkpBvCompressedMeshShape</code>s works. Nintendo uses compressed mesh shapes for all [[Content/Physics/StaticCompound|static compound]] collision files.
 
=== <s>Event timelines</s> ===
[[bfevtm]] files (binary event timelines) are extremely similar to [[bfevfl]] files (binary event flowcharts), but have a few significant differences that make them incompatible with the [https://github.com/leoetlino/evfl evfl] library as of September 2018.
 
Because timelines are exclusively used by the event manager &mdash; unlike flowcharts which are also used by smaller subsystems like TipsMgr &mdash; for [[demo]]s, it has proven difficult to find the code that reads timelines.
 
If you are willing to take up this task, please ping [[User:leoetlino|leoetlino]] for the Switch 1.5.0 IDC.
 
'''Update''' (16/12/2018): All timeline-related structures are now known thanks to Nintendo shipping the EventFlow library with full symbols in another game. Some fields are still unknown at the moment, though (see [https://github.com/leoetlino/bfevfl-template/blob/master/timeline.bt leoetlino/bfevfl-template:timeline.bt] and [https://github.com/leoetlino/bfevfl-template/blob/master/actor.bt leoetlino/bfevfl-template:actor.bt] for more details).
 
'''Update''' (19/12/2018): [https://github.com/leoetlino/evfl evfl v0.13.0] now supports event timelines.


== Game logic ==
== Game logic ==
''The following tasks require reversing the executable or some serious experiments to have reliable information on how the mechanics work.''
''The following tasks require reversing the executable or some serious experiments to have reliable information on how the mechanics work.''
=== One-Hit kill protection ===
It is well known that Link cannot die in one-hit under specific cases. What are the exact conditions for this protection to apply? Interestingly, it appears this mechanic is gone in Master Mode.
<code>NoDeathDamageBase</code> (in Link's [[ActorParam/GeneralParamList|GeneralParamList]]) might be related.


=== EnvPalettes and areas ===
=== EnvPalettes and areas ===
Line 70: Line 67:
How is the motorcycle's speed configured? It's not in GeneralParamList, so it might be physics-based or even hardcoded.
How is the motorcycle's speed configured? It's not in GeneralParamList, so it might be physics-based or even hardcoded.


=== Respawning logic ===
=== AutoPlacement ===
While the respawn logic for most objects is very simple, some entities do not ''appear'' to be affected by Blood Moons: fruits on trees, shop items. Investigate GameDataMgr as this is likely where the logic is. 
How often does AutoPlacement code run? RailDistance? Does it check the camera field of view to decide whether to spawn dragons or not?
 
Which positions are being considered for spawning actors?
 
=== Glitches ===
==== Horse sliding ====
How does this glitch work? How is the sliding direction determined?
 
==== Apparatus Storage ====
How does this glitch work? Is there anything else that could trigger a similar state?
 
==== Lizalfos physics glitch ====
How does this glitch work? Why does the game crash?


=== <s>amiibo drops</s> ===
=== <s>amiibo drops</s> ===
Line 87: Line 96:


(Panic Blood Moons are well understood now.)
(Panic Blood Moons are well understood now.)
=== <s>Respawning logic</s> ===
{{lta|link=Object respawning}}
While the respawn logic for most objects is very simple, some entities do not ''appear'' to be affected by Blood Moons: fruits on trees, shop items. Investigate GameDataMgr as this is likely where the logic is.
=== <s>One-hit kill protection</s> ===
It is well known that Link cannot die in one-hit under specific cases. What are the exact conditions for this protection to apply? Interestingly, it appears this mechanic is gone in Master Mode.
<code>NoDeathDamageBase</code> (in Link's [[ActorParam/GeneralParamList|GeneralParamList]]) might be related.


== Resource sizes ==
== Resource sizes ==
Anonymous user

Navigation menu