This was another month spent trying to make it through each day.
This was another month spent trying to make it through each day.
This month I finally finished an update the older hitbox scripts. The goal was to get them to better exploit Lua's breakpoint functions in FBA to make things as easy as currently possible for the user. Trivial in the larger scheme, or even compared to past Lua work, but the task had been hanging over my head for months. It was made more unpleasant by the need to retread the miry ground of syncing computation and display frames, and by the chronic problem that FBA and MAME don't have exactly the same timing.
In the end I didn't get much done. I still need to straighten up CPS3 before I'm ready to put aside hitbox stuff.
http://code.google.com/p/mame-rr/wiki/Hitboxes
http://code.google.com/p/mame-rr/source/detail?r=161
It's been so long I almost forgot what I set out to do:
garou-hitboxes.lua
to use FBA-rr 0.0.7's new emu.registerexec
and emu.registerwrite
Lua functions for breakpoints. I also used bps to remove the dodgy pseudo-disassembly for vulnerability checks and to avoid messing with the memory banking to get box data. This meant I had to go back through that maze.So, another month gone by with no research done, and me feeling terrible for getting no work done, or even following up on some emails. The new year funk is hitting me really hard this year.
I am thinking of starting another blog to write about other topics. This would leave secrets devoted to its intended purpose, my original research, while providing an outlet for discussing books, movies, and other non-VG related subjects. Seems like a waste to crank out all this analytical juice with no place to pour it.
Following last year's tradition, I'll take a moment to review the topics covered in 2011.
For the last month I've been occupied with other matters. As things stand now the goals are the same as they were in November.
FBA-rr 0.0.7 implements some new Lua functions:
memory.registerexec | trigger a function when a given code is executed |
memory.registerread |
trigger a function when given memory is accessed |
memory.registerwrite |
|
memory.getregister |
read from and write to the CPU registers |
memory.setregister |
This effectively makes breakpoints and watchpoints available from within Lua. You can thank mz for these developments.
Most of the scripts have been updated to use these functions where applicable. In particular, if you want to see the CPS2 and Marvel throwboxes without messing around with MAME-rr, now you can.
In fact, the old method of piggybacking on the MAME-rr debugger has been removed, because I oppose writing to memory when the script is supposed to be read-only. So you have to use FBA for the bp/wp functionality now, but MAME still works for everything else.
The exceptions are garou-hitboxes.lua, since FBA's Lua can't control the NeoGeo's bank switching, and cps3-hitboxes.lua, since the new functions don't support the SH2 processor, although it's only one breakpoint at stake there. (It may be possible to get garou working in FBA by getting to script to read the box parameters exactly when the game's program does, which would obviate bank switching.)
The overhaul process was unexpectedly painstaking:
Stuff done in October:
Next month I plan to:
Added Warzard, or Red Earth as it was called in its limited distribution outside Japan, to the CPS3 script. The object handling and hitbox system has almost nothing in common with the Street Fighter III series, and I had to work from scratch to get it out.
Recent Comments