Posts for Khaz


Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
I just asked about that in the development thread the other day; try the latest SVN, they just recently patched it so bsnes will read the .xml files again. I am not totally clear on what format the .xml files were "supposed" to be in but Super Road Blaster works again so you could use that as a template.
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
zeromus wrote:
Wake me up when someone can ship a homebrew game that uses it for $50 or so that it acts like an actual part of the snes history. Until then it's a bastardized mutant flash card hack.
I'm working on it. I'll wake you when it's done. I'm serious. EDIT: Latest SVN is working, thank you for the fix
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
zeromus wrote:
If you're going to make a "cd-quality audio" romhack for some game that doesnt need it, please do me the courtesy of not writing about it here.
That is not what I'm doing, at all. Even if it were MSU1 support seems like a groundbreaking and long overdue development for SNES, and it'd be a shame to see it go unused...
hegyak wrote:
This may have been corrected with r9314
It doesn't look like that SVN is available publically yet, that I can see. I'll try it when it's out.
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
Can't seem to get Super Road Blaster to work in either Bizhawk OR higan. Works on SD2SNES though. I think the problem may be that the MSU1 specification has changed a bit since this version of Road Blaster was made, specifically what kind of .xml or .bml files are required... I think the latest higan requires a manifest.bml file and SRB comes with a manifest.xml.
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
creaothceann wrote:
Here are some recent test ROMs if you need them: http://board.byuu.org/phpbb3/viewtopic.php?f=16&t=389
I don't know if you were meaning to imply those might work in Bizhawk but I can't get them to. Bad Apple plays just fine in Higan. I can still test things using MSU1 without Bizhawk, it's just a lot less convenient so I thought I'd ask.
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
Can I ask if there are any plans regarding MSU1 support for SNES in Bizhawk? I've been doing some work with it lately and it's a fascinating expansion to the SNES's capabilities. It's not going to be easy to pursue though because I can't seem to make it work in Bizhawk despite Bizhawk using bsnes v87 which is supposed to have support for MSU1. That basically leaves me with running higan directly as my only option, and it doesn't come with nearly the set of tools Bizhawk offers that I can tell. Just wanted to raise the question since a search for "MSU1" on this forum turned up basically nothing.
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
Just to add a bit more, did some looking into how address $00009c works:
80b903 jsl $bc904b   [bc904b] A:0000 X:0001 Y:0004 S:013f D:0000 DB:81 nvMXdiZc V: 17 H:1170
bc904b rep #$20               A:0000 X:0001 Y:0004 S:013c D:0000 DB:81 nvMXdiZc V: 17 H:1224
bc904d lda $009c     [81009c] A:0000 X:0001 Y:0004 S:013c D:0000 DB:81 nvmXdiZc V: 17 H:1242
bc9050 asl a                  A:5160 X:0001 Y:0004 S:013c D:0000 DB:81 nvmXdizc V: 17 H:1276
bc9051 clc                    A:a2c0 X:0001 Y:0004 S:013c D:0000 DB:81 NvmXdizc V: 17 H:1288
bc9052 adc $009c     [81009c] A:a2c0 X:0001 Y:0004 S:013c D:0000 DB:81 NvmXdizc V: 17 H:1300
bc9055 xba                    A:f420 X:0001 Y:0004 S:013c D:0000 DB:81 NvmXdizc V: 17 H:1334
bc9056 sep #$20               A:20f4 X:0001 Y:0004 S:013c D:0000 DB:81 NvmXdizc V: 17 H:1352
bc9058 sta $009d     [81009d] A:20f4 X:0001 Y:0004 S:013c D:0000 DB:81 NvMXdizc V: 18 H:   6
bc905b clc                    A:20f4 X:0001 Y:0004 S:013c D:0000 DB:81 NvMXdizc V: 18 H:  32
bc905c adc $009c     [81009c] A:20f4 X:0001 Y:0004 S:013c D:0000 DB:81 NvMXdizc V: 18 H:  44
bc905f sta $009c     [81009c] A:2054 X:0001 Y:0004 S:013c D:0000 DB:81 nvMXdizC V: 18 H:  70
bc9062 rtl                    A:2054 X:0001 Y:0004 S:013c D:0000 DB:81 nvMXdizC V: 18 H:  96
So it takes the full previous value and multiplies it by 3, writes the hi byte to $009D, then adds $009C to that hi byte and stores the result in $009C. What's interesting about this is, unlike in Dragon View where it uses the H/V Scanline Counters after reading controller input to generate something pseudo-random that changes with controller input, this should be a totally deterministic sequence independent of everything you do. In other words, unless something manually resets it, the only way you can influence the RNG is changing when the decision is made. ie/ a boss fight should go the exact same way every single time, so long as you start it on the same frame (and the RNG began rolling on the same frame) (unless you can change when they make a decision by hitting them at a different time or something). Upon thinking about it some more, it's entirely possible the AI's decision-making could be based on both RNG and something like your position as well. But at least you know where the random element comes from. It seems to be initialzed with value $0D37 and starts running on frame 694 in your file, though it pauses during the lag frames / loading time.
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
Kay now that I realize that Bizhawk 1.9.1's "Freeze Address" capability is broken and try again on 1.8.1, I did find some stuff. $001022 is your two-byte Y-Velocity. I still can't find an X-Velocity. I think your RNG is $00009C, two bytes. If I freeze that during the first (hippogryph) boss fight, while playing your recording, it desyncs his actions.
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
Freezing SNES RAM addresses does not work in Bizhawk 1.9.1. Just noticed this today while trying to investigate Demon's Crest. I found a bunch of addresses I was certain were significant, but freezing them had no effect. I got suspicious and tried loading up Dragon View and freezing addresses I knew for certain, and it had no effect whatsoever. I tried freezing them both through the Hex Editor and RAM search window and same result in both. It works as expected in 1.8.1. Example address: $007028 in Dragon View is your Y-velocity. Freeze it while jumping and you should fly upwards. EDIT: This is only an edit because it's probably old information, but... Was dicking around in 1.8.1 and had a problem where an address would always re-freeze itself every time I rebooted the core for some reason. I fixed that by closing bizhawk, but then SOMEhow, the ROM I was running got overwritten... It was originally 2MB and somehow became 128kb. I have no idea what happened. EDIT EDIT: I notice RAM Freeze seems to be fixed already in the latest SVN.... sorry for wasting your time...
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
Alright. I don't see anything obvious indicating your speed at first glance. The response seems instantaneous to me when moving left and right so I wouldn't be surprised if you don't really have an X-velocity at all and it's just on/off movement. I could be wrong though.
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
You mean the X/Y position/speed of the boss, or of the player? If you meant player I can tell you that right now: $001030 is your X position (2 bytes), and $001034 is your Y position (1 byte I think? I don't know what it's doing with your fine-Y-position honestly).
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
Yes, that is the case. I guess I can just rename my pre-saveram backups and be done with the problem then. Thanks for the explanation!
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
I'm working on developing a rom for SNES and I'm having a strange problem. I open my current rom just fine and then I try to open an older version of the rom with the same filename, but a different file size, and I get an error every time. If I try open the rom from inside BizHawk, I get this error box: After which I can click Continue, and the rom will load seemingly normally. If I try to launch BizHawk by opening the rom directly, it gives me this different error: And then doesn't launch. It has something to do with sharing the same file name. If I rename the old version I don't get the error. If I rename the new version to match again, run it, then run the old version the error comes back. For some reason only the smaller file gets the error. Mild annoyance at best I guess. Can paste the text from the error box if you'd like.
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
I'm listening to the airship music from Final Fantasy IV because I started Bizhawk today and it's suddenly doing that all on its own.
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
So I did the math on everything before Galys Pass. It is definitely slower to get the Hauza before the Storehouse:
SEGMENT                 DISTANCE    FRAMES
RYSIS->WARP A           271.5       863
WARP A->HUJIA           769         1352
HUJIA->STOREHOUSE       603.7       1710
STOREHOUSE->HUJIA       603.7       1686
HUJIA->ARSENAL          810.0       1941
ARSENAL->HUJIA          810.0       1965
ARSENAL->GALYS          580.3       1616
HUJIA->GALYS            915.1       2033
WARP A->ARSENAL         1118.9      1878
ARSENAL->STOREHOUSE     1146.8      2297
*Frame counts based on my best time, most can probably be improved slightly
"Distance" units are just pixels on my map...

