Points of Required Attention™
Please chime in on a proposed restructuring of the ROM hacking sections.
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

Pages: 1 2

infidelity
Posted on 11-09-12 07:38 PM Link | Quote | ID: 152820


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
Posted on 11-09-12 09:30 PM Link | Quote | ID: 152821


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
Posted on 11-09-12 09:48 PM Link | Quote | ID: 152822


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
Posted on 11-09-12 11:09 PM (rev. 2 of 11-09-12 11:10 PM) Link | Quote | ID: 152824


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
Posted on 11-10-12 12:24 AM (rev. 2 of 11-10-12 12:28 AM) Link | Quote | ID: 152825


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
Posted on 11-10-12 01:55 AM (rev. 2 of 11-10-12 02:21 AM) Link | Quote | ID: 152826


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
Posted on 11-10-12 01:57 AM Link | Quote | ID: 152827


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
Posted on 11-10-12 06:57 AM (rev. 2 of 11-10-12 06:59 AM) Link | Quote | ID: 152828


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.
Posted on 11-10-12 09:04 AM Link | Quote | ID: 152829


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
Posted on 11-10-12 03:07 PM Link | Quote | ID: 152830


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
Posted on 11-10-12 07:26 PM (rev. 2 of 11-10-12 07:38 PM) Link | Quote | ID: 152831


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
Posted on 11-11-12 03:04 AM Link | Quote | ID: 152833


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
Posted on 11-11-12 08:21 PM Link | Quote | ID: 152834


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
Posted on 11-12-12 01:21 AM Link | Quote | ID: 152836


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
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.


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
Posted on 11-12-12 06:04 AM Link | Quote | ID: 152838


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
Posted on 11-12-12 09:03 PM (rev. 4 of 11-12-12 09:06 PM) Link | Quote | ID: 152842


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
Posted on 11-12-12 11:48 PM (rev. 4 of 11-12-12 11:56 PM) Link | Quote | ID: 152843


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.

$08/9C88 A9 13       LDA #$13                A:005D X:0000 Y:000E P:envMXdIzc - Dash animaton
$08/9C8A 18 CLC A:0013 X:0000 Y:000E P:envMXdIzc
$08/9C8B 65 6F ADC $6F [$00:0A47] A:0013 X:0000 Y:000E P:envMXdIzc
$08/9C8D 20 5A C6 JSR $C65A [$08:C65A] A:005C X:0000 Y:000E P:envMXdIzc


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...

$08/9C7F A9 0A       LDA #$0A                A:0000 X:003C Y:000E P:envMXdIZc - Dash SFX
$08/9C81 22 49 85 00 JSL $008549[$00:8549] A:000A X:003C Y:000E P:envMXdIzc - Loads SFX Routine


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
Posted on 11-13-12 12:42 AM Link | Quote | ID: 152844


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
Posted on 11-13-12 02:38 AM Link | Quote | ID: 152846


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
Posted on 11-13-12 03:33 PM (rev. 2 of 11-13-12 03:38 PM) Link | Quote | ID: 152848


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!
Pages: 1 2


Main - ROM Hacking - Questions Regarding Rom Hacking On The Super Nintendo New thread | New reply

Acmlmboard 2.1+4δ (2023-01-15)
© 2005-2023 Acmlm, blackhole89, Xkeeper et al.

Page rendered in 0.030 seconds. (342KB of memory used)
MySQL - queries: 127, rows: 166/167, time: 0.019 seconds.