CE-Programming / CEmu

Third-party TI-84 Plus CE / TI-83 Premium CE emulator, focused on developer features
https://ce-programming.github.io/CEmu/
Other
1.11k stars 80 forks source link

Some AppVar file can't be transfered PC => Cemu #377

Closed prisme60 closed 4 months ago

prisme60 commented 3 years ago

What's wrong, and with what software version?

Operating System: Ubuntu 20.10 CEmu version: … CEmu v2.0dev (git: fcf5b49) Describe your issue:
I try to transfer the following files (can be downloaded from the Ti-Planet forum):

But oiram_OiramPK.8xv is always failing, even if the log indicates [CEmu] USB transfer(s) completed succesfully.

What are the steps to reproduce this issue?

  1. Open CEmu
  2. Be sure that the calc is on HOME screen. (i.e. not busy and not executing a program)
  3. Click on button "Send files to the calc" and select oiram_OiramPK.8xv
  4. Click on "Resend" button of the line oiram_OiramPK.8xv
  5. Check Calc Memory variables (calc button [2nd][+] then [2]) ==> Variable is not present
  6. Check the console => [CEmu] USB transfer(s) completed succesfully.

Any logs, error output, screenshot, other comments...?

image image image image image

I am working on a simple program using the toolchain, and I make some AppVar variables (tiles resources are too big to embed in the code). But I didn't succeed to transfer AppVar to the CEmu. So I test with Oiram (working perfectly on the Calc!), and I reproduce the same transfer problem.

adriweb commented 3 years ago

Hi, thanks for the detailed issue!

@mateoconlechuga says CEmu is doing "the right thing", it's just that transfer programs like TI-Connect and TILP are a bit too lax not checking everything, specifically there's a header byte (in the files you're transferring) that's actually wrong. Now, I suppose we could make CEmu less strict and go on with the transfer, but still adding a warning to the console...

mateoconlechuga commented 3 years ago

Did you use convimg to create your AppVar variables?

adriweb commented 3 years ago

In the meantime, you can build the latest Oiram files (from the repo) with the latest toolchain (master), and everything works just fine on master CEmu.

For reference, here's what that gave me: oiram_build_20201226.zip

mateoconlechuga commented 3 years ago

These are two separate issues. The Oiram pack can't transfer because of a "wrong" byte in the header, and your image appvars probably can't transfer because the files are lowercase. Both issues require resolving in CEmu, so no external action to take is needed.

prisme60 commented 3 years ago

I put all my AppVARs in CAPITALS, and it is now working correctly !

palettes:
  - name: mypalette
    images: automatic

converts:
  - name: tileset
    compress: zx7
    palette: mypalette
    tilesets:
      tile-width: 80
      tile-height: 80
      pointer-table: false
      images:
        - bgi

  - name: myimages
    palette: mypalette
    images:
      - flake32

outputs:
  - type: appvar
    name: TLSGFX
    source-format: c
    include-file: tiles_gfx.h
    archived: true
    palettes:
      - mypalette
    converts:
      - tileset

  - type: appvar
    name: FLAKE
    source-format: c
    include-file: sprites_gfx.h
    archived: true
    converts:
      - myimages
christian@coolmaster:~/CEdevSrc/examples/combined/christmas_appvar_image$ convimg --version
convimg v8.4 by mateoconlechuga
christian@coolmaster:~/CEdevSrc/examples/combined/christmas_appvar_image$ make gfx
[info] Reading file 'convimg.yaml'
[info] Generating palette 'mypalette'
[info]  - Reading 'bgi.png'
[info]  - Reading 'flake32.png'
[info] Generated palette 'mypalette' with 256 colors (0 unused)
[info] Converting tilesets for 'tileset'
[info]  - Reading tileset 'bgi.png'
[info] Generating convert 'myimages'
[info]  - Reading image 'flake32.png'
[info] Generating output for palette 'mypalette'
[info] Generating output for convert 'tileset'
[info]  - Writing 'tiles_gfx.h'
[info]  - Writing 'TLSGFX.c'
[info]  - Writing 'TLSGFX.8xv'
[info] Generating output for convert 'myimages'
[info]  - Writing 'sprites_gfx.h'
[info]  - Writing 'FLAKE.c'
[info]  - Writing 'FLAKE.8xv'
christian@coolmaster:~/CEdevSrc/examples/combined/christmas_appvar_image$ make
[compiling C]   src/gfx/FLAKE.c
Z:\home\christian\CEdevSrc\examples\combined\christmas_appvar_image\src\gfx\flake.c
[compiling C]   src/gfx/TLSGFX.c
Z:\home\christian\CEdevSrc\examples\combined\christmas_appvar_image\src\gfx\tlsgfx.c
[compiling C]   src/main.c
Z:\home\christian\CEdevSrc\examples\combined\christmas_appvar_image\src\main.c
[linking] bin/CRECHE.bin
[success] bin/CRECHE.8xp, 1500 bytes.

I see that you change the convimg submodule pointer to V8.5. I was using v8.4 of convimg, when I produce the current issue (AppVar needs CAPITAL letters). I have also shortened my AppVAR name (I think more than 8 characters will not work), and I don't know if '_' is allowed. image I see also that you update the toolchain, so I will update it update on my side too.

By the way, OIRAM is a fantastic source of inspiration.