robhagemans / pcbasic

PC-BASIC - A free, cross-platform emulator for the GW-BASIC family of interpreters
http://www.pc-basic.org
Other
396 stars 48 forks source link

circle.bas from MS-DOS 1.25 crashes after welcome screen #83

Closed rene0 closed 5 years ago

rene0 commented 5 years ago

FATAL ERROR
version 2.0.0
python 2.7.15 [64bit ELF]
platform FreeBSD-12.0-ALPHA8-amd64-64bit-ELF
interface VideoCurses, AudioPlugin
statement 1365 LOCATE 25,1:PRINT"Press ESC to exit"

textscreen.py:206, write_char
textscreen.py:348, put_char_attr
textscreen.py:369, refresh_range
font.py:280, get_sprite
TypeError: unsupported operand type(s) for -: 'list' and 'int'

crash-20181002-KtYmHm.log

rene0 commented 5 years ago

Bug is reproduceable by issuing SCREEN 1, some SDL message flashes by at startup, perhaps I'm missing that.

rene0 commented 5 years ago

Installing these packages on FreeBSD 12-amd64 does not help:

py27-sdl2-0.9.5 sdl2-2.0.7 sdl2_gfx-1.0.1_4 sdl2_image-2.0.2 sdl2_mixer-2.0.1_1 sdl2_ttf-2.0.14_1

Adding --preset=cga or --preset=vga does not help either.

robhagemans commented 5 years ago

Hi, thanks for reporting this with log and detailed reproduction steps!

I can reproduce this on the master branch in the absence of numpy. It seems to be fixed in the develop branch. I have fixed several issues in the non-numpy code in that branch; I thought I had backported these to master but clearly something is still missing. I will have a look at it to ensure the fix gets included in 2.0.1.

Meanwhile, you can probably work around the issue by installing numpy for Python 2.7 (not sure if FreeBSD has a package for that, but otherwise you can use pip). Note that without numpy graphics will not work in any case, you would just have a text-based (curses) interface.

Also thanks for the link by the way, I had not realised Microsoft had released these files under the MIT licence!

robhagemans commented 5 years ago

Fixed by commit 92891c7, will be included in 2.0.1