Alceris / IKEMEN

My own version of IKEMEN, containing various fixes and a branch full of experiments.
3 stars 0 forks source link

Requests / features #3

Closed K4thos closed 6 years ago

K4thos commented 6 years ago

Hi, We're working on a sample screenpack for ikemen that adds all vanilla mugen features and modes into ikemen. Here is a link to the project: https://github.com/K4thos/Ikemen-Plus And a topic discussing new features: http://mugenguild.com/forum/topics/ikemen-plus-181972.0.html

Our project is based around modifying LUA side of ikemen. Based on your commits I assume that you have skill to work with the core of the ikemen source code. Considering there is no way to contact ikemen author directly and he didn't reply to any of the comments on osdn I'd like to ask if maybe you would be interested in implementing some features that would allow us to improve the screenpack code and implement other features:

  1. Implementing in-options input reading can't be done in a sane way because io.read() doesn't work from within lua. If you would change it we could get rid of an awful workaround that uses inputDialogPopup function for button remapping (see: input setting in options)

  2. ssz/minus.cns is an awesome ikemen feature that allows us to add common states to all character at once. What would be awesome is the same thing but for AIR files. This way we could implement tag team system and stage interactivity directly into screenpack without requirement to patch all characters.

  3. localcoord support (mugen 1.1 feature). Without it all new lifebars requires recoding with scale and creating high res screenpacks is unnecessary complicated and produces worse outcome. Examples of current awkward coding:

    • scaling fonts and images designed for 720p requires 240/720 (0.33333) scale and results in scaling artifacts even on 960x720 resolution
    • 1 pixel velocity requires decimal values usage and so forth
  4. True Type font and/or font v2 support (so we can use better looking, antialiased fonts rather than old ass v1)

  5. '\n' support for text stored via textImgSetText (so we don't have to set external Y spacing for multi lines strings but simply use default value from FNT)

  6. Full range of options in config.ssz regarding fullscreen/scaling:

    • toggle for fullscreen (pressing alt+enter each time is tiresome)
    • force correct screen aspect ratio or stretching (currently setting up resolution to 16:9 messes up stage size and keeping it at 4:3 resolution automatically stretches the screen when going fullscreen - NVidia scaling options are ignored for some reason)
  7. BGM and SFX volume setting (0-100) via config.ssz (default max volume is to loud compared to everything else on my computer, it's not common for programs to run at maximum volume - at least from my observation, also check out Continue screen in the sample screenpack - notice that announcer is not loud enough compared to music which shouldn't be the case considering both have been ripped from the same game at the exact settings)

  8. function similar to drawportrait that would load only part of the SFF rather than whole file. As a workaround we're currently using Elcbyte's tools in order to extract animations required by screenpack which is certainly awkward solution. Dedicated function that exports chosen groups of sprites would solve this issue.

  9. Support for loading external PNG or PCX files rather than always using SFF format

  10. A way to force loaded SFF data to use custom palette either via external ACT or in case of SFFv2 - stored directly in the file. Please check out Select screen and Continue screen in the sample screenpack to see why we need it.

  11. function like setDebugScript but the script should support all script.ssz functions (debug.lua for some reason doesn’t) and run during whole battle or at least at the very end of the match. It's needed to implement following features:

    • win screens starting at the end of match while all characters and stage data is still loaded (so we could use stage background and character's animation data)
    • as above but for Continue screen Both of these features have been implemented in the screenpack code but the current workaround is both performance heavy (increases loading time when executable is started) and not perfect (no access to match related data that is often checked by winscreens like WinKO, Life etc.)
    • menu starting after pressing ESC (so we could implement options like command lists, restarting match, exiting to main menu) - this actually may be possible with current debug.lua and AddHotKey but since that script doesn't support ssz/script.ssz functions it can't be implemented yet
  12. function that would work in above mentioned script running during match that could return character's variables for example: var40 = readCharVar(var, 40) fvar40 = readCharVar(fvar, 40) This functionality is needed to implemented (among other things) global score system. Example of neat scoring functionality is present in Tatsu's add004 system. If we could read the variable at the end of match and sum it than implementing leaderboards would be trivial.

  13. Unrelated to the screenpack but if you’re looking for bugs that remains unfixed in ikemen I suggest checking out OMEGOPSYCHO’s boss characters. http://omegapsycho.webs.com/bosscharacters.htm Pretty much none of them works as intended even with correctly set stage zooming (if you use the sample screenpack you don’t need to worry about this part)

If you’re using Discord I’m available under swit nickname (#2765). Thanks in advance for taking time reading this wall of text.

Alceris commented 6 years ago

What the heck does "swit nickname" mean? You can't find people on Discord with just the number.