[Archived] Hack ideas: for those without the skill but with all the ideas.

Started by Piotyr, March 23, 2007, 10:11:50 PM

Previous topic - Next topic

felipechalreo

 I'm not sure if this is the right place to ask, but I think that Castlevania - Harmony of Dissonance is somehow bugged with drop rates. (I gave myself 65000 luck and the drop rate doesn't seem to increase) So I was wondering what the best way to search drop rate in this types of games. I'm just generally curious about it. :)

FAST6191

Tracing is the best way. https://www.romhacking.net/documents/361/ is for graphics and for vba-sdl-h (no$gba debug has since become free and is rather more graphical than command line, however tracing works much the same on all systems -- break on read, break on write, break on value being greater than or less than or equal to being rather similar concepts in all systems).

Find the enemy health value (fortunately games like this have one, as opposed to one hit and done type games) as per standard cheat finding methods, and if you know how to sort luck you can probably nerf attack to do one damage each time and give yourself plenty of search opportunities. As multiple enemies can exist in one screen/room it may be multiple values/an array but that is nothing major and will likely be similar between screens so go for a one enemy room if you like just to make life easier.
Upon said health value reaching zero many things will happen, one of those will be figuring out item dropping. While I say many (death animation, handling of a health bar, kill counter increase, experience, souls... I can't remember all the mechanics for this one) it is probably enough that you could go by hand if you had to as for most of those you need not know how they work, just enough to know what they do and then dismiss them in favour of your main target.

Possible bonus. http://datacrystal.romhacking.net/wiki/Castlevania:_Aria_of_Sorrow_%28Game_Boy_Advance%29:ROM_map
I know it is the other GBA entry but... let's just say few would argue Konami GBA and DS peeps were not fans of code reuse. To that end what is there is probably largely going to be similar to what you will see there and you can then look for similar structures. The split between drop rates for common and rare likely going to crop up here as well (it is an easy way of simplifying your drop algorithms), and may even take luck into account a different way.

Also worth noting. If there are any items that influence drop rate you might find some value there, however the health thing is probably quicker and a lot of drop things in games tend to be flags rather than some kind of mechanical advantage. On the other hand the only thing reading said flag if you can find it (equip and unequip is not so hard and can make for a decent cheat search) will be the drop algorithms and thus you can possibly even search for anything reading that memory location (or set a breakpoint for said same).

felipechalreo

Quote from: FAST6191 on December 10, 2017, 11:08:24 PM
Tracing is the best way. https://www.romhacking.net/documents/361/ is for graphics and for vba-sdl-h (no$gba debug has since become free and is rather more graphical than command line, however tracing works much the same on all systems -- break on read, break on write, break on value being greater than or less than or equal to being rather similar concepts in all systems).

Find the enemy health value (fortunately games like this have one, as opposed to one hit and done type games) as per standard cheat finding methods, and if you know how to sort luck you can probably nerf attack to do one damage each time and give yourself plenty of search opportunities. As multiple enemies can exist in one screen/room it may be multiple values/an array but that is nothing major and will likely be similar between screens so go for a one enemy room if you like just to make life easier.
Upon said health value reaching zero many things will happen, one of those will be figuring out item dropping. While I say many (death animation, handling of a health bar, kill counter increase, experience, souls... I can't remember all the mechanics for this one) it is probably enough that you could go by hand if you had to as for most of those you need not know how they work, just enough to know what they do and then dismiss them in favour of your main target.

Possible bonus. http://datacrystal.romhacking.net/wiki/Castlevania:_Aria_of_Sorrow_%28Game_Boy_Advance%29:ROM_map
I know it is the other GBA entry but... let's just say few would argue Konami GBA and DS peeps were not fans of code reuse. To that end what is there is probably largely going to be similar to what you will see there and you can then look for similar structures. The split between drop rates for common and rare likely going to crop up here as well (it is an easy way of simplifying your drop algorithms), and may even take luck into account a different way.

Also worth noting. If there are any items that influence drop rate you might find some value there, however the health thing is probably quicker and a lot of drop things in games tend to be flags rather than some kind of mechanical advantage. On the other hand the only thing reading said flag if you can find it (equip and unequip is not so hard and can make for a decent cheat search) will be the drop algorithms and thus you can possibly even search for anything reading that memory location (or set a breakpoint for said same).

Nice! Thanks for pointing me at the right direction, I will search for a bit and post some results.

Tsukiyomaru0

I did an experiment once to find the Rare Ghost in that game which involved setting luck to its highest value and trying to consistently get it to appear. At 999 luck, the chance was pretty much 25%. That is all I can say in regards to HoD's luck system.

FAST6191

Forgot to also mention/consider the luck value in tracing as well.

If you find the code which runs on 0 health then the drop rates will probably also reference the luck value you already altered and know the location of. As that has little to do with the health bar, death animation, removal... and will likely only concern the drops it will hopefully narrow it down.

You might also be able to set a break on read for the luck value you changed before you made the earlier post. I don't know how much the game uses it (it probably plays into hit percentage and bonus damage/damage range, or at least we see that sort of thing in other games) and thus if you break on read it may stop the game to tell you every single hit and enemy hit on you (which might not actually be that annoying, compared to say a timer which changes every frame of which there are often 60 per second of normal play) but one of those will hopefully be related to the drops. On the flip side I have seen other games ignore the luck value for rare drops before.

Going through health will almost certainly find you what you want (some games might decide as you enter a room or they spawn the enemy but let us not be too cynical, and something will still happen on death so you can figure something out) but the above methods may be quicker or narrow it down more easily.

claudio4209

Hi guys!!
I want to know if is possible to hack some rom in order to use the Start button on sega mega drive/genesis as Pause button on Sega Master System.
I found a hacked rom by Ichigobankai of Wonder Boy III the dragon's Trap. (Thanks man!!)
The roms i need to hack are:

Psycho Fox
Moonwalker
Alex kidd in Miracle World

Thank you so much

foiopaulo

Reading about that Street Fighter Collection that is going to be released, I thought about something:

What about a remake of Street Fighter 1, that could go 2 ways?

1) Remake with ALL Street Fighter 1 characters playable, with Street Fighter Alpha 3 Upper gfx and gameplay (Eagle, Adon, Birdie, Gen... there are already PLENTY of characters done).
2) Remake with ALL Street Fighter 1 characters playable, with Ultra Street Fighter 4 gfx and gameplay (that would be the hardest one to pull, I think).

