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

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages -

Pages: [1] 2 3 4 5 6
You know what would be awesome? If someone remade FF4&5 using the FF6 engine!  :D

Meaning hacking FF6 to become an FF4/5 game. This shouldn't be too hard for a skilled hacker, right? I mean most of the music and other assets from FF4&5 are readily available, it should just be a matter of re-working the game's scenarios, script, maps, enemies, etc....then again, I've never done any hacks of this magnitude so I wouldn't know...

You'd have to port the entire game which may or may not be feasible, not just the audio portion that was in question. The FDS uses a slightly different ROM map than cartridge games, so you'd have to port all the code.
Also the FDS games are loaded from disk into RAM in the adapter cartridge and run from there, and that means that games can use as much of that 32KB program RAM space as extra RAM as it wants.
Hey KingMike! :)
Thanks! Hmmm...yeah that sounds more complicated than I thought. But, there are pirate ROM versions of the 2 above mentioned games floating around. If the code to the extra audio is still intact in those roms, I wonder if it would be possible to output them somehow?

Anyways, just some thoughts... :)

Hi there,
I grew up playing many NES and FDS games and I've always wanted to play various FDS games in Cartridge form. The problem is the extra audio channel. There exists pirate ports of FDS gems such as Ai Senshi Nicol or Arumana no Kiseki, but the games suffer greatly because of the missing audio channel.

So, I was wondering, if it is possible to port an FDS game to an NES rom using a Mapper that has expansion audio, then port the FDS extra sound channel to the Mapper's expansion audio channel.

What does everyone think? Would something like that work? ;)

8-bit fan

Hi there,
I'd love for someone with the skills to hack the graphics to Journey to Silius to make it a Terminator game that it original had intended to be:

That would be so awesome and would make the best Terminator game out there!! :)

Personal Projects / Re: Capcom Games Editor (NES)
« on: January 02, 2018, 04:15:10 pm »
Nice update spiiin! :)
I'm working on a Shadow of the Ninja hack right now and your hack might once again come in handy. ;)

Btw, remember I previously asked you about adding games from FDS? Will there be a possibility?

Thanks again! :thumbsup:

8-bit fan :beer:

ROM Hacking Discussion / Re: How do you give an NES game SRAM?
« on: December 29, 2017, 06:38:06 pm »
I've been adding SRAM Saving to quite a few games but I still consider myself an amateur. Plus I've been doing it to games that already have a password function in place so they're not that difficult. Like others have mentioned already, adding SRAM Saving to a game that doesn't even have a password system could be quite a task as there's a whole bunch of things you'd need to all the coding.

But if you have anything specific, I'd be more than glad to try to help!

Cheers! :beer:

8-bit fan

Gaming Discussion / Re: GameFAQs for ROM Hacks...
« on: November 29, 2017, 06:30:12 pm »
Interesting points Psyklax and Chronosplit. Thanks for the replies! :)

Yeah, I figured it would be hard since it requires a team or a community of people, especially if it's going to be like GameFAQs in a form of a forum since you'll need admins and mods, etc. And not to mention the legality of things. That's why I suggested a subsection for RHDN since there's already a community here solely for ROM hacking. :)

Gaming Discussion / GameFAQs for ROM Hacks...
« on: November 29, 2017, 05:13:42 pm »
Hi Everyone! :)

Ever came across a point in a hacked game where you're stuck and needed some pointers? Or needed an item that does a certain special damage? Or just wanted to check out the map of a certain stage for secret areas? I have! I've always wanted something like a GameFAQs for ROM hacks for instances like these where I could look up maps, stats, and other info, etc.

Now, I've searched and I don't think something like this exists, and I don't think using GameFAQs for ROM hacks is appropriate or even allowed. So, how about starting one? A GameFAQs for ROM hacks! :D

What does everyone think? Do you think something like this is feasible? Would it be within legal bounds? If so, would RHDN be a good place for something like this like a subsection? :)

Any idea? :)

8-bit fan

You're building a mental wall.  Doing a mapper hack isn't as hard as you think.  In fact, I'd argue that doing an SRAM hack is harder, as it actually takes understanding of what information the game is handling.

