main: set organization name, domain, and app name
MainWindow: move into widgets module I like it better to have an almost trivial "main" entrypoint.
TILE_PALETTES: add a few more standard palettes This almost gives enough standard palettes to pick a few at first.
ROMDockable: hide byte-shifting buttons for CHR browsing It really is only needed for PRG browsing and is somewhat confusing otherwise.
NES_ROM: limit byte-shifting functions to 8 bytes There's no need to move beyond those 8 bytes in either direction, and it simplifies some things to assume this limit.
main: move main function out of global namespace Just a bit of housekeeping.
NES_ROM: allow ROMs to be provided as zip files Bit barebones, but it works well enough for my collection. Some error handling is now enabled. Starting to look like a real program!
ROMDockable: show in title bar if we're looking at the ROM's PRG or CHR This is a useful bit of information.
hgignore: add zip files Often NES ROMs are used directly from zip files.
NES_ROM: implement circular byte shifting For ROMs that have no CHR, sometimes the tiles aren't aligned to 16-byte boundaries. Circularly shifting the PRG data may be necessary to get proper tiles. In order to do so efficiently, this also requires changing the Tile object to be more like a cached look into the underlying tile data. Thus, I turned its `pixmap` and the `raw_tile` properties into descriptors so I can properly clear those cached properties and can thus lazily update them, as required by the update functions.
PaletteComboBox: new widget in ROM canvas toolbar This allows picking from a pre-defined set of palettes. The styling isn't great yet, and I may need to fix this later.
refactor: move widgets into their own module This allows multiple ROM canvases to be opened at once, and each one has its own palette, which can change the palette in the tile picker.
MainWindow: rename central scroll widget
MainWindow: increase default size This is just a stop-gap until I implement saving and restoring the current window layout.
refactor: move the NES ROM manipulation code into its own module Also, rename the color module to colour 'cause I got tired of misspelling it when I didn't have to.
Tile: set new palette by copy Otherwise, we may end up modifying another tile's palette.
ScrollAreaWithVerticalBar: new class workaround I am committing this because I can't figure out a better way. https://stackoverflow.com/questions/57898865/why-is-qscrollarea-not-taking-vertical-scroll-bar-width-into-account
ColourButton: tighten space between the buttons Turns out that it was possible to resize the dialogue box and have the buttons move away. I also want them to be all close together in a tight little palette widget on the ad-hoc toolbar for the ROM viewer widget.
RomWidget: use the rom's filename as title I gotta get around to properly encapsulating all this stuff and properly wiring up its signals with everything else.
RomWidget: add column increase/decrease buttons It now looks more like a toolbar than a palette, so I'm also changing its name.