don't click here

Which would be the most useful to know?

Discussion in 'Engineering & Reverse Engineering' started by Syren, Jun 3, 2004.

Thread Status:
Not open for further replies.
  1. Syren

    Syren

    Member
    4,330
    0
    0
    Teesside, UK
    Reintergration
    Since Im still a newb and Im still dependant on most precious programs sutch as ChaoSaX, SonED and ESE ][ I figured I should learn something.
    The only problem is Hex looks like a nightmare and ASM looks like a nightmare-come-reality. So what does everyone think I should benefit the most out of?

    BTW: Im also thinking of writing something like a diary out of learning one of these. If I do learn them like the back of my hand and write everything down in the diary it could be usefull for other learning newbs.

    In the words of Quick Man, Discuss.
     
  2. Fiz

    Fiz

    FACKIN' BIG PENIS Oldbie
    1,985
    0
    16
    PENIS
    soil likes cock in his butt

    *4E 75's j00*
     
  3. Syren

    Syren

    Member
    4,330
    0
    0
    Teesside, UK
    Reintergration
    what's the point in that kinda post, Fiz?
     
  4. LocalH

    LocalH

    roxoring your soxors Tech Member
    3,314
    35
    28
    Nunya
    Rock Band 3 Deluxe
    You need to know both.

    Hex is the standard for representing numbers. ASM is the use of instructions, labels, constants, etc. to make programming easier. On the C64 (you could do this on a Genesis technically but there's no practical reason to), you also had ML (machine language), which was basically the use of mnemonics only, no labels, constants, nothing. The only 'help' you had was that you could use an absolute address with a BEQ/BNE and the ML monitor would calculate the offset, instead of having to calculate it yourself.
     
  5. Syren

    Syren

    Member
    4,330
    0
    0
    Teesside, UK
    Reintergration
    Interesting.... So hex is all about representing things and ASM is about instructing how things should work?
     
  6. Believe it or not I find hex to be easyer than using programs to do things.I did the stupidest thing in ESE.I was making new 8x8 tiles for the palm trees in EHZ, the level is going to be florescent so I began transforming the trees into blacklights but I edited too much too fast and my level didn't work(black screen) and then the red checksum screen wouldn't go away and then THE ROM GOT CURRUPTED.Hex is so much better than relying on programs.
     
  7. LocalH

    LocalH

    roxoring your soxors Tech Member
    3,314
    35
    28
    Nunya
    Rock Band 3 Deluxe
    Well, hex is short for hexadecimal, and is just a numbering system. You CAN program directly in hex, but you'd have to assemble the instructions yourself, and it'd be a bitch to debug. ASM is just a much easier way to keep track of everything. Coding straight to hex (which is really just coding straight to binary, since binary and hex are very easy to convert between), would be considered 'hardcore coding' by me.
     
  8. Syren

    Syren

    Member
    4,330
    0
    0
    Teesside, UK
    Reintergration
    Oh. Um. Gee. That sounds like I may aswell just learn what parts of the rom is assigned to what hex, etc. Does anyone know a 68kASM Disassebler that is not in DOS or atleast compatable with WindowsXP? All the Disassemblers that are pinned in this forum are DOS and just close straight away on my OS.
     
  9. Sonic Hachelle-Bee

    Sonic Hachelle-Bee

    Taking a Sand Shower Tech Member
    814
    214
    43
    Lyon, France
    Sonic 2 Long Version
    I really don't know anything in ASM.
    Learning it could be fine, but that's not necessary for me now.
    Hex is the best to hack something (for my part), easy to edit, and you can find some new stuff not discovered yet.
    You can do everything with a good hex editor! Even the impossible so far! ^_^
     
  10. Ultima

    Ultima

    Games Publisher Tech Member
    2,398
    1
    18
    London, England
    Publishing mobile games!
    Technically, you can do anything with an app, if you have the source. *runs*
     
  11. Syren

    Syren

    Member
    4,330
    0
    0
    Teesside, UK
    Reintergration
    LOL! So, taking everything everyone's said into account....Hex is better?
     
  12. Kles

    Kles

    Member
    Atleast with SNES, you can make magical things happen if you know ASM.

    HEX for "normal" editing, ASM for deeper editing.
     
  13. Quickman

    Quickman

    be attitude for gains Tech Member
    5,595
    18
    18
    :x
    omg porjcet
    Generally for banal things like palettes I prefer something like the palette editor in ESE ][ because I can see the colour I'll end up with so I can keep the gradients together. It makes for a nicer palette hack.

    Level hacking is again made easier by tools like ESE ][ since you can see what you're laying down.

    Although ESE needs level art editing capabilities...
     
  14. XFox Prower

    XFox Prower

    Member
    1,196
    0
    0
    x86 Assembly, Tails Search Assistant
    You need to know tree things:
    1. Hex. This is vital for every programming language. It's just another numbering system. Learn this first.
    2. ASM 68000. This is the language used to program with Genesis roms. This is the syntax behind it and nothing more.
    3. Offsets and hardware behavior. Face it, you can know everything about ASM and it won't get you anywhere if you don't know the different areas things such as sprites and palettes belong. Unfortunately this last step is a weakness among every Genesis ROM tutorial. You can find quite a few tutorials around but there are very few useful tutorials that will show you how to store a sprite. Making sprites are easy. The format of the VRAM and CRAM is simple but few people / nobody knows what memory offsets you must store them at.
     
  15. Korama

    Korama

    Tech Member
    272
    2
    0
    You are comparing two very different things here. As many people have already said, hexadecimal is a number system, another way of displaying numbers. In programming, hexadecimal is frequently used, because it's better suited to represent the value of bytes than decimal, and because hex can easily be converted to binary by people familiar with it. Binary is another number system, the one that computers really use, consisting of merely 0s and 1s.

    Assembler, on the other hand, is no number system but a low level programming language, which is very close to machine language. Assembler is no standard, so there a lots of different types, depending on the CPU they are made for. Assembler for Intel x86 CPUs is quite a bit different from assembler for Motorola 68K, for example.

    Anyway, first get familiar with the whole concept of hexadecimal numbers before trying any assembler. And if you just want to learn how to program, then assembler definitely isn't the best choice.

    It's impossible to explain hex or asm in a few words, so I wouldn't be surprised if you still have questions. Try a google search or just keep asking here. :)


    That's probably because the exact VRAM offset of the sprite attribute table is programmable and hence can be different from game to game or even within a single game. And CRAM is no part of VRAM.
    For Genesis hardware info, check out the famous "sega2.doc" (here is a version hosted by Nemesis). You might also want to play around with my Genesis savestate viewer, with it you can change some VDP settings and immediately observe the effects.
     
  16. Quickman

    Quickman

    be attitude for gains Tech Member
    5,595
    18
    18
    :x
    omg porjcet
    You don't need to mess with ASM unless you're changing things in a very specific way, and you need to understand binary to mess with it at all. ASM hacking has to be done in a very controlled way.

    Regular hacking isn't about knowing hex, it's knowing the format of the thing you're editing so you know how to edit it. Hex is a necessary evil needed to achieve this.

    Also, even people like me don't understand some things (I don't understand how the VDP is programmed at all; I need to read Charles McDonald's stuff in more depth, and I haven't even attempted to mess with collision).
     
  17. drx

    drx

    mfw Researcher
    2,254
    350
    63
    :rolleyes:
    Heheh, I also didn't understand VDP until today. I re-read sega2.doc again and again and I got it! This doc is great, and whoever leaked it, r0x.
     
  18. LOst

    LOst

    Tech Member
    4,891
    8
    18
    Wasn't leaked.

    It's a FAQ with info taken from all over the place
     
  19. XFox Prower

    XFox Prower

    Member
    1,196
    0
    0
    x86 Assembly, Tails Search Assistant
    Thanks for the guide ^_^. It's exactly what I was looking for. The control and data ports make sense now. So far I'm comfortable with writing CRAM & VRAM and viewing them in Gens' VDP debug.
     
  20. drx

    drx

    mfw Researcher
    2,254
    350
    63
    :rolleyes:
    Then why it has 'CONFIDENTAL' in it? :P
     
Thread Status:
Not open for further replies.