So lets switch to full sdl, via luaffi
Also, check that the component actually loaded
(This copy of sdl2-ffi has been slightly modified to work with luaffi,
it is otherwise exactly the same)
Implement component.filesystem.remove
Use cleanpath in all filesystem methods that take a path, and check that
the path doesn't start with "../" or is ".."
Only rerender screen portions when the existing data differs
Bubble up and use render:drawPoints instead of calling render:drawPoint
thousands of times
move machine_thread to machine.thread
support boolean yield (shutdown and reboot)
createDirectory will now create parent paths
getDirectoryItems will ignore . and ..
added getLastModified, getSize, and getSaveDirectory
(getSaveDirectory points to $HOME/.ocemu or $APPDATA\.ocemu)
Add some basic argument checking to computer.beep
Add component type checking to component.eeprom, replace math.huge with
actual value, and do size checks
extend component.eeprom.makeReadonly stub
have component.filesystem use the address as a directory name if not
specified, and store them + tmpfs in the save directory
set the label to nil if using the address as the name
Add component type checking to component.filesystem, and implement a lot
of functions (or extend stubs)
Extend stubs in component.screen, implement
component.screen.getKeyboards()
Add a fake HDD to the default components list, since writing works