CHANGELOG

0.01	[nervegas] Project forked from iPhoneNES v0.01
0.02	[nervegas] Implemented frame skip
0.03	[nervegas] Rewrote rendering routines using CoreSurface
0.04	[nervegas] Added multi-touch support to controller
0.05	[nervegas] Further optimizations
0.06	[nervegas] Corrected color palette
0.07	[nervegas] Further controller improvements (dragging, etc)
0.08	[nervegas] Further controller improvements (fixed disconnect, etc)
0.09	[nervegas] Preliminary sound support (see README)
0.10	[nervegas] Fixed crashing when returning to file list
0.11	[nervegas] Improved sound quality, both earbuds work now, buffering+
0.12	[nervegas] Enlarged controllers, improved hot spot locations
0.13	[nergegas] Expanded on multitouch control - (see README)
0.14 	[nervegas] Added switch for landscape build [OBSOLETE]
0.15	[nervegas] Widened landscape mode - removed navBar 
0.16	[nervegas] added toolchain header patch / better docs
0.17	[nervegas] Set orientation mode during game play, updated header patch
0.18	[nervegas] Fixed minor issue with orientation flip, added wheat to cool
0.19	[nervegas] Improved orientation transitions
0.20	[nervegas] Changes to multitouch (see README), added DEBUG, old icon
0.21	[nervegas] Added support for external audio / switch added for earbuds
0.22	(deprecated)
0.23	[nervegas] Tweaks to orientation change, DEBUG shows hot spots now
0.24	[nervegas] Using K6502_rw.h from older core, Metroid and Punchout work! 
        [nervegas] Made more improvements to orientation sensitivity
        [nervegas] Implemented slightly faster rendering
0.25	[nervegas] Enlarged controls for landscape mode
0.26	[nervegas] Change status bar background to black on landscape
0.27	[nervegas] Controller fix to allow button, then directional pad hold
0.28	[nervegas] Added save SRAM support (to save SRAM for games like Zelda)
0.29	[nervegas] Added auto-save state and "Saved Games" selection
0.30	[nervegas] Fixed SaveState for many games, +Mapper1 +Mapper5
                   This fixed Tetris, Bubble Bobble, Super Mario 2, others...
0.31	[nervegas] Fixed SaveState for Mapper4 games (Earth Bound Zero, etc)
0.32	[nervegas] Added delete option for saved games
0.33	[nervegas] Fixes to orientation changes on select menus
0.34	[nervegas] Fixes to mapper4 restore state (fixes Super Mario 3, others)
0.35	[nervegas] Implemented swipe-to-delete for saved games
0.36	[nervegas] Minor UI tweaks
0.37	[nervegas] Added working preference pane, reworked nagivation bar
0.38	[nervegas] Fixed default sound preference issues
        [nervegas] Save game state and preferences on "home" button press
        [nervegas] Fixed rom deletion (would delete from list, but not file)
0.39	[nervegas] Implemented preference groupings
0.40	[nervegas] Added auto-save preference to disable auto-save state
0.41	[nervegas] Added prompt to save games when auto-save turned off
	[nervegas] More improvements to preferences aestheticss
        [nervegas] Fixed bug causing multiple deletes to hit wrong file(s)
        [nervegas] Fixed auto-save on-exit of game not in progress
0.42	[nervegas] Restored fast scroll list / bold font - swiping seems better
        [nervegas] Fixed compiler warnings
	[nervegas] Added notification icons for direction, b, a
0.43    [nervegas] Added suspend support (and preference)
0.44	[nervegas] Fixed suspend support while running games
0.45    [nervegas] Write preferences to /var/root/Library/Preferences
        [nervegas] Corrected Save-State issues with many (many) games
0.46	[nervegas] Corrected more save-state issues
0.47	[nervegas] Included patch for -O7 optimized compiling: WAY FASTER.
                   Turn frameskip down to 1; Mario 3 & Punchout: 2
0.48	[nervegas] More improvements to save-state wiring (WIP)
        [nervegas] Added "Multitouch State" preference (see README)
