Author
|
Topic: So I took a look at Geiger's Snes9x. (Read 4962 times)
|
Gideon Zhi
Guest
|
|
« Reply #15 on: September 24, 2006, 11:26:57 pm » |
|
OG's font isn't variable width. It's fixed width at 4 pixels per character, if I recall. Some of the "larger" letters, like the m, are double that. That's why the m has a little tail. And by breaking it, no, I mean installing a good hires vwf.
|
|
|
|
Ryusui
Guest
|
|
« Reply #16 on: September 25, 2006, 12:54:48 am » |
|
Like I would settle for anything less? ^_^
BTW, your lowercase "i"s seem a little off...not to nitpick, but that extra pixel sticking up over the other letters makes it look a little "l"-like.
|
|
|
|
DaMarsMan
Guest
|
|
« Reply #17 on: September 25, 2006, 02:48:52 am » |
|
You can see where the stack is pointing too at any time looking at any instruction in Geiger's debugger realtime... I don't know what you're complaining about.
What version are you using? I using version 1.43 ep9r8 and I see NO stack. I rarely need it but still, I don't see it AT ALL in this version! Look at the disassembly... $01/E98F 18 CLC A:0003 X:0040 Y:00A7 D:0000 DB:7E S:1FE4 That thing that says S: is the stack pointer. It will show you where the stack position is at in RAM. Look at the ram and you'll see your stack at that position. Note that squelch feature must be disabled to see stack pointer in disassembly.
|
|
|
|
Bongo`
Guest
|
|
« Reply #18 on: September 25, 2006, 08:30:04 am » |
|
You can see where the stack is pointing too at any time looking at any instruction in Geiger's debugger realtime... I don't know what you're complaining about.
What version are you using? I using version 1.43 ep9r8 and I see NO stack. I rarely need it but still, I don't see it AT ALL in this version! Look at the disassembly... $01/E98F 18     CLC           A:0003 X:0040 Y:00A7 D:0000 DB:7E S:1FE4 That thing that says S: is the stack pointer. It will show you where the stack position is at in RAM. Look at the ram and you'll see your stack at that position. Note that squelch feature must be disabled to see stack pointer in disassembly. I don't know.. This is what I get from the crap... Am I missing something? Maybe I'm just a retard who can't find the options to enable that stuff. O_o
|
|
|
|
Aerdan
Guest
|
|
« Reply #19 on: September 25, 2006, 08:36:33 am » |
|
Uncheck the 'squelch' option, it's what is preventing you from getting the stack info. in RAM. Look at the ram and you'll see your stack at that position. Note that squelch feature must be disabled to see stack pointer in disassembly.
|
|
|
|
Nightcrawler
Guest
|
|
« Reply #20 on: September 25, 2006, 12:04:49 pm » |
|
Uncheck the 'squelch' option, it's what is preventing you from getting the stack info. in RAM. Look at the ram and you'll see your stack at that position. Note that squelch feature must be disabled to see stack pointer in disassembly.
Quoted and said once more just for my own amusement and further emphasis.
|
|
|
|
Gideon Zhi
Guest
|
|
« Reply #21 on: September 25, 2006, 12:06:42 pm » |
|
Personally, I think it's dumb that it squelches not only the stack, but also the DBR. Really dumb. I could usually do without HC and VC, but the DBR is critical.
|
|
|
|
byuu
Guest
|
|
« Reply #22 on: September 25, 2006, 04:25:22 pm » |
|
Yeah, omit the opcode byte listings, any veteran ROM hacker already has the whole damn instruction set memorized anyway in the rare event they're needed.
Essential: <PC> opcode addr [resolved addr] A X Y S D DB nvmxdizc
Superfluous: opcodehexprintout V H e (can be represented by changing nvmxdizc to nv1bdizc for emulation mode)
At least Geiger expands P. It pisses me off having to decode the hex in my head to figure out status flags in ZSNES.
|
|
|
|
Gideon Zhi
Guest
|
|
« Reply #23 on: September 25, 2006, 06:15:02 pm » |
|
Geiger's expands P because SNES9X's debug readouts expand P by default. I've got a port of Lordtech's SNES9X tracelogging code built into 1.41-1 Win, and it does the same thing.
|
|
|
|
Ryusui
Guest
|
|
« Reply #24 on: September 27, 2006, 02:15:38 am » |
|
Okay, here's the big $$60,000,000,000 question:
How the hell do I set a VRAM write breakpoint? -_-;
Okay, nevermind: I figured it out...and I think I've found the compression routine for Patlabor's title screen. ^_^ ^_^ ^_^
Are there any handy tools for converting SNES memory addresses to ROM addresses?
Made one myself in VBExpress in under 10 minutes. Damn, the pointer converter I put in BMD took much longer to debug, and it still doesn't work perfectly. Maybe I should take the fact that all my math was right the first time as a sign.
|
|
« Last Edit: September 27, 2006, 03:50:40 am by Ryusui »
|
|
|
|
Nightcrawler
Guest
|
|
« Reply #25 on: September 27, 2006, 07:28:03 am » |
|
Lunar AddressHands down, the best now that it doesn't crap out if you close it while minimized anymore. This probably does more than your program since it handles extended HiROM and LoROM addresses and savestates as well. Give it a try.
|
|
|
|
Kitsune Sniper
Guest
|
|
« Reply #26 on: September 27, 2006, 11:15:25 am » |
|
Okay, here's the big $$60,000,000,000 question:
How the hell do I set a VRAM write breakpoint? -_-;
Okay, nevermind: I figured it out...and I think I've found the compression routine for Patlabor's title screen. ^_^ ^_^ ^_^
Are there any handy tools for converting SNES memory addresses to ROM addresses?
Made one myself in VBExpress in under 10 minutes. Damn, the pointer converter I put in BMD took much longer to debug, and it still doesn't work perfectly. Maybe I should take the fact that all my math was right the first time as a sign.
*offers help for Patlabor*
|
|
|
|
Ryusui
Guest
|
|
« Reply #27 on: September 27, 2006, 09:30:13 pm » |
|
Currently playing with the title screen compression. After dissecting it, it turns out it's a fairly ordinary LZ-type system (with a bit of dictionary thrown in for no apparent good reason), with two evil features:
1. The length is encoded with the graphics stream (bytes $12 and higher are compression codes), but the distance is coded in a seperate block.
2. The distance values are bit-packed. Every individual value is 12 bits long; took me the longest to figure out why the hell the routine seemed to be alternating methods for loading the distance depending on whether a value was odd or even (it loads a counter value, right-shifts it and then checks if the carry flag is set: if the LS bit is 0, it's not; if it's 1, it is, hence it's an odds/evens check).
Currently working on coding a decompressor/recompressor in VB (duh). I'm pretty sure I've worked out the whole thing now...
EDIT: Decompressor complete. 83 Now to work on the compressor...
EDIT 2: The good news is, the compressor is working. The bad news is, the compressed data won't fit in the original space. -_-;
That's what optimizations are for...
|
|
« Last Edit: September 28, 2006, 09:19:47 pm by Ryusui »
|
|
|
|
Ryusui
Guest
|
|
« Reply #28 on: September 29, 2006, 03:07:23 am » |
|
Double-post, yes, but I'd like some input/advice.
I can fit my title screen in simply by cutting out the Japanese logo entirely. ^_^
Problem is, that's the least of my concerns: the title screen logoes, both the Japanese one and the English one mine is based on, are Mode 7. That's right, that funky flippy effect where the English logo turns into the Japanese one is pure Mode 7, and I'm clueless. I have no idea how to disable the flip, how to make it display only the logo I want, and how to edit the tilemap so that my full logo displays properly. The third one is something I've done before with that project, but 1 and 2 are new for me. Both logos are part of the same BG; my best guess is that a scroll or center register is changed at the moment of the flip effect, but I can't quite seem to work out how it's done, let alone how to break it so it works like I want it to. -_-;
Oh, and there's also a palette effect done during the flip: I added the original Japanese logo's shadow effect to the English logo; it's supposed to appear dark and then fade into place, but the palette is set at the start so the shadow displays by default and would "vanish" after the flip only to fade in as normal (assuming I could get my logo to display properly)...
|
|
|
|
creaothceann
Guest
|
|
« Reply #29 on: October 01, 2006, 08:49:19 am » |
|
Bleah. -_-;
Ah, well. I could always try vSNES.
YES... vSNES is a FAR better tool than any emulator with a VRAM viewer could ever hope to be in my opinion. Learn to use it effectively and it is a tool you can't be without in the SNES world. Well, if you keep your old emulator builds around. The ZST and SMV formats are already changing. \ Plus there's a bug in the HexEditor code: it can't save to a file. Dunno if that happens in older releases as well, but here's my current build anyway ( link). No guarantees that the other stuff still works though.
|
|
|
|
|