Register | Login | |||||
Main
| Memberlist
| Active users
| ACS
| Commons
| Calendar
| Online users Ranks | FAQ | Color Chart | Photo album | IRC Chat |
| |
Acmlm's Board - I2 Archive - - Posts by bbitmaster |
Pages: 1 2 3 4 5 6 |
User | Post | ||
bbitmaster Koopa Level: 18 Posts: 81/103 EXP: 25264 For next: 4633 Since: 03-28-04 From: Knoxville, tTN Since last post: 12 days Last activity: 7 days |
| ||
Originally posted by hamtaro126 Wow, that's quite a request. There's no way I'm doing all that for you for. FCEUXD is out, the 6502 is well documented. NES Sound is well documented. You've got everything you need, so go make your own document. |
|||
bbitmaster Koopa Level: 18 Posts: 82/103 EXP: 25264 For next: 4633 Since: 03-28-04 From: Knoxville, tTN Since last post: 12 days Last activity: 7 days |
| ||
Originally posted by dark ludwigOriginally posted by bbitmasterI've Googled and Googled, and I could never find any documentations on that... You must not have googled hard enough. The too best documents on nes sound can be found here http://nesdev.parodius.com/apu_ref.txt http://nesdev.parodius.com/2A03%20technical%20reference.txt Of course, there are plenty of other great documents, and examples all over the place at nesdev.parodius.net |
|||
bbitmaster Koopa Level: 18 Posts: 83/103 EXP: 25264 For next: 4633 Since: 03-28-04 From: Knoxville, tTN Since last post: 12 days Last activity: 7 days |
| ||
yes, that feature where the trace logger works with the code data logger is extremely powerful. I'm glad that someone put it to good use. Speaking of using FCEUXD to find things, I thought I'd post a link to an old document I wrote about findindg enemy health with it. http://bitmaster.panicus.org/misc/EnemyHealth.txt |
|||
bbitmaster Koopa Level: 18 Posts: 84/103 EXP: 25264 For next: 4633 Since: 03-28-04 From: Knoxville, tTN Since last post: 12 days Last activity: 7 days |
| ||
First of all, FCEUXD is open source, so anyone can take it and do anything they want and rerelease it, as long as they provide source. And it's nice to see someone doing something with it, as long as they're actually doing something good. So, I don't want to sound like I'm bashing this guy, but I do question his motives for making this forked version of FCEUXD.Originally posted on his website I strongly disagree with that statement. If you know what you're doing, FCEUXD really makes almost anything possible with ease. Dahrkdaiz is living proof of that. To say "barely anything is possible" is completely false. So with this being his primary reason behind this, what does he have planned to improve it? lets see. Originally posted on his website Maybe I'm misinterpreting this, but most of these are already there or useless. Lets go through some of them. Mouse-over tool-tips for renamed addresses to see the original value <- It's already easy to see this in the debugger, just hold your mouse in the left pane beside the disassembly, and it shows you the rom file offset. watches <- watches? You've got a hex editor to do all the watching you want better conditions <- now this would be nice an option to auto-execute a command when a breakpoint is triggered <- what for? I can't think of any use for this. maybe he can? I don't know. ability to navigate through the disassembly by double-clicking names or addresses. <- this might be nice too. Parasyte is working on something that should make this possible in the next official release. again, I hope I'm not coming across the wrong way, I'm not trying to bash anyone. I hope this guy makes some cool features. on an unrelated note... Originally posted by iamhiro1112 What are you talking about? FCEUXD has great game genie code support. Just go to Tools->Game Genie encoder/decoder. |
|||
bbitmaster Koopa Level: 18 Posts: 85/103 EXP: 25264 For next: 4633 Since: 03-28-04 From: Knoxville, tTN Since last post: 12 days Last activity: 7 days |
| ||
Originally posted by iamhiro1112 oh dear.. Please tell your friend he needs to read the readme next time. I don't usually even cover things that are there, but you just don't seem to get it. from the readme: How do I add Game Genie codes? In the Game Genie Code decrypter/encrypter window, type the code into the Game Genie Code box and click "Add to Cheat List", which will add it to the Cheat Console cheat list. You can then enable/disable them by double-clicking the code in the box (a * means the code is active). You can't edit the compare value after the cheat is already entered in the cheat window, but you can easily edit it from the game genie encoder/decoder while your making it. So there. FCEUXD has excellent "true" game genie support. Read the readme next time. |
|||
bbitmaster Koopa Level: 18 Posts: 86/103 EXP: 25264 For next: 4633 Since: 03-28-04 From: Knoxville, tTN Since last post: 12 days Last activity: 7 days |
| ||
I downloaded this, thinking there would be some sort of challenge, but after glancing at the rom with FCEUXD, all I see is a very small simple homebrew rom that displays vertical columns of... well, garbage. It doesn't even check the state of the controller (no reads to $4016). (edit - apparently posting what took 2 minutes of hacking is considered offensive by the author. Just take my word for it guys, don't touch this rom.) Other than that, I really don't see the point of this, or what you even want for that matter. (edited by bbitmaster on 07-10-05 08:48 PM) |
|||
bbitmaster Koopa Level: 18 Posts: 87/103 EXP: 25264 For next: 4633 Since: 03-28-04 From: Knoxville, tTN Since last post: 12 days Last activity: 7 days |
| ||
In the megaman 2 rom file go to $3cc5f and change it to 02 That should allow ladders in quickman's stage as TSA type 02 |
|||
bbitmaster Koopa Level: 18 Posts: 88/103 EXP: 25264 For next: 4633 Since: 03-28-04 From: Knoxville, tTN Since last post: 12 days Last activity: 7 days |
| ||
Wow, with your special emulator, you've basically mutated the nes into something far more Xtreme. Forget custom palette hacks. I can't imagine how many new hacks with amazing graphics this could bring about. Way to go Disch! |
|||
bbitmaster Koopa Level: 18 Posts: 89/103 EXP: 25264 For next: 4633 Since: 03-28-04 From: Knoxville, tTN Since last post: 12 days Last activity: 7 days |
| ||
All I have to say is... Do an ASM hack for someone, and it wont be enough. They'll be back the next day for more. Teach a man to ASM hack, and they'll have all the hacks they need. The only thing is, there's so many resources out there, I shouldn't have to teach anyone anything. Just go download FCEUXD and play with it, and go through some tutorials. With some practice, you'll do fine. |
|||
bbitmaster Koopa Level: 18 Posts: 90/103 EXP: 25264 For next: 4633 Since: 03-28-04 From: Knoxville, tTN Since last post: 12 days Last activity: 7 days |
| ||
Altering the game behavoir like that most certainly does involve asm. If you know of a way to find bytes causing those speciic behaviors without involving asm, then I'd be happy to see it. | |||
bbitmaster Koopa Level: 18 Posts: 91/103 EXP: 25264 For next: 4633 Since: 03-28-04 From: Knoxville, tTN Since last post: 12 days Last activity: 7 days |
| ||
Originally posted by Dr. Mario Right... he coded a built in emulator for this... and I'm sure he never looked at any asm code to find this byte. Originally posted by Dr. Mario These codes were either found by experienced asm hackers, or someone who was extremely lucky, and it's not actually that hard to be lucky with 6 letter smb1 game genie codes because the rom is only 32768 bytes big, and most of it is used. Now as for looking for these specific bytes without involving asm, you'll have to know asm. The only other possibilty is being extremely lucky. Or knowing someone who was extremely lucky at some random change altering some asm code that they didn't understand. But it's still asm code nonetheless. |
|||
bbitmaster Koopa Level: 18 Posts: 92/103 EXP: 25264 For next: 4633 Since: 03-28-04 From: Knoxville, tTN Since last post: 12 days Last activity: 7 days |
| ||
I couple of weeks ago, I was reading something on the boards where some newbie that didn't know anything wanted to change the music engine in SMB1 to some other game. Of course when I read this post I laughed at first, but then I had a crazy idea. How hard _would_ it be for me to change a music engine in a game and how long would it take? I've got tools available to me that no-one else has, and I really do have the skill to do some amazing stuff to a nes rom, if I really want to. and I'm not afraid to show off every now and then. I'm also going to explain here exactly how I did it, and what tools I used First, I asked a bunch of people in our little channel what game music they would like to see put with smb1. My only restriction was that the game couldn't use the DMC channel, since that would require me to place samples in the rom. Technically dmc COULD be done using the rom expansion method which I used, but it would require a whole lot of code relocating, which I haven't got the time for. Just on a whim Disch suggested duck tales 2. He said he liked the music and it'd probably go great with smb1. So with no better ideas, I figured I would take a stab at placing the duck tales 2 music in SMB1. One little problem was that if I stuck the duck tales 2 music engine in as it was it would obviously be trying to read and write to the same RAM locations that SMB1 uses, since SMB1 uses almost all of the normal ram ($0-$800). Having two programs using the same ram locations is obviously very disasterious. What I needed was some way to get the duck tales 2 music engine completely disassembled so I could change the memory locations that it used. If I'd set out to do this a year ago, it would have been nearly impossible or atleast taken a heck of a lot of work. But luckily, I've got a method to do this that no one else has yet. See, Way back in january I set out to write a disassembler that could work with FCEUXD's code/data log files to produce a nice formatted disassembly of any nes rom provided you play through every part of the game. The disassembler which I named XDDasm turned into an almost complete disaster, I didn't plan it out properly before I began coding it. This lead to me writing terribly messy code, and even hacking that code up further when I ran into unexpected problems. I finally got it somewhat working, but not at all in a releasable state. So for now It's going to remain locked up on my hard drive, atleast untill I get time to completey recode it. Anyway, neither FCEUXD, nor XDDasm works with NSF files yet. So I had to load up the duck tales 2 rom, and somehow get it to play every tune in the game. So I could get all the related code and data logged into a CDL file The game has no sound test, so I had to hack it to do this somehow. This proved very easy... First, I found the offset of the play routine, then I got the main menu to play different tunes when I pressed down on the dpad (where it normally changes menu options). And spent maybe 30 minutes to an hour to get every bit of every tune logged. Next, I ran this through my partially working XDDasm, and was suprised to find no bugs crept in. It worked perfectly, and gave me a nice formatted disassembly of the duck tales 2 music engine! But I was still far from done. I had to edit this disassembly, and do a lot of litle things such as map all of the jump pointer tables to proper labels, since XDDasm can't do this (nor will it probably ever...). After I got this disassembly edited up, I set it to use part of the expansion ram ($6300-$6400) ram for any of it's ram needs. Then, to test it out, I assembled it and made an NSF out of it which played perfectly. Now that I had a duck tales 2 music engine that is compatible with SMB1, I simply needed to get it in the game somehow. My first step was to expand SMB1 and insert 4 extra banks (a bank being $2000 bytes big) and make it use MMC3. Now, if anyone has noticed SMB1 is a pretty crammed rom, there isn't even enough room in it to insert a bankswapping routine. This is where I got a really awesome idea for expanding it. What I would do is point the reset vector to an empty bank, and simply dump most of the contents of that bank to expansion ram at ($6500-$7FFF) This makes extremely easy access code since it's right in the expansion ram. I also coded a loader that bankswapped and lead to the duck tales 2 play routine. My banks were layed out like this. bank 0: Reset vector points here - most of this bank gets copied to $6000-$7FFF bank 1: duck tales 2 music engine here bank 2: duck tales 2 music engine here bank 3: garbage/unused. I don't really need this bank for anything, but the rom can't be expanded to a size without it bank 4, 5, 6, 7: the normal SMB1 rom is here with a few modifications to call the music routine Anyway, after coding and assembling bank 0, and packing it all together, and hacking smb1 to disable it's own music, I got a perfectly working SMB1 rom that plays duck tales 2 music. There was a couple of problems though First, the original SMB1 sound effects were all glitched up. There is no way to fix this that I know of, since two sound engines are running at the same time, they will obviously interefere. But it doesn't really matter, I accomplished my goal. Now the other problem is (as disch informed me) that I pointed my reset vector to the swappable region at $8000 and I assumed bank 0 would be swapped in there at all times. Now this works great on most emulators, but you can't assume anything is swapped in there on a real nes. So, at this point my hack wasn't really NES compatible. And, of course I consider that unacceptable, just as I consider this thing where hackers use custom .pal files unacceptable. If your hack won't play on the real system, then it isn't really a hack at all. It's something else. Luckily it would be fairly easy for me to fix this problem, since I have a TON of free space in my bank copied over to the $6500-$7FFF region, all I need to do is move a peice of code or data out of SMB1's $E000-$FFFF region over to my free space, and put a MMC3 init routine where that code or data was. Disch had already coded a great MMC3 init routine and posted it in this thread http://board.acmlm.org/thread.php?id=11936 He even got it down to 26 bytes. So all I need is 30 bytes, since I also need an SEI instruction, and a JMP $8000 to get to my bank 0. To find something I could move to get 30 bytes, I looked at an old SMB1 disasembly that I had, and located a 48 byte section of data at E1FD with these 4 instructions referencing it $E2B6:7D FD E1 ADC $E1FD,X $E2BF:7D FF E1 ADC $E1FF,X $E2CA:7D FD E1 ADC $E1FD,X $E2D3:7D FF E1 ADC $E1FF,X So this this was easier than I thought. all I had to do is move that 48 byte segment of data to, say $7F00-$7F30 and change these instructions to load from $7F00,x and $7F02, X And of course put disch's mmc3 init routine in E1FD, and point the reset vector to it. I actually did all this in the FCEUXD hex editor. finally, the result was this http://bitmaster.panicus.org/misc/smb1expirement/smb1dt2music.zip That zip contains an IPS to be applied to an smb1 rom, which makes it play duck tales 2 music! Just press select to make it start playing and to change the tune! also, heres some messy source code and notes on how to assemble and pack it together if you want to produce your own smb1 rom with ducktales 2 music. http://bitmaster.panicus.org/misc/smb1expirement/smb1expirement.zip Just look at instructions.txt for a lengthy description of what to do. I'd say that the whole thing took 8-10 hours to do... it might have taken several weeks without XDDasm. |
|||
bbitmaster Koopa Level: 18 Posts: 93/103 EXP: 25264 For next: 4633 Since: 03-28-04 From: Knoxville, tTN Since last post: 12 days Last activity: 7 days |
| ||
Originally posted by Keikonium If that were true then hacking roms would be totally illegal. In all seriousness, I've played a little bit of infidel's beta from where he sent me his rom. And I see nothing at all stolen. I do not believe this hack has anything stolen. But If it does then, heh, I guess that's how the hacking world goes sometimes. Especially if you annoy a bunch of people, and send everyone your broken rom In any case, great work on this hack DurfarC. I'm kind of a fan of megaman 2 hacks. |
|||
bbitmaster Koopa Level: 18 Posts: 94/103 EXP: 25264 For next: 4633 Since: 03-28-04 From: Knoxville, tTN Since last post: 12 days Last activity: 7 days |
| ||
I thought I'd bump this thread, and post another hack I did a whole back, where I did something else crazy and completely replaced megaman 3's music engine with that of the little mermaid. This hack was actually EXTREMLY easy to do as megaman 3 and the little mermaid use the exact same engine and everything. It only involved copying $4000 bytes straight from the little mermaid to megaman 3. It is actually entirely possible (and VERY easy) to swap megamn 3 with megaman 4,5, 6, and several other capcom games as they all use the same music engine. http://bitmaster.panicus.org/misc/Megman3withMermaidMusic.zip |
|||
bbitmaster Koopa Level: 18 Posts: 95/103 EXP: 25264 For next: 4633 Since: 03-28-04 From: Knoxville, tTN Since last post: 12 days Last activity: 7 days |
| ||
Originally posted by Kawa-oneechan I kind of already put one together here: http://board.acmlm.org/thread.php?id=17309 Just download the source to that and read about it, I even copied a huge chunk of the expanded rom to expansion ram, for easy access. Just remove that duck tales 2 music thing, and add more chr rom... and there you go. |
|||
bbitmaster Koopa Level: 18 Posts: 96/103 EXP: 25264 For next: 4633 Since: 03-28-04 From: Knoxville, tTN Since last post: 12 days Last activity: 7 days |
| ||
Bit-Blade & Someguy: yes, I could have hooked the original sound effect and music commands in this new engine, but I kind of got lazy. Also one little problem I had was that the duck tales 2 NSF rip, and the rip I did of it both seem to be missing their sound effects. I never really investigated into why this was so, but it would have to be fixed first. Someguy: Yes, just search for the hex string "4C6C804CFE80A900" it should appear at the very beginning of the music bank. All you need to do is swap somewhere from $4000 to $6000 bytes starting at this hex string, and it should automatically play the other game's music. Where it gets tricky is that some capcom games use 2 banks, or $4000 bytes for all of it, and some use 3 banks, or $6000 bytes, and it's hard to tell where it ends at, without special methods. Megaman 3 happens to use around two and a half banks for all the music, then immeadieatly following that, it has some asm code related to something else - and that cannot be overwritten. The little mermaid used a smaller space to hold everything, and that made it really easy. For a list of all the games that use this music engine see this post: http://board.acmlm.org/thread.php?id=15172&ppp=20&page=0#257695 Just look at where I listed the games with the Vapcom "Takeru" music engine. Anyway, good luck. |
|||
bbitmaster Koopa Level: 18 Posts: 97/103 EXP: 25264 For next: 4633 Since: 03-28-04 From: Knoxville, tTN Since last post: 12 days Last activity: 7 days |
| ||
This is so easy to find, everybody should know about the wayback machine and how to use it over at archive.org for finding stuff on dead sites. 1. Go to www.archive.org 2. Type www.romhacking.com in the wayback machine. 3. Click on one of the later archives of the site. 4. Loading may be slow, but don't worry, scroll down to game specific docs and click on that. 5. Click on the smb1 music hacking doc. enjoy! (edited by bbitmaster on 08-26-05 10:06 PM) |
|||
bbitmaster Koopa Level: 18 Posts: 98/103 EXP: 25264 For next: 4633 Since: 03-28-04 From: Knoxville, tTN Since last post: 12 days Last activity: 7 days |
| ||
Originally posted by Bit-Blade This is the most nonsense I've heard in a long time. A skilled hacker doesn't have any obligations to help anyone, If he does decide to do it, that's generous of him, but if he doesn't, then there's no reason to blame him for it. How could you call such a person selfish? Actually, when it comes down to it, the biggest problem I see in the community these days is that it seems to be full of people that aren't willing to learn anything on their own or to help themselves. You know how I got where I am? Completely self taught. I never had anybody show me one bit of 6502 machine language, or C programming, or any of the stuff I use. You guys make it seem as if these intelligent hackers have some "forbidden knowledge" or something mystical that is very hard to aquire without those that have it spoon feeding it to you. I'm here to say the knowledge is out there and it's completely free. With that said, I would have probably been better off in learning the stuff I did if I had someone to help me through it -- and with that in mind, I am completely open to help anyone if I see them being serious about learning as I was. The problem is, in the rom hacking community, people like that are scarce anymore. Therefore, I personally am going to be very careful of who I help in the future. I've found that I seem to get in trouble when I help people, because most of the ones I run into and helped turn out to be those people that weren't willing to learn to help themselves. And I find it sometimes very difficult to distinguish from the people that are willing, and the ones that aren't. |
|||
bbitmaster Koopa Level: 18 Posts: 99/103 EXP: 25264 For next: 4633 Since: 03-28-04 From: Knoxville, tTN Since last post: 12 days Last activity: 7 days |
| ||
I never was into final fantasy 1 on the NES, so I didn't think I would care about this hack, I didn't really pay much attention to any discussions that went on about it, untill a few months ago, when sliv allowed me to have a beta of this game to help fix a very minor bug. Let me say I was both astonished and overwhelmed at the beta I recieved. The amount of artwork and music that went into this game is incredible -- I consider this one of the best rom-hacks ever made. You have completely fresh orginal music, and brand new artwork for everything, not to mention a whole new story and quest. It's nothing like Final Fantasy 1, rather It's like playing a whole completely new game. All I can say is, prepare to be shocked and amazed at this. |
|||
bbitmaster Koopa Level: 18 Posts: 100/103 EXP: 25264 For next: 4633 Since: 03-28-04 From: Knoxville, tTN Since last post: 12 days Last activity: 7 days |
| ||
(throughout this post I'll have some text point to links that help prove my point, to get the most out of this post, go visit them) you know what I've seen as really being a big problem with the rom hacking scene in general. well, see... say you go to a game programming site like allegro.cc, 2DNow, or even gamedev.net You'll see people really doing cool stuff, they're able to make games. I was in those communities a while back, and I saw almost everyone in there, even the new people that come in and post. Now, I know, you may be thinking "but those game programming guys are experts" But the truth is, they are simply people like you and me. Some of them are even very young to be coding games. I remember one guy had a pretty cool game coded in allegro, and said he was only 14 years old. I myself did some amazing stuff when I was 14 and 15. The fact is, they're people just like you and me, only they went through some sort of programming tutorial, and are really trying to code a cool game. Then, I come back to the rom hacking community, and I see a bunch of kids that don't know anything about programming, and don't care to learn, all posting silly questions. Maybe that isn't true for a lot of people reading this, but for most rom hackers in general, There's like a big gap in knowledge. Rom hacking is a really difficult thing to do well. I would say to mess with a game's coding, you probably have to be smarter than an average game programmer. You have to work on the lowest level of all computer languages - machine language. These kids all have big dreams, they'll see some cool hack like MA, and think "oooh, I wanna do that" so they go looking for an editor for the game they want to hack. If they can't find one, they'll sometimes go as far as to violate the forum rules and ask for an editor here. After all, with no practical experience doing things, they depend on a editor to do all the work for them. But when it comes to the real stuff, they aren't willing to learn anything, not even a simple programming language. They think "oooh I want to do asm" and they have trouble understanding asm. Why do they have trouble with asm? because they have no prior experience in programming. And what happens when their editor fails? or they realize they can't do something they wanted to do? They cry about it, get discouraged, and go straight back to wherever they came from. Or even worse, they'll find someone who does know a little bit of programming and cling to him. (note - the poster deleted his original post here, but my point still stands) The really sad thing is, with the hacking utilities out these days, a little bit of programming and asm knowledge will get you farther than it ever would have in the past. For example, FCEUXD is such a powerful tool, it'll let you find and do almost anything within minutes. provided that you have a bit of programming, and 6502 experience. I don't know about anyone else, but I see something seriously wrong with this picture. It's as if most people in this place have simply stopped caring to learn anything that they need to learn to do anything. Now again, I want to stress that this does not apply to everyone. There are probably a lot of people reading this that are serious about wanting to learn to do some amazing hacks, and I don't want to discourage those that are serious. It's just very difficult to tell who is serious, because everyone says they are. Once most people see the effort required, they back out of making that amazing hack that they had big dreams for, then they leave, and the process is repeated over again. (edited by bbitmaster on 09-28-05 12:32 PM) |
Pages: 1 2 3 4 5 6 |
Acmlm's Board - I2 Archive - - Posts by bbitmaster |