Author
|
Topic: At my wit's end - any way to trick a NES game to load from a different bank? (Read 1 times)
|
Tauwasser
Guest
|
|
« Reply #15 on: June 23, 2009, 07:29:51 pm » |
|
Can this routine be configured to handle two different scripts? I haven't done the Pizza Cats edit of the script yet, so I have to do that before turning anything over.
The frequency thing is easy to get, ScriptCrunch spits out a list of them when it does its thing.
You mean two scripts in the same game that use different table values? If so, yes. However, I have no code for that right now (though you could rip it out of the PKMN RBGY roms), and personally like no time to implement stuff on a NES :/ I could give you the specifics of how it works in English tho. I guess you can asm hack for NES regardless, right? cYa, Tauwasser
|
|
|
|
Kitsune Sniper
Guest
|
|
« Reply #16 on: June 23, 2009, 07:39:16 pm » |
|
No, I'm planning two different patches with somewhat different scripts and graphics to account for both versions of the TV show (Japanese and the US redub). I meant the code being usable with two different scripts, that's all.
And uh, I can't do any sort of ASM work. I'm not a programmer. This is why I asked for help. Crap. :|
|
|
|
|
Bongo`
Guest
|
|
« Reply #17 on: June 23, 2009, 09:09:19 pm » |
|
No, I'm planning two different patches with somewhat different scripts and graphics to account for both versions of the TV show (Japanese and the US redub). I meant the code being usable with two different scripts, that's all.
And uh, I can't do any sort of ASM work. I'm not a programmer. This is why I asked for help. Crap. :|
Are you serious!? Do you know what I had to go through t make that huffman routine work in that game!? :banghead: Just kidding... Anyway, you must have added a ton of text / changes to the script because the files I used ( from you ) still fit into the space you speak of. Oh well... FILES NOW DELETED since you aren't using them!
|
|
|
|
Kitsune Sniper
Guest
|
|
« Reply #18 on: June 23, 2009, 09:34:21 pm » |
|
Are you serious!? Do you know what I had to go through t make that huffman routine work in that game!? :banghead: Just kidding... Anyway, you must have added a ton of text / changes to the script because the files I used ( from you ) still fit into the space you speak of. Oh well... FILES NOW DELETED since you aren't using them! You sent me stuff? I didn't find anything in my emails. I think this was around the time you took your sabbatical from the internet. And yes, I had to change a LOT of stuff in the script around, I had to change lots of parts in the script and rewrite half the damn thing to account for the changes in squishy tiles. And I have to do it again soon because of the second patch. Sorry.
|
|
|
|
tummai
Guest
|
|
« Reply #19 on: June 24, 2009, 02:37:53 am » |
|
Here's another solution you could try:
Assuming you can fit the excess script in another bank, you could write a little routine to copy it all into SRAM ($6000-$7FFF) on startup. Then the data will always be available to you regardless of your current bank. Update the relevant pointers to point to this data and you're done. This is assuming your game doesn't already use SRAM, or if it does it has about a fourth of it unused (SRAM is about 8000 bytes total).
The game doesn't use SRAM, it uses passwords. So that data should be available, at least in theory. That's good news. All you have to do is change a byte in the iNES header and you'll have an extra 8k of RAM to work with. Copy the extra script there and then just pretend its ROM.
|
|
|
|
Disch
Guest
|
|
« Reply #20 on: June 24, 2009, 07:09:44 am » |
|
All you have to do is change a byte in the iNES header and you'll have an extra 8k of RAM to work with. Not necessarily. The header just determines whether or not the WRAM present (if any) has a battery. You can still use RAM without it being battery backed, it just won't save when you quit the emu. Also, some mappers aren't set up to have WRAM at all, and many of those that do need to have it explicitly enabled via a register write (as is the case here, since this is MMC3). So you might have to add some additional code to the startup in the program. To enable WRAM/SRAM on MMC3, you need to make sure $80 is written to $A001 (probably some time at startup). The game might already be doing this -- you can check by putting write breakpoints on $A001. Hopefully the game isn't writing to it a million times.
|
|
|
|
Kitsune Sniper
Guest
|
|
« Reply #21 on: June 24, 2009, 07:59:26 am » |
|
I played it for a few minutes in FCEU X, added a breakpoint for that address, and nothing happened, so I'm pretty sure it doesn't use it.
The debugger said it was "undefined".
|
|
|
|
Disch
Guest
|
|
« Reply #22 on: June 24, 2009, 10:02:52 am » |
|
You'll have to sqeeze in some extra initialization code, then, if you want RAM at $6000-7FFF Slip this in somewhere at program startup.... like in the routine jumped to by the Reset vector. It doesn't matter where, as long the code is executed before any reads/writes to $6000-7FFF LDA #$80 STA $A001
|
|
|
|
Kitsune Sniper
Guest
|
|
« Reply #23 on: June 24, 2009, 01:53:26 pm » |
|
Um. How? I have no idea how to do this. I don't know squat about ASM hacking.
|
|
|
|
Disch
Guest
|
|
« Reply #24 on: June 24, 2009, 02:03:32 pm » |
|
Blech. If I had a NES debugger handy I might walk you through it, but alas.
Anyway if you can't add two instructions to startup code, I doubt you'll be able to modify the text loading routine, so even if I showed you how step by step it wouldn't do you any good (having RAM to use does nothing if you don't know how to use it).
I'm not trying to sound like a jerk (which I realize I kind of do! sorry!) I tried to word this as nicely as I could. I'm just explaining why I'm not giving a more useful response. =(
|
|
|
|
Kitsune Sniper
Guest
|
|
« Reply #25 on: June 24, 2009, 02:12:23 pm » |
|
I'm not angry at you. I'm too dumb to learn ASM, but if anyone can help me out, all these comments are a good starting point for a hack.
|
|
|
|
Disch
Guest
|
|
« Reply #26 on: June 24, 2009, 02:32:02 pm » |
|
I'm too dumb to learn ASM You really might be surprised how easy it is if you sit down, skim the docs, and just dink around. It can be a lot of work and it takes a lot of stick-to-it-ive-ness, but it's not really that complicated.
|
|
|
|
Kitsune Sniper
Guest
|
|
« Reply #27 on: June 24, 2009, 03:56:38 pm » |
|
No, I really am that dumb. I can't really process programming concepts in my head very easily. Even a simple hello world example takes ages for me to understand.
|
|
|
|
Kagemusha
Guest
|
|
« Reply #28 on: June 24, 2009, 04:09:59 pm » |
|
I personally don't find it to be that hard and I have no programming experience. It took me a while to get the hang of things, but I'm fairly comfortable now. As long as you know how to properly utilize the tools available to you, you can do a lot of things easily.
|
|
|
|
aishsha
Guest
|
|
« Reply #29 on: June 24, 2009, 04:41:37 pm » |
|
The same here, I ain't a hacking guru but half a year ago I even couldn't use debugger properly. It all starts very suddenly when one day it just gets all the puzzle pieces into one picture and it opens the eyes
|
|
|
|
|