OPTION A      DISTANCE   FRAMES
RYSIS         
WARP A          271.5    863
ARSENAL         1118     1878
HUJIA           810.0    1965
STOREHOUSE      603.7    1710
HUJIA           603.7    1686
GALYS           915.1    2033
        TOTAL   4323     10135

OPTION B
RYSIS
WARP A          271.5    863
HUJIA           769      1352
ARSENAL         810.0    1941
STOREHOUSE      1146     2297
HUJIA           603.7    1686
GALYS           915.1    2033
        TOTAL   4516     10172

OPTION C
RYSIS
WARP A          271.5    863
HUJIA           769      1352
STOREHOUSE      603.7    1710
HUJIA           603.7    1686
ARSENAL         810.0    1941
GALYS           580.3    1616
        TOTAL   3638     9168

SAVE:    967    Route:  (10135 - 9168)
SAVE:    126    Arsenal Fights Faster
LOSE:    -44    Storehouse First Fight at Lvl 1
LOSE:    -35    Storehouse Last Room Before Piercia at Lvl 3
LOSE:    -240   Piercia fight without Hauza (3 more hits)
SAVE:    150ish No menu for switch to Hauza

TOTAL 924 FRAMES saved by getting Hauza after the Storehouse
The only part I haven't accounted for yet is the possibility of skipping the potion in the storehouse. Need to finish planning the rest of the route to see if I'll need it. I think you're probably better off just buying an extra. I still haven't really decided much more on the 100 fights yet. If I could encounter fights with two enemies that could be killed almost instantly, that could be slightly faster than four sword techniques against three swamp bugs. What that means though is most of the losses will be in walking out of the way to hit the encounters, so getting them along the way will probably be essential. My current plan is to hit 9 encounters of 3 immediately after the wet cavern, which should be possible to do spending just one potion. The huge xp boost this gives would save a bunch of time from the fire cave through to Ortah. I could probably get at least four just on the way, but there'd be some wandering around... I don't think I can avoid a bit of wandering no matter how I go about it. I'm at a loss for a way to calculate an optimal strategy. Unfortunately there's no real way to hit a high enough level to do any damage to the swamp bugs at all until the last 5 encounters or so. I still haven't looked much at the impact the exp will have on the last half of the run, but it might be worth the longer fights just to keep pace with the later enemies.
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
Finally got the map up on GameFAQs if anyone wants to have a look. I think it came out pretty well all things considered. Could not possibly have done it without TruePNG, and the extensive labelling was mandatory. Also had some fun with the world map to tie up one last loose end. I'd previously seen some objects rendered that aren't in the game normally, so I tested it more thoroughly with a ROM hack to replace several tiles with a grid of all the scenery objects, and had a walk through it in each region. Unfortunately a lot of them cause the game to crash and most of the remainder seem to be repeats of the same images, but there's more than just a couple that have unique graphics. Here's a few screenshots of what the unused objects look like: http://www.pictureshack.us/images/51543_BadselStuff.png http://www.pictureshack.us/images/59549_SnowfieldRocks.png http://www.pictureshack.us/images/33165_Skullsmaybe.png And for fun, this is the view in the second, unused Underworld region code ($06): http://www.pictureshack.us/images/22471_UnderworldTwo.png I so want to believe that last one isn't just a creepy coincidence, and that they actually planned to have you face down an army of yourself in the underworld... Anyways, the only one of these unused objects that seems to have any scaling with distance is the small plants in the badsel region, as you can see in that screenshot.
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
Found something fun: there's a sound effect that goes with revealing the path to Ortah. I don't know if anyone else knew about it, but you can only hear it when you play the horn facing toward the quicksand cave, within 5 or 6 increments of due west, otherwise the long horn song covers it up. You can listen here: Link to video Other news, -Edited my game end glitch submission a while back to note that I lost 300 frames to bad world map movement on the very first trip from Rysis to Hujia; essentially I overshot the warp star and could also have stayed facing east the whole time to go even faster. -Tested Super Drakkhen (J) a bit and can confirm the Ortah glitch does happen. Just for fun tested the cutscene after the Sektra boss with the 7F present and it glitches out in the same way as at Ortah. Also looked at the normally inaccessible rooms I found before and they're all the same in the japanese version. -I made two tiny mistakes on my map earlier. Tile $9F, where the badsel dead-end cave is, is overlaid entirely with water. The water isn't rendered in badsel region but it is on the desert side of the wall, so it comes in straight west at the top of that tile until it hits the wall, leaving the southeast corner of the desert out in the water. Tile $52 just east of that one was drawn by Excel with the water over top of the dark wall, and I didn't notice until now. Will update the uploaded copies soon. -Working on 100% run! There's a lot to consider. The Arsenal and Storehouse are complicated. It seems geographically slightly faster to hit the Arsenal on the way to Galys Pass, but the Hauza can make Piercia much faster. Arsenal first also lets you enter the storehouse at level 2, speeding up the first room, but visiting the Arsenal after the storehouse eliminates the wasted time fighting the lizard knight at level 1 again. The real obnoxious part is the potion room. If you skip collecting the potion you save over 1000 frames, but you're down a free potion. You're also a lower level for Piercia so that fight takes maybe 400-500 frames longer - so you can still save 500 frames this way, IF money is not going to be a problem later which I don't know yet if it is. Other than that the only real optimization problem is still the 100 kills. I've tested around and I'm pretty sure the 3 swamp bugs is the only world map encounter with 3 enemies you can get, at least before Mt. Badsel. I could fight encounters of 2 scorpions each getting the horn though the fights would be much slower, might save a bit of time. The worst part will be manipulating the clouds to appear along the way.
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
derula wrote:
- Would it make non-TAS scene people make more suspicious of what it does / think we're just cheating?
I think yes. Clearing a cart beforehand is one thing since you can't really just overwrite the ROM, but having something between the console and cartridge as it's playing introduces a lot more potential ways to tamper with the game. Anyways, for that amount of effort you could probably just rebuild the bot to edit the movie on the fly like they say in the description...
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
I don't think it's fair to compare this RAM clearing to a BIOS that's an integral part of the original hardware. If we want to talk hypothetical superpeople here then I'd imagine with a sufficiently advanced tool one could reset it nearly instantaneously. Alternately, you could simply use butterflies. Ideally it would be nice to plan everything around a time when we have flawless emulation and all the right tools, but I'd rather see what people are capable of now than wait for a maybe-someday.
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
I vote yes. I'm a fan of console verification in general and I'm very interested in more runs where it is possible. At least until the gap between emulation and hardware is better resolved I think it could be a category, for games where it requires a distinct strategy. If nothing else this makes for an educational and fascinating submission to read. I would love to someday see a TAS that solves the game from any arbitrary starting state with one ordinary movie file, if it's even possible.
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
Wait! I just got it after the faster boss fight! Don't publish! One sec!
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
hegyak wrote:
khaz, I can not get the Movie file to auto load with the ROM. How did you do that?
I don't think I did anything special... Just Recent ROM > Autoload and Movie > Recent > Autoload both checked, load a ROM, play a movie, close bizhawk and restart? It loads the ROM and starts playing the movie immediately on starting. Bizhawk 1.8.1 by the way.
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
Okay, tried a new approach to investigating the glitch. I want to know what exactly calls up the ending cutscene. The obvious method is trying to compare several massive traces including how the ending is naturally supposed to occur to find out where they start to line up, but that sounds like a pain. So I tried some romhacking instead. I located the RNG-calculating subroutine I looked at before at "80e3bc", which is 0065bc in the (headered LoRom) ROM. It starts off by setting the DB register, which is great since most spots I'd want to jump to require it to be set correctly. I tried inserting a Jump-Absolute-Long (5c) right after that to various key spots I found in my traces right before and while the ending begins, but unfortunately I've had no luck yet triggering the ending. I came pretty close though - I managed to get the exploding noise from the beginning of it to play in a loop. Generally speaking though I can't get it to stay on track with the working warp endings I've achieved naturally, there's a lot of opportunities for it to derail if an address isn't set right. I think I just haven't gone far enough back yet to where it begins. Generally speaking I've been trying the spots I see with the highest stack pointer in hopes of getting to the main... thing. Anyways. I'll post more if I have any luck with that. In the meantime, I'm also looking into address 7E9BA9, mentioned back on page 1 of this thread. In the original working warp with the intact ending, it gets updated repeatedly in time with all the glitched cutscene events before the ending appears, less so in my new broken versions. I'm holding out a faint hope that the ending is a relatively simple branch option inside one of these cutscene-event things, and that if you reach it that way it will be set up correctly - though the idea that I got to the credits twice more by totally different means seems hard to believe... I dunno. I still want to understand it all, even if there's very little chance that knowledge will help me provoke an ending deliberately.
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
I just deleted a SNES ROM I'd been using with Autoload both ROM and movie enabled, then tried to start Bizhawk again. It gives a Yes/No dialogue box saying "Could not open C:\[...].smc Remove from list?". Whether you choose Yes or No you always get the same error box: Seems the only solution is to put the ROM back.
Experienced Forum User, Published Author, Player (53)
Joined: 11/20/2013
Posts: 103
Just updated the video and such with a slightly better technique on the fight. You actually can start with the wall abuse right away if you manipulate him immediately into flying up and back toward the wall to align it. Time saved over this submission with the new method is about 940 frames. Link to video