Skip to content

Commit 695a6e0

Browse files
committed
Release EID pause tools in v0.6.0
1 parent 38045de commit 695a6e0

8 files changed

Lines changed: 48 additions & 14 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Changelog
22

3-
## Unreleased
3+
## 0.6.0 - 2026-08-20
44

55
- Added a top-left pause-only inventory browser for collectibles, active items,
66
trinkets, held cards and runes, identified pills, and all transformation
@@ -10,6 +10,8 @@
1010
15-entry PlayerForm counter array, preserving progress across active-item
1111
replacement and save reloads.
1212
- Added native Super Bum familiar detection for correct post-merge progress.
13+
- Made the complete EID settings panel available while a run is paused and
14+
kept it hidden during active gameplay.
1315

1416
## 0.5.0 - 2026-08-20
1517

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ The overlay tracks the player's position and displays the nearest eligible objec
5454

5555
### In-game settings
5656

57-
The **EID ⚙** button appears in the bottom-right corner while Isaac is in a menu and hides automatically during gameplay. Its settings include:
57+
The **EID ⚙** button appears in the bottom-right corner while Isaac is in a menu or a run is paused. It hides automatically during active gameplay. Its settings include:
5858

5959
- All 20 bundled languages
6060
- Horizontal and vertical position
@@ -67,7 +67,8 @@ The default overlay position is 140 px from the left and 50 px from the top.
6767

6868
### Pause inventory
6969

70-
While a run is paused, an **EID Items** button appears in the top-left corner.
70+
While a run is paused, an **EID Items** button appears in the top-left corner and
71+
the **EID ⚙** settings button becomes available in the bottom-right corner.
7172
It opens a scrollable browser containing the player's current collectibles,
7273
active item, trinkets, held cards and runes, identified pills, and progress for
7374
all transformations. Selecting an item closes the browser and renders its full

docs/NATIVE_LAYOUT.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,4 +104,5 @@ independent counter array; the overlay displays the highest valid per-player
104104
counter instead of incorrectly summing two players.
105105

106106
The pause browser reads PauseScreen state `1...3` as paused and `0` as live
107-
gameplay. An invalid read fails closed and leaves the button hidden.
107+
gameplay. The inventory and settings buttons are enabled only for a verified
108+
paused state; an invalid read fails closed and leaves both controls hidden.

docs/RELEASE_NOTES_v0.6.0.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Isaac External Item Descriptions iOS v0.6.0
2+
3+
This release adds a native pause inventory and fixes transformation progress
4+
across save reloads and active-item replacement.
5+
6+
## Highlights
7+
8+
- A top-left **EID Items** button now appears while a run is paused.
9+
- The pause browser lists current collectibles, active items, trinkets, held
10+
cards and runes, identified pills, and all 15 transformations.
11+
- Selecting an inventory entry displays its full localized EID description.
12+
- The complete **EID ⚙** settings panel is now available while paused and hides
13+
again when gameplay resumes.
14+
- The 14 standard transformations use Isaac's persisted native PlayerForm
15+
counters, preserving real progress after replacing an active item or
16+
reopening a save.
17+
- Super Bum completion is detected from the native merged familiar.
18+
- Pause, inventory, trinket-slot, pocket-slot, and transformation layouts were
19+
verified against iOS executable UUID
20+
`F4357753-A25F-30EE-BACF-63709F902895` and tested in the real game.
21+
22+
The release includes the standalone ARM64 dylib, rootless ElleKit package,
23+
LiveContainer framework, embedded package, complete 20-language description
24+
database, and SHA-256 checksums. No Isaac IPA or game data is distributed.

docs/TEST_MATRIX.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
| English/Russian pill import | Pass: 51 normal + 51 horse each |
1717
| All-language upstream import | Pass: 20 EID languages; English fallback fills untranslated Repentance entries |
1818
| Menu/game detector | Pass: native player-presence detector with 12-scan menu debounce |
19-
| EID settings | Pass: menu-only bottom-right button, native language picker, horizontal and vertical sliders, 140/50 px defaults, credits and dataset version |
19+
| EID settings | Pass: bottom-right button is available in menus and while paused, hidden during active gameplay; native language picker, layout controls, 140/50 px defaults, credits and dataset version |
2020
| Unknown-pill spoiler guard | Pass: native identified byte required |
2121
| Native pill color-to-effect mapping | Pass: ARM64 ItemPool layout verified |
2222
| Crane Game prize field | Pass: ARM64 setter/layout verified |
@@ -35,7 +35,7 @@
3535
| Native card/rune/pill artwork | Pass: subtype-aware card and rune frames plus original EID pill-atlas frames |
3636
| Transformation progress | Pass: live persisted PlayerForm counters survived a save reload and reported Conjoined `1/3` plus Bookworm `1/3`; Super Bum uses verified familiar type/variant state |
3737
| Pause detection | Pass: live PauseScreen state changed `0 -> 1 -> 0` on the supported device build |
38-
| Pause inventory | Pass: top-left button rendered 3 current items and all 15 transformations; item 312 selection opened its description; UI hid on resume |
38+
| Pause inventory | Pass: top-left button rendered 3 current items and all 15 transformations; item 312 selection opened its description; inventory and settings controls hide on resume |
3939
| Dice Room descriptions | Pass: live native face detection and localized effect description |
4040
| Sacrifice Room descriptions | Pass: native grid-spike detection and live next-payout counter |
4141
| Description removal transition | Pass: title, icon, and body now disappear together after collection |

