EmuCR Feeds
Email Us

Pom2 v0.9.0 is released. Pom2 is an Apple ][ , ][+ , //e , //c , //c+ emulator.

🌟 Why POM2?:
🎞️ Beam-raced to the scanline. Soft-switch flips mid-frame land on the exact scanline the CPU touched them — split-screen demos, hi-res/text mode swaps and AN3 DHGR toggles render correctly. The composite NTSC path beam-races too, so artifact colour follows the same event log the RGBA path does.
🧊 Tilt the screen into 3D. A MicroM8-style voxel view lifts the Apple II framebuffer off the glass into an orbiting 3D scene — pixels become extruded voxels you can fly around with a real camera.
⏪ Rewind time. A snapshot ring buffer records the machine as it runs; scrub backwards through your last seconds of execution and resume from any point. Same serializer feeds the AI-control HTTP /snapshot endpoints, so they can never drift.
📺 CRT you can dial in. OpenEmulator-style composite NTSC shader and AppleWin's CPU IIR-LUT NTSC, plus mono phosphor with an adjustable phosphor curve (luminance γ) and persistence (temporal glow), barrel distortion, hue/BCS — the full Display → CRT Settings panel.
💾 Disks that sound right. Cycle-stamped mechanical floppy samples: the Disk II head step and the Sony 3.5" drive whir, timed off the CPU clock — disk-turbo collapses wall-clock gaps but the nibble stream stays cycle-correct via an event-driven LSS.
🌐 Online, from 1984. The Uthernet II's W5100 is a hardware TCP/IP stack, so POM2 runs it straight on host sockets — point a period IRC, telnet or FTP client at the real internet with no extra dependency and no privileges, on Linux, macOS and Windows. The Uthernet I (CS8900A) is there too for IP65 / Contiki, bridged by optional libslirp (Linux/macOS).
🎵 A whole sound-card era. Speaker, cassette, Mockingboard A/C, Mockingboard C Sound II with SSI263 speech, the Applied Engineering Phasor (2×VIA / 4×AY), and the Cricket / Echo SSI263 line.
🔬 MAME is the source of truth. Every hardware port cites the MAME file + line range in a comment and is pinned with a smoke test under tests/. CPU → audio/UI events carry a CPU-cycle stamp, never wall-clock.
🌐 Runs in your browser. The full emulator builds to WebAssembly — play it now, no install.

Pom2 Changelog:
The release where the peripherals stop being contracts and become silicon:
the Le Chat Mauve family at the dot, the SmartPort at the wire, and a card
with its own 65C02 on it.
125 commits since v0.8.5, and unlike that one this is a feature release — new
emulated hardware, a new way to consume POM2, and a browser build that
remembers. Every item below is pinned by a test.
Highlights
Le Chat Mauve, at the silicon. One catalog key, four real cards chosen in
Slot Configuration: the Féline, the Adaptateur //c, the Eve (with its
$C0B0-$C0BF switches and CPREG auto-write) and the Video-7. The HGR and
DHGR decodes are dot-exact — verified against Purplesoft's own & PLOT,
which corrected the manual four times over — and the Eve's colour decoder
was read out of its published PLA fuse map. The mode latch beam-races, so
mid-line switches land in the right column. French Touch demos (Extasie,
Arlequin, the DIX anthology) are the judges. → docs/chatmauve_plan.md
The SmartPort, spoken at the byte level of the wire. The Liron card now
runs its real EPROM over a real IWM, and an HLE UniDisk 3.5 answers INIT /
STATUS / READ / WRITE on the bus itself. That one bus gave three machines
their disks back: the Liron boots its 3.5", the 32 KB //c serves slot 5 from
its own firmware through the rear port, and the //c+ probes the same
connector at boot — while its on-board bay boots through the MIG gate-array
and the IWM, which needed the IWM state machine moved onto the controller's
own 7.16 MHz clock (a Sony cell is 2.02 CPU cycles — too coarse to place a
window edge in).
The Apple II Workstation Card. A LocalTalk coprocessor with its own
65C02, 28 KB of RAM and a Zilog Z8530 SCC. It runs Apple's 341-0358-A
firmware through power-on self-test and configures for LocalTalk at
230400 bit/s. POM2 still has exactly one 6502 core: the card gives it a
private Memory in foreign-bus mode rather than branching the CPU, and the
bus path measured unchanged.
Apple //e Unenhanced PAL — the French Touch machine. 312 lines, 50 Hz,
NMOS. The OLDSKOOL corpus needs it: LSR abs,X is 7 cycles on NMOS and 6 on
a 65C02, so rasters drift on the wrong CPU. MAME's apple2eefr /
apple2cfr are the oracles, not the US models.
Three new cards, and a browser that remembers. TransWarp (an accelerator
modelled as a clock, not a CPU), 4play (four digital joysticks), Echo+. The
WASM build persists to IDBFS, so settings and media survive a reload.
POM2 as a dependency. pom2_core installs as an SDK component with a
package config, pinned by a test that builds a separate consumer project
against it — the one test that exercises POM2 from the outside.
CRT glass, corrected and extended. The shadow mask was tied to the source
framebuffer, so the 280-wide modes got a mask twice as coarse as the 560-wide
ones and switching video mode changed the tube; the pitch is a property of
the glass now. New: an analog RGB bandwidth stage — the connection half of
OpenEmulator, which POM2 had never modelled. It is what finally separates the
Chat Mauve's two connectors, the TTL header from the Péritel cable.
Also in this release
OLDSKOOL crashed and no longer does. A free-running Mockingboard T1 IRQ
handler read the counter one too high, because the lazy VIA sync excluded the
in-flight data cycle of the reading instruction. One count wrapped the phase
$00 → $FF and the stack ran away.
The 6522 T1 read-back bias was one cycle low; DIX rasters crawled and now
hold still.
Extasie's mouse works: it self-modifies a JSR $C4xx with no scan, so the
mouse is back in slot 4 by default and the Mockingboard moved to 2.
The printers grew: five more heads (the C. Itoh cousins, the Epson
generations) and a LaserWriter that speaks Diablo 630 directly and PostScript
by delegation to a host Ghostscript.
A ProDOS host folder can be served as a volume, and TNFS URLs are mountable
media.
MainWindow.cpp went from 8 316 lines to 1 680: nine coordinators now own
what it used to hold. Source layering is enforced at configure time.
A block device with write-back off now says so in the media bay, standing —
it deliberately reports itself writable to ProDOS, so the guest's save
succeeded and was dropped at quit with nothing on screen saying it.
Notes
No package is signed: macOS is ad-hoc signed (right-click → Open on first
launch), Windows is unsigned (SmartScreen → More info → Run anyway).
Packages carry the ROM set and the UI assets, never a disk library. Bring
your own images.
The Pi packages are verified structurally and smoke-launched in CI on an
ARM64 runner; CI cannot prove they render correctly on real Pi hardware.

Download: Pom2 v0.9.0
Source: Here



Random Related Topic Refresh Related Topic

Random Related Topic Loading...

0 Comments

Post a Comment

Can't post a comment? Try This!