+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  Castlevania II: Simon's Quest ASM Hacking help
Pages: [1] 2
Author Topic: Castlevania II: Simon's Quest ASM Hacking help  (Read 1 times)
locke nes
Guest
« on: April 25, 2010, 03:06:24 pm »

EDIT:

Hey, I want to change the speed and jump height of Simon Belmont in Castlevania II. I assume to do this, I have to use FCEUDx and use ASM hacking?

I tried to read a few documents on this, particularly "FCEUd, Tutorial #1 (Hacking Character Stats)" by Parasyte, but I don't understand it. Can anyone help me?














« Last Edit: April 25, 2010, 08:55:33 pm by locke nes »
Dwedit
Guest
« Reply #1 on: April 25, 2010, 04:01:05 pm »

It's an incomplete rom, or has the wrong number of banks.  A complete rom is 256k in size.
locke nes
Guest
« Reply #2 on: April 25, 2010, 04:45:24 pm »

Thanks, that fixed the main problems. Luckily, I didn't do that much yet, so it's ok to start over. I'll see if the pallete thing happens again, and see what I can do about the Oak Stake.

I also want to make him walk faster and jump higher. What's a good method for finding the hex values that correspond to specific details like that?
Dr. Floppy
Guest
« Reply #3 on: April 27, 2010, 09:57:57 pm »

Quote from: locke nes on April 25, 2010, 04:45:24 pm
Thanks, that fixed the main problems. Luckily, I didn't do that much yet, so it's ok to start over. I'll see if the pallete thing happens again, and see what I can do about the Oak Stake.

I also want to make him walk faster and jump higher. What's a good method for finding the hex values that correspond to specific details like that?

Honestly?

Find some Game Genie codes that do what you're aiming for (or at least something similar). All Game Genie codes are just snippets of data that tell the game to "replace Byte XX with Value YY at Location ZZZZ"; you can determine exactly what's being replaced with what (and where) by plugging the code into a Game Genie decoder. Then it's just a matter of pulling up that location in the ROM file and trying out various values until you get one you're happy with.
locke nes
Guest
« Reply #4 on: April 27, 2010, 11:11:16 pm »

Well, I thought about that, unfortunately....

AISKTIAL        Start with more energy
AZSTTIAL        Start with less energy
Work on 1st game only, not continues
SZSSYLSA        Infinite energy
PASGLILA        Start with 1 life
TASGLILA        Start with 6 lives
PASGLILE        Start with 9 lives
IZSKZIAI        Start game with 25 hearts
IYSKZIAI        Start game with 75 hearts

That's all the codes. Nothing I want in there, unfortunately. I was tinkering with FCEUX to see how to achieve what I want, but no luck so far.
There's some useful ones at GSHI, but there are problems..
« Last Edit: April 28, 2010, 12:03:22 am by locke nes »
Dwedit
Guest
« Reply #5 on: April 28, 2010, 12:05:37 am »

Use a cheat finder to find the address in memory of your position, then use data breakpoints to see what code changes it.
locke nes
Guest
« Reply #6 on: April 28, 2010, 01:08:17 am »

How do I use a cheat finder to find the address of the memory?

I'm using FCEUX 2.1.3 (the newest iirc)
Can you show me the steps to use that feature? I'm still very new to the interface, and I don't know how to use it fully.
KingMike
Guest
« Reply #7 on: April 28, 2010, 08:36:02 am »

Just type the Game Genie code into FCEUX's GG Decoder/Encoder and it will tell you the ROM address(es).
locke nes
Guest
« Reply #8 on: April 29, 2010, 02:14:16 am »

Thank you, that helped. Still learning some new tricks in FCEUX, and it's a pretty cool program I must say.

April 29, 2010, 11:32:41 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
In FCEUX, could I tell the program to halt the game when a certain byte has a certain value written to it?

Like, I found the byte that controls horizontal movement, and changed it so he runs faster now! Cheesy
But, when he jumps + direction, he still jumps slowly. I realized that the byte I changed has a different value.

