CHANGELOG 0.01 [jonz] Project forked from iPhoneNES v0.01 0.02 [jonz] Implemented frame skip 0.03 [jonz] Rewrote rendering routines using CoreSurface 0.04 [jonz] Added multi-touch support to controller 0.05 [jonz] Further optimizations 0.06 [jonz] Corrected color palette 0.07 [jonz] Further controller improvements (dragging, etc) 0.08 [jonz] Further controller improvements (fixed disconnect, etc) 0.09 [jonz] Preliminary sound support (see README) 0.10 [jonz] Fixed crashing when returning to file list 0.11 [jonz] Improved sound quality, both earbuds work now, buffering+ 0.12 [jonz] Enlarged controllers, improved hot spot locations 0.13 [jonz] Expanded on multitouch control - (see README) 0.14 [jonz] Added switch for landscape build [OBSOLETE] 0.15 [jonz] Widened landscape mode - removed navBar 0.16 [jonz] added toolchain header patch / better docs 0.17 [jonz] Set orientation mode during game play, updated header patch 0.18 [jonz] Fixed minor issue with orientation flip, added wheat to cool 0.19 [jonz] Improved orientation transitions 0.20 [jonz] Changes to multitouch (see README), added DEBUG, old icon 0.21 [jonz] Added support for external audio / switch added for earbuds 0.22 (deprecated) 0.23 [jonz] Tweaks to orientation change, DEBUG shows hot spots now 0.24 [jonz] Using K6502_rw.h from older core, Metroid and Punchout work! [jonz] Made more improvements to orientation sensitivity [jonz] Implemented slightly faster rendering 0.25 [jonz] Enlarged controls for landscape mode 0.26 [jonz] Change status bar background to black on landscape 0.27 [jonz] Controller fix to allow button, then directional pad hold 0.28 [jonz] Added save SRAM support (to save SRAM for games like Zelda) 0.29 [jonz] Added auto-save state and "Saved Games" selection 0.30 [jonz] Fixed SaveState for many games, +Mapper1 +Mapper5 This fixed Tetris, Bubble Bobble, Super Mario 2, others... 0.31 [jonz] Fixed SaveState for Mapper4 games (Earth Bound Zero, etc) 0.32 [jonz] Added delete option for saved games 0.33 [jonz] Fixes to orientation changes on select menus 0.34 [jonz] Fixes to mapper4 restore state (fixes Super Mario 3, others) 0.35 [jonz] Implemented swipe-to-delete for saved games 0.36 [jonz] Minor UI tweaks 0.37 [jonz] Added working preference pane, reworked nagivation bar 0.38 [jonz] Fixed default sound preference issues [jonz] Save game state and preferences on "home" button press [jonz] Fixed rom deletion (would delete from list, but not file) 0.39 [jonz] Implemented preference groupings 0.40 [jonz] Added auto-save preference to disable auto-save state 0.41 [jonz] Added prompt to save games when auto-save turned off [jonz] More improvements to preferences aestheticss [jonz] Fixed bug causing multiple deletes to hit wrong file(s) [jonz] Fixed auto-save on-exit of game not in progress 0.42 [jonz] Restored fast scroll list / bold font - swiping seems better [jonz] Fixed compiler warnings [jonz] Added notification icons for direction, b, a 0.43 [jonz] Added suspend support (and preference) 0.44 [jonz] Fixed suspend support while running games 0.45 [jonz] Write preferences to /var/root/Library/Preferences [jonz] Corrected Save-State issues with many (many) games 0.46 [jonz] Corrected more save-state issues 0.47 [jonz] Included patch for -O7 optimized compiling: WAY FASTER. Turn frameskip down to 1; Mario 3 & Punchout: 2 0.48 [jonz] More improvements to save-state wiring (WIP) [jonz] Added "Multitouch State" preference (see README) 0.49 [jonz] Fixed minor memory leaks [jonz] Fixed remaining save/restore state issues (I think) [jonz] Moved all critical globals into a nes_state struct 0.50 [jonz] Fixed a bug causing certain games' save state to corrupt 0.51 [jonz] Added "Enlarge Screen" option for portrait mode [jonz] Aesthetic changes to preferences 0.52 [jonz] Resync frameskip from preferences when loading saved game [jonz] Redraw controllers when debug toggled [jonz] Minor tweaks to portrait controller hot spots 0.53 [jonz] Fixed orientation of notify icons when flipping [jonz] Added enlarged screen view option for landscape mode 0.54 [jonz] Implemented game genie code support (but slows down game) [jonz] Fix for preferences scroll speed (cell scope problem) 0.55 [jonz] Minor speedups for game genie [jonz] Fixed bugs related to preferences being reset (Occured if the preference had not been drawn when exited) 0.56 [jonz] Replaced "All Games / Saved Games" button with disclosure [jonz] Sped up preferences scrolling by precaching values 0.57 [jonz] Refresh "Saved Games" browser when new game is saved 0.58 [jonz] Implemented "true" multitouch using gesture API, fixed issues [jonz] Removed diagonl direction hotspots, made controls harder 0.99.00 [jonz] Polished UI, controllers perfected, ready for prime-time 0.99.01 [jonz] Fixed controller issue where dir. pad keeps moving if user drags off the controller to the select/start buttons. 0.99.02 [jonz] More work on controllers; expanded corners = up/dn regions Prevented users from dragging to select/start 0.99.03 [jonz] 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 [jonz] 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 [jonz] Fixed remaining multitouch issues (sliding with B and A) 0.99.06 [jonz] 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 [jonz] 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 [jonz] Added auto-install of coreaudiod.plist for on-demand mode Added 1-second delay for sound initialization RC2 [jonz] 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 [jonz] Dropped back to old toolchain (new one hosed Zelda 2) RC3 [jonz] 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 [jonz] 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 [jonz] 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 [jonz] 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 [jonz] 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 [jonz] Fixed memory reading issues breaking Toki, maybe others 1.1.3 [jonz] 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 [jonz] 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 [jonz] broke 1.1.4 by missing a patch to mapper 4 1.2.0 [jonz] 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 [jonz] 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://www.zdziarski.com/projects/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 [jonz] 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 [jonz] 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 [jonz] 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 [jonz] 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) [jonz] More mapper 4 IRQ fixes (Rolling Thunder issues again) [jordan] Mapper 0 fix for games without VROM (BurgerTime) [jonz] Step 10 instead of 8 before NMI for GI Joe, Bad Dudes 1.4.2 [jonz] 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 [jonz] 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 [jonz] 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 [jonz] Jacked up volume Compiled with debug on; no debug seems to mess up colors 1.6.2 [jonz] Addressed crashing issues on orientation change 1.7.0 [jonz] 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 [jonz] All games appear to work well with clock 339 now, new default Removed palette B (vivid), all shift left 1.8.0 [jonz] 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 [jonz] 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 [jonz] Fixed vertical scrolling; fixed minor glitches in some games Show all 240 scanlines Palette tweaks to fix zapper for some palettes 1.10.0 [jonz] 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 [jonz] Added bookmarks support Added pre-game options (delete save, bookmark, etc) Added navigation bar titles 1.11.1 [jonz] Fixed bookmarks nagivation title Fixed file selection dropping behind button bar 1.11.2 [jonz] Fixed bug causing crashes on iPhone SW 1.0.2 < 1.12.0 [jonz] Added case-insensitive sort of files, bookmarks, and saved games [jonz] Added support for left-handed landscape mode (turn clockwise) 1.13.0 [jonz] Added delete confirmation of saved games Made "Don't Save" game option destructive/red button 2.0.0 [jonz] Fixed preference labels and removed show selection of buttons Changed main ROM list to be section list (like contact list) Removed "can delete roms" feature Significant code cleanup 2.0.1 [jonz] Fixed preference groups to appear with correct headings Cleaned up orientation changes and fixed scrambled screen bug Added NSAutoreleasePool Added LayerKit transitions for aesthetics 2.0.2 [jonz] Added saved game icon next to saved games in all browsers More code cleanup Improved swiping, removed false swipes when scrolled from center 2.0.3 [jonz] Cleaned up controller images Documentation updates 2.0.4 [jonz] Updated for 1.1.3 (runs under 'mobile' user) Everything is now under /var/mobile 2.0.5 [jonz] Fixed Game Genie code saving 2.1.0 [jonz] Many bugfixes, added build support for firmware 1.2/2.0 See README for full instructions Added XCode project for iPhoneOS (Beta 2 SDK) build Added bi-directional hot corners (up-left, up-right, etc) Press as if on the real controller - between both directions Added advanced option for number of sound buffers (default 5) Changed default palette from A to C (most accurate) Renamed plist files to use com.zdziarski instead of natetrue