Posts for Ilari


Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
amaurea wrote:
I don't think SmashManiac wanted this to be done by opcode-stepping through whole frames. Rather, one would probably use frame-stepping normally, and when one needs higher resolution, one would set a breakpoint based on the position of the instruction counter or for reads/writes of an address, and then possibly do some opcode-stepping before providing the input.
There are multiple ways to actually feasibly implement subframe input. Which apply depends on the type of input: * Allow multiple subframes per frame, each consequtive poll of the same button incrementing the subframe those are returned from (lsnes with controler input) * For each frame, have list of poll results to return in order (Nothing I know does this). * Have list of polls and forced VI limit (Mupen64-rr, Dolphin) * Have number of CPU cycles to execute before triggering a reset (I planned lsnes mid-frame resets to work this way, but couldn't get the mid-frame resets to work). * Have timestamps for each event and carry the events out on time indicated (JPC-RR, openMSX).
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
Rerecord count unknown, that is, the rerecord count in the file gets parsed as zero. Edit: Checked hex dump of the file against .wtf specs, the rerecord coun field really contains zero, it is not a file parsing mistake. Now, while there are some legimate reasons to have that it is not a good sign. So why seemingly 0 rerecords?
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
creaothceann wrote:
Ilari wrote:
The AVIs it dumps are far from uncompressed. More like 1MB/s than 10MB/s (of course, depends on the game).
OK, I'll see if I can set it up.
There's not much setting up. The AVI encoder/muxer is completely self-contained and statically linked. The command to start dump is 'dump-avi <prefix>', to end dump 'end-avi'. (Wx version has those as menu commands). The encoder knows following settings: * Compression level (CPU/space tradeoff). Defaults to 7. * Force 512x448/480 dump. Defaults to off. * Amount of padding to apply to sides. Defaults to 0 on all sides.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
creaothceann wrote:
Runtime switching isn't really needed, especially if it'd be slower than static linking... Only those who would create/dump movies for Air Strike Patrol would need another build.
I'll change the build scripts to do compat build instead of accuracy build. IIRC, that's just two changes to the build script.
creaothceann wrote:
archives don't have enough benefits today and needlessly complicate the code) and I agree with him.
Well, I need the .zip code anyway (the movie / savestate files are .zip files). And code to just skip the first 512 bytes on command? That's easy.
creaothceann wrote:
Ilari wrote:
It is not something I can even test
VirtualBox / VMWare with a Windows installation?
Not an option for now.
creaothceann wrote:
Anyway, it's just that uncompressed / barely compressed AVI files are a bit too space-wasting (and maybe slow?) for my taste, especially when the ZMBV codec or ffmpeg's RGB codecs are already available (uncompressed video would be at least ca. 10 MB per second).
The AVIs it dumps are far from uncompressed. More like 1MB/s than 10MB/s (of course, depends on the game).
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
Warepire wrote:
One thing that crossed my mind with the games that use the RTC chips is that it may be possible to enslave that clock to something internal in the SNES and make the RTC "start time" a setting.
RTC start tme is a setting already. The count is slaved to sound output, which occurs at a known rate.
Warepire wrote:
Thus allowing us to choose the optimal clock state (the movie files would have have to be extended to carry this setting).
There's already a place in movie files for clock state.
creaothceann wrote:
  • It would be really helpful to default to the faster compatibility core. The accuracy core is only needed to show a graphical effect in one or two games. Using the same key input file for both cores should never result in a desync.
That would require buiding a build with compatibility core. There is currently no support for switching cores at runtime (that would require pretty much putting the core with some extra API into shared object / dynamic link library and loading that stuff at runtime). And you are right that it seems that Accuracy and compatibility cores are extremely similar with timings.
creaothceann wrote:
  • Loading ROMs with spaces in the file didn't work until I figured out that lsnes-sdl "--rom=%~1" in a batch file works. Wouldn't it be more intuitive for lsnes to assume that the first parameter (that is not a switch) is the ROM file?
Unfortunately for some other cartridge modes, there can be up to 3 ROM files (each with additional markup file). And for me, --rom="foo bar.sfc" works fine. I don't know why it doesn't work on Windows:
  • That isn't the right syntax?
  • Startup code is buggy?
Edit: I tried the Win32 SDL version in wine. It handles space in command line correctly. Edit #2: "--rom=foo bar.sfc" seems to work, at least in Wine cmd.exe. lsnes itself only handles '/' in rom filenames specially. Space is not special.
creaothceann wrote:
    Supporting ROM files with headers is kind of iffy - you may as well add support for all kinds of compressed archives. (Using uncompressed files for everything would be helpful, imo.)
I have function that just blindly strips first 512 bytes (--headered-rom and friends, headered checkbox in the wx version). Currently it supports .zip archives. .7z could be useful, but that is likely fair amount of code, even with likes of liblzma and so.
creaothceann wrote:
  • It really needs an easy way to change keys, at least a list of the default keys (I eventually found them in the log) and a list of all available key names.
Manual has list of all key names. But yeah, those sections are pretty unreadable. I could dump a lists of default keys and corresponding commands and all supported key names. Edit: Oh, there is command 'show-bindings' (<esc>show-bindings<enter>) that shows list of all active keybindings.
creaothceann wrote:
  • Btw. a window popping up with the installed codecs (like in SNES9x) would also be good.
That is hard for two reasons:
  • It is not something I can even test
  • The emulator internal architecture pretty strongly separates core and UI. You can not open windows from emulator core (excluding special things like yes/no prompts), where AVI dumpers run. And the UI parts are specific for each UI.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
HappyLee wrote:
So how can I help?
I don't think there is very much you can do...
HappyLee wrote:
It's OK for publication, right?
That was just first approximative test on console-verifiability, something that is NOT required for publication. Sync check is part of judging, but in this case it will be done using old PPU (which does sync for this run).
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
HappyLee wrote:
adelikat wrote:
It turns out this movie desyncs with the new PPU on 3-1, the trick in the screenshot actually causes lag and makes the trick fail. I would suspect the same thing would happen if console verified (DarkKobold, care to try?)
I don't quite understand.
Basically, FCEUX has two PPU (the unit responsible for graphics) implementations: * Old PPU, works the same as PPU on FCEU. Very stable and thus perferred. * New PPU, more true to how real NES works. But not preferred due to bugs still remaining. Now, the trick in 3-1 is very sensitive to lag, so even the smallest preturbations can add or remove lag frames, altering when the various inputs have to be made. Thus as new PPU is slightly different, it causes different number (or pattern) of lag frames there, leading to desync. As to if it would work on real NES, depends on how SMB is programmed and how far off old PPU is.
Post subject: lsnes emulator development (lsnes rr1-Δ18ε3)
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
What I have been lately working on: SNES and Gameboy rerecording emulator based on bsnes core. Wiki: Lsnes Files: rr1-Δ18ε3 - Windows Installer 19 MB rr1-Δ18ε3 - Source code 2 MB (Can be used to build for Linux, Windows, OS X, and possibly other UNIX compatible OSs) rr1-β0 [Friday January 6th 2012] ================================ * lsnes rr1-β0 rr1-β1 [Friday January 6th 2012] ================================ * Remove dummy test SRAM * Fix controller logical numbers rr1-β2 [Tuesday January 10th 2012] ================================== * Fix lsnes-dumpavi * Pack movie data in memory rr1-β3 [Tuesday January 10th 2012] ================================== * Fix framecount/length given when loading movies * Controller command memory leak fixes * Don't leak palette if freeing screen object rr1-β4 [Wednesday January 11th 2012] ==================================== * Detect git revision and have version shown * Reformat the version message a bit * Wxwidgets: Allow controlling dumper start/stop from menu rr1-β5 [Wednesday January 11th 2012] ==================================== * Partially rewrite the manual * Finish the manual modifications * Lua: Support Lua 5.2.X too rr1-β6 [Wednesday January 11th 2012] ==================================== * Win32: Fix compile errors rr1-β7 [Thursday January 12th 2012] ================================== * Refactor controller input code * Don't fall off commandline processing routine rr0-Δ1ε2 [Thursday January 12th 2012] ===================================== * Support Lua 5.2 rr1-β8 [Friday January 13th 2012] ================================= * Remove core/coroutine * When showing input in readwrite mode, show last sent input * Rewind movie to beginning function * Fix frame number reported to Lua in repaint after load * Fix desyncs with rewind movie to begnning function * wxwidgets: Allow editing jukebox from the GUI * wxwidgets: Save settings on exit, load settings on startup * Support ${project} for filenames * SDL: Fix command history rr1-β9 [Saturday January 14th 2012] =================================== * SDL: Fix order-of-global-ctor bug * Fix another order-of-global-ctor bug rr1-β10 [Saturday January 14th 2012] ==================================== * NULL some window pointers when quitting * Wxwidgets: Fix thread memory managment rr1-β11 [Sunday January 15th 2012] ================================== * Evdev: Don't call keygroup::set_position in invalid thread * wxwidgets: Actually implement load state preserving input rr1-β12 [Sunday January 15th 2012] ================================== * wxwidgets: GUI for memory search * Add warning about calling synchronous queue in callback to UI rr1-β13 [Wednesday January 18th 2012] ===================================== * Remember last saved file when populating file to load * Remember absolute path for last save * Suppost boost threads for MT dumping * Fix compiling on win32 * Lua: New function input.raw, which gives data for all buttons * Lua: input.keyhook * Make mouse be ordinary keys instead of being special * SDL: Fix NUL codepoints in commands (fix weird cursor behaviour) rr1-β14 [Thursday January 19th 2012] ==================================== * Merge status panel and main window * True movie slot support * SDL: Fix compilation error * Fix cross calls in dumper menu code rr1-β15 [Friday January 20th 2012] ================================== * Cancel pending saves function * Wxwidgets: Inline some menu handling * Use RAII for modal pauses * Some more modal pause RAII stuff * Wxwidgets: Refactor dialog code * Wxwidgets: Fix system -> reset * Wxwidgets: Read the watch expressions in the right thread rr1-β16 [Saturday January 21th 2012] ==================================== * Wxwidgets: No, Lua code does not support reading script from .zip * Wxwidgets: Increase number of autohold slots (in case more are needed) * Don't append trailing '-' to prefix when saving movie. * ROM/savestate handling fixes rr1 [Saturday January 21th 2012] ================================ * Document the memory watch expression syntax rr1-Δ1 [Monday January 23rd 2012] ================================= * Fix compression settings in lsnes-dumpavi * Fix unattended dumping * Raw dumping support * Documentation for the raw dump mode * Rewrite lsnes-dumpavi to use adv_dumper interface * Let one control the method AVI dumper preturbs the sampling rate rr1-Δ2 [Monday February 6th 2012] ================================= * Wxwidgets: Pass correct mode when dumping * Also set core ports when loading savestate rr1-Δ2ε1 [Monday February 6th 2012] =================================== * Add header file in order to make it compile with bsnes v086 * Allow compiling against bsnes v086 rr1-Δ3 [Monday February 21st 2012] ================================== * Don't prompt before quitting * Start unpaused and preserve pause/unpause over load-type ops * Try to autodetect headered ROMs * Add option to skip the ROM patching screen * Fix SDL event polling * Fix the speed throttle * Wxwidgets: Reposition buttons a bit * wxwidgets: Hotkey configuration * Wxwidgets: Improve key selector by loading the existing key if available rr1-Δ4 [Monday March 4th 2012] ============================== * Code cleanup * Fix (i)strip_CR * Fix generic_port_read() * Introduce some string functions to refactor the rest of code with * Get rid of setting::print_all() * Use standard boolean parser for parsing booleans * Remove SHA-256 indices * Refactor some generic platform code * Refactor settings commands * Don't dump JMD at undefined compression level * Remove unnecressary conversions in dumper control * Refactor ROM option parsing * Refactor some moviedata commands * Refactor edit-author * Refactor memory watch commands * Fix a bug in extract_token() * Refactor keymapper.cpp command parsing * Refactor remaining tokensplitters * Don't do anything undefined if Lua C function throws an exception * Premultiplied_color default constructor (transparent color) * Lua class system * Lua Bitmap * Oops, bsnes v085/v086 patchseries was incomplete, fix that * Debug multithreading-related errors rr1-Δ4ε1 [Monday March 4th 2012] ================================ * Fix movie corruption in certain cases rr1-Δ5 [Thursday March 8th 2012] ================================ * Add new lua hooks * Add emulator_ready() lua function * Lua: utime(): Microsecond-resolution time * Update manuals for changes * Lua: Add on_idle() and on_timer() * Don't call subframe poll on first poll (only if needed) * Fix double-polling for real * Lua: input.geta/input.seta * Add documentation for added lua stuff * Fix compilation * Wxwidgets: Fix the "internal focus lost" problem * Wxwidgets: Fix broken modifiers * Shorten maxwait from 5s to 0.1s * Lua: bit.extract * Refactor render queue management * Allow optional initial fill color for bitmaps * Lock palettes to protect color array structure * Special-case render object allocation * Add patchseries for v087 * Lua: bit.value * Lua: input.controllertype() rr1-Δ5ε1 [Saturday March 10th 2012] =================================== * Movieinfo: Print port 2 type right * Reread controls after loadstate * Actually fix the "on_input() not called after loadstate" correctly rr1-Δ5ε2 [Tuesday March 13th 2012] ================================== * Fix saving of movie data for port2 * Fix SRAM handling with Bsnes v087 rr1-Δ6 [Wednesday April 11th 2012] ================================== * Do some small fixups with dumpers * Split AVI file structure related classes to dedicated file * Refactor makefile * More code file moving * Switch to dedicated SHA-256 implementation * Fix Win32 building * Library loading support * Refactor AVI dumping a lot (WIP) * Add the needed support for internal buffering by audio codec * Add missing LF in cscd.cpp * Some dumping improvements * AVI dumping fixups * TSCC video codec * Don't corrupt AVI if emulator is closed while dumping * Make settings window scrollable so it doesn't grow excessively large * Hicolor raw dumping * Refactor codec zlib handling * RAW dump over TCP/IP support * Fix compilation (missing header) * Some makefile fixes * Fix dumper modes and remove some dead code * Support hiding the status panel * Turbo on hold/turbo toggle * Way simpler turbo implementation * Change targetfps to be percentage * Speed and volume adjustment * Command for changing volume * Implement screen scaling * Fix the "re-show too short" problem with status panel * Allow drag'n'drop of file to ROM select dialog / rom patch dialog * Configurable movie/ROM paths * Lua: gui.rainbow * Portaudio: Fix speaker popping * Wxwidgets: Move some menu entries around * Wxwidgets: UI speed adjustment * Wxwidgets: More menu twiddling * Some more twiddling with the menus * Refactor TCP dumping * Split cases for prefix and special for dumper targets * Also support dumping JMD and SDMP over TCP/IP * Win32 joystick support * Wxwidgets: Make scaling factors be global variables * Wxwidgets: New settings dialog: Axes and paths * Wxwidgets: Some more menu shuffling * Lua: gui.box * Wxwidgets: Move screen scaling into main settings dialog * Internally classify keys * Rework jukebox * Wxwidgets: Move settings to main configuration dialog * Fix error with settings avi-tscc-keyint and avi-cscd-keyint * Wxwidgets: Move the rest of config to main configuration dialog * Set wxTR_HIDE_ROOT on hotkey tree * Split keys in classes * Refactor path handling * Fix title and prompt in slot count changing * Try to fix the "key does not change" problem with Win32 * Win32: Fix the hotkeys tree by adding wxTR_LINES_AT_ROOT * Note WIN32MM joystick driver * Wxwidgets: Configuration dialog: Disable buttons that make no sense * Wxwidgets: Disable clear buttons on nonclearable settings * Wxwidgets: New ROM select dialog * Wxwidgets: Change name of SNES cartridge ROM * Wxwidgets: Make DnD to SRAM filename boxes work properly * Wxwidgets: New project options dialog * Fix the project options dialog on Win32 * Wxwidgets: Fix ROM select dialog with wxwidgets 2.9 * Wxwidgets: Project options dialog improvements: * Make settings dialog saner size if there are no joysticks * Wxwidgets: Some more attempts at fixing settings dialog sizing * Wxwidgets: Mention lack of joysticks in joystick config * Wxwidgets: Finally fix the settings dialog size * Wxwidgets: Fix key entry dialog key box sizing to behave * Wxwidgets joystick support rr1-Δ7 [Saturday April 21th 2012] ================================= * Refactor joystick support * Refactor joystick support more * Evdev: Fix pressure-sensitive buttons not showing up * Print joystick driver name for show-joysticks * Evdev: Add BTN_TOOL_QUINTTAP * Evdev: Move name tables to joystick.cpp * Evdev: Remove some unused variables * Wxwidgets: Don't print disabled axis as unknown type * Make keymapper threadsafe * Make command interface threadsafe too * Make settings threadsafe * Add option to open the config dialog without opening a ROM * Wxwidgets: Fix compiling on Win32 * Wxwidgets: Kill internal hotkeys data before exiting the config dialog * Wxwidgets: Add option to prompt for key in key select dialogs * Wxwidgets: Fix the "key goes away underneath" crash. * Add unistd.h to src/core/loadlib.cpp * Wxwdigets: Fix mouse coordinates in presence of scaling * AVI dumper: Always flush as much as possible, not just 1 frame * AVI dumper: Add mode 4: Upcovert to next common rate using SRC * New hotkeys config dialog * Add manual changes for SRC * Add start paused option * Wxwidgets: Start paused applies even to new project rr1-Δ7ε1 [Wednesday April 25th 2012] ==================================== * AVI dumper: ZMBV support * AVI ZMBV: Lots of refactoring * AVI dumper: Performance counters * lsnes-dumpavi: Change order of dumper startup and lua startup * AVI dumper: Fix secondary audio in mode 4 * AVI dumper: Do high-quality audio resampling in dedicated thread * AVI ZMBV: Pad the buffers instead of doing OOB access rr1-Δ7ε2 [Monday May 7th 2012] ============================== * Extend zlibstream to support Z_SYNC_FLUSH and simplify zmbv code * Fix reading analog values rr1-Δ8 [Thursday May 10th 2012] =============================== * Reintroduce delay reset support * Lua: memory.hash_region rr1-Δ8ε1 [Wednesday May 16th 2012] ================================== * Revamp the build system * Add autohold for 1 frame (framehold) commands * Framehold: Fix a bug where loading savestate didn't reset the holds * Framehold: Add corresponding hotkeys and fix spurious autohold signal * More build system work * Ranlib the built bsnes archive * Build: Fix wrong polarity on BOOST mt postfix * Small build instructions rewording * Some rewording on options.build * Add missing bsnes version define * Apparently delayreset only compiles with bsnes v085. * Support v086 and v087 (but without delayresets) * SDL: Save settings on exit * SDL: Add command to enter command line with specified text * SDL: More advanced editing rr1-Δ9 [Tuesday May 22nd 2012] ============================== * Try to fix the "arrow keys get lost" problem * MSU-1 support * Fix bug where mode change due to rewind is not shown * Unsafe rewinding * Fix lua_callback_do_unsafe_rewind in no-Lua case * Fix directory transversal in handling rerecord counting rr1-Δ10 [Thursday June 7th 2012] ================================ * AVI dumper: Sound mode 5: Fixed high-quality 48kHz * Lua: Reset Lua VM function * wxWidgets: Run script -> Run batch file * Expand memory addresses from 32 to 64 bits * Support pure virtual mappings * Export the iospace flag to Lua. * Fix bug with loading memory watches under Win32 rr1-Δ10ε1 [Friday July 6th 2012] ================================ * Mirror some internal BSNES structures into virtual memory space * Add support of DnD movies/saves into the main window * Fix the "click on panel locks up keyboard" for real rr1-Δ11 [Sunday July 15th 2012] =============================== * Librarify screen rendering * Split all references to bsnes core to dedicated file * Merge the new framebuffer code * Delete include/core/bsnes.hpp * Obtain the maximum number of logical controllers from the core defs * Get rid of porttype_t and devicetype_t * Move controller types to bsnes core, get rid of *LOGICAL* constants * Move prototypes for controller-specific functions from emucore.hpp * Reload ROM image on the fly * Move core-specific code to core bindings * Allow binding methods in Lua classes * Get rid of nall * Move button symbols to core specific code * Backport changes to generic stuff from gambatte core bindings work * Fix compile errors for Win32 * More compile error fixing * Remove some debug spam on startup * Fix some display scaling related bugs * Fix sorting of various comboboxes * Update the manual (common for both versions) * Remember invalid settings * Fix mistake in settings dialog (not printing errors) * [GB] Gambatte core support * [GB] Fix ridiculous resolutions for special screens * [GB] max, not min! * [GB] Get gambatte version from the core itself * [GB] Updated manual for gambatte version * [GB] Fix savestate-related bugs * [GB] Fix saving of channel 1 sweep unit * [GB] Fix dumping (wrong framerate) * lsnes rr1-Δ11ε1 [Wednesday July 18th 2012] ==================================== * Fix bug in skip poll feature rr1-Δ12 [Friday July 20th 2012] =============================== * Non-insane savestate anchoring rr1-Δ13 [Thursday August 30th 2012] =================================== * Don't try to call methods from uninitialized pointers * Memory search extensions * Preserve the movie if loading state in readonly mode * Add option to use the older read-only load behavior * Fix timeline check in one special case * Revamp ROM loading * Update manual * Fix various bugs introduced in ROM changes * wxwidgets: New menu layout * Don't throw exceptions from ROM loading out of main loop * Standalone hotkey configuration dialog * wxwidgets: Cleanup the shown bindings a bit * wxwidgets: Clean up key configuration dialog * wxwidgets: Use comboboxes instead of 3state checkboxes * wxwidgets: Also unpause on ROM DnD rr1-Δ13ε1 [Saturday September 1st 2012] ======================================= * Video dumping: Add pipedec * Fix uninitialized variables in bsnes core * [GB] Fix a crash when loading a ROM rr1-Δ14 [Sunday September 9th 2012] =================================== * Fold Gambatte code to mainline rr1 maintenance branch * Say what file extension is expected from dump file * Memory watch computation data typing * Memory watch: lsnes internal mmio area * New memory watch editor * Allow adding addresses directly from memory search * Wxwidgets: Split memory watches in panel * Hexadecimal memory watch support * Wxwidgets: Refactor memory search code * Wxwidgets: Make status panel monospaced * Wxwidgets: Memory search: Add an option to disable VMAs * Make / in memory watches mean FP division. * lsnes-dumpavi: Don't hold back on emulation speed * Base subtitle support * Wxwidgets: Basic subtitles editor * Document subtitle-related stuff * Subtitle management from Lua * Allow dumping subtitles as .sub file * Export the rerecord count via MMIO and Lua * Fix rerecord count reporting when loading movies * Don't trash movie data when loading in readonly mode rr1-Δ14ε1 [Friday September 21st 2012] ====================================== * Fix crashes when closing settings dialog on Mac OS X * Fix build on Mac OS X * Lua: loopwarapper * Fix syntax bug in serialization.hpp * Allow hiding the messages window * Lua: input.joyset * Allow inconsistent savestates * lsnes-dumpavi: Allow setting settings * Implement mode where emulator saves every frame * Fix desync on loading savestate in readonly mode after movie * Fix save dialogs not working right on Mac OS X. * Fix insane status width on Win32 * Make autohold not hang the emulator for a long time * Wxwidgets: Allow loading ROMs and movies from commandline * Update manual rr1-Δ15 [Wednesday September 26th 2012] ======================================= * Be bit smarter with --load * New audio API WIP * Fix building after the commentary track thingy * Some more build fixing for Win32 * Lua: input.joyget * Also add support for Gambatte SVN 358 * Use builtin font for rendering status panel * Fix the new status area code * Add option to detach memory watch to its own window * Recent ROMs / Movies menu * Libao support * Update manuals about libao * Make lag counter useful in SNES games that autopoll * Fix a syntax error in gambatte patche * Fix missing wxT in recentmenu * Fix gambatte core bindings rr1-Δ15ε1 [Thursday September 27th 2012] ======================================== * Wxwidgets: Don't resize in paint handler, it makes wxwidgets blow up * If a ROM and movie are dropped at once, load both * Gambatte: Don't save spurious movie SRAMs in movie files * Make SGB ROMs actually usable * Don't probe for existence for filename to in recent_files::add/get * Only one commentary track editor at a time please * Commentary editor: Allow reopening the editor after close rr1-Δ15ε2 [Saturday September 29th 2012] ======================================== * Lua: memory.readregion / memory.writeregion * Lua: memory.map* * Lua: memory.map_structure * Fix bus_address for gambatte * Fix features dependent on bsnes debugger * Cleanup bsnes debugger logic * Fix resets in presence of save every frame rr1-Δ15ε3 [Saturday October 27th 2012] ====================================== * Lua: input.lcid_to_pcid * Fix off-by-one bug with slot hashes * Fix crashes on certain memory watch expressions * Lua: memory.read_expr * Lua: Fix memory.read_expr on nil argument * Fix the code to compile on G++ 4.7 * Change button_id to be a function pointer field, not a virtual method * Refactor porttype_info into library/ (as port_type) * Add bsnes patches to fix libsnes to compile on GCC 4.7 * Revert "Refactor porttype_info into library/ (as port_type)" * Gambatte: Always use legacy lag counting * Memory commands: Memory addresses are up to 16 hex digits, not up to 8 * Fix analog controllers * Fix autohold menus * Fix button symbols in input display * Compensate for nuts bsnes superscope/justifier handling * Lua: Fix bit.extract with booleans rr1-Δ16 [Thursday January 24th 2013] ==================================== * Stop on movie end: Stop at correct frame, not one frame too late * Clean up library includes * Backport library updates and sort out the fucking messages mess * Portaudio: Re-enable blacklisting of default and sysdefault * Fix crashes when closing lsnes with voice playback active * Refactor voice import/export and support pregap, postgap and gain * Support voice OggOpus import/export * Hack to allow using 16-button controllers * Remove nonexistent controllers from input display * Don't use constructs not implemented in gcc 4.6 * Wxwidgets: Allow setting voice/record volumes from the UI * Cores: Blurb * Update libgambatte to SVN 364 * Load XML even without gamepack * Support screen rotation & flipping * Backport the new bit functions * Lua: Backport new Lua functions from master and add bit.rflagdecode * Real-time updates for voice streams in editor * Live subtitle editing * Actually honor music volume setting rr1-Δ16ε1 [Sunday February 3rd 2013] ==================================== * Wxwidgets: Fix memory watch rendering * Allow setting stream gain * Wxwidgets: VU meters & volume adjustment window * Lua: Custom fonts support * Lua: Fix bug with methods and resetting Lua VM * Fix rerecord count when loading movies * Fix paths in bsnes patches * Change AVI default sound mode * Fix loading standard-mode movies rr1-Δ17 [Monday February 11th 2013] =================================== * Very basic movie editing support * Movie editor: Refactoring * Movie editor: Popup menu * Movie editor: Don't offer popup menu items that make no sense * Movie editor: Show button/axis names in popup menu * Movie editor: Don't offer out-of-movie edits in menu * Movie editor: Allow changing window size * Movie editor: Sanity-limit number of rows * Movie editor: Don't recount the entire movie when change is known * Movie editor: Insert frame after * Movie editor: Handle partially stored frames properly * Fix all sorts of wacky behavior with dummy audio callback * Show nominal and actual sample rates in VU window * Movie editor: Delete (sub)frame * Movie editor: Fix deleting the leading subframe * Movie editor: Locked scrolling mode * Movie editor: Reorganize the popup menu a bit * Movie editor: Show movie length * Win32: Use MoveFileEx to replace the target in one operation * Movie editor: Fix compilation on Win32 * Wxwidgets: Repaint the status panel after RW/RO switch * Movie editor: Run to frame function * Movie editor: Append multiple frames at once * Movie editor: Truncate movie * Movie editor: Scroll to specified frame * Movie editor: Scrolling fixes * Movie editor: Handle scrolling when rewinding * Movie editor: Tweak colors * Movie editor: Scroll to current frame * Update manual * Movie editor: Allow toggling whole sequence of axis values at once * Movie editor: Show buttons even when released * Backport some bugfixes from compiler warning fixing * Fix compiling on Win32 * Allow changing the Opus bitrate at runtime * Wxwidgets: Load filenames as ROMs and support --lua=<file> * Wxwidgets: Support -h and --help rr1-Δ17ε1 [Monday March 4th 2013] ================================= * Commentary: Max bitrate limiting * Unconditionally reload hostmemory on loadstate * Lua: Query bindings, manipulate aliases, create inverse bindings * Fix crash with bitmaps and resetting Lua VM * More paint / reset fixes * Voicesubs: Don't access uninitialized variables * gui.text: Don't corrupt memory on rendering off bottom * Fix writing of screenshot magic to be reliable * Lua: Some new and backported input functions * Lua: input.port_type: Be consistent on type of port 0 * Movie editor: Fix the reset delay counters to be right way around * Lua: input.controller_info * Lua: Document input.controller_info * Lua: on_snoop2 * Lua: on_button and input.veto_button rr1-Δ17ε2 [Monday April 1st 2013] ================================= * Fix saving PNG screenshots * Movie editor: Sweep axis * Load selected slot in ro/rw/preserve/movie mode * input.joyset: Preserve and invert user input * Allow immediate saving at point of save * Fix mouse movement * Wxwidgets: Filter filenames in load/save dialogs, autoappend extensions * data/verysmall.font is mising glyph 70 (F) * Lua: CUSTOMFONT: Allow painting with halo * Fix value search to work with byte types rr1-Δ17ε3 [Wednesday April 17st 2013] ===================================== * Fix status panel (and movie editor) flicker * Actually fix the statuspane/movie-editor flicker * Show effects of Lua in input display * Offer lsmv.backup as file filter too for load lsmv * Allow slowing down subframe advance (it used to always be very fast) * Display current save slot information * Add snes9x fonts * Fix hotkeys stopping working after X-ing settings dialog * Movie editor: Fix bug if extending finished movie * Cap current_frame_first_subframe to movie size when recounting movie * Movie editor: Interpret ctrl+click as right click rr1-Δ17ε4 [Monday June 24th 2013] ================================= * Lua: Fix drawing lines in some angles. * Fix compilation error if size_t != uint64_t. * Ogg: Properly initialize data_count on read ogg pages. * Memory search: Autoupdate memory search by default. * Memory search: Move buttons to context menu, add disqualify address. * Memory search: Use text panels instead of textbox. * Backport Mac OS X build fix. * OggOpus: Fix Vendor vs. ENCODER. * Lua: gui.delta_<class>_gap. * Fix RTC on loadstate in readonly mode. * Save/Restore host memory across unsafe rewinds. * gui.text: Fix clipping to left/top border. * Implicit creation of inverse binds for aliases. * Fix subtitle generation. rr1-Δ18 [Thursday July 25th 2013] ================================= * Fix reading signed values via read-s* * Movie editor copy&paste * Fix reading system controls using input.get2. * (D)Bitmap decoding from PNG support. * Allow loading PNG/PAL/BITMAP from string. * Lua: Don't crash if some method throws. * Support Y-cabled gamepad16. * Lua: Allow shortening evaluate-lua to L. * Lua: Methods for handling movies as objects. rr1-Δ18ε1 [Friday October 4th 2013] =================================== * Add installer script * Backport support for SGB GB WRAM and HRAM. * Support BITMAP+PALETTE -> DBITMAP. * If loading movie/savestate without ROM, prompt one. * Fix movie initialization on ROM load. * Fix compilation if wxString is wchar_t based. * Save ROM name hints. * Use hints for default filename on ROM load. * runuifun: Call the function only once. * Fix NULL pointer dereference if gametype changes from NULL. * Lua: gui.arrow * Fix diagonal arrows. * Print() can print any type. * Extend userdata printing. * Fix wrong use of lua_error. * Lua: Tilemaps * Don't allow editing reset flags after reading. rr1-Δ18ε2 [Monday October 14th 2013] ==================================== * Fix crash if reloading ROM with non-default controllers in readwrite mode rr1-Δ18ε3 [Sunday January 5th 2014] =================================== * Backport bsnes/gambatte patches and make emu at least run * Fix compiling gambatte binding with versions not supporting debug extensions * Handle frame spanning movie page boundary * Platform::wait(): Never wait on zero delay Using compat core instead of accuracy gives about 2x speed and should only affect Air Strike Patrol (which uses graphics effects Compat can't emulate).
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
adelikat wrote:
I think maybe to be fair, the existing people should be kept in the list but that we reset the polls and give some time for nominating of some other people.
Dooty (mentioned earlier too) jlun2 scrimpeh
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
bzb95 wrote:
Can you please explain to me how to make a patch on git? Because for me "create serial patch" does nothing.
Commit the changes (this is local-only operation) and then use git format-patch.
bzb95 wrote:
Ilari wrote:
I have no idea what Dolphin calls "Frame".
A frame is every time the controller is polled. Which for dolphin is 60 times a second for any NTSC game. Even if it is a 30 fps game.
Well, I guessed that it would be something like that (especially considering that the breakthrough in rerecording was allowing multiple polls per actual frame).
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
rog wrote:
Well, a lot has changed recently. A few weeks ago idle skipping caused very frequent desyncs, but that doesn't seem to be the case anymore.
IIRC, the problem with dumping was that loading times and similar things were greately shortened on dumped video. Such nonlinear desyncs are almost impossible to compensate for. And testing that multicore stuff would need multiple computers (but then, sync check requests aren't exactly new thing).
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
rog wrote:
I'm not sure exactly what idle skipping does, so not sure if it's acceptable to use in a run
Some time ago, it seemed that idle skipping messed with dumping in MAJOR way. And also with multicore, it isn't just about sync on one computer, it is sync across computers. I have seen numerious cases where what syncs on one computer doesn't sync on another.
Post subject: Re: "Gtk-CRITICAL" error in fceux on debian built from source
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
offonoff wrote:
(fceux:2413): Gtk-CRITICAL **: gtk_combo_box_real_get_active_text: assertion `GTK_IS_LIST_STORE (combo_box->priv->model)' failed [^this, a bunch of times] Segmentation fault
GTK programs have tendency to spam those assertion failures, but usually don't crash. Now, the crash might have been caused by the same error that caused the assertion failure. Backtrace could probably tell more...
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
STBM wrote:
I have a little question : What is VI ?
Vertical Interrupt. Raised every time vertical blank starts, that is, once per actual frame. I have no idea what Dolphin calls "Frame".
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
c-square wrote:
I do want to know, why the start from a save state?
AFAIK, It does not start from save state, it starts from SRAM, and that is to access the highest difficulty.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
NitroGenesis wrote:
Why doesn't sonikkustar have a trophy in his siggy wiggy?
The award winners haven't yet been entered to the database (gotta have those trophy images first).
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
GoddessMaria15 wrote:
What TASeditor means is that it should not be possible to have both Tags/Labels in the same run. They contradict each other
Looking at movie tags, there is no "no damage", only about taking damage or forgoing taking damage (which are opposites).
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
feos wrote:
I want to diaplay on the screen some sentence. And if it's too long to fit in the screen, is it possible to automatically break the line? Like, detect the number of symbols in the string and find 'space' to break after?
Number of characters in string can be found out using the # operator (#string_variable) As for finding space, one could try to use some string function (the ones with names starting with 'string.'), see the Lua reference manual. Or just read one char at time using string.sub(string_variable, character_index, character_index). Note: The indexes start at 1, not 0.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
Toothache wrote:
Fixed the playlist link for you.
The issue was caused by a wiki bug: Specifically, it doesn't recognize https:// links as external, making it impossible to link into https:// URLs. As workaround, I changed the https link into http link (I also fixed the bug, but the fix hasn't been deployed yet). Whee... noparse forum tag can't disable autolinking. But putting a dummy markup inside what looks like URL does.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
arukAdo wrote:
Guess its going to be that time of the year where I need to find awards icons and replace 2010 with 2011?
Yup.
arukAdo wrote:
Or did I was enought smart to make 2011 in advance?
I don't know. :-)
arukAdo wrote:
Do we have something already for "first edition" thing?
1st edition was present in 2010.
arukAdo wrote:
I assume the new categories are arcade and computer
All categories are listed in the first post. Arcade isn't new category, computer is Two of three platforms in 'computer' were in 'new platforms' last year, one is new.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
Dada wrote:
TASVideos has utf8 explicitly defined as its character encoding, in the XML declaration. Maybe it needs to have a <meta> tag as well? I'm not sure if it sends an utf8 header.
$ HEAD http://tasvideos.org/
200 OK
Connection: close
Date: Tue, 17 Jan 2012 12:45:17 GMT
Server: Apache/2.2.16 (Debian)
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8
Client-Date: Tue, 17 Jan 2012 12:45:54 GMT
Client-Peer: 206.51.237.49:80
Client-Response-Num: 1
So it says the front page is HTML using UTF-8 character set. Given that <meta> is for sending the equivalent of headers, I wouldn't see how that would help. But then, given all sorts of browsers out there...
Post subject: Re: video fail
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
antd wrote:
lol well i'm totally lost with this one no idea how the total duration comes out to 2 hours 20 minutes :p
It seems that youtube has gotten a new bug: Sometimes the length of the resulting movie is not what it should be. Try re-uploading?
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
How you access the hardest difficulty without SRAM? Some source tells that the hardest difficulty must be unlocked. While using SRAM would be technically be possible, there are special rules regarding starting from SRAM (such as having verification movie). Edit: As noted below, there is verification movie in initial post.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
RakuRocRex wrote:
What's a rom?
Console cartridges contain: * Some read only memory (permanent, contains the game code and data), * Some random access memory (also known as SRAM, for savegames) * Perhaps some extension chips (for special effects and such). For emulating a game: * One must have copy of Read Only Memory from cartridge. This is called ROM. * Most TASes start with Random access memory clear, so it is usually not needed. * Extension chips need to be emulated by the emulator itself.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1142)
Joined: 5/1/2010
Posts: 1217
snorlax wrote:
Could someone put a list of all their 2011 movies in here?
Not specifically these TASers, but there is by-TASer list for 2011: Wiki: MoviesFrom2011ByAuthor