livecontainer/Info.plist

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
<key>CFBundlePackageType</key>
1616
<string>FMWK</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>0.3.0</string>
18+
<string>0.6.0</string>
1919
<key>CFBundleVersion</key>
20-
<string>5</string>
20+
<string>6</string>
2121
<key>MinimumOSVersion</key>
2222
<string>15.0</string>
2323
</dict>

package/control

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Package: com.emp0ry.isaaceid
22
Name: Isaac External Item Descriptions
3-
Version: 0.5.0
3+
Version: 0.6.0
44
Architecture: iphoneos-arm64
55
Description: Native External Item Descriptions bridge for Isaac Repentance on iOS.
66
Maintainer: emp0ry

src/EIDOverlayController.m

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -468,12 +468,11 @@ - (void)tick:(NSTimer *)timer {
468468
- (void)updateMenuModeForGameplay:(BOOL)gameplayActive {
469469
if (gameplayActive) {
470470
self.consecutiveMenuScans = 0;
471-
self.settingsButton.hidden = YES;
472-
self.settingsCard.hidden = YES;
473471
if (!self.menuMode) return;
474472
self.menuMode = NO;
473+
self.settingsCard.hidden = YES;
475474
[self updateSettingsControls];
476-
EIDLog(@"game state: gameplay active; settings hidden");
475+
EIDLog(@"game state: gameplay active; settings available only while paused");
477476
return;
478477
}
479478
if (self.consecutiveMenuScans < 12) self.consecutiveMenuScans++;
@@ -489,9 +488,11 @@ - (void)updateMenuModeForGameplay:(BOOL)gameplayActive {
489488
- (void)updatePauseInventoryForPaused:(BOOL)paused {
490489
BOOL available = paused && self.probe.inventoryStateAvailable;
491490
self.inventoryButton.hidden = !available;
491+
self.settingsButton.hidden = !(self.menuMode || paused);
492492
if (!paused) {
493493
self.inventoryCard.hidden = YES;
494494
self.inventorySignature = nil;
495+
if (!self.menuMode) self.settingsCard.hidden = YES;
495496
if (self.pauseUIActive) {
496497
self.selectedInventoryItem = nil;
497498
if (!self.menuMode) [self renderPickups:self.lastPickups];
@@ -501,7 +502,7 @@ - (void)updatePauseInventoryForPaused:(BOOL)paused {
501502
[self rebuildInventoryContentsIfNeeded:NO];
502503
}
503504
if (paused && !self.pauseUIActive) {
504-
EIDLog(@"native pause detected; inventory button available");
505+
EIDLog(@"native pause detected; inventory and settings buttons available");
505506
}
506507
self.pauseUIActive = paused;
507508
}
@@ -519,9 +520,11 @@ - (void)updateSettingsControls {
519520
self.settingsVerticalPositionLabel.text = [NSString stringWithFormat:
520521
@"Vertical position: %.0f px", verticalPosition];
521522
NSString *appVersion = [NSBundle.mainBundle objectForInfoDictionaryKey:@"CFBundleShortVersionString"] ?: @"unknown";
523+
NSString *context = self.probe.paused ? @"Paused" :
524+
(self.probe.gameplayActive ? @"In game" : @"Menu");
522525
self.settingsVersionLabel.text = [NSString stringWithFormat:
523526
@"%@ · iOS %@ · dataset: %@ · not Repentance+",
524-
self.probe.gameplayActive ? @"In game" : @"Menu", appVersion,
527+
context, appVersion,
525528
self.store.descriptionDataSet];
526529
}
527530

@@ -733,10 +736,13 @@ - (void)toggleSettings:(UIButton *)sender {
733736
(void)sender;
734737
self.settingsCard.hidden = !self.settingsCard.hidden;
735738
if (!self.settingsCard.hidden) {
739+
self.inventoryCard.hidden = YES;
736740
[self updateSettingsControls];
737741
[self.rootView bringSubviewToFront:self.settingsCard];
738742
self.panel.alpha = 0;
739743
}
744+
EIDLog(@"settings panel %@ (%@)", self.settingsCard.hidden ? @"closed" : @"opened",
745+
self.probe.paused ? @"paused" : (self.menuMode ? @"menu" : @"gameplay"));
740746
}
741747

742748
- (void)closeSettings:(UIButton *)sender {

0 commit comments

Comments
 (0)