Correct the Tier 3 palette
Add in a more accurate color system, comparing wanted values to 6-8-5
levels and palette colors
Actually return the palette setting in get/setForeground and
get/setBackground, it used to only be nil and seems to be fixed
setDepth now loads the respective palette for tier2/tier3
Palette changes now affect the current color if the respective palette
entry was modified
The droping colors to 6-8-5 levels is probably not entirely correct,
since converting back to a normal color can incur further loss, but it's
working
Add some more checks into component.connect
Add component.disconnect
Send signals component_added/removed when adding/removing components,
except on boot
Add some checks to eeprom component
Add checks to filesystem component
Add checks to gpu component
Add checks to screen component
Remove showWindow, causing issues in linux and doing nothing in windows
Remove a useless renderchange calculation
Fix internet.request for response codes 400 and above, oppm now works
Add a ocemu component, which will be used to control the emulator from
inside
Add a basic configuration program, allowing to insert and delete
components
Add ocemu component to the list
wrap unicode.lower/upper since utf8's handling of numbers differs than
oc's handling of numbers
move getCharWidth out of unicode.lua and into main.lua
Fix characters being rendered when they should be hidden by a wide
character
Fix wide characters not setting the overlapping cell as a space
Fix the overlapping character not being rendered when the wide character
is removed
Fix fill treating wide characters as not wide characters
Fix set being crashed on invalid characters
Change checkArg and compCheckArg to non merge versions, and edit the
error message in compCheckArg to be similar to actual error messages
I totally tested the previous hack
New hack! Allow us to travel backwards in time, as far as the computer
is concerned, that minute long request only took about ~0 seconds
Add logic for when the socket should be closed
Same for HTTP requests
Add support for when HTTP requests fail
Remove and readd machine.lua's sethook to get around how slow
http.request can be at times
Patch socket.http to return a table for headers only when there are
multiple values, only because other code will break
Support table's for headers in our internet component
Change header case to a more normal version
Add persistence code to the eeprom, so it will actually work when
booting OCEmu
convert a print -> cprint
Implement the HTTP side of the internet card
Add clipboard support to the keyboard
Edit the readme to mention luasocket and luasec
Move component connecting logic into its own function
Add lua/component/internet when loading internet card
Adjust slot numbers to more realistic numbers:
5 = HDD slot
7 = Floppy slot
Check if internet component can be used (requires luasocket)
Add cprint's everywhere in internet component
Fix connecting to an address with port included
Fix screen fill/copy/get/set being crashable with non integer numbers
Add math.trunc to help out screen component (truncates to integer)
Add internet component by default
Have component stub generator also generate documentation
Add documentation to the components
Support components defining their own type
add return nil, "no such component" to more component functions
fix component.doc
Add argument checks to computer api, maybe implement computer.realTime?
Implement unicode isWide, charWidth, and wlen
clean up boot.lua a little
Implement readonly mode in eeprom, and implement crc32 checksum
Add more readonly checks to filesystem, implement filesystem.rename
makeDirectory returns false if the path exists
suffix keyboard and screen with _sdl, and check for SDL before loading
move sdl_to_lwjgl to the support folder
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