Skip to content

v0.62

Latest
Compare
Choose a tag to compare
@kapodamy kapodamy released this 06 Oct 14:57
· 3 commits to master since this release

v0.62

  • add new screenshots.
  • (JS) implement indexlisting.json
  • Required in the javascript version of the engine to enumerate files and directories.
  • Must be created using the desktop version by running "kdy-e.exe -indexlisting".
  • this file list "/asstets" and "/expansions" directories.
  • (C) show a logo in the VMU LCD, choosen to store savedata is used
  • (C#) fix "ghosting" image between rendered frames
  • add batch for recreating symlinks in WIndows.
  • move some unused files to "test files" folder.
  • implement FontCache
  • this new feature reduces loading time of SDF font char maps.
  • in JS is not implemented because the cache is async.
  • C version does not use SDF.
  • (C#) WeekSelector: fix songs list limit not working
  • update assets: introText.txt
  • (C#) misc fixes
  • show loading screen if enabled at startup.
  • SIMDmaxtrix: do not use Buffer::MemoryCopy() method.
  • remove any call glFlush() and glFinish() functions
  • implement pvr_context_prepare() to begin the scene (and polygon list) before draw something.
  • implement main_print_thread_list() to attemp fix a deadlock somewhere.
  • ignore "." and ".." folders in io_read_folder() and preloadcache_internal_list_files_of_folder() functions.
  • another text rendering fixes
  • FontAtlas:
    • eternal fix for "ascender" and "offset_y" using FT_Outline_Get_CBox() function.
    • do not fallback to 64px font size if fails.
    • use "FT_LOAD_IGNORE_TRANSFORM" to speed-up glyph rendering.
  • FontType:
    • rewrite fonttype_measure_line_height() function.
    • rewrite fonttype_map_codepoints() function, avoid duplicate codepoints fetch.
    • scale paragraph_space before apply.
  • WGLC: enable blend before setting blend function.
  • (C#) use unsigned unicode codepoints (uint instead of int)
  • add/update vscode specific files.
  • add FFmpeg prebuild libraries
  • improve LayoutVisor
  • change folder/file picker icons and labels
  • allow override input xml file with the FilesystemDialog picked file.
  • allow load an expansion indicated by /expansions/expansion.txt file
  • (JS &C#) do not animate saving progress message in Week
  • allow change the border size of RoundStats and song info TextSprite
  • update all TextSprite locations, borders and sizes.
  • (JS) FontAtlas: use emscripten cached freetype headers.
  • (JS) update instructions to build freetype lib.
  • remove default height of FontHolder.
  • add string_index_of_any_char() function.
  • (JS) IO no longers throws an exception when a file can not be readed, now simply returns null.
  • another text rendering fix in FontType
  • fix font borders not properly rendered.
  • fix ascender bug.
  • the draw size is now correctly calculated.
  • now creates another char map for rendering outlines.
  • clean up FontType constants.
  • update glyphs shader, now requires 4 texture units.
  • this changes breaks all text positions, needs layout corrections.
  • now the outline is draw on behind the glyphs, which can be used to create a non-blur (or solid) shadows.
  • fix fonttype_map_codepoints() not correctly creating a secondary char map.
  • rewrite javascript FontAtlas implementation, this simplifies the amount of required code.
  • Sega Dreamcast port is here
  • successfully ported to C.
  • builded on top of KallistiOS using DreamSDK.
  • requires custom file types of assets to work for textures, xml, json, audios and videos.
  • GLSL shaders are not supported.
  • keyboard and mouse are not supported.
  • ExpansionsLoader is not implemented but the expansions logic is available and works.
  • various settings options are not supported, also the loading screen is always drawn.
  • some Luascript platform features like reading command line arguments are not supported .
  • due hardware limitations various assets like textures, audio and videos will have a lower quality.
  • updated credits.
  • updated gitignore.
  • rename folders
  • rename folder "./fontatlas" to "./fontatlas-javascript".
  • rename folder "./luascript-js" to "./luascript-javascript".
  • Conductor: avoid muting voice track if there "hits" on neighbors strum lines.
  • (JS) StreakCounter: fix acient bug related to not printing the correct streak.
  • increase font size in FreeplayMenu and Week UI.
  • add support for letterbox menu manifests suffixed with "~dreamcast".
  • week7:
    • keep aspect ratio of kickstarter layout.
    • add dreamcast version of the mainmenu menu manifest.
  • Week: fix downscroll not working for letterbox screens in UI layout.
  • Chart: set extra data field to NaN if there no extra value or is not an number.
  • luascript: fix double-free in objects allocated by lua
  • add dreamcast version of week7 stage layout
  • LayoutVisor fixes
  • disable MasterVolume, avoids crashing the rendering pipeline.
  • fix character manifest not getting picked from FileSystemDialog.
  • luascript changes
  • use stringbuilder_helper_create_formatted_string() instead of lua_pushfstring() because does not support number formats.
  • StringBuilder:
    • add missing support for printing boolean values.
    • rename stringbuilder_helper_create_formatted_string() and stringbuilder_helper_create_formatted_string2() to be consistent across platforms.
  • move modifier field in Sprite, StateSprite and TextSprite structs to avoid pointer confusion.
  • (JS) fix macroexecutor_clone() function no cloning the items in the interpolators stack.
  • (JS) rewrite soundplayer_init2() to avoid deadlock when loading malformed ogg files
  • add support for 4:3 (letterbox) layouts
  • the function week_init_stage() now attempts to load stage file suffixed with "~dreamcast".
  • added original dreamcast stage layouts for tutorial and weeks 1-7.
  • update Lua to version 5.4.7
  • week4: reduce milf zooms
  • remove dead code on atlas_parse_from_plain_text() function.
  • rewrite string_trim() function (again).
  • (JS) write IO without require a worker thread
  • update FreeType to version 2.13.3
  • rewrite arraylist_destroy() function, removes "keep_alive" argument
  • code cleanup on playerstats_add_sustain() function
  • Luascript: add API for changing the pause screen background music
  • replace week_pause_prepare() with week_pause_change_background_music() function.
  • this avoid reloading the background music each round.
  • Week: fix acient bug where MessageBox is not shown
  • rewrite DDR checking logic
  • DDRKeymon: use vblank interrupts to check pressed keyboard keys and gamepad buttons.
  • simplify keyboard detection on KallistiOS STUB:
    • on desktop GLFW always reports the keys after calling glfwPollEvents() function which run every frame.
    • on javascript the web browser reports after calling requestAnimationFrame() function.
  • SongPlayer: rewrite the track sync logic depending in the plataform.
  • rewrite gamepad and keyboard checking logic:
    • do not use queue for keys, they share the same timestamp.
    • rewrite keyboard mapping.
    • rewrite gamepad checking.
  • Week: rewrite round start logic.
  • change default value of "disableResourceCacheBetweenSongs" in GameplayManifest
  • WeekPause:
    • use soundplayer_play() instead of soundplayer_replay() function (avoids unneccesary seeking)
    • remove "week selector" from leaving question.
  • WeekSelectorHelpText: increase z-index.
  • (C#) use proper KOS namespace for timer functions
  • fix acient bug in TextSprite where the selected animation was never disposed.
  • Layout:
    • use cloneutils when for atlas entry copy.
    • proper check camera_animate() function return value.
    • misc syntax fixes.
  • Character:
  • fixed two memory leaks.
  • use proper default values in some fields.
  • FunkinSave: do not add null-terminator when writing strings (its implied).
  • Healthbar:
    • fix two memory leaks.
    • use proper check for internal state name.
  • HealthWatcher: do not call playerstats_add_health() function if the amount is zero.
  • RankingCounter: avoid unnecessary animation cloning.
  • SongProgressbar:
    • check if seconds are valid before proceed.
    • remove unnecessary call to stringbuilder_clear() function.
  • GameplayManifest:
    • add missing field.
    • fix song filename building.
  • WeekGameover: fix memory leak.
  • WeekSelectorDiffucult: fix use-after-free.
  • GameMain: use do-while loop in main_spawn_coroutine() function.
  • Week:
    • use FS folder stack.
    • fixed wrong default player camera names assignaments.
    • fixed various memory leaks.
    • remove duplicate call to week_internal_pick_counters_values_from_layout() function.
    • proper check for healthwatcher_has_deads() function return value.
  • Strum: check note id as integer.
  • WeekGameover:
    • reduce font size in "GAMEOVER" label.
    • add missing changes from previous commits to dreamcast layout.
  • SongPlayer fixes
  • show the loading screen when launching a week from the modding context
  • implement PreloadCache
  • (JS) allow delete savedatas in SaveManager during the engine startup, this intended for dealing with corrupted saves.
  • assets changes
  • change location and size labels of some labels used in menu layouts.
  • MainMenu: reorder items z-index
  • (C#) remove unused assertions in FontGlyph and FontType
  • TexturePool: rewrite implementation without cache
  • SaveManager: fix confirm delete dialog not closing.
  • SettingsMenu: fix wrong function usage, confusion between soundplayer_play() and soundplayer_destroy() functions.
  • fix various z-figthing.
  • memory satefy fixes
  • reduce percent to choose last week played style from 25% to 15%
  • improve string folding performance for ASCII codepoints
  • Math2D: improve RNG init
  • PVRContext: set to zero the delta time between loading screens
  • FS fixes
  • Use proper path prefixs like "src", "path", "absolute_path" and "native_path".
  • FS: fixTLS init.
  • typo fixes.
  • add missing free() calls
  • remove padding carrier-return character in introscreen_read_intro_text() function
  • add proof-of-concept of sliced textures creation and rendering
  • improve array allocation and resize.
  • make zero length arrays always null.
  • log a warning in fontglyph if can not load the glyphs from the atlas.
  • strum simplify strum chart note array building.
  • (JS) fix a bug in gameplaymanifest_init() function.
  • add EOL at the end of various files.
  • update test files
  • improve screenshot saving using BGRA pixel format
  • Improve handling background threads
  • update build instructions for external libraries
  • (C#) VideoPlayer and FFGraph changes
  • VideoPlayer: rewrite to fix some egde-case bugs.
  • decode YUV frames directly in the GPU, this improves performance.
  • FFGraph changes:
  • improve demuxing by calling avcodec_receive_frame() once per avcodec_send_packet() call.
  • rewrite VideoConverter to return raw YUV frames instead of RGB24 if the pixel format is YUV420P.
  • update FFmpeg to version 7.1, this also updates the P/Invoke code required to use FFmpeg API.
  • WGL changes:
    • add support to decode and render YUV frames.
    • use "gl.activeTexture(gl.TEXTURE0)" before binding texture.
    • misc changes to PBO usage (still not implemented).
  • Texture: add support for chroma planes.
  • (JS) fix regression on MacroExecutor issued by previous commits
  • rework menu keyboard bindings
  • remove unused bindings.
  • SettingsMenu: rename menu bindings.
  • SettingsMenu: change selector icons.
  • fix keyboard callback on LuascriptPlatform returning the same key.
  • ignore the executable flag by using "git config core.filemode false"
  • delete unused dlls
  • update gitignore files
  • Texture: replace fs_get_full_path() usage with fs_get_full_path_and_override()
    *(JS) ExpansionsLoader fixes
  • prevent invalid expansions from appearing in the list.
  • add button to ignore and run the engine without expansions.
    (C#) update to .NET 8.0 and rewrite ExpansionsLoader GUI
  • use version 8.0 of .NET SDK.
  • rewrite ExpansionsLoader as external library with .NET Framework 4.8 support, this avoids the .NET Core Desktop Runtime download.
  • misc changes to texture-mgr.
  • (C#) use "out" instead of "ref" on ArrayList<>::Destroy2() method
  • reduce menu heights on SettingsMenu
  • rewrite LayoutVisor dotted implementation
  • remove DOTTED implementation of all shaders
  • LayoutVisor: implement "dotted" using a postprocessing shader.
  • (JS) update screen_stride after checking the canvas resolution.
  • remove "#define SDF_FONT" from glyphs shader, it will set at runtime.
  • WebGLContext: do not add the common uniforms in vertex shaders.
  • FontType: use mutex becauase FreeType can not be multithreaded
  • update glfw to version 3.4
  • sdf text rendering improvements
  • better aliasing without "smoothness", high-quality text rendering.
  • rewrite sdf outline.
  • rewrite glyphs shader with subroutines for code clarity.
  • improve text rendering performance with ascii lookup tables
  • (C#) Improve array sort functions to improve performance
  • replace String::IsNullOrEmpty() usages with StringUtils::IsEmpty() and StringUtils::IsNotEmpty()
  • use unicode escape codes for non-acsii characters
  • unificate common FontType and FontGlyph functions in a single structure called FontParams.
  • implement menu_set_item_image() function, this is the counterpart of menu_set_item_text().
  • implement ModelHolder reusage with modelholder_init2() created instances.
  • add various checks when navigating the SaveManager menu to avoid edge cases.
  • Luascript: export menu_set_item_image() function.
  • add missing "await" when calling modding_helper_* functions.
  • remove "await" when calling modding_destroy() function.
  • replace usages of "Number.isFinite" and "Double.IsNaN", in C# use "Single.IsNaN" for float values.
  • allow change used vmu and manage savedata from settings
  • (C#) replace all occurrences of " != GamepadButtons.NOTHING" with ".Bool()"
  • MainMenu: show engine and used vmu
  • display engine name and version.
  • display vmu slot and whatever is disconnected or not available.
  • display warning is the engine is running without a savedata.
  • color bleding is enabled by default.
  • use SaveManager after destroying Modding contexts
  • FunkinSave fixes and improvements
  • add test suite for PVR files
  • update readmes
  • update docs
  • update credits
  • refactor C# codebase
  • refactor JS codebase
  • add modding support for WeekGameOver and WeekResult.
  • add lua exports for getting group visibility.
  • add lua exports to stop and disable MissNoteFX.
  • allow lua script to adquire WeekPause, WeekGameOver and WeekResult layouts.
  • improve WeekResult to allow to be customizable with new lua exports.
  • rewrite all offsetColor "by subtraction" to "by addition". this also changes how shaders and properties are set.
  • refractor animation compontents: AnimListm, AnimSprite, MacroExecutor, TweenKeyframe and TweenLerp
  • rename various enums, constants and functions
  • FontAtlas fixes
  • Math2D fixes
  • FFGraph fixes
  • SoundBridge fixes

Full Changelog: v0.60...v0.62

Dreamcast assets are converted with https://github.com/kapodamy/kdmy-engine-tools