KingMike

Quote from: claudio4209 on December 12, 2017, 03:13:44 AM
Hi guys!!
I want to know if is possible to hack some rom in order to use the Start button on sega mega drive/genesis as Pause button on Sega Master System.
I found a hacked rom by Ichigobankai of Wonder Boy III the dragon's Trap. (Thanks man!!)
The roms i need to hack are:

Psycho Fox
Moonwalker
Alex kidd in Miracle World

Thank you so much

I know there's been some recent discussion on the SMS Power! forums about it. Do you know Z80 Assembly? You'll need it to be able to do that.
"My watch says 30 chickens" Google, 2018

Psyklax

Quote from: KingMike on December 12, 2017, 02:52:14 PM
I know there's been some recent discussion on the SMS Power! forums about it. Do you know Z80 Assembly? You'll need it to be able to do that.

On hacks to play Game Gear on Master System, it's common to remap the GG Start button to Down plus a button on controller 2, given the SMS has no Start button. Remapping Pause to Genesis Start will be more difficult since the SMS isn't expecting to use that button. I'd be surprised if it's possible. It's why Everdrives have a physical Pause button on them, clearly because there's no suitable alternative.

KingMike

Supporting the Genesis Start Button has been done in other SMS ROM hacks. It takes more work because (as I understand) it requires adding more code to poll the controller IO port extra times and process the results correctly.
(as from what I read the Genesis controller was designed to be somewhat backwards compatible with the SMS. Reading it once returns the directions and B and C, with a second read needed to get A and Start. Further reads needed to read the extra buttons on the 6-button controller.)

Changing the Start Button to player 2 Down is the most common solution because it's the easiest which works (it's something like replacing in,($00) with in,($DD). )

