x48ng

Émulateur v0.41.1 par syndicman

Fork de x48, émulateur de calculatrices HP48 S/SX/G/GX.

Seul le code source est disponible.

Dernière mise à jour :

Plateformes

Téléphone mobile / Autres

Architecture

Mac OS X - macOS Mac OS X - macOS Intel x86 Intel x86 Apple Silicon Apple Silicon 64 bits 64 bits SDL Library SDL Library

Téléchargement et liens

Historique des versions

v0.51.2
Fix the colors of the keypad modes, thanks to @promindsd
v0.51.1
.1 release to fix broken `x48ng-launcher` and remove `setup-x48ng-home.sh` - To handle smaller terminals, TUI now understands `--chromeless` which removes the border and not display the help by default. - In `--tui-small` and `--tui-tiny` x48ng correctly display only 131 columns. - There's a new `x48ng-launcher` script that should be used as the main binary. Like `saturnng` binaries, it sets up `~/.config/x48ng` is needed before running the actual binary. This makes `setup-x48ng-home.sh` obsolete (which has been removed.) - Updated README with correct keys of TUI and list their alternatives too.
v0.51.0
- To handle smaller terminals, TUI now understands `--chromeless` which removes the border and not display the help by default. - In `--tui-small` and `--tui-tiny` x48ng correctly display only 131 columns. - There's a new `x48ng-launcher` script that should be used as the main binary. Like `saturnng` binaries, it sets up `~/.config/x48ng` is needed before running the actual binary. This makes `setup-x48ng-home.sh` obsolete (which will be removed.) - Updated README with correct keys of TUI and list their alternatives too.
v0.50.0
Lots of changes: - replaced whole UI with _ui4x_, my common UI now shared with x48ng, saturnng and hpemung - GUI now uses sdl3 - dropped X11 - TUI (ncurses) is improved - in parallel the whole LCD management has been reworked, inspired/copied from saturnng And, as always, various code fiddling, renaming and such as I work on and compare x48ng, saturnng and hpemung (and emu48, and etc.)
v0.41.1
Quick fix release to acknowledge the small graphic bug on 9. I've spend my time lately working on https://github.com/gwenhael-le-moine/saturnng which is coming along nicely.
v0.41.0
* Removed sdl1 UI and replaced it with the sdl2 one. It should be mostly transparent. * Added an `uninstall` target to the Makefile * some behind the scene code fiddling As a sidenote please say high to x48ng's sibling https://github.com/gwenhael-le-moine/saturnng for its first release \o/ **Full Changelog**: https://github.com/gwenhael-le-moine/x48ng/compare/0.40.2...0.41.0
v0.40.2
(Sorry about the rapid-fire releases -.- Notice a bug, fix it, release, notice more stuff, fix them, release, ... I'll stop for today before I drop the SDL1 UI without much of a warning (It'll happen soon enough ;) )) * Fixed a bug parsing scale from config file * adjust a little how the default config is generated. **/!\\** _Last version including the SDL1 GUI_ **Full Changelog**: https://github.com/gwenhael-le-moine/x48ng/compare/0.40.1...0.40.2
v0.40.1
There was a small bug in setup-x48ng-home.sh linking the ROM from the wrong path **Full Changelog**: https://github.com/gwenhael-le-moine/x48ng/compare/0.40.0...0.40.1
v0.40.0
* For SDL2 UI only: Added `--scale=` parameter to adjust up/down the size of the window * mention sdl2 in manpage and printed config **Full Changelog**: https://github.com/gwenhael-le-moine/x48ng/compare/0.39.0...0.40.0
v0.39.0
Kind of a big release ## What's Changed * The SDL2 UI is finally here! It's built by default and the old SDL1 UI, while still included for now, is disabled by default. Note that both SDL2 and SDL1 UIs cannot be built alongside. * `mkcard` has been removed. `dd if=/dev/zero of="$DOTX48NG"/port1 bs=1k count=$PORT1_SIZE` does the job * `setup-x48ng-home.sh` has been reworked to not depend on `@PREFIX@` * You can now choose against which lua you link during compilation passing `LUA_VERSION=luajit` (for example) to `make` [ Makefile: link against user-configurable Lua version by @antecrescent in https://github.com/gwenhael-le-moine/x48ng/pull/25 ] **Full Changelog**: https://github.com/gwenhael-le-moine/x48ng/compare/0.38.0...0.39.0
v0.38.0
It's been a minute... ## What's Changed * Improve Makefile configurability by @antecrescent in https://github.com/gwenhael-le-moine/x48ng/pull/22 * sdl UI now obeys `--gray` and `--mono` * otherwise more small code fiddling and more major refactoring, especially some de-duplication between the UIs * _EDIT: Oh, and the ROMs are not included anymore due to unclear license. The setup script will get them for you._ ## New Contributors * @antecrescent made their first contribution in https://github.com/gwenhael-le-moine/x48ng/pull/22 **Full Changelog**: https://github.com/gwenhael-le-moine/x48ng/compare/0.37.0...0.38.0
v0.37.0
Lots of behind the scene refactoring but this release has been cut to publish the fix for #19 **Full Changelog**: https://github.com/gwenhael-le-moine/x48ng/compare/0.36.90...0.37.0
v0.36.90
A quick release adding an option `--inhibit-shutdown` as a quick and crude temporary fix for #15 Side effects of this option aren't tested, use with caution, hence the funky version number. Also many minor tweaks in wording in code and messages. **Full Changelog**: https://github.com/gwenhael-le-moine/x48ng/compare/0.36.0...0.36.90
v0.36.0
Not much changes. 1. prefer `--tui-tiny` and `--tui-small` options 2. map F1 to F7 keys to actions in tui 3. UI tweaks in tui **Full Changelog**: https://github.com/gwenhael-le-moine/x48ng/compare/0.35.0...0.36.0
v0.35.0
Standardize the following keybindings across all 3 UIs, display this helpful text in `--tui` _F1: Enter, F2: Left-shift, F3: Right-shift, F4: Alpha, F5: On, F7: Quit_ **Full Changelog**: https://github.com/gwenhael-le-moine/x48ng/compare/0.34.0...0.35.0
v0.34.0
- add a --leave-shift-keys, remove DONT_SHADOW_SHIFTS. - fix default UI choice ti match what's compiled in. Priority in order is X11 > sdl > tui - (hopefully) make it compatible with lua as old as 5.1 - add a `make get-roms` so that we may one day _not_ ship ROMs **Full Changelog**: https://github.com/gwenhael-le-moine/x48ng/compare/0.33.0...0.34.0
v0.33.0
Compiling with `make DONT_SHADOW_SHIFTS=yes` builds a binary where the `--x11` and `--sdl` variants don't map the Shift keys. You can still use left and right Control keys to left and right shift inside the emulator. This is a first fix for #13
v0.32.0
I didn't expect to make a new release so soon but I'm floored by how easy adding `--tiny` was! `--tui` now has 3 modes: - `--tui` which use 1 pixel per character, requiring a terminal at least 135x70 - `--tui --small` which use 4 pixels per character, requiring a terminal at least 70x40 - `--tui --tiny` which use 8 pixels per character, requiring a terminal at least 70x20 (best used with `--mono` for readability) Enjoy this release as much as I'm proud of having made it!
v0.31.1
Minor release to tidy up how the border is drawn in `--tui`
v0.31.0
### bugfix - default value of configDir had a redundant `.config/` ### functionality - **Added** a smaller tui option: using `--tui --small` will use unicode characters to pack 4 pixels per screen character (`small = true` in _config.lua_) - small optimization of the ncurses code
v0.30.0
**Many changes, some breaking, although I tried to make the transition as reasonably painless as I could.** 1. Config dir is now `$XDG_CONFIG_HOME/x48ng/` by default. If `$XDG_CONFIG_HOME` isn't set it falls back to `~/.config/x48ng/` 2. There is now a config file `config.lua`. Why lua you may ask? Because I was inspired by https://boston.conman.org/2023/09/29.1 and because lua is nice. `x48ng` will tell you if the file is missing and helpfully tell you what to do and print a default config that you can use. 3. Because of how `config.lua` is loaded, the debugger and terminal are now off in the default configuration. You can turn them back on again either by setting the corresponding options to `true` in the config file or by passing the corresponding parameters. 4. Speaking of parameters, they have higher priority than the settings in `config.lua` 5. `--sdl-*` and `--x11-*` parameters have lost their prefixes. 6. `--initialize` parameter is gone because it was of not much use. 7. _I'm sure I forgot stuff… Hopefully there's not too many bugs_ There is no migration helper. You should do it manually by running `mv ~/.x48ng/ ~/.config/x48ng/ && x48ng --print-config > ~/.config/x48ng/config.lua ` for example.
v0.29.91
Release Candidate 2 for v0.30.0 - Added support for $XDG_CONFIG_HOME. `config_dir` is first checked as `$XDG_CONFIG_HOME/config_dir` then `$HOME/config_dir`
v0.29.90
Release Candidate for v0.30.0 **Many changes, some breaking, although I tried to make the transition as reasonably painless as I could.** 1. Config dir is now ~/.config/x48ng by default. It doesn't respect $XDG_CONFIG_HOME but it's getting there. You can enforce that respect by calling `x48ng` with `--config-dir=$XDG_CONFIG_HOME/.x48ng` 2. There is now a config file `config.lua`. Why lua you may ask? Because I was inspired by https://boston.conman.org/2023/09/29.1 and because lua is nice. `x48ng` will tell you if the file is missing and helpfully tell you what to do and print a default config that you can use. 3. Because of how `config.lua` is loaded, the debugger and terminal are now off in the default configuration. You can turn them back on again either by setting the corresponding options to `true` in the config file or by passing the corresponding parameters. 4. Speaking of parameters, they have higher priority than the settings in `config.lua` 5. `--sdl-*` and `--x11-*` parameters have lost their prefixes. 6. `--initialize` parameter is gone because it was of not much use. 7. _I'm sure I forgot stuff… Hopefully there's not too many bugs_ There is no migration helper. You should do it manually by running `mv ~/.x48ng/ ~/.config/x48ng/ && x48ng --print-config > ~/.config/x48ng/config.lua ` for example.
v0.29.0
- reintroduce conditional front-ends at build, try to auto-detect x11 and sdl, can be forced by passing `WITH_X11=no` and/or `WITH_SDL=no` to make. Ncurses UI is always built-in. - behind the scene extensive refactoring of ui* code, mainly: - moving core keyboard and annunciators management out of UI and into emulator proper. - ui_text.c uses less code
v0.28.0
Minor tweaks to ncurses UI: - use unicode for indicators to be closer to the real icons - add the devices for wire and IR at the bottom of the screen
v0.27.1
annunciators were drawn one line too low in `--tui` (One day I won't have to make a .1 release a few minutes after the .0… That day's not today.)
v0.27.0
Where a wild terminal UI appears! I'm quite proud to have added a ncurses based UI `--tui` (LCD only, including indicators, no visible keyboard.) It's in colors too, with gray `--tui-gray` and mono `--tui-mono` options available. About keys I'll copy from README.md here: > I had to be a bit 'creative' mapping keys there: > > - `On` is either `F4` or `Esc` or `Home` or `\` > - `Left Shift` is either `F5` or `PgUp` or `[` > - `Right Shift` is either `F6` or `PgDn` or `]` > - `Alpha` is either `F8` or `Ins` or `;` > > _To quit `x48ng --tui` use `F10` or `Shift+End` or `|`_ > You can now the _real_ MINEHUNT everywhere!
v0.26.1
C needs booleans
v0.26.0
- Simplified the names of the files parameters (`--rom=`, …) - Fixed a graphic glitch in sdl UI - Internal changes dealing with filenames.
v0.25.1
Bring back configurable X "visual" with --x11-visual=XX Default visual is (suitably) "default", I seem to crash when visual is set to "truecolor"
v0.25.0
After a few chaotic days it looks like I fixed #12 which brings back a functional x11 frontend.
v0.24.1
Now both front-ends (SDL and X11) are compiled in one binary. The default front-end is set to `x11`. Desired front-end can be chosen using parameter `-u ` or `--front-end ` where FE is either `sdl` or `x11` Note that `--no-chrome` and `--fullscreen` aren't implemented for x11 front-end.
v0.23.0
Merged back the `x11` frontend. The `sdl` frontend is still the default but passing `GUI=x11` to `make` and `make install` builds and install the x11 version (install for copying `dist/X48NG.ad` to `/etc/X11/app-defaults/X48NG`.) `ui_sdl.c` and `ui_x11.c` will see some refactoring to have less duplicated code between the two and the arguments parsing is still a bit messy and med some love too.
v0.22.0
Notable changes are the addition of 2 options : - `--fullscreen` to start the UI fullscreen - `--no-chrome` to start the UI showing only the LCD (can be combined with `--fullscreen`) And the SDL UI is now resizable, which helps with #9 as you can manually make the UI bigger.
v0.21.1
Felt bad about the debugger, brought it back. (And it's a .1 because I fat fingered the 0.21.0 onto the wrong commit.)
v0.20.0
### Big, breaking changes! Jump from 0.13.0 to 0.20.0 to mark the step - completely removed x11 code - fixed the annoying blink of the sdl version - keep only the sdl (1.2) version (use sdl12-compat) - add command-line options (see `--help` and new manpage) - hopefully didn't break anything…
v0.13.0
**Removed the debugger!** I personally have no use for it and removing it hopefully will make it easier for me to make sense of the code left. Legacy x48 is still around if you or I need to use the debugger.
v0.12.1
- fixed a bug I introduced in the debugger - various Makefile tweaks to improve compilation, with a focus on Ubuntu and derivative **Full Changelog**: https://github.com/gwenhael-le-moine/x48ng/compare/0.12.0...0.12.1
v0.12.0
Main changes justifying a new release: - The SX bug has been fixed, thanks @MatMoul - the debugger inclusion is a compilation option WITH_DEBUGGER (yes by default) The rest continues to be just code fiddling.
v0.11.0
### _Implicitly quiet_ Lots of renaming and rearranging files to step into making sense of the code. I also removed the `-quiet` parameter to untangle a bit UI and core. It's now quiet by default unless you pass `-verbose` Hopefully I still haven't broken anything and compiling, packaging and using it hasn't changed since last release.
v0.10.1
Fix manpage (which describes the x11 version)
v0.10.0
After loads of code shuffling to tray and make sense of the code base this is the first time I intentionally make a (minor) change. This release remove the ability of loading a state file ($HOME_X48NG/hp48) from an ancient version of x48 (prior to 0.4.0) If you have such a file, running x48 0.6.4 once should convert the file to the new format. I don't expect anyone running into this but it's worth mentioning. Hopefully I didn't break anything else.

Captures d'écran

Interface de x48ng