The only thing you really need to do for a mapper hack is find all the code that swaps banks and change it to a 'JSR' that does the MMC1 version of a swap.  It's little more than find/replace.  Time consuming, but very easy.

Don't let it scare you.  You definitely should be able to do it.
Thanks Disch for the encouragement! :)
Ok I'll definitely look into this when I have the time then! :)

November 28, 2017, 03:47:37 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
UxROM are Nintendo boards and definitely have no SRAM. iNES mapper #2 is however a super-set of UxROM which is implementation-agnostic, and allows swapping far more banks (8 bits instead of 3 or 4), and allows for SRAM.

So if you're going to hack a game and require SRAM I'd say first do that part of the hack. If in the end, staying with mapper #2 is problematic for whathever reason (it shouldn't be unless you want to run on a real cart, but remind you that it means more people bootlegging your hack and selling repros) - then if this is a problem you can always switch to mapper #1 later. As Disch says this is a super simple thing to do and the only real requirement is to have some extra free ROM as the bankswitch routines will be longer - but this is a requirement for almost any romhack.
Thanks for the reply Bregalad! :)
Yeah, I'm not concerned about people selling repros of my hacks, in fact, the more people get to play them the better! That's why I make them :)
But yeah, the ROM for this game seems to have some free space(unlike Guardian Legend) so it shouldn't be a problem as long as I can figure this whole thing out.

Thanks again for the advice! :thumbsup:

8-bit fan

Personal Projects / Re: The Guardian Legend - SRAM Saving Edition
« on: November 28, 2017, 03:40:32 pm »
Isn't CHR banking on MMC3 like
write 0 to 5 to $8000 to select which of the six CHR regions (2 2K banks plus 4 1KB banks) to bankswap
and then the CHR bank to $8001?
(and repeat for all 6 banks)

I think there's also a register which chooses which half of PPU tile space ($0000 or $1000) uses the 2KB banking (which makes the opposite use the 1KB banking).

If it's a CHR-RAM state you could probably just set it map CHR to banks 0 to 5 in order. Thus the banking size wouldn't matter as long as it's set to something.
Pretty much what KingMike said, except the 2k banks ignore the lowest bit, so you would need to set registers 0 to 5 to be: 0, 2, 4, 5, 6, 7
Which should give a continuous 8kb worth of CHR banks and fix the issue in Mesen.

The 2x 2k + 4x 1k vs 4x 1kb + 2x 2k toggle is bit 7 ($80) of $8000.
So this sequence of writes should work:
Code: [Select]
$8000 = $00
$8001 = $00
$8000 = $01
$8001 = $02
$8000 = $02
$8001 = $04
$8000 = $03
$8001 = $05
$8000 = $04
$8001 = $06
$8000 = $05
$8001 = $07
Thanks so much for your help again KingMike and SourMesen! :) Much appreciated!! :thumbsup:
Man my to-do list is getting big! But I'll definitely get to this one when I'm able to find some time!

Cheers!! :beer:

8-bit fan

Personal Projects / Re: The Guardian Legend - SRAM Saving Edition
« on: November 27, 2017, 03:35:49 pm »
As far as I can tell, your hack does not initialize the CHR banking registers at all, relying on the emulator's default state. I imagine FCEUX, Nestopia and the Everdrive all use the same default state. On a real MMC3 cart, there is no guaranteed bootup state, as far as I know. I'm not a hardware expert, but I haven't seen any documentation stating that the MMC3's bootup state is fixed and reliable on a real cart, so relying on this is probably a bad idea.  Mesen mostly tries to avoid making assumptions about bootup state - in the MMC3's case, all registers are initialized to 0, which makes the default CHR banking relatively useless (and forces the coder to initialize the MMC3 registers themselves).
Hi SourMesen,
Thanks for the feedback! :)
Do you have any pointers on how I'd be able to initialize CHR banking? I'd love to learn it as well as fixing the hack.

Any help would be much appreciated!  :thumbsup:

8-bit fan

