News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: NES vs SNES  (Read 2608 times)

midgetonebeta

  • Jr. Member
  • **
  • Posts: 5
    • View Profile
NES vs SNES
« on: October 17, 2016, 04:03:25 pm »
Which  one of these is easier to hack asm  or core editing?
When i say i mean Assembly wise.
I ran into a Hack Made by SHINWA
DD3 Super Skilled Hack and i played it so Much
My Wife said he heard me raging in my sleep.
I  want to  make a Hack of this Or SuperDD return of J
I wanted to know whats a place to start NES or SNES?

Experience level:Noob restricted to grahics and pallets want to try
building something Constructive critisism my but hurts ez

Disch

  • Hero Member
  • *****
  • Posts: 2814
  • NES Junkie
    • View Profile
Re: NES vs SNES
« Reply #1 on: October 17, 2016, 06:52:04 pm »
For a generalization, you can say that NES is easier to learn, harder to do stuff with -- whereas SNES is harder to learn, but easier to do stuff with.


For a more relatable analogy, say you want to build a shed.  Both the SNES and NES give you different tools to do it:
- SNES gives you every tool you can find in a Home Depot
- NES just gives you basic saws, hammers, etc.

NES might be easier because there are fewer tools to learn.  But once you know how to use the tools, it's harder to actually build the shed.
While with SNES, it might be harder because you'll be overwhelmed with options out of the gate.  But once you figure out what you need and how to use them, it's much easier to build the shed.



As far as hacking tools and debuggers, NES has an edge.  FCEUX is pretty much the gold standard as far as debugging emulators go.  SNES9x has a debugger as well but isn't quite as fleshed out (or at least it wasn't the last time I used it -- which was years ago).

midgetonebeta

  • Jr. Member
  • **
  • Posts: 5
    • View Profile
Re: NES vs SNES
« Reply #2 on: October 17, 2016, 07:14:36 pm »
Good anology i understand  see this is what i want to do is snes hacking but i want to  learn them both
Ill start with nes then i hope me learning hex will help i been writing cheat codes for ever but only recently gona start  or try a hack my
Main goal is ASM HAcking once i get used to it I want to start a req thread with exxamples and such to help oter rookies like me. Start lack  of info Pisses me off

i been looking at some hacked metroid games and comparing them for refrence to try speed this up but ya  anyone wlling to throw in some help it would be awsome.

Want to start harassing DDR3.

Disch

  • Hero Member
  • *****
  • Posts: 2814
  • NES Junkie
    • View Profile
Re: NES vs SNES
« Reply #3 on: October 17, 2016, 09:52:23 pm »
Assembly is just programming.  If you have any experience with other programming languages, it should be pretty easy to pick up.  If not, it's still possible, but it will be a lot to take in.

The best 6502 reference page IMO is obelisk:
http://www.obelisk.me.uk/6502/reference.html

But that's just a reference sheet -- it won't actually teach you anything.  Most tutorial documents on NES architecture are centered around homebrew development.  Unfortunately I don't know of any that really take it from a rom hacking perspective.

I personally learned from the old-but-still-great "6502.txt" available on nesdev:

http://nesdev.com/6502.txt

Don't know if it will be as useful for you, as I had a lot of programming experience prior to reading it, so I was able to piece together what it was talking about without too much trouble.  It's pretty solid, but there are some typos in the transcription so I wouldn't use it as a reference for specific details like opcodes and the like.  Use obelisk for that.


Mostly NES specific concepts that are helpful to know before you start reading 6502.txt:

The 6502 is a memory mapped architecture.  Instructions will read/write to different "addresses".  Addresses are 16 bits wide, meaning they can range from $0000 to $FFFF.  Different blocks of addresses map to different things.

In the NES's case, the [simplified] memory map is as below:

$0000-07FF = RAM
$2000-2007 = PPU (video) registers
$4000-4017 = APU (sound) registers, as well as joypad registers
$6000-7FFF = on-cartridge RAM (often battery backed to allow for saved games)
$8000-FFFF = ROM


