Is VBA-RR using the VBA-M cheating engine or original VBA? I'm working on a hacking project and VBA-M's the only one I've used so far (out of VBA, VBA-h, VBA-m, and VBA-SDL-H) that has an accurate cheat engine.
Can a few features be added to the memory editor? It'd be nice to have things like having right-clicking freeze a value or having a doubleclick on a value add a code at that address.
edit: there also seems to be a limit to the number of currently active codes, which is killing something I'm working on.
I've taken a quick look. I'm not sure which bits aren't finished and I'm pretty sketchy when it comes to C#, but it'd be great to talk with you on IRC or something to see what's left.
One part of the frontend that particularly interests me is matching movie files to ROM names. This is a very important part of another project I'm interested in and as such I'd like to try and cannibalize it once everything is complete.
There's a few main classes. RomFile and MovieFile are relevant to what you want. RomFile determines the hash of a rom, and MovieFile determines the stored hash of a movie. Both of these classes are abstract and have a child for each type of rom/movie.
DatabaseAssistant.UpdateRomFiles is the function that builds the database of rom file names and rom hashes. You can see how it handles compressed files in there.
NEW TO EMULATOR MOVIE FRONTEND? It's a way to double click on a movie file in Explorer, such as a .fm2, and have it start playing in an emulator instantly. This software will locate the proper rom on your harddrive and do the rest of the work for you. Essentially making it as convenient as an encoded video file.
STATUS I've been working on an updated version of Emulator Movie Frontend to bring it up to date. So far it supports .fm2, .pxm, rom compression like .7z, .rar, and .zip, plus a GUI to configure instead of a console app/ini.
Here's the catch though. It's 90% done and I don't care to finish it.
The code base has had a total overhall and it's relatively clean now. The data access layer needs to be rewritten (just wrap to some SQLite stuff -- it keeps giving me an hresult exception?). Probably some GUI stuff is unfinished.
Who's up to the task?
http://red-stars.net/pictures/Emulator%20Movie%20Frontend-2.0-unfinished.zip
Sorry for the large file size, there's a few copies of SQLite in there.
I can walk you through anything you need me to.
edit: The database layer should be completed paved over. It's stupid.
I'd love to see an update to EmuMovieFront to have support for more filetypes. gmv and fm2 are particularly missing.
The real problem is the lack of emulators supporting command line support for loading movies. I started to hack in stuff to support .smv but stopped because doing it the hack-way is less than fun.
Anyone have any info/motivation to add it in and I'll rewrite it to not be a POS too :)
Edit: If anyone wants to help me I've rewritten most of it but the database class, if someone wants to tackle that with some modern linq action :)
woh, I had no idea about the fist AI loop. When I was doing a no-weapons/etc run I did end up killing him mostly by looping it, but lets face it, the game is easy unassisted, and gets absurd when it's assisted.
I'd love to see some type of play-around style run with no specific goal apart from entertainment where the tougher portions of the game are beaten intentionally handy capped.
As a viewer something I'd love to see a down to the tooth galamoth fight. Something like a worse armor/worse weapon run. Not sure how much of the rest of the video I'd want to watch but that part would be fantastic :)
A while ago I wrote a program which would render vectors as mouse input so I could create complex levels in Crayon Physics Deluxe.
http://blog.red-stars.net/technology/program/graphicspath-front-vector-drawing-software/
it's not accurate because it can't do b-splines (does them as a line -- my math isn't good enough), but check out the sample videos. sample in mspaint
It's not timing accurate enough to work for a TAS (unless you hacked in some frame pause/unpause stuff) but enjoy :)
I intended to implement SVG Importing and some stuff, but never did. Internally it uses a .net GraphicsPath which is very very limited. You have no direct control over the line data.
Are you familiar with using SVN? Can I give you write access and you put the src on TASTools?
I'm not familiar. The source is in the zip and probably a travesty. I didn't really get OO concepts too well back then.
VVV honestly, was unaware anyone even used it! Thanks :)
I wrote a program a while back I found infinitely helpful but no one ever used:
http://red-stars.net/random/Emulator%20Movie%20Front%20-%20Red%20Stars.html
It allowed you to associate the playback files to auto-play the movies. It used a database or rom hashes to auto-magically find the proper one from the video file's header.
I wanted the 'optional parameters' to be as explicitly addressed as possible.
because writing FrameControl::Priority is more explicit than 'Priority'? I'd argue that the explicit version is even worse, as the scope is apparent by context and you're just adding noise.
Unfortunately the consts don't give you compile-time-checking either (meaning: typing errors aren't caught by php -l), so the only reason to prefer the consts would be using a smart editor with auto-completion and const-highlighting.
(btw: if you know such an editor that works on linux and doesn't take 3 minutes to start like eclipse, please tell me ;))
I've yet to find an editor that has offered more than notepad++ and remained usable, I couldn't muster using Eclipse due to the speed. I don't like how 'locked in' most PHP IDE's feel. PHP is giving me great difficulty due to poor debuggers/profilers. I can only get xdebug to semi-work, I end up doing a lot of print_r.
You're absolutely right about the array in general being a better/more direct method, though there is another thing I like about the constant's approach, they're much easier to document using Doxygen, each one gets its own section and they can further be grouped.
I think that can be done much easier without relying on those static const members. consts are a pain in php, as they cannot be overloaded. As you noticed, your implementation relies on internal class specifics that may change between versions.
You are right, and that would be a better implementation, though there's a reason I used constants: Non-reliance upon strings. I wanted the 'optional parameters' to be as explicitly addressed as possible. Here's some sample code calling a class that uses it as-is.
As you can see, I like things explicit, very very explicit :)
(did C# for years)
There's also a useful quirk to the constants, you can have 'aliases.' Like:
const Property = "blah";
const Alias = "blah";
will address the same value. This is going to be nice when I try to make my project cross-compatible with doctrine's YAML
Hey pirate, I got your message and dug out what I've still got: http://red-stars.net/content/Castlevania%20%20Aria%20of%20Sorrow%20-%20Red%20Stars.html
The real meat were my notes, which are long gone at this point. There was also a completed level editor (showed, but couldn't edit objects) written in C++/wxWindows and cross compiled for linux/win32, but that's long gone now too. Oh, and the 1:1 castle map was pretty cool, if not massive (for 2003 at least).
Some where on this thread or board is me doing some minor work on the PRNG, I can't remember how far I got. I probably can't anwser anything, but feel free to ask :)
Thanks Hoe for posting that dual encode. Thank you for ignoring my post and thus having me waste time and resources pointlessly. Also, thank you for the half-assed sound line. I really appreciate it.
Something that would be neat is an overlapping encode.
Record Happy Lee's with a hacked up version of the rom where everything but mario is pink, then encode adelikat's as normal, then layer them ontop of each other with some type of re-coloring on happy lees
Actually, that sounds super easy to do, I might install FCEU and do this my self :P
edit:
Didn't come out as good as I was hoping for. This is "adding" the difference between the two videos in: [URL=http://red-stars.net/random/walkathon2335_and_2330.avi]walkathon2335_and_2330.avi[/URL] You get a green mario when ever happylee does not line up. It's a decent effect.
And this is the two runs them side-by-side, [URL=http://red-stars.net/random/walkathon2335_and_2330sidebyside.avi]walkathon2335_and_2330sidebyside.avi[/URL] (happylee is on the left)
I made the hacked rom, but was having trouble getting the random solid colors to be blacked out in AviSynth. I'll give it a second go later
for the first file:
lee = AviSource("happylee unhacked.avi").Trim(64,0)
kat = AviSource("adelikat-smb-sidestroller.avi").Trim(458,0)
viddif = Overlay(kat, lee, mode="Subtract")
return Overlay(kat, viddif, mode="Add")
I keep waiting for this to show up here, but it hasn't.
Link's Crossbow Training to me feels like one of the ultimate games begging to be tool-assisted. It's full of tiny chunks of gameplay that even with overly trained human play simply can not be achieved, but are 'obvious' and would be interesting to anyone who's played the game to see them flawlessly accomplished.
The primary goal, after entertainment, would be highscore. This is achieved by not missing any targets to keep the multiplier going (non-issue in a TAS), by hitting targets in their center ring (3x the points, also a non-issue), by random stage objects (pots being worth roughly 10 points, multiplier is unaffected and not applied to), and then there's several 'tricks.'
In the stage with flying bird things, if they drop the target and it's shot while falling it's worth roughly 10x more points. This applies proportionally to gold targets. They will drop the target when shot, which also drops your multiplier and makes you lose points, but this is beneficial if you shoot the first several birds then shoot the targets due to the lack of score or multiplier to lose. They're also dropped when the area buzzer chimes, so keeping as many birds on the screen, and notably ones with gold targets, for when the buzzer is a keen idea.
But that stage is also one of the most problematic because it's badly effected by the PRNG. It gets bad. Some times you'll get a double drop of golds at the buzzer and 3 birds in the opening, other times nothing.
Another trick involves the scarecrow who is in most stages. He has a gut that when shot will not kill him, and will repetitively give 8 points. For the highest of scores, obviously this should be continually shot at when not shooting mission critical targets. Once his head is shot, it provides 1000 points, and should be done on the last available frame. In some stages he's out of the way (as hidden as you can get in a game with such a limited view point), and probably isn't worth bothering with. One example being the fireworks stage.
In the first stage, the first houses door can be shot and flying water melons come out that each provide 100 points, and the last providing 500. This can be repeated for the first 2 sections of this map. This is something that could help a lot more in a TAS than in a real run where zoom must constantly be used to prevent missed shots.
An obvious trick is to shoot the gold/bonus targets at their last available frame so that the multiplier can be worked up on lower value targets.
There's random doors, bells, rocks, jars, signs, etc, that can be shot through out the game, some requiring a charged shot to achieve the desired effect, some being able to be hit more than once.
Anyone got anything else? I'd love to see this happen :)