Conversely, some SMS games read the pad more often than the Genesis designers were expecting (or I'm guessing that is the reason) and is why some SMS games don't play correctly when played on a Genesis with PBC with a Genesis controller, and need a SMS controller.
Penguin Land is one such game I have that seems to have that problem. Game runs as if Left is held constantly.
"My watch says 30 chickens" Google, 2018

RealGaea

Things regargding Street Fighter Alpha: Warriors' Dreams.


CPS Changer version: make permanent the unlock of the full roster. You must holr Down+L+R Buttons on Controller 2 when turning on the machine, and this is impossible in emulation.


GBC version: Apparently, the code for selecting Akuma, Dan and M.Bison, doesn't work. At all.


So... why not expand the roster to select them normally, ala SFA Anthology? The tiles are there...

Psyklax

Quote from: KingMike on December 12, 2017, 08:01:26 PM
adding more code to poll the controller IO port extra times and process the results correctly.

That's what I thought would be necessary. Funny how you need to poll a second time despite the Genesis pad only having 8 buttons, therefore a single pass would suffice. I guess SMS Power is the place to look for such info.

claudio4209

Quote from: Psyklax on December 12, 2017, 05:10:48 PM
On hacks to play Game Gear on Master System, it's common to remap the GG Start button to Down plus a button on controller 2, given the SMS has no Start button. Remapping Pause to Genesis Start will be more difficult since the SMS isn't expecting to use that button. I'd be surprised if it's possible. It's why Everdrives have a physical Pause button on them, clearly because there's no suitable alternative.

I thought that it was not possible to use the start button of the Genesis controller as a pause button of the SMS but having found some hacked ROMs I understood that it was feasible. The problem is that I do not have the knowledge to do it myself. Using the pause button on Everdrive is functional but not comfortable because you have to get up all the time. I'm lazy I admit it :-[

Psyklax

Quote from: claudio4209 on December 13, 2017, 05:46:04 AM
I thought that it was not possible to use the start button of the Genesis controller as a pause button of the SMS but having found some hacked ROMs I understood that it was feasible.

Well I just looked for some hacks that use Genesis Start for SMS Pause, but can't find any. Can you suggest one? Then I can see what the hack is doing and how I could apply it to other games.

KingMike

I think Pause on the SMS is connected to NMI, which means pushing it runs whatever is at ROM $66.
So I would guess the idea of a Pause mod would be to disable the original routine at $66 (replace with whatever the Z80 equivalent of an RTI is?), and then detect when Start is pushed and do whatever it originally would have done.

Also, Genesis needed two reads since it was designed for backwards compatibility with the SMS which only had 6 keys (4 directions + 2 buttons), and the twelve total for 2 players were (on SMS) put together in two ports (the same port that handles player 1 also handles 2 of the player 2 keys, with the remaining four P2 keys plus some other stuff on the other port).
"My watch says 30 chickens" Google, 2018

Psyklax

Quote from: KingMike on December 13, 2017, 12:48:13 PM
I think Pause on the SMS is connected to NMI, which means pushing it runs whatever is at ROM $66.
So I would guess the idea of a Pause mod would be to disable the original routine at $66 (replace with whatever the Z80 equivalent of an RTI is?), and then detect when Start is pushed and do whatever it originally would have done.

Yeah, I just read about it on SMS Power and checked out Phantasy Star. It has a routine at $66 which checks a RAM address that tells it whether the game is at a point you can pause (not the intro for example). Another RAM address holds the pausing state, on or off. You'd have to find the routine that polls for input and add some way of checking for a different input, but good luck finding a few bytes in RAM where you can store the new routine...

Quote from: KingMike on December 13, 2017, 12:48:13 PM
Also, Genesis needed two reads since it was designed for backwards compatibility with the SMS which only had 6 keys (4 directions + 2 buttons), and the twelve total for 2 players were (on SMS) put together in two ports (the same port that handles player 1 also handles 2 of the player 2 keys, with the remaining four P2 keys plus some other stuff on the other port).

Ah, backwards compatibility, that makes sense I suppose.

andrewclunn

Games where I want an auto charge without having to hold a button:

Secret of Evermore
All the Mega Man X games
Super Metroid

Games where I want running to be the default and the run button to become a walk button:

Also Super Metroid
Chrono Trigger
Hell, make that every game rpg with a run button

Mauron

Quote from: andrewclunn on December 13, 2017, 10:21:58 PMGames where I want running to be the default and the run button to become a walk button:

Chrono Trigger
Change the following from F0 to D0: 0x00892A, 0x008949, 0x008968, 0x008987, 0x008A41, 0x008A0C, 0x0089A6
Mauron wuz here.

claudio4209

Quote from: Psyklax on December 13, 2017, 12:33:54 PM
Well I just looked for some hacks that use Genesis Start for SMS Pause, but can't find any. Can you suggest one? Then I can see what the hack is doing and how I could apply it to other games.

Sure! I found this hack made by ichigobankai https://www.romhacking.net/hacks/3628/

KingMike

Quote from: andrewclunn on December 13, 2017, 10:21:58 PM
Hell, make that every game rpg with a run button
I believe the PS1 and later versions of FF5 changed it so you always have a run button and the previous run ability was changed to a double-run.
Except for thankfully the Karnak escape sequence where it changes to auto-run (which while usually a positive thing, does make turning a bit more sensitive, especially when you have a somewhat strict time limit going on).
"My watch says 30 chickens" Google, 2018