Post subject: openMSX Emulator Development
adelikat
He/Him
Emulator Coder, Expert player, Site Developer, Site Owner (3580)
Joined: 11/3/2004
Posts: 4736
Location: Tennessee
openMSX is an open source emulator that emulates MSX, MSX2, and MSX2+ computers. openMSX contains TAS tools and movies are approved for TASVideos submission.
It's hard to look this good. My TAS projects
Post subject: openMSX 0.8.0 has been released
Emulator Coder, Player (31)
Joined: 4/24/2010
Posts: 73
Location: California
openMSX 0.8.0 (2010-06-02) -------------------------- This release brings you two major new features: reverse and Laserdisc. Reverse is similar to what you can do in meisei: you can 'rewind' time with your finger tip, to correct game playing mistakes or inspect what caused a crash. Laserdisc is the Palcom system introduced by Pioneer in 1984: now you can play all the Palcom MSX Laserdisc games in openMSX! For the rest we have mostly fixed smaller issues and added smaller features (see below). Here's the list with all highlights: New or improved emulator features: - Added reverse: go back in time to correct mistakes or replay your actions (use PgUp and PgDn to control, enable visualization of this feature with this console command: set auto_enable_reverse gui). For more information on usage, please see the (links in the) FAQ of the manual. - Debugging: - added information on last address/value written which triggered watch point - added several new debuggables: keymatrix, joystick ports, romblock - Windows unicode fixes - Added possibility to link to Generation MSX from within scripts - Various internal code cleanups - Better SDLGL-PP TV scaler, sensitive to scanline setting - Many speed and code size optimizations, developed in the context for the Dingoo port - Renamed "update" command to "openmsx_update" to avoid conflicts with the native Tcl command - Various tweaks to OSD menu: new colors (thanks Wolf), save states show date, toys menu, ... - Added new icon skin especially made for handhelds - Added OSD virtual keyboard (only international QWERTY layout for now) for devices without keyboard - Added OSD mouse support, you can now easily create drag and drop of MSX objects, for instance - New scripts that demonstrate the OSD framework: - experimental OSD script for tabbed MSXing (controllable from OSD menu) - music keyboard (visualize notes of sound chips) - SCC editor (edit SCC wave forms) - Experimental (still primitive) support for TAS (http://tasvideos.org/) MSX device support: - Added emulation of Palcom Laserdisc games on the Pioneer PX-7/PX-V60 (note:not visible in screenshots and video recording yet) - Added support for balance per channel, including support for the "stereo" effect of the FM Stereo PAK and the stereo PSG of the Pioneer PX-7 - Added new mapper: Arc - Accuracy improvements: - minor fixes in V99x8, V9990, YM2413 and YMF278 emulation - Added emulation of the trackball (thanks n_n) Build system, packaging, documentation: - Added platform/CPU support for: PA-RISC, Dingoo, SuperH, Nokia N900/Maemo, MacOSX 10.6 / 64-bit, GNU/kFreeBSD, Atmel AVR32 - For Laserdisc support (which is optional), added dependency on libogg, libvorbis and libtheora - Removed dependency on SDL_image
Anyway loads of changes and new features :) including some TAS tools. Pre-compiled versions are available for Windows (32bit and 64bit), MacOSX (universal) and Dingux (the Dingoo handheld!). Please redirect your browsers too: http://www.openmsx.org and download the new release. We're new to TAS so please provide us with feedback regarding features you want to see.
MSX Game specialist / openMSX team member
Emulator Coder, Player (31)
Joined: 4/24/2010
Posts: 73
Location: California
Now that openMSX 0.8.0 is released it's time to tell something about the TAS functions and some 'best practices’ Step 1) Open openMSX either directly by clicking on the icon or through catapult located in the /openmsx/catapult/bin directory. Bring up the console and type in 'set auto_enable_reverse gui'. This command will auto enable the reverse feature every time you start openMSX, it will also give you a clickable time bar located at the top of openMSX (hover with your mouse to make it visible) the following hot keys are now available to use: - page up : reverse 1 second in time (openMSX will replay every keystroke unless/until any MSX key is pressed) - page down : forward one second in time (if replay is still available) Step 2) If you have the openMSX console closed bring it up again, now type in "toggle_cursors" (you can also use tab completion in the openMSX console) this will show you when a keyboard cursor has been pushed and thus when a key has been activated. Step 3) The next function is "enable_tas_mode", this will bring up a frame counter and activate the 'END' key. The end key is used for frame advance. You can hold either the END key or push it briefly, try for yourself and see what the difference is. Note with regards to the frame counter: make sure you always use an NTSC machine (60hz), if you use a PAL (50hz) machine the frame counter will not be accurate since a 50hz machine briefly goes to 60hz at start up. ------------------- When making a movie just use the reverse function to record all the keystrokes, once you're done check out this link: http://openmsx.sourceforge.net/manual/faq.html#perfect_videos
MSX Game specialist / openMSX team member
Editor, Emulator Coder, Expert player (2100)
Joined: 5/22/2007
Posts: 1134
Location: Glitchvania
Wow, I tested this version of openMSX just now and realized that it did support rerecording! The way it recorded the replays was quite a bit unconventional, which I found kind of interesting. Under the experimental TAS mode (frame advance being used), it would be appreciated if the graphics were redrawn immediately after each reversion and the input display were updated without delay. Maybe more tests at some other time. Anyhow, good job! EDIT: Just a minute ago I realized it was the conventional way most PC gamers saved their replay files! This enables the player to record unexpected things at any time.
<klmz> it reminds me of that people used to keep quoting adelikat's IRC statements in the old good days <adelikat> no doubt <adelikat> klmz, they still do
Emulator Coder, Player (31)
Joined: 4/24/2010
Posts: 73
Location: California
klmz: thanks for the feedback, I've just fixed the cursor key problem. in the script tas_tools.tcl (located in /openmsx/share/scripts) change line 116 from after frame [namespace code show_keys] into after realtime 0 [namespace code show_keys] I opened a feature request on the 'screen update' (which was a known problem .... see comments in the tas_tools.tcl script)
MSX Game specialist / openMSX team member
Skilled player (1304)
Joined: 9/7/2007
Posts: 1354
Location: U.S.
Whenever I try & type a command, I erase a relay that I have. Any fix to this?
Active player, Editor, Emulator Coder (262)
Joined: 10/17/2010
Posts: 124
Open the console first with F10 :P It's a pain if you don't have F-keys. We didn't take that into account. (Replied after a discussion on IRC what is going on...)
Active player (405)
Joined: 3/22/2006
Posts: 708
Okay, I'm trying out openMSX and I'm having trouble with it. I'm using end to frame advance and scroll lock to reverse frames. That seems to be working well, but when I reverse and then advance it doesn't seem to be overwriting my input. To be more specific, I pushed spacebar at frame 232, then reverse back all the way to frame 200 and then frame advance again and it still is being pushed at 232.
Active player, Editor, Emulator Coder (262)
Joined: 10/17/2010
Posts: 124
After reversing, openMSX is in a replay mode. It just replays what you entered before. As soon as you give some new input, it will erase the future and starts appending the new events from that moment. That should explain what you see.
Editor, Skilled player (1401)
Joined: 3/31/2010
Posts: 2081
Heisanevilgenius wrote:
Okay, I'm trying out openMSX and I'm having trouble with it. I'm using end to frame advance and scroll lock to reverse frames. That seems to be working well, but when I reverse and then advance it doesn't seem to be overwriting my input. To be more specific, I pushed spacebar at frame 232, then reverse back all the way to frame 200 and then frame advance again and it still is being pushed at 232.
To overwrite input in openMSX, you actually have to provide 'new' input. If you let the reverse play out, I will do just that. Coupled with the input delay MSX games exhibit, it's unfortunately a bit messy to work with (.omr files will have lots of 'trash input', which was just used to overwrite the replay), but a dedicated 'empty input' key would be kind of redundant, I think. Fortunately, most games are too crude for this to really make a difference.
Active player (405)
Joined: 3/22/2006
Posts: 708
Well, that makes starting the TAS kinda ridiculous. I need to press spacebar to start the game at the earliest possible frame. Having to go back and add unnecessary input before that makes figuring out the earliest possible frame to do it almost impossible.
Active player, Editor, Emulator Coder (262)
Joined: 10/17/2010
Posts: 124
Well, a dozen or so TASes have been made... so it's not impossible... Scrimpy, any advice here?
Editor, Skilled player (1401)
Joined: 3/31/2010
Posts: 2081
Heisanevilgenius wrote:
Well, that makes starting the TAS kinda ridiculous. I need to press spacebar to start the game at the earliest possible frame. Having to go back and add unnecessary input before that makes figuring out the earliest possible frame to do it almost impossible.
As far as title screens are concerned, you simply have to pay attention to what frame you're on when you press spacebar. If e.g. frame 200 is too early, reverse, use some 'blank input' and try on frame 202. Thankfully, practically no MSX game utilizes the full keyboard, so you should always be able to find some 'blank' key to use which has no effect on the game. The exception to this is random number generation, which in fairly many games utilizes the full keyboard. This normally works in your favor, however, as you can manipulate luck without wasting time. (Examples: Contra, Arsene Lupin, Vampire Killer).