Post subject: Broken VDP?
Editor, Player (68)
Joined: 1/18/2008
Posts: 663
There is a long standing bug in Gens where it does not emulate "Sonic Jam 6" correctly. The Lakitu enemy, usually first seen in 4-1 after warps, spams a spiney every other frame. On real hardware, in Kega Fusion, and in Regen, Lakitu seems to somewhat randomly and rarely throw spineys. He throws them more when running. I've analyzed this bug with the help of Regen and traces in Regen and Gens and after going through these traces, have determined that the bug is located around offset 63f4, where a MOVE from a value located in VDP memory space is moved into a register and ANDed with long #$FF, then the result checked and, in Regen, a jump to a return is usually performed. In Regen, this value (the H/V sync value) is all over the place, resulting in the sort of randomization I see from Lakitu. In Gens, this jump isn't performed, causing the jump not to occur and some code to be executed, one being a value being set that causes Lakitu to spam his spineys. The instruction that sets the value that causes Lakitu to throw a spiney is located at offset 6404. Nopping this (use code 6404:4E71) disables Lakitu's ability to throw spineys, verifying that this is the bug. I don't know 68k asm and don't know anything about the VDP, so wouldn't know how to handle this... EDIT: Using built-in debug always shows "V Int Happened 1" and "Line Num 262", making me assume that the VDP has already executed everything it will execute and that by being on the last line, 0xc00008 will be 0xFF? So is it just an incomplete VDP implementation, is the debugger lying, can the debugger only show after the VDP has done its thing or is the debugger responsible? I am guessing #3...
true on twitch - lsnes windows builds 20230425 - the date this site is buried
HHS
Active player (282)
Joined: 10/8/2006
Posts: 356
There's a problem when I call memory.getregister("pc") from a write callback. It returns a completely wrong address.
Post subject: gens.emulateframeinvisible normal show the GUI
Joined: 1/31/2011
Posts: 2
I'm trying to write functions to speedup the emulator, but the codes do not work, gens.emulateframeinvisible (), and nothing of these works. In older versions of Gens, these functions worked, but not work in the last build. Exemple: gui.register(function() gens.emulateframeinvisible() end) Running this script, the emulator remains displaying images. How to disable the GUI?
Active player (405)
Joined: 3/22/2006
Posts: 708
I realize this is a pretty old thread but are there any plans to implement a version that can record reset?
Editor
Joined: 3/31/2010
Posts: 1466
Location: Not playing Puyo Tetris
Heisanevilgenius, Bizhawk is adding Genesis emulation shortly. It's in Beta, but not good enough for TAS.
When TAS does Quake 1, SDA will declare war. The Prince doth arrive he doth please.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
http://code.google.com/p/gens-rerecording/downloads/detail?name=Gens11svn306.7z
* Graphics: Added "Pink Background" option and hotkey. Flag is stored to config. Color is "Magic pink", r=max, g=0, b=max. * Graphics: Toggled layers now are saved to config as well. TODO: Figure out hex value for pink for mode_555. TODO: Configurable backdrop color (is it needed?)
Heisanevilgenius wrote:
I realize this is a pretty old thread but are there any plans to implement a version that can record reset?
http://code.google.com/p/gens-rerecording/issues/detail?id=70 First of all, we don't know if Reset emulation is any correct. Then, movies contain 3 bytes per frame. Bytes 0 and 1 are for 3-button controllers 1 and 2. Byte 3 is either for 3-button controller 3, or for additional 4 buttons of controllers 1 and 2 (X, Y, Z and Mode). So, there is nowhere to add one more flag for Soft Reset without heavy hacking.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Editor, Experienced player, Reviewer (967)
Joined: 4/17/2004
Posts: 3107
Location: Sweden
Tested briefly, seems to still work. One thing: would it be possible to update the info in the Help > About box for new releases? It still says v11a, even though I think this version is 11b. Also, there seem to be different builds for the same version, and it is not possible to differentiate between them other than file size (file names can be changed), and then you still don't know which version is newer. It would be helpful if the build number was also in the About box. (I had a problem previously where I and another person had different results for the same script, even though our emulators seemingly had the same version, 11a. Turns out we had different versions anyway.)
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
v11b is easy, but displaying the build number for interims is a whole another feature. Uploading the latest build after each commit is way easier, just make sure you use it.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
WST
She/Her
Active player (442)
Joined: 10/6/2011
Posts: 1690
Location: RU · ID · AM
I had some troubles when reading GMV file header, because the format specification does not mention that «special flags» are encoded as big endian word (or even as just a single byte — then the following byte can be considered unused). Also the very first piece, «16-byte signature and format version», actually takes 15 bytes (without the ending "9"), which is obvious from the address of the next element. After all, it’s a pity (and, in my opinion, a mistake) that GMV format does not have any reserved space. If there were at least 4 unused bytes, it would be trivial to record a single reset (by simply storing reset position in those bytes).
S3&A [Amy amy%] improvement (with Evil_3D & kaan55) — currently in SPZ2 my TAS channel · If I ever come into your dream, I’ll be riding an eggship :)
marzojr
He/Him
Experienced player (742)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
There are 2 ways in which the GMV format could be extended: (1) new version number, new format; (2) there are 5 unused bits in the 'special flags' bit. Truth be told, the major hurdle would be going through all the files looking for all the places where hard-coded GMV stuff is used and modifying them -- but since this would be required for GMV2, it might be better to implement GMV2 instead. But as has been mentioned, it is not known exactly how accurate is the reset emulation.
Marzo Junior
WST
She/Her
Active player (442)
Joined: 10/6/2011
Posts: 1690
Location: RU · ID · AM
Anyway implementing reset emulation is not possible without loosing backward compatibility (or I am wrong?)
S3&A [Amy amy%] improvement (with Evil_3D & kaan55) — currently in SPZ2 my TAS channel · If I ever come into your dream, I’ll be riding an eggship :)
Emulator Coder, Skilled player (1140)
Joined: 5/1/2010
Posts: 1217
WST wrote:
Anyway implementing reset emulation is not possible without loosing backward compatibility (or I am wrong?)
Obviously any movie using reset emulation requires a new version, but it could be possible to write old-format movie if there are no resets (as long as there is a way to tell formats apart). However, this might not be easy, depending on how exactly Gens writes the movies...
WST
She/Her
Active player (442)
Joined: 10/6/2011
Posts: 1690
Location: RU · ID · AM
I was speaking of GMVv2 movies which do not contain resets — will it be possible to play them on older Gens versions, or not. I do not see how we could make it possible, because storing the information about resets will inevitably affect header length (unless you sacrifice some bytes of the comment, which is certainly not a good solution). There will also be a need in modifying software working with GMV files — microstorage, TAS movie editor & probably other applications which I am not familiar with…
S3&A [Amy amy%] improvement (with Evil_3D & kaan55) — currently in SPZ2 my TAS channel · If I ever come into your dream, I’ll be riding an eggship :)
marzojr
He/Him
Experienced player (742)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
GMV2 (actually, GM2) is a completely new text-based format that has been proposed (see here); older versions of Gens can't work with it at all. Moreover, due to how it is implemented in Gens, the same is true for any extension to GMV.
Marzo Junior
WST
She/Her
Active player (442)
Joined: 10/6/2011
Posts: 1690
Location: RU · ID · AM
marzojr wrote:
GMV2 (actually, GM2) is a completely new text-based format that has been proposed (see here); older versions of Gens can't work with it at all. Moreover, due to how it is implemented in Gens, the same is true for any extension to GMV.
Oh! Never heard of it. Thanks for the information, marzojr… (soon after reading) well, looks promising… I like the idea of storing the game’s and BIOS hashes in the file header — it could allow implementing my old idea (which falls into problems with law and ROM lookup) of making completely automated TAS video encodes. For example, a web service where any TASer can upload his/her GMV/GM2 file and download back the ready video file. :)
S3&A [Amy amy%] improvement (with Evil_3D & kaan55) — currently in SPZ2 my TAS channel · If I ever come into your dream, I’ll be riding an eggship :)
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
I will accept help if someone wants to make gm2 support (with resets).
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Truncated wrote:
One thing: would it be possible to update the info in the Help > About box for new releases? It still says v11a, even though I think this version is 11b. Also, there seem to be different builds for the same version, and it is not possible to differentiate between them other than file size (file names can be changed), and then you still don't know which version is newer. It would be helpful if the build number was also in the About box. (I had a problem previously where I and another person had different results for the same script, even though our emulators seemingly had the same version, 11a. Turns out we had different versions anyway.)
http://code.google.com/p/gens-rerecording/downloads/detail?name=Gens11svn319.zip
Revision number is now displayed in the Gens dialog name for interim Release builds. Otherwise, either "debug" is displayed for Debug builds, or just version number for official releases. Was unable to do it in the "About" dialog and not break its look.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
WST
She/Her
Active player (442)
Joined: 10/6/2011
Posts: 1690
Location: RU · ID · AM
Sorry for a dumb question, but who is feykomylce in the svn log? And probably even more dumb question: is there a possibility for Upthorn and nitsuja to continue contributing in the project development?
S3&A [Amy amy%] improvement (with Evil_3D & kaan55) — currently in SPZ2 my TAS channel · If I ever come into your dream, I’ll be riding an eggship :)
marzojr
He/Him
Experienced player (742)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
I believe feykomylce is feos, but I could be wrong. I would also like to volunteer to help with Gens-rr, even though I will probably not have much time to do anything for it in the coming weeks.
Marzo Junior
Joined: 7/2/2007
Posts: 3960
WST wrote:
is there a possibility for Upthorn and nitsuja to continue contributing in the project development?
Dunno about upthorn, but I haven't seen much of nitsuja in ages; I'd guess he's moved on to other projects/communities.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
WST wrote:
Sorry for a dumb question, but who is feykomylce in the svn log?
Yeah, dumb question indeed. Фэйкомыльце по-русски же :P
marzojr wrote:
I would also like to volunteer to help with Gens-rr, even though I will probably not have much time to do anything for it in the coming weeks.
Send adelikat your gmail.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
http://gens-rerecording.googlecode.com/files/Gens11svn325.zip Added turbo toggle. Dump AVIs at max speed now.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Spikestuff
They/Them
Editor, Expert player, Publisher (2254)
Joined: 10/12/2011
Posts: 6324
Location: The land down under.
feos wrote:
http://gens-rerecording.googlecode.com/files/Gens11svn323.zip Added turbo toggle. Dump AVIs at max speed now.
Link to video <3 you feos.
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. These colours are pretty neato, and also these.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
http://gens-rerecording.googlecode.com/files/Gens11svn327.zip Finally added saving screenshot to clipboard (yay!) Finally added ability to remove HUD/messages from screenshots (4 years later): determined by Tools -> AVI -> Clean AVI screen. Blue Pause effect off by default.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.