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