Compare commits

...
Author SHA1 Message Date
TaikoZhongandClaude Opus 5.5 750fb87759 result: skipping the reveal lands the rank plate instead of dropping it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 10:11:12 +08:00
TaikoZhongandClaude Opus 5.5 ff708041d5 Update checksums.sha256 for #58
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 10:08:14 +08:00
GanYiZhong 3f6124a09c Merge pull request 'gauge: fix the fading cell gap and clear mark on this skin's grid' (#58) from GanYiZhong/YataiDONNijiiro:fix/gauge-render into main 2026-10-14 04:07:55 +02:00
TaikoZhongandClaude Opus 5.5 0fed3df419 gauge: this skin's render() for its 50-cell fade-in grid
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 10:07:41 +08:00
TaikoZhongandClaude Opus 5.5 99aa932bb8 Update checksums.sha256 for #57
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 09:55:25 +08:00
GanYiZhong e6afffc67b Merge pull request 'skin_config: cell-aligned gauge clear mark' (#57) from GanYiZhong/YataiDONNijiiro:fix/gauge-clear-mark-offset into main 2026-10-14 03:55:06 +02:00
TaikoZhongandClaude Opus 5.5 4a0fabafd6 skin_config: cell-aligned gauge clear mark (gauge_clear_mark_offset = 1)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 09:54:48 +08:00
TaikoZhongandClaude Opus 5.5 0472b64028 checksums.sha256: drop the stray .omc entries
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 09:02:33 +08:00
TaikoZhongandClaude Opus 5.5 e9aca03c38 Remove a stray tool state file committed in #56
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 09:02:21 +08:00
TaikoZhongandClaude Opus 5.5 b1adfe0b1a Update checksums.sha256 for #56
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 09:01:14 +08:00
GanYiZhong 59c743ab90 Merge pull request 'background: pack the cabinet movies' per-frame channels into strings' (#56) from GanYiZhong/YataiDONNijiiro:perf/packed-anim-channels into main 2026-10-14 03:00:53 +02:00
TaikoZhongandClaude Opus 5.5 2f7291d4ec background: pack the cabinet movies' per-frame channels into strings
The collab backdrops (and the default donbg band) replay exported movies
whose per-frame channels were Lua tables of numbers: 38 MB that Lua
compiled on every song start (0.7 s for the TOHO pack; game screen init
1.5-1.6 s -> 0.9-1.0 s in-game), plus ~19 MB of Lua memory per pack.

Each per-frame array is now {base, step, width, "digits"}: value = base +
step * n, n being the frame's width chars in base 92 (printable ASCII
without '"' and '\'). One string constant compiles in a fraction of the
time; bg_objects/packed_channel.lua decodes the frame being drawn.
Quantization: 0.05 px, 0.005 deg, 5e-5 scale, 1/1024 alpha and tint;
every value of all 77 files checked against the original within half a
step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 09:00:18 +08:00
Yonokid 09d5ae9278 fix modifier bug 2026-10-13 13:23:01 -04:00
TaikoZhongandClaude Opus 5.5 bae23bb687 Update checksums.sha256 for #52
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:00:47 +08:00
GanYiZhong 3cc65818fa Merge pull request 'result: play the cover back for a retry' (#52) from GanYiZhong/YataiDONNijiiro:fix/result-retry-reverse into main 2026-10-13 15:00:19 +02:00
TaikoZhongandClaude Opus 5.5 9eb8894979 result: play the cover back for a retry
The engine's retry flow calls ResultFadeIn:start_reverse; this override
of the parent's result_fade_in.lua had no such method, so the result
background never closed back over the screen before the retry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:59:53 +08:00
Yonokid bc3c66d9b2 add dan lua 2026-10-13 08:41:52 -04:00
GanYiZhong 78d7982c0e Merge pull request 'Update checksums.sha256' (#51) from GanYiZhong/YataiDONNijiiro:fix/checksums into main 2026-10-13 05:48:32 +02:00
TaikoZhongandClaude Opus 5.5 41dcd4b593 Update checksums.sha256
The manifest predates #47/#48/#50: the skin updater skipped every
backdrop added in #48 (1884 files), kept fetching 17 changed files on
each launch, and still listed the deleted gumi.lua. Hashes are the
blob bytes (LFS: pointer oid), same as the existing entries.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 11:47:43 +08:00
GanYiZhong b0309d4fd3 Merge pull request 'entry: land the Don on the parent's new bounce' (#50) from GanYiZhong/YataiDONNijiiro:fix/entry-bounce-end into main 2026-10-13 05:30:14 +02:00
GanYiZhong 3b312e61f4 Merge pull request 'entry: drop the pinned entry animations' (#49) from GanYiZhong/YataiDONNijiiro:revert/entry-animation into main 2026-10-13 05:30:08 +02:00
TaikoZhongandClaude Opus 5.5 40e135098c entry: land the Don on the parent's new bounce
The parent merged its two entry bounce moves into one (animation.json
entry 2, -340). BOUNCE_END still assumed the old -295/+50 pair, so with
the inherited file Don floated ~140px above the nameplate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 11:29:49 +08:00
TaikoZhongandClaude Opus 5.5 85fb872d9c entry: drop the pinned entry animations
The engine now plays the 3D DON_ENTRY_IN/LOOP animations on the entry
screen, and the parent's animation.json is tuned for them. The pinned
copy puts Don ~190px too low, half behind the nameplate; with the
inherited file he stands on it again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 11:05:19 +08:00
GanYiZhong 5012df77e1 Merge pull request 'background: cabinet backdrops for the collab presets' (#48) from GanYiZhong/YataiDONNijiiro:feat/arcade-collab-packs into main
Reviewed-on: Yonokid/YataiDONNijiiro#48
2026-10-13 04:52:26 +02:00
GanYiZhong a5441ac310 Merge pull request 'collabs: use the parent's collab scripts with its reworked art' (#47) from GanYiZhong/YataiDONNijiiro:fix/collab-green-art into main
Reviewed-on: Yonokid/YataiDONNijiiro#47
2026-10-13 04:52:17 +02:00
GanYiZhong 4f0fb58891 Merge pull request 'entry: pin the entry animations the Don placement is built on' (#46) from GanYiZhong/YataiDONNijiiro:fix/entry-animation into main
Reviewed-on: Yonokid/YataiDONNijiiro#46
2026-10-13 04:52:08 +02:00
TaikoZhongandClaude Opus 5.5 8d13c3a393 background: fix the collab bands and backdrops found by a frame compare
Every exported part was compared frame by frame with the cabinet renderer,
which showed:

- donbg bands: the state groups were taken as the first three root sprites
  (normal / fever / miss) and root-level shapes were dropped, so mario's
  and lovelive's bands lost their sky plate and layers (black band with
  smeared notes).  Groups now come from the root's own `normal` / `fever`
  label frames: shown on the normal frame -> normal; fever only -> fever;
  shown in both and above every fever layer -> top (drawn over the
  crossfade).  Root shapes are included.
- backdrops whose root timeline moves its children (mario's scrolling
  stage) are dumped through the root, so the scroll is kept.
- a normal backdrop's switched-off layer (alpha 0 on the root, e.g. imas's
  spotlight cones) stays hidden.
- loops longer than the old 2700-frame dump (mario 3840, i7 natsu 1604) are
  dumped twice over and kept exact instead of being cut at 1920 frames.
- colour-multiply placements (tinted spotlights, bands) carry cr/cg/cb and
  are drawn with `color`; the donbg miss-streak darkening now multiplies an
  existing colour instead of replacing it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 17:05:39 +08:00
TaikoZhongandClaude Opus 5.5 f239bc156c background: cabinet backdrops for the collab presets
Collab songs (#SCENEPRESET) now get their own cabinet backdrop, replayed by
the same objects as the default backdrop instead of the parent's collab art:

  miku, toho, gumi, ia, lovelive, i7 (id7 / tri / rev / natsu), imas
  (765 / cg / ml / sidem), yo-kai (base / matsuri / hatsukoi / tokoroten /
  yougota), mario, a3

Each preset is a pack in bg_data/collab_packs.lua naming its parts: donbg
band (1P and 2P), normal and clear backdrops, troupe, stand under the
troupe, drumroll effect and soul-max crowd.  Shared parts (the i7, imas
and yo-kai families) are shared the way the cabinet shares them.  A pack is
used only when every part it names is present, otherwise the preset falls
back to the collab script as before.  Packs also apply in 2P (donbg bands).

The objects take a part name where they took a random index:
DonBG.create_named, BGNormal.create_named, BGFever.create_named,
ArcadeDancerGroup.new("<name>"), Fever.Anim.new("<name>").  New:
renda_clip.lua (each hit replays one of the effect's parts along its own
path), and a beat-synced BGAnim for the whole-troupe dancer movies (i7,
a3).  Collab troupes stand in fixed positions (lead in the centre) and
grow from 1 to the full troupe with the gauge.

Exported placements may now mirror: bg_anim, donbg and dancer data carry a
mirror flag (drawn with mirror = horizontal and the origin moved to the
other side of the png).  Existing data has no flag and draws as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 15:55:05 +08:00
TaikoZhongandClaude Opus 5.5 a48fcd3498 collabs: use the parent's collab scripts with its reworked art
PyTaikoGreen reworked the art of its collab backdrops (folders renamed,
texture.json positions changed, new layers) together with its collab
scripts. Nijiiro takes the art from the parent but kept its own older
copies of eight collab scripts, so with the new art those collabs lost
their dancers, footer or fever layers, filled the log with draw errors
(funassyi, gumi) or crashed (a3, imas_sidem, oshiri).

a3, animal, buttoburst, funassyi, imas (also imas_cg/imas_ml),
imas_sidem and oshiri now load the parent's script and keep what Nijiiro
did differently (bg_objects/collab_parent.lua): the collab dancer-count
model and no drumroll burst on balloons. The parent's script is loaded
from its own file, so it uses the parent's background objects that its
art is laid out for. gumi only adapted the parent's script to this
skin's donbg/6, so the parent's is used as it is.

The dancer-count model now also drives the parent's troupes: set_count
where the troupe has it (a3), and leave_dancer to shrink.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 14:18:37 +08:00
TaikoZhongandClaude Opus 5.5 dc4fc59741 entry: pin the entry animations the Don placement is built on
Nijiiro had no Graphics/entry/animation.json of its own and took the
parent's. The parent changed its entry animations (drum bounce -245 ->
-340, cloud puff 0.75-1.0 -> 0.1-1.2, cloud loop, timings, mode-select
fade 160 -> 443 ms), but player.lua lands Don on DON_CY with a fixed
BOUNCE_END = -367.5 (the old -245 x 1.5), so after picking a side Don
now stopped ~140 px too high and the cloud was sized differently.

This adds the parent's previous entry animation.json unchanged, so
Nijiiro's entry looks as it did before the parent's change. Nijiiro's
own entry scripts and the engine's entry ids (9-11) are all in it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 13:48:00 +08:00
TaikoZhongandClaude Opus 5.5 d87aef0177 Update checksums.sha256
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 10:34:18 +08:00
GanYiZhong 605a651a25 Merge pull request 'dan select: add the dan transition animations (19-23)' (#45) from GanYiZhong/YataiDONNijiiro:dan-transition-anims into main 2026-10-12 04:31:32 +02:00
1928 changed files with 38130 additions and 3927 deletions

No files matched your search

Binary file not shown.
@@ -0,0 +1,6 @@
{
"s1": {
"x": 0,
"y": 0
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,14 @@
{
"s1": {
"x": 0,
"y": 0
},
"s3": {
"x": 0,
"y": 0
},
"s6": {
"x": 0,
"y": 0
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,94 @@
{
"s1": {
"x": 0,
"y": 0
},
"s3": {
"x": 0,
"y": 0
},
"s5": {
"x": 0,
"y": 0
},
"s7": {
"x": 0,
"y": 0
},
"s9": {
"x": 0,
"y": 0
},
"s11": {
"x": 0,
"y": 0
},
"s13": {
"x": 0,
"y": 0
},
"s15": {
"x": 0,
"y": 0
},
"s18": {
"x": 0,
"y": 0
},
"s20": {
"x": 0,
"y": 0
},
"s22": {
"x": 0,
"y": 0
},
"s24": {
"x": 0,
"y": 0
},
"s26": {
"x": 0,
"y": 0
},
"s28": {
"x": 0,
"y": 0
},
"s30": {
"x": 0,
"y": 0
},
"s33": {
"x": 0,
"y": 0
},
"s35": {
"x": 0,
"y": 0
},
"s37": {
"x": 0,
"y": 0
},
"s39": {
"x": 0,
"y": 0
},
"s41": {
"x": 0,
"y": 0
},
"s43": {
"x": 0,
"y": 0
},
"s46": {
"x": 0,
"y": 0
},
"s49": {
"x": 0,
"y": 0
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,82 @@
{
"s1": {
"x": 0,
"y": 0
},
"s3": {
"x": 0,
"y": 0
},
"s5": {
"x": 0,
"y": 0
},
"s7": {
"x": 0,
"y": 0
},
"s9": {
"x": 0,
"y": 0
},
"s11": {
"x": 0,
"y": 0
},
"s13": {
"x": 0,
"y": 0
},
"s15": {
"x": 0,
"y": 0
},
"s17": {
"x": 0,
"y": 0
},
"s19": {
"x": 0,
"y": 0
},
"s21": {
"x": 0,
"y": 0
},
"s23": {
"x": 0,
"y": 0
},
"s25": {
"x": 0,
"y": 0
},
"s27": {
"x": 0,
"y": 0
},
"s29": {
"x": 0,
"y": 0
},
"s31": {
"x": 0,
"y": 0
},
"s37": {
"x": 0,
"y": 0
},
"s41": {
"x": 0,
"y": 0
},
"s43": {
"x": 0,
"y": 0
},
"s45": {
"x": 0,
"y": 0
}
}
Binary file not shown.
@@ -0,0 +1,6 @@
{
"s1": {
"x": 0,
"y": 0
}
}
Binary file not shown.
@@ -0,0 +1,6 @@
{
"s1": {
"x": 0,
"y": 0
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,50 @@
{
"s1": {
"x": 0,
"y": 0
},
"s3": {
"x": 0,
"y": 0
},
"s6": {
"x": 0,
"y": 0
},
"s8": {
"x": 0,
"y": 0
},
"s10": {
"x": 0,
"y": 0
},
"s12": {
"x": 0,
"y": 0
},
"s14": {
"x": 0,
"y": 0
},
"s16": {
"x": 0,
"y": 0
},
"s19": {
"x": 0,
"y": 0
},
"s22": {
"x": 0,
"y": 0
},
"s25": {
"x": 0,
"y": 0
},
"s28": {
"x": 0,
"y": 0
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,18 @@
{
"s1": {
"x": 0,
"y": 0
},
"s3": {
"x": 0,
"y": 0
},
"s5": {
"x": 0,
"y": 0
},
"s7": {
"x": 0,
"y": 0
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,26 @@
{
"s1": {
"x": 0,
"y": 0
},
"s4": {
"x": 0,
"y": 0
},
"s8": {
"x": 0,
"y": 0
},
"s11": {
"x": 0,
"y": 0
},
"s16": {
"x": 0,
"y": 0
},
"s18": {
"x": 0,
"y": 0
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loaded 100 of 1928 files, more files were not shown because too many files have changed in this diff. Show more