Join us on Discord!
You can help CodeWalrus stay online by donating here.

TILP: beta-testing...

Started by Lionel Debroux, October 25, 2015, 04:30:17 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Lionel Debroux

Since the previous public build, there have been, guess what... improvements and bugfixes :)
Excerpt of the changelog:
  • internal: added per-handle pre / post receive and pre / post send hooks functionality. It's the foundation for more interesting stuff which shall be implemented later.
  • added DUSB packet dissection to libticalcs and CLI front-end to it. It makes it possible to input packets straight of, say, Wireshark, and have them analyzed in a human-readable way:
Enter calc model (usually 13, 14, 18-21): 14
Enter raw DUSB packet as hex string of up to 4 * max raw packet size (non-hex characters ignored; CTRL+D to end):
00:00:00:2E:04:00:00:00:28:00:07:00:13:00:0A:00:08:00:02:00:03:00:04:00:06:00:07:00:09:00:0B:00:0C:00:0D:00:0E:00:0F:00:10:00:11:00:1E:00:1F:00:2D:00:4B

0000002E (04)                                                   | PC>TI: Virtual Packet Data Final
        00000028 {0007}                                         | CMD: Parameter Request
                00 13 00 0A 00 08 00 02 00 03 00 04 00 06 00 07
                00 09 00 0B 00 0C 00 0D 00 0E 00 0F 00 10 00 11
                00 1E 00 1F 00 2D 00 4B
Requested 19 (13) parameter IDs:
        000A (OS mode)
        0008 (Device type)
        0002 (Product name)
        0003 (Main part ID)
        0004 (Hardware version)
        0006 (Language ID)
        0007 (Sub-language ID)
        0009 (Boot version)
        000B (OS version)
        000C (Physical RAM)
        000D (User RAM)
        000E (Free RAM)
        000F (Physical Flash)
        0010 (User Flash)
        0011 (Free Flash)
        001E (LCD width)
        001F (LCD height)
        002D (Battery level)
        004B (Exact math engine)
  • added automatic detection of 83PCE vs. 84+CE. When USB scan at startup is enabled (it has been by default for years), TILP will now correctly detect 84+CE calculators, which used to be detected as 83PCE calculators. This item was implemented thanks to the previous feature;
  • added 7 new functions related to screenshots: one receives and converts the result to RGB888, five convert raw screenshot data from the calculator to RGB888 (four of them used to be part of TILP, but they belong to libticalcs), and the last one is a helper for freeing screen data returned by ticalcs_calc_recv_screen() and ticalcs_calc_recv_screen_rgb888() (part of the ongoing software engineering work to abstract the memory allocator behind libti*, so that clients have fewer hard-coded g_free() calls).
The usual links:
EDIT in 2021: updated the link to the *nix install script.
Member of the TI-Chess Team.
Co-maintainer of GCC4TI (GCC4TI online documentation), TIEmu and TILP.
Co-admin of TI-Planet.

Dream of Omnimaga

I didn't know that TiLP was still maintained regularly O.O . I guess I didn't check the threads enough (since I use TI-Connect and I thought that it was just people asking for help), but I'm happy by those updates. :) Good news about the extra CE support.

Is it possible to dump ROM files from a TI-84+CE, btw?
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Lionel Debroux

QuoteI didn't know that TiLP was still maintained regularly O.O
Somewhat less so over the past two years and a half, but I've kept working on them, with some help by Benjamin Moody and Jonimus.
So far, there have already been more commits since TILP II 1.17 than between 1.16 and 1.17 or any previous releases that I produced, and these commits contain more changes, too.

QuoteIs it possible to dump ROM files from a TI-84+CE, btw?
Nope, for lack of a USB-based dumper which speaks the libticalcs dumping protocol.
Member of the TI-Chess Team.
Co-maintainer of GCC4TI (GCC4TI online documentation), TIEmu and TILP.
Co-admin of TI-Planet.

Dream of Omnimaga

Do you know if Floppusmaximus (Benjamin Moody) is still around nowadays? I haven't seen him anywhere in two years.


And would an USB-based dumper which speaks the libticalcs protocol be harder to implement for this calculator than it was for the CSE and 84+ due to any RSA key like with third-party flash apps, or would it be similar?
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Lionel Debroux

QuoteDo you know if Floppusmaximus (Benjamin Moody) is still around nowadays? I haven't seen him anywhere in two years.
Benjamin seldom attends message boards (let alone IRC chans), but can usually be reached through e-mail.

QuoteAnd would an USB-based dumper which speaks the libticalcs protocol be harder to implement for this calculator than it was for the CSE and 84+ due to any RSA key like with third-party flash apps, or would it be similar?
The libticalcs ROM dumpers have always been ASM programs :)
The 84+CSE uses the same USB controller as earlier 84+-class models, and the ROM dumper is built from the same source file, with the help of a bit of conditional compilation: https://github.com/debrouxl/tilibs/blob/master/libticalcs/trunk/src/romdump_84p_usb/romdump.z80
However, the TI-eZ80 series has a new USB controller, and AFAICT, neither the USB controller, nor higher-level ASM or C APIs which might - if they exist - make it possible to send raw bytes over the wire, as provided by AMS on the 89T and used by the 89T DUSB ROM dumper, have been documented.
Member of the TI-Chess Team.
Co-maintainer of GCC4TI (GCC4TI online documentation), TIEmu and TILP.
Co-admin of TI-Planet.

Dream of Omnimaga

That sucks. I hope that one day a ROM dumper will be possible. D: It would suck if we were stuck forever with camera captures instead of actual screenshots when showcasing our games, not to mention the lack of debugging tools.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Adriweb

