1. Project Heartbeat
  2. News

Project Heartbeat News

Project Heartbeat 0.12 Update Notes

Here we are again.

0.12 is ready, this update is pretty big, it also comes with some big news, off we go:

New song: Going my way (DJ Timotei EDIT)


[previewyoutube][/previewyoutube]

A new song licensed from the Eurobeat circle Takanashi Kobo, this song has been charted by Yahoo and illustrated by Reixart.

Website and user rankings








Project Heartbeat now has an official website, this includes web based leaderboards and user rankings a la osu, the ranking system's points have been tentatively named pp (for funny reasons).

Do note we want to revisit and probably redo this algorithm eventually, as it didn't perform quite as expected so a bespoke solution is gonna be needed.

You can find the website at ph.eirteam.moe

Steam Deck support




While we weren't among the lucky few to get a devkit, but we managed to get the game ready for Steam Deck anyways through some black magic (and some new Steam SDK releases). It will now use the new text input features of SteamOS 3.0 where available.

Another features include better scaling of the menus in general, particularly for the main menu.

Big picture mode gamepad text input support




When running the game inside Steam Big Picture you can now use the keyboard whenever you have to type something.

Controller overhaul


As part of the aforementioned deck support we have updated how the controller support works.
The selected controller is now the first one we detect an input from, when a controller is being used the mouse gets hidden.

Song search




What took you so long? - Kazuhira Miller, probably

h264 mainlined




After some investigation I discovered that neither my country nor my closest neighbor (France, unfortunately) recognize software patents, thus I've taken the decision to mainline h264 support for PPD migration.

Ordinary songs will continue to use vp9 for the time being, in case we have to remove it, but I don't think we will.

Previously you had to install a plugin, hopefully this simpler solution will make transitioning easier.

Editor shortcut remapping




You can now remap most shortcuts in the editor

Load time improvements




Load times have been greatly improved across the board by removing some 4D chess code I accidentally added, song load is instant most of the time, and audio normalization is cached, so even if the first load isn't instant subsequent loads should be.

GLES2 improvements


Some minor fixes have been made to make GLES2 support better for those that need it.

Rewritten main menu music playback


The code used to playback songs in the main menu has been made more reliable and more performant, now audio normalization is used where available, else it uses a compressor to try and keep volume under control.

Updated localization


Most localization files for catalan and spanish have been updated

Direct Joystick Access fixes


Last update we introduced direct joystick access, which allows controls to behave in a nicer way by combining the two axis of a joystick for detection, this didn't really work well so it was relegated to an optional feature, new changes and bugfixes should make it now better although some issues have been found that prevent it from becoming the default yet.

ShiftJIS support for PPD zips




When downloading PPD charts you may have noticed it sometimes failed to find the data.ini even though it was there.
This was caused because the file names were encoded in an encoding system known as ShiftJIS (JIS stands for Japanese Industry Standard) this encoding is fairly exotic in the west but very common in japan, at least years ago (everyone seems to finally have agreed on UTF-8).
The game will now try converting the raw file name data into ShiftJIS if it fails to decode it as UTF-8, which should be nice.

Editor changes




A bunch of editor changes, courtesy of lino.

Add X/Y snap for grid notes
You can now slide around notes in a straight line by pressing shift while dragging them

Practice mode stats in playtest
The practice mode stats have been added to playtest in the editor

Autoslide option
Added an autoslide option to make slide spacing be correct

More per-song editor settings

More editor settings will now be saved when you save your song:

  • Snap to the timeline
  • Show video
  • Show BG
  • Show grid
  • Snap to grid
  • Grid resolution
  • Autoarrange HV separation
  • Autoarrange diagonal separation
  • Use stage center for transformations
  • Angle circles from the inside
  • Circle size
  • Circle separation
  • Advanced circle mode



Use mipmaps on loaded images


