Use rectangles and texure coloring instead of redrawing the entire
texture, cuts down things by half.
Error if a component doesn't load on boot
Also fix various usage of the ffi api, so that luajit wouldn't complain.
Correct a typo on keyboard
Implement actual resolution switching!
Not as good as I'd like, but it works for now
Also destroy everything on shutdown instead of relying on sdl.quit for
that
Add yet another variable for wanted palette
Add monochromeColor configuration
Fix getForeground and getBackground output
Implement depth color changes
Fix up the computer.beep stub
Update the README
Check for and clamp to NUL in the unicode api
math.floor depth when changing screen depth
Fix getForeground and getBackground to return the palette index when
using a palette, which is still not really correct but will mostly work
for depth 8
Have palette changes recolor the screen
Centralize all of the configuration settings and defaults into one file
Move the available components into the configuration
Move the verbose debugging into the configuration
Also start work on a modem component
Also fix configuration not saving on computer shutdown
Unicode:
Replace \0 with \xC0\x80
Limit max codepoint to 0xFFFF (Java chars are wonderful)
Fix wtrunc and math.huge
Fix wtrunc with a pos of 0 returning the entire string
GPU (not screen):
Simplify rdepthTbl
Add depth names table
return the old depth when changing depth
limit the resolution change correctly
allow gpu.get to work with a little over the max dimensions
Screen:
Don't modify characters if it's a wide character at the very edge of the
screen
Have getColor set the palette index instead
Return true in cec.fill
Floor the resolution when changing
Take 2 ... 3 ... 11?
Remove the default port from the https library, preventing injection of
port 443
Remove the default port from the http library, preventing injection of
port 80
Check specifically for https, injecting port 443, else 80
trim the url string when doing a request
Check the protocol to make sure it's valid or supported
Add in another patch to http to actually preform http requests when
asked, the hack however prevents you from doing HTTP on 443, but it's
much better
Add in the SDL2 scancode to cprint debugging
Ignore Escape key
Artificially generate various characters for various keys
Also default to 0 in key_up
Add in a secondary list for the artificial characters:
Backspaces
Tabs
Enter
Delete
All non mapped codes will default to zero
Add in a quick hack to correct the codepoints for tab and enter, which
SDL doesn't generate a SDL_TextInputEvent for
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