#6
There are other ways (that already exist) to get a ROM dump than with tilp. It's been among one of the first things done, unsurprisingly. Just not very publicly :)
I'm sure at some point they'll become available easily.
  • Calculators owned: TI-Nspire CX CAS, TI-Nspire CX, TI-Nspire CAS (x3), TI-Nspire (x2), TI-Nspire CM-C CAS, TI-Nspire CAS+, TI-80, TI-82 Stats.fr, TI-82 Plus, TI-83 Plus, TI-83 Plus.fr USB, TI-84+, TI-84+ Pocket SE, TI-84+ C Silver Edition, TI-84 Plus CE, TI-89 Titanium, TI-86, TI-Voyage 200, TI-Collège Plus, TI-Collège Plus Solaire, 3 HP, some Casios
Co-founder & co-administrator of TI-Planet and Inspired-Lua

Dream of Omnimaga

Ah ok. Does it require extra hardware like some stuff that required the RS232/TTL adapter on the Nspire? Another nice thing would be if there was a ROM dumping program that worked on-calc, like ROM8x.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Lionel Debroux

QuoteDoes it require extra hardware like some stuff that required the RS232/TTL adapter on the Nspire?
Nope, just the standard built-in functionality. As you know, there's no "extra" port (comparable to the Nspire dock port) on the TI-eZ80 series.

QuoteAnother nice thing would be if there was a ROM dumping program that worked on-calc, like ROM8x.
Such programs do not exist publicly, indeed.
Member of the TI-Chess Team.
Co-maintainer of GCC4TI (GCC4TI online documentation), TIEmu and TILP.
Co-admin of TI-Planet.

Lionel Debroux

#9
Noteworthy changes since the previous build:
  • addition of a 83PCE/84+CE ROM dumper. While the USB controller and software are still undocumented, which prevents from making a ROM dumper using the custom libticalcs dumping protocol, one of the possible workarounds is to copy data to a file, and transfer the file to the computer, repeatedly. It's slow, but it works. The calculator-side dumper was made by jacobly, the computer side by me.
  • receiving files of peculiar sizes from the TI-eZ80 series fixed, reported by jacobly;
  • split most of the code of dbus_recv() to dbus_recv_header() + dbus_recv_data(). Indirectly suggested by a discussion with SirCmpwn.
  • small improvements and bugfixes, as usual
Known bugs:
  • the colors in screenshots from color calculators look funny. Probably a byproduct of "libticalcs: add bitmap (screen) conversion functions, add ticalcs_calc_recv_screen_rgb888() and ticalcs_free_screen(), add torture tests, replace a number of Glib function calls by indirect equivalent calls." and the corresponding change on the TILP side, I'll need to investigate.
The usual links:
EDIT in 2021: updated the link to the *nix install script.
Member of the TI-Chess Team.
Co-maintainer of GCC4TI (GCC4TI online documentation), TIEmu and TILP.
Co-admin of TI-Planet.

Dream of Omnimaga

Thanks for the cross-post. :)

I'm happy to see a CE ROM dumper. By copying data, do you mean it copies the ROM data inside a 8xp or 8xv file that you have then to open in a computer editor, then append the data at the end of a large ROM file in something like Notepad? That could definitively be a workaround for the time being, providing that the generated data chunks are large enough (eg close to 64 KB, so we have fewer file transfers to do).


Question: Does TILP still require doing some special stuff to not screw up TI-Connect installs? And will TI-Connect CE be affected as well?
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Lionel Debroux

QuoteBy copying data, do you mean it copies the ROM data inside a 8xp or 8xv file that you have then to open in a computer editor, then append the data at the end of a large ROM file in something like Notepad?
The current TI-eZ80 ROM dumper copies the ROM data inside a 8xp program (protected program, in fact), but that program stays in RAM without interfering without the Flash memory's contents (unlike offline rom8x-like approaches). libticalcs builds the whole Flash image automatically from the modified contents of that program, one chunk at a time, without user manual intervention :)
Member of the TI-Chess Team.
Co-maintainer of GCC4TI (GCC4TI online documentation), TIEmu and TILP.
Co-admin of TI-Planet.

Dream of Omnimaga

I guess it's a better move, because it can be annoying when you dump a ROM then launch the emulator, about to test a large game, only to find out that your ROM ended up pre-loaded with hundreds of archived games and appvars, requiring you to do a mem clear everytime you load the ROM. Thanks for explaining.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Lionel Debroux

#13
Noteworthy changes since the previous build:
  • initial support for the TI-84 Plus T, which was mostly a copy-paste-modify job.
  • several patches by Benjamin Moody containing bugfixes and improvements: version byte handling, faster calculator probing at TILP startup, better handling of non-ASCII TI-(e)Z80 app names.
  • new APIs, e.g. length-limiting versions of 4 libticonv APIs, which make it possible to simplify code in e.g. libticalcs, or more helper functions related to calculator model in libticonv.
  • fixing an old bug report through a two-liner in TILP + a new capability in libticalcs: hiding the non-silent receive and send operations on models which don't support them.
  • two new empty (unimplemented) cables: raw (no metadata such as length) TCP client and TCP server cables.
  • a range of improvements and bugfixes (screenshot color fixes, compiler warnings, translations, others), as usual.
Known bugs:
  • Benjamin Moody reported that the DBUS memory backups have been broken since a commit of mine in July 2014, which fixed other bugs - namely, memory access errors. I haven't finished fixing them yet.
The usual links:
EDIT in 2021: updated the link to the *nix install script.
Member of the TI-Chess Team.
Co-maintainer of GCC4TI (GCC4TI online documentation), TIEmu and TILP.
Co-admin of TI-Planet.

Dream of Omnimaga

Do you know if there are plans to add an easy way to hack the 82 Advanced/84+T in future versions? For example, there couldd be a wizard in TiLP which automatically sends the required files to the calc.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Powered by EzPortal