Some mipmapping, filtering and other fancy stuff is now used when loading transparent things such as circle logos and any other gaphic, this is likely broken on some renderers for various complicated reasons, so please let me know if your images come up black so I can add exceptions.

Anti-cheat


After some digging I found some undocumented APIs that allowed me to retrieve metadata from the workshop uploaded by the game on the server-side, this has lead to the development of an anti-cheat solution that's not invasive. It isn't perfect, but not even invasive anti cheat is perfect so you can be sure I am not stealing your Maki Nishikino images.

Hold scoring changes


In order to make holds more consistent and less complicated, the score is now counted from (Note Time - Fine Timing Window).

Menu sorting changes


Difficulties within a song will now be ordered by stars, makes more sense.

Credits menu




A new credits menu has been added to options, this will show people who contributed to the game as well as some legalese. There is also a pretty neat surprise if you scroll all the way down on the "Game" section.

Bug fixes & minor changes


* e96a9d4a - Fix editor error when freeing (hace 8 semanas)
* c339fe7f - Include audio loudness in HBSong when saving (and make use of it) (hace 8 semanas)
* cd89e6b6 - Hopefully fix last subscribed sorting being broken when a song is updated (hace 8 semanas)
* d9ceb1a8 - Add audio nromalization data to all built in songs (hace 8 semanas)
* a8c5192e - Fix highest score not saving (hace 7 semanas)
* 916666ae - Remove yield that caused stall when returning to menu (hace 7 semanas)
* 6b05b942 - Fix slide chain multis in editor (hace 6 semanas)
* 3802e579 - Hide multi laser for weird multis when hit (sustains and slide chains) (hace 6 semanas)
* ce43c9f1 - Fix slide note scoring inconsistencies (hace 6 semanas)
* 0c4040ce - Fix NX-switch controller mode being used outside of the Switch (hace 5 semanas)
* 9d8cd77b - Saner defaults for lyrics (hace 5 semanas)
* 469c527d - Remove unused virgin eirexe achievement (hace 4 semanas)
* dfd9c68c - Fix expressionrunner performance bullshit (hace 4 semanas)
* 7c0c1ef8 - Ensure unique resource_paths in ResourcePackLoader (hace 4 semanas)
* 8034c611 - Move OptionControlsSection to use UniversalScrollList (hace 4 semanas)
* 9f5084fb - Remove remaining uses of legacy HBScrollList (hace 4 semanas)
* 715cd6f7 - Add some experimental jitter improvements (hace 4 semanas)
* 769a38e4 - Fix expressionrunner error logging (hace 4 semanas)
* 8aa05957 - Make expressionrunner cast to HBTimingPoint instead of HBNoteData (hace 4 semanas)
* 6c1f0f3c - Fix clear bar color in GLES2 (hace 4 semanas)
* 28798742 - Add extremely hitler nazi song verification (verify disallowed file types and subfolders not existing) (hace 3 semanas)
* cdc9a18c - Enable encoding text resources to binary to save space (hace 3 semanas)
* 23f8c77d - Cancel workshop preview image requests when it is safe to do so (hace 2 semanas)
* e186cca1 - More steam error handling (hace 13 días)
* a6b36811 - Fix GUI misalignment (hace 9 días)
* c029eec2 - Fix seeking issues when not using system clock (hace 9 días)
* 6e391e17 - Remove is_on_steam_deck() requirement for GamepadTextInput as per valve's recommendation. (hace 9 días)
* c5c466dc - Fix ending of songs without end_time in BackgroundMusicPlayer (hace 9 días)
* 136659d0 - Fix ACHIEVEMENT_PERFECT_BUILTIN (hace 3 días)
* dec02754 - Update all official songs with hashes and new meta (hace 3 días)
* 98f5a2df - Universal scroll list consistency fixes (hace 2 días)
* 744408c4 - Fix scrolling from top to bottom (hace 2 días)
* 04c35c48 - TTN 2019 chart changes (hace 2 días)
* f37fa92e - Some label overflow changes (hace 6 horas)
* 02b8da27 - Sanitize composers, writers, vocals arrays on set (hace 6 horas)
* 6dccf1f3 - Release holds when the song ends before the hold is finished (hace 5 horas)
* 652d15d6 - Fix vibration settings not saving (hace 23 minutos)

