Add native Durak, poker, blackjack, roulette, Buckshot and billiards scenes with animation assets and regression tests. Improve arrival, city, hall, profiles, shops, audio and exit handling; remove the portable C game core and refresh shipping executables.
3 KiB
Graphical Startup
The production MASM entry point opens one borderless fullscreen window on the monitor containing its initial window position. It preserves a centered windowed rectangle for F11 / Alt+Enter. No console or second game window is created by the graphical startup.
Startup always enters MODE_INTRO, plays the original Eblan Games animation, and waits for
Enter or Space. Escape also skips the ident. All held and pending input is cleared
before entering the existing casino hall. Russian roulette is entered only by
interacting with its table, never by a production startup/test define.
The original 100-frame sequence is preserved: 36 opening frames and a 64-frame color/glitch loop at 45 milliseconds per frame. Unicode box/block glyphs and ANSI colors are compiled offline to native font masks, a palette and cell frames. Rendering and animation are assembly code; Python only packs the offline assets. No terminal, Python process or second window is used. F2 on the ident selects the additional illustrated logo variant with scan reveal and a moving light band. The default is always the original animation. Intro memory is freed when entering the hall and on shutdown. Missing or invalid art uses a branded fallback instead of blocking gameplay. Rendering retains the original 4:3 aspect ratio rather than distorting the hall on widescreen displays.
Assets
- Source:
assets/sprites/intro/eblan-games-v1.png - Runtime:
assets/animations/intro/eblan-games.bin - Format:
EBG1, little-endian width/height/payload size, then top-down 640x480 BGRA. - Repack:
python tools/generators/pack_startup.py - Original animation:
assets/animations/casino_intro.ans(unchanged). - Compiled sequence:
assets/animations/intro/eblan-sequence.bin(about 300 KB). - Sequence repack:
python tools/generators/pack_intro_sequence.py.
The source was created with the built-in image generation tool. Prompt: a full-bleed 4:3 EBLAN GAMES studio ident, dimensional chrome/cyan arcade lettering, casino felt, brass roulette rim, ivory/crimson chips and ace cards; crisp retro PC cinematic art, no other text or UI. The original ANSI intro remains untouched.
Verification
After tests and tools/tests/build_graphics.ps1, run
tools/tests/publish_graphics.ps1. This publishes the same binary to the root and
bin, synchronizes the existing launcher's integrity hash, and rebuilds its
existing icon-equipped EXE. The development launcher in dist also resolves the
project root. The installer is a separate release artifact and is not repackaged
by this command.
powershell -File tools/tests/test_casino_actions.ps1 tests the actual hidden
native window geometry and fullscreen restoration, startup state, the original
sequence's opening/loop boundary, F2 variant selection, Enter/Space
transitions, input clearing, RNG stability, missing-asset fallback, and exports
startup frames from the actual MASM renderer. It also reruns the dice/roulette
and sound-routing regression checks. Test builds never write player progress.