When walking left it was 00, right it was FF. I changed it to 01 and FE.
But now, it's only 00 when jumps left, and FF when he jumps right.

For practical reasons, its hard to jump + direction without walking a little first. But the program would halt whenever I moved, but If I could tell it
to halt only when the byte was 01 or FF, this would be easier.

Thanks.
« Last Edit: April 29, 2010, 11:32:41 pm by locke nes »
Zakyrus
Guest
« Reply #9 on: October 02, 2011, 12:18:20 am »

Hey, did you ever get this figured out? 

Another cheat worth looking into is:


UNNASEKN - Simon jumps higher

or
00C905  change from FC to FB

Other values:
FF makes you barely jump at all, (hilarious) and F0 your rocket to the top of the screen, the latter of which might be useful for some kind of power up that lets you jump super high.

Hope it helps. :thumbsup:

~Z
« Last Edit: October 02, 2011, 12:27:13 am by Zakyrus »
Sliver X
Guest
« Reply #10 on: October 02, 2011, 10:01:53 am »

Quote
But the program would halt whenever I moved, but If I could tell it
to halt only when the byte was 01 or FF, this would be easier.

You want to set a conditional breakpoint for this. I've never used FCEUX, but I would assume it uses the same syntax as FCEUXD SP...

Like, take your memory address where Simon's speed index is being loaded. I don't recall what this is off hand (I've some some assembly work on this game in the past), but lets say it's at $325. The breakpoints would be like so:

$325 == #01
$325 == #FF

$325 is the memory address, == is a C style "Is equal to" condition and #XX means literal numerical value (Instead of a memory address).

You can also set conditions on things other than memory addresses, like register values and such.
Szczepaniak
Guest
« Reply #11 on: October 05, 2011, 06:53:17 am »

I did a search but couldn't find any related topic, and I don't want to create a new topic for an insignificant question, so I'll ask in here since we're all talking CVII:SQ

A few years back someone mentioned they were working on a hack to make improvements, such as correcting incorrect text and removing the message screen when it switches between day/night. Nothing major, no big map changes, no making it more difficult (I hate those types of hacks), more a streamlining of the experience. Making it slicker, and more logical with regards to the puzzles.

Problem is I can't recall who was working on it, what happened to it, or any other features, apart from a strong desire to remove the day/night message.

Anyone know which project I'm talking about? I don't see it listed anywhere...
TheWhipperSnapper
Guest
« Reply #12 on: October 06, 2011, 07:25:12 pm »

I assume you know about the Simon's Quest Redacted patch.

PS. thanks to the person who found the jump and speed values.
Zakyrus
Guest
« Reply #13 on: October 06, 2011, 08:29:50 pm »

What's the movement speed value for walking? I can't seem to find it for the life of me...  :banghead:


By the by, here's a few more useful codes...

NYSSLI \tExperience And Hearts Go Up Faster \t
PAZNGO   Start With 100 EXP \t
OSLAAX \tEnemies Always Leaves Better Value Hearts \t
NYIIZI \tCollect 1 Heart To Max Out Your Health \t
ATLESI \tEnemies And Bosses Don't Shoot Fireballs \t

ATTEAY \tCollect A Heart And Receive The Gold Dagger, Sometimes The Other Daggers Show Up \t

This one seems to randomly "rearrange" your inventory, sometimes you'll have two daggers and a diamond, then you collect a heart and you'll have the gold dagger and holy water... Might be useful for a "randomized" inventory system.


~Z
« Last Edit: October 06, 2011, 08:37:00 pm by Zakyrus »
Szczepaniak
Guest
« Reply #14 on: October 07, 2011, 06:22:05 am »

Quote from: TheWhipperSnapper on October 06, 2011, 07:25:12 pm
I assume you know about the Simon's Quest Redacted patch.

PS. thanks to the person who found the jump and speed values.

That might actually be the one I was thinking of - thank you!
Pages: [1] 2  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC