We spent a good amount of time identifying and separating the functions
in their corresponding Entity files in preparation for the docs that are
coming.
Co-Authored-by: @MottZilla
Thanks to @MottZilla research I was able to extract the spritesheets of
Richter as PNGs in conjunction with the original palette from
`F_GAME2.BIN`. When the binaries are built, the PNGs are recompiled back
into binary.
In case of modding, it is possible to modify the sprite size to
accommodate bigger or smaller sprites. Although it is not possible to
modify the existing palette as currently we have no way to extract and
rebuild `F_GAME2.BIN`. You would have to modify the palette via hex
yourself. The file `config/splat.us.ric.yaml` shows in which offset the
palette is located. Just for reference, the colour format for the
palette is RGBA5551. It is important that edited PNGs has 16 colours
otherwise the build will fail.
The `padding` field is required to reconstruct some left-over / junk
data that is not part of the data sprite. For the sake of modding, the
`padding` field can be whatever.
I am not sure if `RIC.BIN` pointers can be relocated. If that is the
case you might get a black screen when playing with Richter. It should
be easily fixable though.
![image](https://user-images.githubusercontent.com/6128729/233791249-0155a6fb-c5fc-4142-b294-9f44b5524dde.png)
This pull request matches NZ0 `func_801B12E8`. This particular function
is responsible for handling one of the backdrops of the Alchemy
Laboratory that scrolls with the camera. It appears as a repeating
purplish-red brick pattern behind the foreground.
It is comprised of 15 textured primitives laid out in a 5-tall by 3-wide
grid.
- NZ0 - `func_801B12E8` - Renamed to
`EntityPurpleBrickScrollingBackground`
---------
Co-authored-by: Alejandro Asenjo Nitti <96613413+sonicdcer@users.noreply.github.com>
There are numerous duplicates of the `CreateEntityWhenInVerticalRange`
and `CreateEntityWhenInHorizontalRange` functions. This pull request
matches the duplicates identified in overlays NO3, NP3, and RWRP:
- NO3 - `func_801C3500` - Renamed to `CreateEntityWhenInVerticalRange`
- NO3 - `func_801C3618` - Renamed to `CreateEntityWhenInHorizontalRange`
- NP3 - `func_801BAD70` - Renamed to `CreateEntityWhenInVerticalRange`
- NP3 - `func_801BAE88` - Renamed to `CreateEntityWhenInHorizontalRange`
- RWRP - `func_8018BE1C` - Renamed to `CreateEntityWhenInVerticalRange`
- RWRP - `func_8018BF34` - Renamed to
`CreateEntityWhenInHorizontalRange`
There are numerous duplicates of the `CreateEntityWhenInVerticalRange`
and `CreateEntityWhenInHorizontalRange` functions. This pull request
matches the duplicates identified in overlay CEN and DRE:
- CEN - `func_80192B00` - Renamed to `CreateEntityWhenInVerticalRange`
- CEN - `func_80192C18` - Renamed to `CreateEntityWhenInHorizontalRange`
- DRE - `func_80198C44` - Renamed to `CreateEntityWhenInVerticalRange`
- DRE - `func_80198D5C` - Renamed to `CreateEntityWhenInHorizontalRange`
There are numerous duplicates of the `CreateEntityWhenInVerticalRange`
and `CreateEntityWhenInHorizontalRange` functions. This pull request
matches the duplicates identified in overlay MAD:
- MAD - `func_80190608` - Previously matching; renamed to
`CreateEntityWhenInVerticalRange`
- MAD - `func_80190720` - Renamed to `CreateEntityWhenInHorizontalRange`
NZ0:
EntityAxeKnight (I'm proud to present the first enemy decompiled in the
project perhaps?)
Here is the scratch in case somebody wants to tune it and provide
changes:
https://decomp.me/scratch/LKkYQ
EntitySubWeaponContainer
EntityBloodSplatter
func_801B69E8
func_801C0D08
func_801C9E98
NP3:
EntityBloodSplatter
EntityZombie
func_801B8CC0
We finally have this monster matching.
Special Thanks to the people who helped into matching this function, in
no particular order:
@pixel-stuck
@Unnunu
@Xeeynamo
and the Decompals people in general for all time support.