Restores what the new ci/ folder lost compared to the old autobuild server:
- `ci/latest` symlink to the newest build
- bare `kolibri.img` at `<lang>/data/data/kolibri.img` - the path emulators (v86) hardcode
- `distr.tar.gz` (distribution kit)
- build tree unpacked into `ci/<version>/<lang>/data/` for per-program downloads
- `sha256sums.txt` and `build.log` per language
Reviewed-on: #671
Reviewed-by: Gleb Zaharov <risdeveau@lair.moe>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Burer <burer@kolibrios.org>
- Size (fit into 8192 bytes or 16 IMG sectors):
- Drop `ulist` in favor of static arrays
- Dropping `malloc`/`free`/`exit`; `sprintf`, `pow`, `strlen` and 64-bit division no longer pull in libc and libtcc1
- Dead code removed
- Rendering:
- libimg dropped. `png2h.py` turns the original PNG into a palette-indexed atlas; the blit writes a 32bpp buffer, sysfn 65 puts it on screen - the same call `img_draw` made. No runtime PNG decode, output pixel-identical. The buffer ends at the ground line: 18% fewer pixels per frame
- Bugs fixed:
- Every fourth pterodactyl was invisible and unhittable: `getRandomNumber` is inclusive, so `yPosArr[3]` read the next field (999) and the bird spawned off-screen
- Releasing the jump key never shortened the first jump: gated on a flag set only after the intro; Chrome gates on the loop being scheduled
- Flap rate `1000/6` truncated to 166, `minSpeed` 8.5 to 8 - birds came earlier than in Chrome
- Hardcoded caption height clipped the window on every non-default skin
- A maximum jump left the buffer and cut off the dino's head; the playfield is centered now
- Obstacles and clouds leaked: nodes were freed, their data never
- Localization:
- Caption localized to EN/RU/ES via `CONFIG_LANG`, fits every skin in the tree
Reviewed-on: #632
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Klavisha takes 11 sectors in IMG, and is included only in RU build.
I propose move it to ISO to free space on IMG and make it more consisntent.
Reviewed-on: #635
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Alexey <alex@b00bl1k.ru>
- add real `mkdir()` (`sys/mkdir.c`) that strips a trailing `/` rejected by the `_ksys_mkdir`
- add real `rmdir()` (`sys/rmdir.c`) wrapping `_ksys_rmdir`
- define `NAME_MAX` in `<limits.h>`
Reviewed-on: #545
Reviewed-by: Егор Ярин <y.yarin@inbox.ru>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
- set folder attribute (0x10) for get-info on / and on devices
- split root get-info (subfn 5) from read-folder (subfn 1)
- zero the full BDFE header so timestamps/size aren't leftover garbage
Reviewed-on: #544
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
- use framebuffer to prevent flickering
- unify all code to snake_case
- optimize data to fit into 5*512 bytes (thanks to @Leency)
Reviewed-on: #533
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
FASM launcher that starts wolf3d/doom/quake with the chosen window size and
mode via CLI args. Wire it into autobuild and the games menu; doom is now
built from source, so drop the prebuilt binary.
- grow the heap to fit the z-buffer and surface cache for the requested
resolution
- clamp -winsize to MAXWIDTH x MAXHEIGHT so a large window cannot overrun
the software renderer''s static tables
- render the fixed 320x200 frame to a 24bpp surface and SoftStretch it to
an arbitrary window size (-winsize); drop the old blocky integer scaler
- fix sfx: take the slice size from the obtained SDL audio spec
- set CWD to the executable dir so the WAD is found when run from launcher
- read config from DOOMRC.TXT next to the WAD
- add to autobuild
- use bufferPitch instead of screenWidth for the view offset on
non-standard window sizes
- default to windowed and honor --windowed/--fullscreen so the launcher
controls the mode (the SDL backend now acts on SDL_FULLSCREEN, which
used to be ignored)
- center the logical 320x200 layer (menus, title/intro, fonts, fullscreen
pics) when the resolution is not an exact multiple of 320x200; the 3D
view and in-game HUD stay full-screen
- borderless full-screen window (style Y=1) when SDL_FULLSCREEN is set
- correct the windowed frame size (5px skin border on the left, right and
bottom) so the framebuffer blit no longer overruns the frame by 1px
- skip the redundant kernel work-area fill (the per-frame blit covers the
whole client anyway)
- more robust debug output
Problem: `sync-tup-ctime.py` realigned every node's ctime, which hid real source changes whose Tupfile didn't change.
Fix: stamp the cache with its commit and on restore, `git diff` against it, keeping changed files dirty so tup rebuilds them.
Reviewed-on: #525
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Gleb Zaharov <risdeveau@lair.moe>
If the ac97snd player fails to start, download it from builds.kolibrios.org
to /sys/media/ac97snd, wait for the downloader process to finish (polling
GetProcessSlot with a timeout), then retry. Notify the user if it still fails.
Depends on the downloader "URL|/save/path" support.
Co-authored-by: Burer <burer@kolibrios.org>
---------
Co-authored-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-on: #454
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Add a "URL|/save/path" syntax so callers can download a file to a specific
destination instead of the default save dir (used by pixie to fetch the
ac97snd backend). With an explicit path, SaveFile overwrites it directly and
skips the auto-rename loop, which would otherwise recurse forever on a fixed
existing path.
Also point URL_SPEED_TEST (-test) at a working mirror.
Co-authored-by: Burer <burer@kolibrios.org>
---------
Co-authored-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-on: #453
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
- new proxy address
- fix proxy usage for `dl`
- fix buffers overflow
- optimize memory usage
- explicit notify error for `dl` when URL is HTTPS and proxy is not found
- cleanup some dead code to fit app in the same sectors size
Reviewed-on: #439
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
- Update sysfuncs.txt and sysfuncr.txt to match actual kernel code:
- Add missing SF's info
- Add missing constants
- Fix some mistakes
- Update KOSfuncs.inc to match actual kernel code:
- Remove obsolete constants
- Add missing constants
- Rename some constants to match their names in docs
Reviewed-on: #306
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Burer <burer@kolibrios.org>
Co-committed-by: Burer <burer@kolibrios.org>
What was done:
- [x] Rewritten to C
- [x] Refactored some code
- [x] Fixed window resizing (#182)
- [x] Adaptation for different skin height
- [x] Fixed some tubes leftovers drawing
- [x] Changed tubes generation a little bit
- [x] Changed interface a little bit
- [x] Added Escape key for exit to main menu
- [x] Removed buttons from main menu (hotkeys left) :(
What needs to be done:
- [ ] ~~Fix rolled-up bug?~~
- [ ] ~~Fit it into 2048 bytes?~~
- [ ] ~~Add pause?~~
- [ ] ~~Use buffer for drawing without flickering?~~
P.S. There is no way game with all this changes will fit in 2560 bytes, as previous version, so I decided to skip them.
Reviewed-on: #284
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Burer <burer@kolibrios.org>
Co-committed-by: Burer <burer@kolibrios.org>
- Fully refactored codestyle;
- Changed magnify calculations and display logic,
now it is similar to Pipet;
- Added proper copyrights;
- Localization to all system languages;
- Removed redundant .bat files;
- Added visual grid (Leency).
Co-authored-by: Kiril Lipatov <lipatov.kiril@gmail.com>
30.03.2025 - 0.4.0
- Localization for all system languages
- Display all character scales
- Abolity to copy character codes
- Block on charpage 00 for CP866
- New character code half markers
- Navigation using keys (see hotkeys.txt)
03.04.2025 - 0.4.1
- Fixed bug with codes color subscription
04.04.2025 - 0.4.2
- Fixed bug with resetting UTF charpage to zero on double charset swap to CP866
- Improved charpage blocking for CP866 UX
- Improved char codes copying UI
Reviewed-on: #196
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: Burer <burer@kolibrios.org>
Co-committed-by: Burer <burer@kolibrios.org>
- Rewritten from C-- to FASM
- Function to select not a single pixel, but a 7*7 rect from screen;
- Function to select each pixel from selected rect;
- Updated UX/UI.
Co-authored-by: leency <lipatov.kiril@gmail.com>