You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
3do: keyboard terminal line + 66x64 logo proportions.
Keyboard renderer gains a second row -- a terminal-style typed-input
line beneath the scancode summary. Starts with "> " prompt, displays
the typed buffer (max 35 chars to fit the screen width at 8 px/char),
shows a blinking underscore cursor at the insertion point, and pops
the last char on backspace (PS/2 Set 2 scancode 0x66).
Implementation:
- PS2_TO_ASCII[128] table maps Set 2 scancodes to printable ASCII
(lowercase + digits + common punctuation + space). Shift state
isn't tracked yet so everything is unshifted. Bit 0x08 in the
table is the special "do backspace" marker.
- apply_event_record diffs the incoming ked_KeyMatrix against a
per-process g_kb_prev_matrix snapshot on every keyboard event;
bits that went 0->1 are fresh keypresses and get piped through
kb_consume_press. Only the lower 128 bits (regular keys) are
consumed; the upper 128 (E0-prefixed extended keys -- arrows,
ctrl, etc.) are ignored for terminal use.
- Keyboard row height bumped to 28 px (two text lines). The blink
counter increments once per VBL so cursor toggle is ~1 Hz at
60 fps.
Note this only renders meaningfully on real hardware with the
upcoming USB23DO keyboard-mode firmware. Opera's libretro core
doesn't enumerate a keyboard pod on the PBUS chain, so the keyboard
row stays empty in the emu.
Logo cel proportions: source PNG is now natively 66x64 (a real 3DO
controller is slightly wider than tall, and the prior square 64x64
silhouette looked compressed). LOGO_W bumped to match, HDX stretch
hack removed, bouncing bounds use the native dimensions directly.
0 commit comments