ROM is data that does not change -- like game code and data.  Pretty much anything in the ROM file (hence why they're called ROMs).  Data can be read from ROM, but cannot be written.

RAM is data that can change.  It's effectively a workspace where the program can save information that needs to update.  For example, to keep track of a player's HP, the game might dedicate 1 or 2 bytes of RAM.  It can read that value to see how much HP they have, or write to it to change how much they have.


When an instruction reads from an address, what it's actually doing depends on what block of memory it's in.
LDA $34     is reading from address $0034, and therefore is reading a value from RAM.  Whereas:
LDA $2002 is reading from a PPU register, and therefore is asking the NES for information about the current state of the video output.



The above info and 6502.txt should cover most of what you need to know.  If you want detailed register descriptions you can use the nesdev wiki:
http://wiki.nesdev.com/w/index.php/Nesdev_Wiki


If you have questions, you can post them here.  A lot of people here are knowledgeable and willing to help.  However, in future posts you REALLY should try to add punctuation.  Your sentences all run together and it makes them hard to read.  :thumbsup:

Good luck

midgetonebeta

  • Jr. Member
  • **
  • Posts: 5
    • View Profile
Re: NES vs SNES
« Reply #4 on: October 17, 2016, 11:08:54 pm »
Thank you so much i made a tbl file from reading 200 pages worth of stuff this is day1 for me.
My keybord is cooked daughter dropped milk on it some keys i have to use phone to remotely type i hate texting press 1
key 3 come out thats why i just type  it out.
But see ii dont want too much a spoiler cause i want to  learn and thanks  you 4x for replying most just look shake head *Points noob he smells*
Quiick run! no  reply!

So far im hexing all the text out to make a story line.

Damn forgot to ask should i expand the rom file or nahh?
or that complicates things?
« Last Edit: October 17, 2016, 11:20:33 pm by midgetonebeta »

Disch

  • Hero Member
  • *****
  • Posts: 2814
  • NES Junkie
    • View Profile
Re: NES vs SNES
« Reply #5 on: October 18, 2016, 02:14:49 am »
Expanding on the NES is not that hard.  However, USING the extra space you get from expanding can be very hard depending on the game.

I'd say avoid it for now and try to make due without it.

dougeff

  • Sr. Member
  • ****
  • Posts: 358
    • View Profile
Re: NES vs SNES
« Reply #6 on: October 19, 2016, 08:32:04 pm »
Quote from: Disch
As far as hacking tools and debuggers, NES has an edge.  FCEUX is pretty much the gold standard as far as debugging emulators go.  SNES9x has a debugger as well but isn't quite as fleshed out (or at least it wasn't the last time I used it -- which was years ago).

Have you tried BSNES-PLUS. Has some interesting debugging tools. And BSNES is far more accurate than SNES9x.

http://www.romhacking.net/utilities/1197/
nesdoug.com -- blog/tutorial on programming for the NES

Disch

  • Hero Member
  • *****
  • Posts: 2814
  • NES Junkie
    • View Profile
Re: NES vs SNES
« Reply #7 on: October 19, 2016, 09:12:52 pm »
I have not.  My experience with SNES debugging tools is very minimal and likely outdated.   :)

Gideon Zhi

  • Discord Staff
  • Hero Member
  • *****
  • Posts: 3535
    • View Profile
    • Aeon Genesis
Re: NES vs SNES
« Reply #8 on: October 20, 2016, 12:29:20 am »
For a more relatable analogy, say you want to build a shed.  Both the SNES and NES give you different tools to do it:
- SNES gives you every tool you can find in a Home Depot
- NES just gives you basic saws, hammers, etc.

As far as hacking tools and debuggers, NES has an edge.  FCEUX is pretty much the gold standard as far as debugging emulators go.  SNES9x has a debugger as well but isn't quite as fleshed out (or at least it wasn't the last time I used it -- which was years ago).

This is an important distinction: the above analogy only works for actually trying to make the system do stuff. When it comes to debuggers, the NES has a dramatic advantage.

DougRPG

  • Full Member
  • ***
  • Posts: 146
    • View Profile
Re: NES vs SNES
« Reply #9 on: October 20, 2016, 02:27:23 pm »
For me Snes is much easier than Nes.
With Snes you can easily expand the Rom and put new stuff there. Nes in general has much smaller room for expansion.

About debugger Nes has a little advantage, but for Snes you have Laevattein (Byuu's debugger based on Bsnes v086). This Laevattein é light years superior than Geiger and Bsnes Plus. The reason is that you have access to the full code to add whatever feature you want.
You can easily add new code anywhere in the whole system to help you in the debugging. Is very easy to recompile for Windows and Linux. The code is very well contructed and you can easily find what you want.
But probably this is for more advanced users, and few people knows about this debugger, even experienced romhackers. Probably most of romhackers still uses the unproductive Geiger.