I threw this together to help explain bankswapping:
Disch you are awesome!! :)
That image spells it out very nicely and doesn't get much clearer than that! Thank you SO much and I'll definitely read it more later after some turkey first! :)

I'll report back later!

Thanks again and have a nice Holiday!! :D

Cheers!! :D  :beer:

8-bit fan

November 27, 2017, 03:28:47 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
I threw this together to help explain bankswapping:
Hi Disch,
So I got the chance to look at what you wrote more thoroughly. Your image needs to be stickied btw :)

But yeah, so this one is going to actually take me a while. As I'll need to first convert the game into a different mapper(which would take a while if at all, not sure if I am capable of this), then adding the SRAM saving function...which would be the easy part as I've done enough of that already.

If anyone can lend a hand in converting the game to MMC1 or MMC3, that would be awesome! It'll be a collaborative project and will give credit to each and everyone that contributes! :)

Until then,  :beer:

8-bit fan

To do a mapper hack you need to know 3 things:

1)  6502 assembly  (which I assume you are reasonably proficient in if you are adding SRAM to a game)
2)  How the original mapper works (In this case, UxROM)
3)  How the new mapper works (In this case, MMC1, I assume, unless you decide on something different).

Most mappers do more or less the same thing.  So doing a mapper hack involves figuring out what the game is doing in one mapper, and doing the equivalent thing in another mapper.

In this case, UxROM only has 1 thing to do:  Swap PRG.  It does that with code similar to the following:

Code: [Select]
; Swap to bank 'some_bank_number'
LDA #some_bank_number
STA $C000,X    ; address may vary -- must be between $8000-FFFF

The equivalent code on MMC1 (to swap PRG) would be the below:
Code: [Select]
LDA #some_bank_number
STA $F000   ; address may vary -- must be between $E000-FFFF
STA $F000
STA $F000
STA $F000
STA $F000

Both of these bits of code might seem strange at first, but what they're doing is very simple.

To Swap PRG on UxROM, you just have to write the desired page number to any address in the $8000-FFFF range.  The thing that makes it complicated is that most boards have bus conflicts, so the value you write must match EXACTLY to the value that is read from that address.  IE, if you want to swap to page $05... you'd need to write $05 to an address in the $8000-FFFF range that already contains a $05.

Games often do this with a lookup table that just looks like this:
Code: [Select]
At address C000:
  00 01 02 03 04 05 06 07

The game then uses the page number as the index to the lookup table to write:

Code: [Select]
LDA #5        ; want to swap to bank 5
TAX           ; A and X are now both 5
STA $C000, X  ; Since X=5, we will write to $C005, and we know $C005 contains 5 because
              ;   that's the point of the lookup table.

Note that this is just an example, and not a definitive rule.  A game might do something like this:
Code: [Select]
LDA #$02
STA $8016
... if it just happens to know that $8016 contains a 2.  There isn'te specific routine to do this -- a game can do it any number of ways. It's up to you to look at the code and figure out what it's doing.

But you can know for sure that every single write the original game does to the $8000-FFFF range is the game attempting to swap PRG to a specific page.


MMC1 is weirder.  To Swap PRG here, you just have to write the desired page number to any address in the $E000-FFFF range.  The plus side is there's no bus conflicts, so you don't have to worry about writing to an address that contains a certain value.  The down side is MMC1 registers can only be written 1 bit at a time.

MMC1 regs are also 5 bits wide, which means each register write actually takes 5 writes (one for each bit)

Hence the LSR's between each STA.  The low bit is written first, then you shift right to move the next bit into position 0, so it will be written on the next STA.

MMC1 also has additional functionality besides just PRG swapping.  You don't have to use it, since the game you're hacking doesn't need it... however you still have to initialize everything.  Common best practice is to write to all registers once at powerup to put everything in a known state.  So take a look at MMC1's register list:

There are 4 registers:

1)  Control ($8000-9FFF).  This sets the mirroring mode, as well as the swap modes.  To match UxROM, you want 8K CHR and 16K PRG swappable at $8000... and either horizontal or vertical mirroring depending on what the game is (I'm too lazy to check).  So you'll want to write either $0E (vertical) or $0F (horizontal).  But again, gotta write 1 bit at a time, so when I say "write" I mean "perform 5 STA's"

2)  CHR bank 0 ($A000-BFFF).  Since you'll be using CHR-RAM, the CHR swapped in doesn't really matter.  You can probably get away with not writing to this reg at all, but if you want to be strict you can write $00.

3)  CHR bank 1 ($C000-DFFF).  Ditto.  Although since you'll be using 8K CHR swapping this reg will actually be ignored, so you REALLY don't need to write to it at all.

4)  PRG bank ($E000-FFFF).  This is what controls the PRG swapping.  Basically just write to this reg whatever the original game does when it bankswaps.
Wow thanks so much Disch!
This is some amazing info!  :o :)

I'll have to take some time to read and understand this.
But right off, one thing I need to really grasp is bank swapping...both usage/concept and syntax. Sounds super useful also.

Thanks again for your help and I'll give an update if I make any progress! :)

Cheers!!  :D :beer:

8-bit fan

I don't think there are any UxROM boards which have on-board RAM (nesdev wiki says the board doesn't support it).  I wouldn't think most emulators or emu-on-a-carts like the PowerPak would care and would've put RAM at the $6000-7FFF range anyway for compatibility reasons -- but apparently I'm wrong!!  Interesting.

The constantly changing values in the hex editor is definitely a bug in FCEUX, though... and a weird one.  Maybe a stray/uninitialized pointer?  In any case, when I tested and read from that range I didn't get the values it showed... instead I got open bus as I'd expect.

Anyway, to answer your questions:

1)  Yes, it is possible to do a mapper conversion.  A UxROM to <insert other mapper here> mapper hack isn't different from any other mapper hack.  Just pick a mapper that has similar swapping abilities as well as SRAM support (MMC1 could work), then find all the points at which the game does mapper stuff and replace it with the MMC1 equivalent.   The only tricky thing with UxROM is that since the swap code is so small, many games do inline swaps without JSRing to a separate swap routine -- which means it might be hard to track down ALL the mapper code.

2)  No, there's not a reliable way to add SRAM to UxROM.  You'd probably be able to get some emulators to work, but others will choke.  Best to switch mappers.
Hey Disch!
Thanks so much for the reply and thorough explanation! Much appreciated!! :)

But yeah, I figured as much, that the best way to go about this is to convert the game to a different mapper(MMC1) to do the SRAM hack. However, this is an undertaking that is pretty much beyond what I'm capable of. For example, I have no clue what a swap code is, etc. So with that said, would you happen to know any FAQs or Step-by-Step instructions on how I would go about converting mappers?

Thanks again for all your help! :)

8-bit fan

Hi Everyone! :)
I'm back to hacking more games to give them SRAM Saving function!
However, there are a handful of games that uses mappers(such as UNROM, etc.) that do not have SRAM saving function capabilities.

For example, right now, I'm trying to add SRAM Saving to 'Majou Densetsu II -Daimashikyou Galious (J) [!].nes', but the game uses the UNROM mapper. So, even if I am able to write instructions to store save info in $6000-$7FFF, it wouldn't work because that section of the RAM keeps this:

So my question is:
Is it possible to convert a game that uses UNROM to something like SNROM so I can add SRAM Saving function?
Or, is there a way to save to SRAM for a game that uses UNROM mapper?

Any help would be greatly appreciated! :thumbsup:

Thank you!! :beer:

8-bit fan

Personal Projects / Re: The Guardian Legend - SRAM Saving Edition
« on: November 17, 2017, 06:31:46 pm »
Hello, thx for your work, I like SRAM hacks for old NES games and want to play them hopefully someday again.
Did you have "The Magic of Scheherazade" on your list. Was always a game for me, which need SRAM function. It feels like an old Adventure which just miss SRAM. I looked again in the Password function and it looks also very long.
Hi MattyXB!
Thanks for your comments! :)
Ok sounds good! I'll put that on the list of to-dos as well! :thumbsup:
I actually recently just checked out the game and thought of the same thing, that an adventure game like this could use a Saving system instead of a Password. Games that involve more stats and items with long passwords are higher on my list of to-dos, so this one should be bumped up. Thanks for bring this to my attention!

