libretro / nxengine-libretro

Port of NxEngine to the libretro API. NXEngine is a Cave Story game engine clone
85 stars 89 forks source link

Make it easy to jump through one horizontal block gap. #88

Closed crocket closed 2 years ago

crocket commented 2 years ago

This fixes https://github.com/libretro/nxengine-libretro/issues/84 I strongly advise maintainers to read https://github.com/libretro/nxengine-libretro/issues/84 thoroughly and test this pull request for a while before merging it.

This tries to replicate d7c771ef3a7b35a03725dfedaa39e8df39c5039b from nxengine-evo.

It reduces the gap between Block U and Block D of player character by one pixel in nxengine/extract-auto/sprites_sif.h.

Block U and Block D affect how vertical collision occurs in the game.

Reducing the gap between Block U and Block D by one pixel is like reducing the height of the player character by one pixel.

I converted sprites_sif.h to sprites.sif with my own script, reduced the gap between Block U and Block D of the player character by one pixel on sifedit from http://nxengine.sourceforge.net/dl/nx-src-1002.tar.gz, converted the saved sprites.sif back to sprites_sif.h with my own script. This editing process was full of hacks that cannot be replicated by others.

There really needs to be an easier way to edit sprites.sif. sprites.sif should become a human-readable plain text file.

sifedit from http://nxengine.sourceforge.net/dl/nx-src-1002.tar.gz already started emitting a lot of error messages during runtime. In the near future, I probably won't be able to use sifedit at all.

inactive123 commented 2 years ago

You want me to just test that part in the village (from the screenshot in that issues thread)? The one where you have to jump through the one horizontal box ?

crocket commented 2 years ago

Yes. Ideally, from the beginning to the part in the village where you have to jump through one horizontal block gap. I personally tested until egg corridor, and it worked without an issue.

crocket commented 2 years ago

I got to Jail No. 1. There, Block D is too wide for the character to escape the jail. It seems I need to beat the game.

inactive123 commented 2 years ago

Seems easy enough at least in the village. As for Block D, you can push a future PR with a further improvement, I think this PR as is is probably good to go.

crocket commented 2 years ago

I'm in the process of beating the game. I will submit another pull request.