| |||
Views: 88,440,284 |
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search | 04-20-24 02:59 AM |
|
Guest: Register | Login |
0 users currently in ROM Hacking | 2 guests |
Main - ROM Hacking - Questions Regarding Rom Hacking On The Super Nintendo | New thread | New reply |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 290/968 EXP: 2366841 Next: 95010 Since: 05-24-07 Last post: 952 days Last view: 808 days |
Are there any detailed documents on the snes, like the YOSHI doc for nes? After my Zelda hack, im moving onto SNES romhacking, and would like to get an idea on how the machine works. Are there mappers? How does the ppu/nametable work? How is RAM setup?Etc |
mickevincent |
| ||
Leever Level: 32 Posts: 172/193 EXP: 205900 Next: 542 Since: 02-26-08 Last post: 3351 days Last view: 964 days |
Although Iam new at 6502 this is something that would interest me to later. Infidel - I havent searched, but arent there actualy more info on SNES programming then NES programming?
Maybe it's harder? Because, seriously, why havent anyone made a serious Mega Man X editor and/or Mega Man X romhack? |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 291/968 EXP: 2366841 Next: 95010 Since: 05-24-07 Last post: 952 days Last view: 808 days |
I found an actual doc by YOSHI, but my phone bunches up all the text, so i gotta wait till i get wifi with my laptop. I just wish the griger snes debugger had a code data logger, which would show yellow,blue,green, within the hex viewer. |
justin3009 |
| ||
Tektite Level: 18 Posts: 16/56 EXP: 29550 Next: 347 Since: 09-08-10 From: Wisconsin Last post: 2929 days Last view: 879 days |
There is a Mega Man X editor created by Xeeynamo but it's kinda meh to work with.
There is a Mega Man X3 hack out created by me. It allows you to play as Zero fully with his own dialogue, black armor, etc.. Version 3.0 is still a WIP but the main old release has been done. I'm also working on an X2 hack that makes Zero playable. I'd post more on it but this isn't the thread to do so. I have never done NES hacking or any other system hacking but SNES nor do I know too much on the whole PPU and all that. I just kind of go with whatever works for me. But the RAM I think is mapped from 7E0000 to 7FFFFF or something along those lines. There's also the case of LoRom and HiRom. They're really not that different but the addresses will be recognized differently. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 292/968 EXP: 2366841 Next: 95010 Since: 05-24-07 Last post: 952 days Last view: 808 days |
Thank you for the info justin3009!
I actually began looking at Megaman X, and figure out how to turn on all of his weapons, and sub tanks, without having to obtain them. I've read that 6502 still applies in some aspects to the snes. And from what i've seen when it deals with the opcodes, i got a pretty good head start in being able to accomplish some things with the snes, i just need to get an idea on where to start. I'm hoping that i'll be able to figure things out like... Is there a NameTable for the snes, how does it work? I know there are multiple backgrounds as well, do they all coexist in one NameTable? Is there a PPU, and if so, how does it load sprite/bg tiles? Is it just like NES, where $0-$FFF is sprite or bg, and $1000-$1FFF is sprite or bg? My main desire, if there was a code data logger, i know i've mentioned this already, but that is what has made me do so well in writing/understanding asm. You say 7E0000 & 7FFFFF. Is there like a $0 to $7FFFFF? I'm going to check out that doc by YOSHI, and see what i can figure out. :-) This is the document by Yoshi that I found http://patpend.net/technical/snes/snes.txt |
Thanatos-Zero |
| ||
Nipper Plant Level: 45 Posts: 288/423 EXP: 652477 Next: 7687 Since: 11-25-08 From: Germany - Rheinlandpfalz - Wittlich - Zur Phillippsburg 25 Last post: 1084 days Last view: 1047 days |
I may be a noob about hacking, but if you want to learn about the SNES, go to Super Mario World Central.
They are hacking SMW to death will all that dedication and love for the plumber. There must be some gurus, which can pass on you the knowledge you are seeking for. Edit: Also, do not forget Romhacking.net. http://www.romhacking.net/forum/index.php/board,4.0.html ____________________ I was a prisoner enclosed in the void, were everything might end up just as myself. There I was called the death in the void, but after a long sleep my drill was ready to pierce the void. I came back... to guide those who are in doubt and to crush any corrupted mind. "Just who in the hell do you think I am?!". |
justin3009 |
| ||
Tektite Level: 18 Posts: 17/56 EXP: 29550 Next: 347 Since: 09-08-10 From: Wisconsin Last post: 2929 days Last view: 879 days |
I truly don't understand the whole PPU, graphics, etc.. type deal. I do modify graphics and put new ones into games, but it's far above my 'technical' understanding. I know there's VRAM which is basically everything currently on screen. 0-FFFF
BG 1 2 3, Sprites, etc.. There's OAM which I think is just the sprites but I'm not sure there either. VRAM is split into spots per layer and such though in the same general area in each game from what I can see. I don't really label them down though. As for a 'code logger' and such, Geiger's SNES9X Debugger is quite nice. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 293/968 EXP: 2366841 Next: 95010 Since: 05-24-07 Last post: 952 days Last view: 808 days |
Maybe i dont have the right boxes checked off in the debugger, for the code data logger to display highlighted values when viewing ROM in the hex viewer? When viewing RAM with Geigers emu, is 7E0000 the beginning of the snes memory? |
RetroHelix. |
| ||
Micro-Goomba Level: 9 Posts: 3/13 EXP: 3139 Next: 23 Since: 01-08-12 Last post: 3829 days Last view: 3916 days |
Don't forget about good old zophars domain: http://www.zophar.net/documents/snes.html there is also a wikibook about snes programming http://en.wikibooks.org/wiki/Super_NES_Programming
Happy learning |
justin3009 |
| ||
Tektite Level: 18 Posts: 18/56 EXP: 29550 Next: 347 Since: 09-08-10 From: Wisconsin Last post: 2929 days Last view: 879 days |
Yes, 7E0000 to 7EFFFF is RAM.
You can do breakpoints and such but if you're trying to find something specific, you'll want to log it. Here's what you do essentially. 1. With the box that says 'Run' and all the other options, make sure 'Trace Once' is checked. 2. Now, click CPU and begin doing things in the game you DON'T want traced so it has less to worry about in logging files. 3. Click CPU again and make sure it's not checked. That'll log only certain things to files. 4. Now, click CPU again and do the action you WANT to do. 5. Once done that, click CPU again to uncheck it. 6. Open the log file that'll be in the SNES9X\Logs folder (Or wherever you want it). 7. And there you go. You just have to go through and hopefully you got what you wanted. As for having all weapons and sub-tanks without getting them, just a simple matter of RAM editing during game which can easily be found out through tracing or Game Genie codes online. |
kuja killer |
| ||
Level: 55 Posts: 317/628 EXP: 1243245 Next: 70944 Since: 03-20-07 From: Lake Havasu City, Arizona Last post: 275 days Last view: 23 hours |
bottom line is...
SNES geiger doesn't have a "real" code/data logger like fceux. About actually "highlighting" stuff on hex editor in yellow/blue/green SNES debugger dont have that at all...which is one of the reasons why I dont bother with snes. |
MiniCompute |
| ||
Bubble Level: 66 Posts: 287/981 EXP: 2420227 Next: 41624 Since: 04-25-07 Last post: 483 days Last view: 691 days |
Has he checked the zsnes version for dos ?
I think the latest one made by that team has a dos mode when working with programs shortcut paths. I really don't understand hacking much, but by working with the snes and visualboy debugger over a few years I was able to locate certain gfx and other nonsense while running a few games. My only problem is I don't know how to edit the data in real time inside the game. I recommend he move on to the snes hacking, if nes hacking felt to natural for him, that should be no problem for him over some time in the next 6 months. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 294/968 EXP: 2366841 Next: 95010 Since: 05-24-07 Last post: 952 days Last view: 808 days |
Its annoying i cant do hex searches! Geigers allows copy/paste, but if i want to look for specific values or a string of data, theres no option to do that. So frustrating its not like FCEUX. I really like SS$NS, great debug emu! You can view all the vram. |
MiniCompute |
| ||
Bubble Level: 66 Posts: 288/981 EXP: 2420227 Next: 41624 Since: 04-25-07 Last post: 483 days Last view: 691 days |
Posted by infidelity Well it really depends on what your looking my good man. If your looking for say a specific piece of music in the game, disable some bg layers the sprites and see what is currently active while the game is loading or calling on that data to bring it up. Try working with super metroid a little bit and you'll begin to understand what I mean. It's gonna take time, but you'll get use to it, speak with smkdan at smwc. He may be able to point you in that right direction for snes hacking. |
justin3009 |
| ||
Tektite Level: 18 Posts: 19/56 EXP: 29550 Next: 347 Since: 09-08-10 From: Wisconsin Last post: 2929 days Last view: 879 days |
You can dump RAM and such with a click of a button and sift through it via notepad or anything else. You can easily do the same exact thing, it just takes a couple seconds longer to do so. (This is actually much better as you can just edit things while staying in place instead of Ctrl + F then having to go back).
I recommend NOT nitpicking at minor details like this and just get into it. You'll get used to it and eventually have a lot more fun. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 295/968 EXP: 2366841 Next: 95010 Since: 05-24-07 Last post: 952 days Last view: 808 days |
So is there a dedicated Hard Wired bank in SNES roms, or is that just specificly for NES?
This is not a thread to discuss how to hack Megaman X, but i'm using that rom as my personal introduction to working with SNES. Anyways, i learned about LoROM & HiROM, how LoROM's individual banks are $8000 bytes each, and HiROM's individual banks are $10000 bytes each. Megaman X uses LoROM. Using Geigers as an example, i open the hex viewer and select ROM. It then starts at $808000, which i believe is Bank $80. When I scroll through the hex, it will go to 80FFFF then to 818000. So for LoROM, each individual bank appears to have a dedicated $C000-$FFFF. So does that mean the Hard Wired bank from the NES days, no longer applied when the SNES came out? And here's another confusing concept to me. Do rom's have individual bankswap routines, or is there a dedicated method to jumping to different banks within the rom on SNES? I ask because, when viewing Megaman X in Geigers hex viewer, it starts at 808000 and goes to BFFFFF. How come it doesn't show 008000-7FFFFF? Does the rom contain 008000-7FFFFF? *this is where i really wish CDL was a feature in Geiger's debug...* Thank you justin3009 and MikeFuryXP for your input(s) |
justin3009 |
| ||
Tektite Level: 18 Posts: 20/56 EXP: 29550 Next: 347 Since: 09-08-10 From: Wisconsin Last post: 2929 days Last view: 879 days |
You can jump through other banks on the SNES by using '22' or 'JSL'. You can also JUMP to it by using 5C 'JMP' as your command.
To return from a JSL, you'd have to use 6B (RTB) as your return. As for just loading data in the bank you're in, you'd use '20' or 'JSR' and '60' (RTS) would be your return. So for example in X2.
You're in Bank $08 at this point. It loads 13 for it's value, does the extra data then '$08' being it's bank, JSR's to 8C65A. The data there is in the same bank, so it'll load from that same bank. However...
This is if you want to load data from another bank. It loads 0A as it's value then JSL's to 8549. Notice how the bank '$00' isn't 08 anymore? That's what JSL does. The SNES is capable of jumping from bank to bank as long as you have a way to return essentially. I'm not sure why Geiger's essentially does that, but I think that's essentially where the game 'ends' for it's data. But it's probably not exactly accurate since you can expand SNES roms to 6 MB and have large amounts of extra data to use. It's not really of importance though as you'll be singling out values now and then while jumping all over in RAM. |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 296/968 EXP: 2366841 Next: 95010 Since: 05-24-07 Last post: 952 days Last view: 808 days |
Great example, i understood that perfectly! Thats so awesome there is a dedicated sub routine & jmp for bankswapping! So is 808000 really bank 0? Cause when you boot Megaman X, the SEtInterupt (78) starts, and the text says $00/8000? |
justin3009 |
| ||
Tektite Level: 18 Posts: 21/56 EXP: 29550 Next: 347 Since: 09-08-10 From: Wisconsin Last post: 2929 days Last view: 879 days |
Yep that would be bank 00! |
infidelity |
| ||
Fuzz Ball Level: 66 Posts: 297/968 EXP: 2366841 Next: 95010 Since: 05-24-07 Last post: 952 days Last view: 808 days |
Already found a spot within bank 0 for me to do some custom asm. Im seeing how i can manipulate the pixelation of each bg layer or all bg layers, its awesome! I think its $2106. I cant wait to try to attempt to zoom in/out and rotate the bg layer! |
Main - ROM Hacking - Questions Regarding Rom Hacking On The Super Nintendo | New thread | New reply |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 127, rows: 166/167, time: 0.019 seconds. |