Future


3DPV system progress




In collaboration with the V-Sekai people I ported a tool called VMDMotion to Godot, although it's currently very slightly broken in the future it will finally allow VMD (mmd motion files) to be loaded into VRM avatars, which was always the dream.

Why not use MMD PMX files you may ask? Because MMD PMX files are not made for games, they are made for offline rendering most of the time, thus they may be too high poly to be used in a game while keeping good performance.

VRM models on the other hand are usually made for use in VR, thus they are high performance, this coupled with the extremely nice support from the godot_vrm plugin.

You can find info on my port of VMDMotion on our GitHub

Onto a new update!

Project Heartbeat 0.11: New song, homebrew switch port, big editor changes etc..

0.11 is here, this update is pretty big, amongst the news are Lino joining Project Heartbeat development as a volunteer, the return of the switch version, and many many long-time requested improvements.

NEW CONTENT


[h2]New song: Through the night 2019[/h2]

[previewyoutube][/previewyoutube]

Through the night 2019 is yet another song from SuganoMusic, the song is sang by Renko (same person who sang core creation) produced by Sugano, charted by Yahoo.
The art was comissioned from and masterfully created by guinii4, a local Spanish artist, please check out her work!

[h2]Return of the switch version[/h2]



The switch version for hacked machines of Project Heartbeat has now returned, you can learn how to use it by reading this guide.

Included are some upgrades to the switch code that plagued the original one with issues, it's still fairly slow because we aren't using any illegally obtained SDK, instead we are using the community developed libnx and mesa nouveau video driver, which is unfortunately slow, but it's playable at least.

NEW FEATURES


[h2]New history format[/h2]

The history now stores the score ratings and percentage separatedly, so whenever you get a higher number in any of those it gets saved.

[h2]Direct joystick access[/h2]



Direct joystick access allows the game to access your controller's joysticks directly, this allows the two axis directions (vertical and horizontal) to be combined, which prevents issues such as spinning the joystick triggering heart notes, because some people (ab)used this for heart spams it's an option.

This feature only works with controllers that are in the internal controller database (They are now marked as known in Options -> Input).

[h2]Menu optimizations & changes[/h2]



The menu now uses some new optimizations that makes it faster, the internal render targets are now scaled according to your resolution.

The menu animations are now bouncier.

You can now press R3 or G to show the currently playing song.

The song list also now shows when a song needs its media to be downloaded

[h3]Results Screen[/h3]



The results screen has been changed to look nicer (thanks lino)

[h2]SFX system rework[/h2]

The game now separates between heart notes and slide notes, plus it also has a different sound when pressing a heart or a slider without there being one nearby.

[h2]Auto download workshop songs in multiplayer[/h2]

The game will now download workshop songs automatically when you are playing in multiplayer

[h2]Borderless windowed[/h2]

The game now supports 3 window modes, windowed, borderless windowed and fullscreen, additionally you can now select the display in which the game will be displayed.

[h2]Show console option[/h2]

The console is now hidden by default, it can be restored in the options menu.

[h2]Editor changes[/h2]

[h3]Waveform preview[/h3]



Taken from Godot's source code, I've ported some code related to the waveform preview subsystem and used it in the editor timeline.

[h3]Circle transforms[/h3]



Courtesy of Lino we now have new options to create circles

[h3]Minor changes[/h3]

  • Add the ability to pan around the timeline using shift + scroll wheel
  • Show selected timing point count in the info bar
  • Disable main game input while testplaying
  • The editor now allows holding to the left and right to navigate the timeline quickly
  • The rotation transform spinbox is now editable
  • Correct the way the flip slides transforms selected notes
  • Autoarrange is now smarter
  • Notes are deselected when changing songs
  • Added shortcuts for many things, check the editor manual for info on them.
  • Testplay now shows the song's name