0.49    [nervegas] Fixed minor memory leaks
        [nervegas] Fixed remaining save/restore state issues (I think)
        [nervegas] Moved all critical globals into a nes_state struct
0.50	[nervegas] Fixed a bug causing certain games' save state to corrupt
0.51    [nervegas] Added "Enlarge Screen" option for portrait mode
        [nervegas] Aesthetic changes to preferences
0.52    [nervegas] Resync frameskip from preferences when loading saved game
        [nervegas] Redraw controllers when debug toggled
        [nervegas] Minor tweaks to portrait controller hot spots
0.53    [nervegas] Fixed orientation of notify icons when flipping
        [nervegas] Added enlarged screen view option for landscape mode
0.54	[nervegas] Implemented game genie code support (but slows down game)
        [nervegas] Fix for preferences scroll speed (cell scope problem)
0.55    [nervegas] Minor speedups for game genie
        [nervegas] Fixed bugs related to preferences being reset
                   (Occured if the preference had not been drawn when exited)
0.56    [nervegas] Replaced "All Games / Saved Games" button with disclosure
        [nervegas] Sped up preferences scrolling by precaching values
0.57    [nervegas] Refresh "Saved Games" browser when new game is saved
0.58    [nervegas] Implemented "true" multitouch using gesture API, fixed issues
        [nervegas] Removed diagonl direction hotspots, made controls harder

0.99.00 [nervegas] Polished UI, controllers perfected, ready for prime-time
0.99.01 [nervegas] Fixed controller issue where dir. pad keeps moving if user
                   drags off the controller to the select/start buttons.
0.99.02 [nervegas] More work on controllers; expanded corners = up/dn regions
                   Prevented users from dragging to select/start
0.99.03 [nervegas] Changed Speaker/Headet/Mute button to use colored indicators
                   Tapping status bar now reloads lists + scrolls to top
                   Added fourth game genie code slot; sped up game genie a bit
0.99.04 [nervegas] Screen flip to affect on emulation view, not browser
                   Removed taskbar in landscape mode
                   Enlarged full-screen mode A/B buttons for landscape view
                   Enlarged full-screen mode directional pad for landscape view
0.99.05 [nervegas] Fixed remaining multitouch issues (sliding with B and A)
0.99.06 [nervegas] Fixed rare controller-getting-stuck bug 
                   NOTE: 0.99.06 is built with the new toolchain, and is not
                         compatible with prevous versions' save games.
0.99.07 [nervegas] Added alert with instructions when no ROMs are detected
                   Added alert for invalid game genie codes; don't save
                   Fixed alert sheet presentation / removed gap from bottom
                   Added sound manager for sound without killing mediaserverd
RC1	[nervegas] Added auto-install of coreaudiod.plist for on-demand mode
                   Added 1-second delay for sound initialization
RC2	[nervegas] Added suspend for incoming call, graceful exit for power off
                   Removed "Allow Suspend" option, too complicated with sound
                   Changed on-demand installer text to be more coherent+restart
                   Added Swap A/B Preference
                   Tapered off buttons in full screen / landscape mode
                   Cleanup of full screen code, fixes for buffer overruns
                   Fixed some games not appearing right in full screen
                   New icon to experiment with
                   Fixed sound looping issues (e.g. Zelda, Faxanadu, etc)
RC2.1	[nervegas] Dropped back to old toolchain (new one hosed Zelda 2)
RC3	[nervegas] Fixed "Can Delete ROMs" preference
                   Added Auto-Frameskip support / preference
                   Use of AudioQueue to stream audio THROUGH mediaserverd
                   Replaced old sound channels button with reset button
                   Added hooks to system volume
RC4     [nervegas] Added back suspend support
                   Moved "Frame Skip" option to "Advanced Options"
                   Enlarged hot spots for select/start
                   Suspend only when game is in emulation mode - otherwise quit
                   Fixed frequency sweeping for wave channels 1/2
                     (in other words, fixed mario jump sounds, punchout ko, etc)
                   More improvements to sound buffering
