gabonator / Projects

Finished projects
26 stars 9 forks source link

Xenon 2 - issues #10

Closed oklemenz closed 1 year ago

oklemenz commented 2 years ago

I checked the WebXenon2 conversion and it looks, as if sound is not included. I did not find any existence of a sound emulation. Any plans to also include sound effects and music into the conversions?

gabonator commented 2 years ago

oklemenz reported:

I have noticed, that the touch/mouse support does not really work when being in shop. It always tries to compute based on the starship, which of course does not make sense. In addition an auto fire is also not helpful in shop.

A different handling is needed. To do so, there must be a distinction when playing and when being in shop. What is the best way to detect that user is currently in shop?

gabonator commented 2 years ago

oklemenz reported: I noticed, that the level lives in Xenon2 Web are initialized with 9 and if the ship power reduces to zero, it's automatically filled up and ship is not destroyed and live reduced.

Any idea, how the normal behavior, starting with 3 lives, ship is destroyed when power is up and live is reduced can be introduced to WebXenon2 version?

Thanks for your help..

gabonator commented 2 years ago

oklemenz reported: I tried to pack level data for s2-s5 into xenon2.resources.js.

Basically the level data is loaded. The background graphics look quite good, but the sprites graphics are completely off and sometimes the execution stops with an assertion.

Any plans to support all levels? Anything special that needs to be done, for the other levelpacks?

gabonator commented 2 years ago

Please report all issues here, so the github issue tracker wont be full of xenon issues while this repository holds a ton of other stuff.

The sound emulation was not implemented - it was quite difficult to convert this game with cicoparser because xenon uses tons of indirect calls, and everytime a this call is made, I need to switch to disassembler, extract the method, convert it and add to the codebase. But at least I was able to convert first level without any major issues. Now I am experimenting with just-in-time conversion with "capstone" disassembler instead of standalone applications like IDA or Ghidra. So while you play the game, it will automatically convert used referenced functions. This could be nice for splitting the code base into chunks like "intro", "main menu", "level 1"... But it might take several weeks to have some proof of concept results

oklemenz commented 2 years ago

Thanks for aggregating my comments. I can imagine that it is really a tough task. But Capstone sounds promising, looking forward to an update on this. Maybe it's then easier to convert games.

Another one I would love to play in browser is https://www.bestoldgames.net/de/nebulus