[h2]Other Minor changes[/h2]

  • Heart and slide inputs now ignore each other
  • Limit discord rich presence poll rate to 5 polls per second
  • Rewritten memory management in preparation of switching to release mode
  • Add angle flipping transformation
  • Add select all to editor
  • Volume now goes up to 750%
  • Use string filename sanitizer for difficulty json


[h2]Bug fixes[/h2]

  • Make script runner force an inspector sync
  • Fix song list stealing focus when clicking between items
  • Check for shift only if event is InputEventKey. in SongList
  • Make song jump work more more nicely
  • Revert back to normal note attributes when there are no multis (with automulti)
  • Give love to save as dialog
  • Fix editor zoom bug
  • Fix: Shrink UI width for the transformation tab. bug
  • Fix workshop uploading issues
  • Prevent the user from creating holds on slide chain pieces


Future


PH still has some development ahead, but I feel it's very close to getting out of early access, but I'd like to do that after the engine gets native vulkan support in godot 4.0.

I also work on some new games in my free time, that I will be revealing soon, but rest assured, this isn't taking much time (if any) away from PH's development.

I have to share my absolute massive hype for the Steam Deck, I think it's a great fit for PH and I plan to request a devkit as soon as they come out to ensure it works fine on the platform!

Cheers, and on to 0.12!

Project Heartbeat 0.10: New Song, Resource Packs, new PPD code with MP4 support

Project Heartbeat 0.10 is here! This update was slightly interrupted by me having surgery so it isn't as big as usual it is also mostly a housekeeping and bug fixing update, but it does bring some new major features and new content!

NEW CONTENT


[h2]NEW SONG: Core Creation[/h2]

[previewyoutube][/previewyoutube]

Core Creation is a song by Renko and Sugano, this song is a cover of the popular "Bad Apple!!" song from the Touhou Project series, the chart was made by blizzin and the artwork was created by Mariale. I hope you will enjoy it!


NEW FEATURES


[h2]Resource Packs[/h2]





Project Heartbeat now has a Resource Pack system, with a brand new editor to boot, you can replace graphics from the game with custom ones, change properties and even upload them to the workshop!

The graphics that can be changed and tuned will be expanded upon in the future.

The options menu now has a Resource Pack section, from here you can select what resource pack you want, you can also override the currently selected resource pack's notes with the notes from another pack in case you are used to them but want to enjoy the rest of the selected resource pack!

[h2]Extended PPD Loader[/h2]



By popular request, I've added a way to import your whole PPD installation's song folder, the only difficulty is that you have to provide the .dll/.so files that are able to load h264 files like the ones PPD uses, the new importer maintains your PPD folder structure and can play MP4 files, AVI files and a long et cetera.

If you are interested in this feature, please hit us up in the discord, we'll gladly help you.

[h2]DSC Loader improvements[/h2]



Initially I was considering removing the DSC Loader altogether, but I was convinced not to do so, this is why I've expanded upon what types of files it can load, I've also given them their own category.

The DSC loader can now load Project DIVA Dreamy Theater 2nd/DIVA F/DIVA F2nd DSCs, this was motivated by the closure of the PlayStation Network on the VITA and PlayStation 3 to be able to preserve those edits in PH, although the closure seems to have been aborted now the code was already done so ¯\_(ツ)_/¯

The way DIVA OGGs are played has also been improved, the voice and instrumental will now sync better and the loading times will be improved.

You can also load the full song list from a copy of DT2nd, fancy.

[h2]Changes to how some notes are handled[/h2]

Previously, multi notes with two notes of the same type didn't work, this has been fixed, hitting other notes during sliders has also been fixed, this means that some very old charts and some PPD specials work again.

