I am trying to run uzem in Linux/x86-64 but when I try to run one of the demos it segfaults (the black screen appears for a brief moment). Here is the traceback:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fdb6a054700 (LWP 9277)]
0x0000000000402f05 in avr8::update_hardware (this=0x7fff7207f960, cycles=2)
at avr8.cpp:2048
2048 next_scanline[current_cycle>>1] = pixel;
(gdb) bt
#0 0x0000000000402f05 in avr8::update_hardware (this=0x7fff7207f960, cycles=2) at avr8.cpp:2048
#1 0x0000000000407158 in avr8::exec (this=0x7fff7207f960, disasmOnly=true, verbose=false) at avr8.cpp:1762
#2 0x000000000040754b in main (argc=3, argv=0x7fff720814b8) at avr8.cpp:2271
Since "unsigned long" is 64-bit on x86-64. The tetris games works fine, but SpriteDemo has a load of illegal reads and writes and resets when you press "A". I'm not sure if this is the expected behaviour but there might be a few more 32-bit assumptions in the code which need sorting out.
May I suggest using <stdint.h> (uint16_t, uint32_t etc.)? It's the only portable way to ensure you have the right integer types.