Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,42 @@ is easiest to understand by reading the commit.
Extreme (Indigo2 only). Picking a GR2 board resets heads, resolution and
`[impact]` to values `validate()` accepts; the Newport heads control is
hidden for GR2.
- **IP28 / R10000 and IMPACT graphics wired into the GUI.** A new `ip28`
crate feature (`cargo build -p iris-gui --features ip28`, passes through to
`iris/ip28`) puts the Indigo2 IMPACT (IP28) machine profile and R10000 CPU
in the Machine model / Processor dropdowns, gates the 256 MB RAM bank size
(the IP28 MC's own granule) with a hint everywhere banks are picked, and
reports build status on the Debug tab. The New Machine dialog nudges
Processor to R10000 and turns off "use embedded PROM" when IP28 is picked
(there is no embedded IP28 PROM — only IP22/IP24 — so it needs a real
dumped image), and pre-sets IMPACT graphics so a fresh machine has a
display.
- **The graphics board picker above now also covers IMPACT** (Solid / High /
Maximum, Indigo2 only — either IP22 or IP28; no feature needed, since the
`[impact]` config section and the `mgras` board model it drives already
existed). It's the same dropdown, now unifying `[graphics].board` and
`[impact]` since they claim the same GIO gfx slot: picking a non-Newport
choice resets heads, resolution, and the other of the two config sections
to values `validate()` accepts, and the Newport heads/resolution controls
are hidden whenever either is active. Moving the machine profile off
Indigo2 falls the picker back to Newport instead of leaving a config
`validate()` would reject at Start.
- **CP0 Count clock (Processor section, General tab):** a `[clock] fixed_mhz`
control (was CLI/TOML only) with an "Auto" reset to the profile's default
(33 MHz, or 97.5 MHz on IP28).
- **Kernel Hz next to MIPS in the status footer** (`Machine::fasttick_count`,
new in core): the guest's own clock-tick rate — CP0 Compare matches, or the
IOC's 8254 timer interrupts when IRIX uses those instead — distinct from
the MIPS readout's host emulation throughput. The CLI's baked status bar
has shown this since `837b048`; iris-gui had no equivalent readout at all.
- **Host services / host OpenGL build status on the Debug tab.** New passthrough
`hostcall`/`hostgl` crate features (`iris/hostcall`, `iris/hostgl` — see
`c8dc330`, `1a93808`): private syscalls 3000-3009 let an IRIX program built
against the replacement libGL (iris-guest-tools) ask the host for something
the emulated machine doesn't have, with host OpenGL the first service. There
is no per-machine config for either — a guest either gets the trap or
doesn't — so the GUI's only job is reporting what's built in (and, for
`hostgl`, that only macOS/CGL has a backend so far).
- Scaling and resize fixes (`e93c5bb`): the VM screen scale is now the maximum
draw scale, so a larger window centres the picture instead of stretching it;
a snap-to-size request made while fullscreen is applied when fullscreen ends.
Expand Down
5 changes: 4 additions & 1 deletion iris-gui-README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ emulation will be noticeably slow.
| `pcap` | PCAP bridged networking; the Networking tab lists host interfaces. Needs libpcap / a WinPcap-compatible SDK |
| `daynaport` | DaynaPort SCSI/Link targets on the Disks tab (without it the option is shown with a rebuild hint) |
| `ultra64` | N64 development board toggle and help window |
| `ip28` | Indigo2 IMPACT (IP28) machine profile and R10000 CPU in the Machine model / Processor dropdowns. Bring-up status; implies `ppmem`. The IMPACT/MGRAS graphics board itself needs no feature — it's selectable in the Graphics board dropdown for any Indigo2 profile |
| `hostcall` | Host services for IRIX programs over private syscalls 3000-3009. No per-machine setting — the Debug tab just reports it's built in |
| `hostgl` | Host OpenGL for IRIX programs (implies `hostcall`); IRIX's replacement libGL replays its GL calls on the host GPU. macOS (CGL) only for now — builds elsewhere but registers no backend |
| `premiere` | `iris/lightning` + `iris/idle-pause` for maximum in-process speed |
| `bundled` | Distributed build: hides the iris.toml import/export items. Set by the Release workflow |
| `appstore` | Mac App Store build: implies `bundled`, hides the CI tab, enables security-scoped bookmarks and folder grants |
Expand Down Expand Up @@ -141,7 +144,7 @@ IRIX with a media-change Unit Attention, no restart needed.

| Tab | What's there |
| --- | --- |
| **General** | Platform (Indy / Indigo2), CPU, Newport heads, display resolution, PROM, NVRAM, ttyd1 serial log |
| **General** | Platform (Indy / Indigo2 / Indigo2 IMPACT with `ip28`), CPU (R4400 / R5000 / R10000 with `ip28`), graphics board (Newport, GR2 XZ/Extreme, or IMPACT Solid/High/Max — one dropdown covers both `[graphics]` and `[impact]`, since they share the GIO gfx slot), Newport heads, display resolution, PROM, NVRAM, ttyd1 serial log |
| **Disks** | SCSI devices: image paths, CD-ROM discs, COW overlay, scratch volume, DaynaPort, controller (Indigo2) |
| **Networking** | NAT subnet (applied live, with conflict checks against host interfaces), port forwards (added/removed live), NFS share, PCAP interface, **Check networking** diagnostics |
| **Memory** | RAM banks and the resulting total |
Expand Down
18 changes: 18 additions & 0 deletions iris-gui/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,24 @@ premiere = ["iris/lightning", "iris/idle-pause"]
# `ultra64` field on iris's Config only exists with the core feature on).
# Build with: cargo build -p iris-gui --features ultra64
ultra64 = ["iris/ultra64"]
# The Indigo2 IMPACT (IP28) machine profile and its R10000 CPU (bring-up
# status — see the `8579614` commit and `ip28.toml.example`). Implies ppmem.
# Off by default: it's a much bigger memory-model change than the other
# passthrough features. Gates the "SGI Indigo2 IMPACT (IP28)" machine profile
# and "MIPS R10000" CPU dropdown entries; the IMPACT/MGRAS graphics board
# itself (Indigo2 profiles, either IP22 or IP28) needs no feature and is
# always selectable. Build with: cargo build -p iris-gui --features ip28
ip28 = ["iris/ip28"]
# Host services for IRIX programs over private syscalls 3000-3009
# (`iris-hostcall`) — no per-machine config, a guest either gets the trap or
# doesn't. Build with: cargo build -p iris-gui --features hostcall
hostcall = ["iris/hostcall"]
# Host OpenGL for IRIX programs (`iris-hostgl`), replaying the guest's GL
# command stream on the host GPU; implies hostcall. Only macOS has a backend
# (CGL) today — elsewhere this builds but registers nothing, and the guest's
# replacement libGL (github.com/atomchild411/iris-guest-tools) reports host
# GL as unavailable. Build with: cargo build -p iris-gui --features hostgl
hostgl = ["hostcall", "iris/hostgl"]

[dependencies]
# Group A (additive) features are always on for iris-gui so the user can enable
Expand Down
Loading
Loading