[h2]Editor changes[/h2]

More usability changes have been made to the editor:

[h3]Community charting guide[/h3]

Snail has kindly provided a new charting guide, which you can read here, this guide is also included in the editor, and complements the editor manual.

[h3]Keyboard Lyrics Workflow[/h3]

A new way of working with lyrics has been added, you can now use the following hotkeys:

Control+J: Create phrase start
Control+K: Create lyric
Control+L: Create phrase end

[h3]Editor action notification system[/h3]

The editor will now display some actions as floating text when you enter them, for example pasting, saving, etc.

[h2]Video playback changes[/h2]

The way videos are played back has been radically changed, they should now be much smoother to use, for example when rolling back from a pause the video frame we are seeking to is fetched in the background and not when the rollback is done, which prevents minor stuttering when rolling back, this also makes editor video playback much more accurate.

[h2]Results screen graph[/h2]



There's a new tab in the results screen that lets you see a graph, this graph will help you see where you made a mistake and how close you were to your targets!

[h2]VRAM usage optimizations[/h2]

I discovered some ways to reduce VRAM usage greatly, this is also in part thanks to the new resource pack system.

[h2]Main Menu viewport scaling[/h2]

A new optimization has changed the way the main menu is drawn, this makes it vary some internal resolutions depending on the resolution the game is running at, which should increase performance when using resolutions other than 1080p.

[h2]Color channel swapping filters[/h2]



The ability to swap some of the game's color channels has been added, this has the potential to aid some people with some forms of colorblindness, it's an imperfect solution but it was simple to add and it might be useful to someone.

Other changes
  • Fix scroll list hold to scroll on drifty PS4 controllers.
  • Optimize VRAM usage
  • Add the ability to change sound volume per sound effect
  • Add song count indicator to song list
  • Show difficulty in workshop browser using pre-uploaded metadata (doesn't work for some old charts).
  • Change how note hit effects are drawn to make them faster
  • Entering a property in the inspector will now release focus from the field you are editing.
  • Place the multi note laser behind all graphics
  • Change visualizer algorithm to a smoother one
  • Make menus use the SFX audio bus


Bug Fixes

  • Fix hitting two notes of the same type in a multi
  • Fix hitting notes during slide chains
  • Fix epilepsy warning placement
  • Fix editor note selection with clock arms disabled
  • Make YTDL force IPV4 because microsoft are completely braindead
  • Fix sustain Z order
  • Rework wav loading to prevent crackling noises
  • Make hardware clock option selectable
  • Multiple scroll list bugfixes
  • Fix leaderboard scrolling being disabled sometimes
  • Fix button overlapping in the workshop tabbing system
  • Fix input overlapping issues in song list
  • Fix newlistitem error
  • Prevent subsequent playback issues when finishing a video in the editor
  • Fix issues with controls rebinding

0.9 hotfixes (Updated March 19, 2021)

This article lists the hotfix changes done after the release of 0.9

0.9.8
  • Fix epilepsy warning placement


0.9.7
  • Make YTDL use IPv4 because windows likes to slow downloads down to a crawl if using IPv6 ¯\\_(ツ)_/¯


01/04/2021 (0.9.6)
  • Update ytdl


25/03/2021 (0.9.5)
  • Change custom sound loading code to properly load audio chunks and prevent clicking noises.


19/03/2021 (0.9.4)
  • Sands of time lyrics correction
  • Don't show hotfixes in main menu news list
  • Fix running the game with DSCLoader
  • Prevent clicking sound by ignoring anything after the data chunk when loadi…


12/03/2021 (0.9.3)
  • Update ytdl
  • Fix laggy I/O print statements when hitting slide chains


03/03/2021 (0.9.2)
  • Fix holding to scroll in the song list


03/03/2021 (0.9.1)
  • Fix gigantic VRAM leak

Hotfix notes for 03/03/2021 (0.9.2)

- Fix holding to scroll in the song list