Cheers! :beer:

8-bit fan

Personal Projects / Re: The Guardian Legend - SRAM Saving Edition
« on: November 15, 2017, 03:20:25 pm »
So, I don't know if this is a good way to ask but what are you planning on doing next? You did Guardian Legend, Goonies 2, and Battle for Olympus. Metal Storm would be cool with sram, as well as Ufouria saga. Honestly my mind is just racing with the possibilities. I've wanted hacks like these for as long as I can remember.
Hi Ar8temis008!
Thanks for the suggestions!
I'm actually working on adding SRAM Saving to Clash At Demonhead right now, and hope to have that ready soon. But yes, it's as you mentioned, I'm actually going through the list of NES games with LONG passwords and upgrading them to SRAM one at a time. Thanks for bringing up Metal Storm and Ufouria! I'll add those to my "to do" list as well. :)
Can this work with Optomon's Secret Edition hack? I'd like to play that with SRAM as well. It's a much harder game than the original one.
Hi Ziko!
I just released a version for Secret Edition yesterday! Feel free to check it out and hope you enjoy it! :)
I had to re-convert the hack to MMC5 because I couldn't get MMC3 conversion working for Secret Edition, and I needed the conversion to update the mapper in order to add SRAM Saving to it. ;)
This hack unfortunately does not work on Mesen.  :(
Hi darthvaderx!
Thanks for bringing that to my attention!
Hmmm...interesting. I'll take a look at this when I have time to see if I can fix this. But I've checked the game on other emulators including the original NES/AVS hardware via an Everdrive, and they all worked without any problems. But thanks again and I'll take a look later. :)

Cheers! :beer:

8-bit fan

Personal Projects / Re: The Guardian Legend - SRAM Saving Edition
« on: November 07, 2017, 04:52:17 pm »
Just curious if you were planning on making any smaller changes like you did with Battle of Olympus.
Ahhh...gotcha. :)
Nah, Compile shooters are pretty perfect as they are so I'm not about to muck with the gameplay or the AI. If I do make any changes to a game like TGL it'll be something like the Secret Edition hack with brand new levels, etc.

Cheers! :beer:

Personal Projects / Re: The Guardian Legend - SRAM Saving Edition
« on: November 07, 2017, 03:37:37 pm »
What's left to do, if you've gotten the game to save properly?
Hi Ar8temis008!
Just to give it a little more polish, and I'll need to play through the game to make sure it works entirely. :) What did you have in mind?

I also want to add SRAM Saving for The Guardian Legend Secret Edition hack. I'll need to check if my ips work with that hack first. If not, I'll create a separate one for it. :)

Cheers! :beer:

8-bit fan

Personal Projects / Re: The Guardian Legend - SRAM Saving Edition
« on: November 07, 2017, 12:16:01 am »
That's perfect. Does exactly what it's supposed to do with very minor losses, as well as generally improve an already great experience.
Thanks Ar8temis008!
However, upon checking the game more, removing that set of instructions screwed up the saving/password screen at the Blue Lander:

However, I think I might have a plan B if I can get a little ASM help for MMC3 games.

I found a bunch of space used for dialog in the ROM file. Now, I can rewrite some of the longer dialogs and use that space for the text on the password screen, but I have a problem. I don't know how to 'JMP' to that area of the ROM. The instructions for the password screen is located at around 0x00C360, however, the extra space that I need is at around 0x015650.

Does anyone know how to JMP from 0x00C360 to 0x015650 in ASM?

Any help would be much appreciated!! :thumbsup:

8-bit fan

November 07, 2017, 05:26:12 am - (Auto Merged - Double Posts are not allowed before 7 days.)
Ok found a work around...
I disabled the option to 'check password'. I think that part is expendable.

8-bit fan

Pages: [1] 2 3 4 5 6