1.0.0	[nervegas] Back to toolchain v0.20
                   Fixed PCM wave channel (Zelda sword, Punchout Cheering, etc)
                   Fixed buzzing on audio channels 1 & 2
                   Fixed game genie entry screen
                   Added "PCM Sound" preference to turn off PCM if problems
                   Fixed delete swipe to hilight correct table cell
                   Replaced reset button for mute button 
1.1.0	[nervegas] Removed unnecessary mutex locking for layer write
                   Draw black box around emulator screen to prevent see-thru
                   Improved sound quality slightly by precaching more audio
                   Added status bar icons (for suspend)
                   Added more debugging
                   Removed unnecessary screenUpdateLock
                   Corrected Bubble Bobble color palette
                   Corrected intermittent crashing issues
1.1.1	[nervegas] Cached game genie codes to speed up preferences scrolling
                   Aloow drag to select/start to continue original movement
                   Use of preferences file v1.1 to avoid conflicts
                   Code cleanup and slight optimization of pAPU
                   Updated controller images to use correct lighting/shading
                   6502 Read/Write Operatons:
                       $2003h should not be incremented after $2004h read
                       Add PPU_R3 to Sprite DMA destination address
                       Removed unnecessary Game Genie memory check
                       Additional optimizations to m6502_rw routines
                   Split off two CPU cores (k6502 and m6502) and makefiles
                       - k6502 is InfoNES' native core, and is more accurate
                       - m6502 is iNES' core, and is faster
1.1.2	[nergevas] Fixed memory reading issues breaking Toki, maybe others
1.1.3	[nervegas] Optimized mapper 4 (MMC3) speeds up many games
                   Optimized mapper 9 (MMC2) slight speedup of punchout
                   Added "IRQ Enable" witch to disable inerrupts (see README)
1.1.4	[nervegas] Quiet triangle and noise audio channels when PCM completes
                   Minor tweaks to mapper 4
                   Added build switch for -DDEBUG
                   Simplified Map4 IRQs
                   Fixed save state for mapper 4 games
                   Added junk-cell fix for scrolling
1.1.5	[nervegas] broke 1.1.4 by missing a patch to mapper 4
1.2.0	[nervegas] More PPU fixes; made these games work:
                       GI Joe
                       Rolling Thunder 
                       Round Ball
                       Spy Hunter
                       ... more ?
                   Got rid of flickering in Zelda 2
                   Final Fantasy 1/2 appear to also work, but not sure 
                       when that happened
1.3.0	[nervegas] Forked InfoNES/pNESx to separate NESCore project
                   Fixed scrolling and nametable issues - many games that
                     previously had problems now render properly, or mostly:
                         Rad Racer, SMB3, Zelda, Zelda 2, Megaman 3 and 6,
                         Toki (Game Screen), RC Pro-Am (Dashboard), Rolling
                         Thunder, GI Joe, others.
                   New core: http://iphone.natetrue.com/nescore/
        [jordan]   Reworked PPU registers to function properly
1.3.1   [jordan]   Switch to CPU timing instead of PPU timing
                   Cleaned up scrolling code
                   Kung Fu and others render properly now
1.3.2 	[nervegas] Allow A & B to be simultaneously pressed
                      NOTE: Only two buttons can be pressed at a time per Apple
                  Rewrote save state / wiring routines for better compatibility
                  Added mapper state hooks for seamless mapper state save
                      NOTE: Saved games from prior versions are incompatible
                  When auto-frameskip, set default skip to 1 when restoring
                  Suspend emulator when changing orientation to avoid crashing
                  Fixed Game Genie code entry
1.4.0	[nervegas] Added HSyncs for overclocked situations (DMA, etc)
                   Added 512 clocks for DMA writes
                   Fixed vblank flag (set @ 240), rolling thunder levels fix
                   Fixed vblank end = scanline 261 (0-indexed)
                   Added support for player 2 controller (touch top gray bar)
        [jordan]   Added 8-step CPU cycle between IRQ and NMI
                   Moved CPU step to before sprite hit, fixed minor rendering
        [nervegas] Added "mid-button hot spot" allowing both A/B to be pressed
                   by rolling the thumb from one button to the middle of both.
