[Regression] List of broken python carts
Hey @blueloveTH,
I investigated python games that were broken by regression. Could you take a look if they could work on a future Pocketpy version or maybe a TIC patch? If some of them is better to fix the cart code, I could probably fix the old ones and reupload in gamefixes, or I could see if @nesbox would think it would be okay to I send the fixed carts to him and he would update in the website. The newer ones I could try to message the authors.
By the way, to also give a good news. Your last update (4c1b009bc5e308a3c30cdc98754872d86ecbfdb1) fixed 8 carts. :)
I'm also adding the spreadsheet I used to investigate the regressions, in case you prefer: tic80-python-broken-by-regression.ods
I was able to get a list of python games by going to my tic game folder and running grep -ir "python" *
| Type | Game name | tic.com id | rom last update | Error type | Broken since | worked on |
|---|---|---|---|---|---|---|
| itch | O MOKU E MUN | itch - [cart] | 2025-02-16 | expected 'int', got 'float' | https://github.com/nesbox/TIC-80/commit/e1dbcd001c7333b9b196ab9c04dffabc963f5c08 | Pocketpy v1.2.4 (1.2.2866-2023-12-17-faf01b1) |
| Game | DOPPLER | 4062 | 2024-11-18 | unsupported operand type(s) for *: 'bool' and 'int' | Pocketpy v1.3.0 (1.2.2809-2023-11-10-f79b3fa) | Pocketpy v1.2.4 (1.2.2869-2023-12-26-8e8411d) |
| WIP | WIP MORIO LIKE GAME | 3861 | 2024-06-06 | invalid number literal | Pocketpy v1.3.0 (1.2.2809-2023-11-10-f79b3fa) | Pocketpy v1.2.4 (1.2.2869-2023-12-26-8e8411d) |
| Tool | WAVESUM | 3971 | 2024-08-22 | module' object has no attribute 'EaseInOutQuad' | Pocketpy v1.3.1 (1.2.2836-dev -2023-12-08-e0b1fdc) | Pocketpy v1.3.0 (1.2.2809-2023-11-10-f79b3fa) |
| Tool | ANNULAR SECTORS | 4004 | 2024-09-11 | module' object has no attribute 'EaseInOutCubic | Pocketpy v1.3.1 (1.2.2836-dev -2023-12-08-e0b1fdc) | Pocketpy v1.3.0 (1.2.2809-2023-11-10-f79b3fa) |
| Game | POP! FISHING VANELLOPE EDITION | 4033 | 2024-10-10 | extend() argument must be a list or tuple | Pocketpy v1.3.5 (1.2.2870-2023-12-26-f0ce497) | Pocketpy v1.3.1 (1.2.2836-dev -2023-12-08-e0b1fdc) |
| Game | INFBREAD | 4121 | 2025-01-01 | unsupported operand type(s) for +: 'int' and 'bool' | Pocketpy v1.3.5 (1.2.2870-2023-12-26-f0ce497) | Pocketpy v1.3.1 (1.2.2836-dev -2023-12-08-e0b1fdc) |
| Demo | YE NAN PU | 4185 | 2025-02-16 | time()//100 -unsupported operand type(s) for //: 'float' and 'int' | Pocketpy v1.3.5 (1.2.2870-2023-12-26-f0ce497) | Pocketpy v1.3.1 (1.2.2836-dev -2023-12-08-e0b1fdc) |
| Tech | WAVEFORM CONSOLE | 3969 | 2024-08-20 | choice(): argument must be a list or tuple | Pocketpy v1.4.1 (1.2.2880-2024-02-16-0602c49) | Pocketpy v1.3.5 (1.2.2879-dev -2024-02-16-fd02c6f) |
| Game | POP! FISHING | 3788 | 2024-08-27 | extend() argument must be a list or tuple | Pocketpy v2.0.1 (1.2.2996-2024-11-11-e98d37a) | Pocketpy v1.4.5 (1.2.2995-2024-11-11-5e1b0ca) |
| Demo | BAD AIM TRAINER | 3867 | 2024-06-02 | expected 'str', got 'int' | Pocketpy v2.0.1 (1.2.2996-2024-11-11-e98d37a) | Pocketpy v1.4.5 (1.2.2995-2024-11-11-5e1b0ca) |
| Game | DISPARA | 4273 | 2025-05-21 | expected 'str', got 'int' | Pocketpy v2.0.1 (1.2.2996-2024-11-11-e98d37a) | Pocketpy v1.4.5 (1.2.2995-2024-11-11-5e1b0ca) |
| Tool | CLOCK | 3616 | 2023-11-26 | expected 'str', got 'int' | Pocketpy v2.0.1 (1.2.2996-2024-11-11-e98d37a) | Pocketpy v1.4.5 (1.2.2995-2024-11-11-5e1b0ca) |
| Tech | FRUIT CATCHER TUTORIAL | 3628 | 2023-11-24 | expected 'str', got 'int' | Pocketpy v2.0.1 (1.2.2996-2024-11-11-e98d37a) | Pocketpy v1.4.5 (1.2.2995-2024-11-11-5e1b0ca) |
| Game | SPACE SENTINEL | 4270 | 2025-05-19 | ZeroDivisionError: float division by zero | Pocketpy v2.0.1 (1.2.2996-2024-11-11-e98d37a) | Pocketpy v1.4.5 (1.2.2995-2024-11-11-5e1b0ca) |
| WIP | CRAZY MARBLES | 3720 | 2024-01-25 | readonly attribute: 'x' | Pocketpy v2.0.1 (1.2.2996-2024-11-11-e98d37a) | Pocketpy v1.4.5 (1.2.2995-2024-11-11-5e1b0ca) |
| WIP | BLOCKSORTER | 4239 | 2025-04-13 | name 'name' is not defined | Pocketpy v2.0.1 (1.2.2996-2024-11-11-e98d37a) | Pocketpy v1.4.5 (1.2.2995-2024-11-11-5e1b0ca) |
| Game | HEXAPIX | 4271 | 2025-05-19 | dict_iterator' object has no attribute 'len' | Pocketpy v2.0.1 (1.2.2996-2024-11-11-e98d37a) | Pocketpy v1.4.5 (1.2.2995-2024-11-11-5e1b0ca) |
| WIP | WAFE FUNCTION COLLAPSE | 3783 | 2024-03-01 | dict_iterator' object has no attribute 'len' | Pocketpy v2.0.1 (1.2.2996-2024-11-11-e98d37a) | Pocketpy v1.4.5 (1.2.2995-2024-11-11-5e1b0ca) |
Thanks for your report. I will investigate them soon.
Most of them crashes as soon as the game starts, the few exceptions are "Wafe Function Collapse" that we need to press the A key; and "Space Sentinel" that we have to travel without shooting or getting hit until the time gets to zero, that probably makes the code do a division by zero. Maybe in past versions it was okay to divide by zero? Idk, or maybe it had crashes and I did not test that game well.
Status
expected 'int', got 'float'
API has changed.
unsupported operand type(s) for *: 'bool' and 'int'
Will be fixed.
invalid number literal
Need investigate.
module object has no attribute 'EaseInOutQuad'
These function has been renamed.
extend() argument must be a list or tuple
To be fixed.
time()//100 -unsupported operand type(s) for //: 'float' and 'int'
Fixed✅
choice(): argument must be a list or tuple
To be fixed.
expected 'str', got 'int'
API has changed.
ZeroDivisionError: float division by zero
This is a user bug.
readonly attribute: 'x'
Need investigate.
name 'name' is not defined
Need investigate.
dict_iterator' object has no attribute 'len'
Fixed✅