1.4.1	[nervegas] Updated mapper 118, added save-state (Pro Sport Hockey)
                   Updated mapper 119, rendering issues still exist however
                   Cleanup mapper 1 (unnecessary reset)
                   Cleanup IRQs in mapper 4
                   Began work on list of unsupported mappers (5, 13, 21, 119)
        [jordan]   Mapper 4 fixes (fixes Star Wars, TMNT 3)
        [nervegas] More mapper 4 IRQ fixes (Rolling Thunder issues again) 
        [jordan]   Mapper 0 fix for games without VROM (BurgerTime)
        [nervegas] Step 10 instead of 8 before NMI for GI Joe, Bad Dudes
1.4.2	[nervegas] Force four-screen mirroring when detected (Rad Racer 2)
                   Scanline fix by incrementing before rendering
                     Fixes: Rad Racer, Rad Racer 2, and Asterix' palette.
                   Tweaked right directional pad hot spot in landscape/full
1.5.0 	[nervegas] Fixed navbar so buttons update when in landscape mode
                   Use fclose() instead of close() in LoadROM
                   Added "Sensory Pad" preference option, good for RPGs I guess
                   Cleaned up controller selection code and filenames
                   Enlarged "A & B" hot spot in portrait mode
                   Tweaked color palette for optimal display on iPhone
                   Stabilized frame skip, less jerkiness, fewer changes
                   Added color palette preferences option (old palette = C)
        [jordan]   Optimized scanline rendering routine
1.6.0 	[nervegas] Cleaned up compiler warnings
                   Fixed sound envelope decay (Punchout, Pinball, Kung Fu)
                   Fixed volume control restoring music and sounds in many games
                   More tweaks to Palette A
                   Added "CPU Clock" advanced option, see README
                   More work on auto frame-skip
                   Fixed triangle sound channel
                   Added bass boost option
1.6.1	[nervegas] Jacked up volume
                   Compiled with debug on; no debug seems to mess up colors
1.6.2	[nervegas] Addressed crashing issues on orientation change
1.7.0	[nervegas] Code and leak cleanup
                   Fixed many writes to invalid memory addresses
                   Corrected APU IRQs
                   Raised volume of white noise channel
                   Built for Toolchain 0.30 - much faster
                   Added true wait periods per frame to prevent running fast
                   Rewrote auto-frameskip code, much smoother
1.7.1	[jordan]   CPU clocking tweaks
        [nervegas] All games appear to work well with clock 339 now, new default
                   Removed palette B (vivid), all shift left
1.8.0 	[nervegas] Fixed white noise channel frequencies
                   Fixed PCM DMA
        [jordan]   Added PAL support, use filename (E) unless marked in header
                   (Many are not marked in the header)
1.9.0	[nervegas] Tweaks to sound caching to get closer to real-time sync
                       (you should be using auto-frameskip, slow frameskips
                        will cause sound to loop)
                   Added zapper support (tap screen); works with:
                       Duck Hunt
                       Hogan's Alley
                       Wild Gunman
                       Gumshoe (game itself has glitches)
                       Shooting Range
                       Gotcha!
                   Others do not yet seem to work
1.9.1	[nervegas] Fixed vertical scrolling; fixed minor glitches in some games
                   Show all 240 scanlines
                   Palette tweaks to fix zapper for some palettes
1.10.0	[nervegas] Un-fixed vertical scrolling to fix problems caused by it
	           Added button bar across bottom
                   Added 'most recent' view of last 25 played games
1.11.0  [nervegas] Added bookmarks support
                   Added pre-game options (delete save, bookmark, etc)
                   Added navigation bar titles
1.11.1	[nervegas] Fixed bookmarks nagivation title
                   Fixed file selection dropping behind button bar
1.11.2	[nervegas] Fixed bug causing crashes on iPhone SW 1.0.2 < 
