Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
Acmlm's Board - I2 Archive - - Posts by Dish
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
User Post
Dish

Spiny
Level: 38

Posts: 521/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 08-12-05 07:31 AM, in a rom-hacking faq? Link
A wiki to act as a rom hacking data repository would be MAGNIFICENT. Kind of like what BMF tried to do on the Rusted Magick forums -- but in wiki form.

Something which contains game info found by anyone and everyone. I vote yay for that -- although it doesn't have anything to do with this board directly.
Dish

Spiny
Level: 38

Posts: 522/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 08-13-05 09:36 PM, in How I changed SMB1's Music Engine to that of another game. (lengthy post, ips included) Link
Hebereke/Ufouria is a Sunsoft game -- bbit's music swapping trick is done with Capcom games which share the same sound engine (in his posts he listed MM3-6 and Little Mermaid as examples). The music will not be interchangable with Sunsoft games (at least not in the same sense as his latest example) -- even some Capcom games won't work (older ones like MM2 which use a different music engine).

But even that aside -- Hebereke uses the DMC for the bassline... a trait common to many Sunsoft games. Capcom uses no DMC, and adding the DMC would be extremely difficult since you'd have to free up TONS of space in the upper PRG banks for DMC samples, and keep the same bank swapped in constantly.
Dish

Spiny
Level: 38

Posts: 523/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 08-14-05 01:01 AM, in I need Help animating SMB1 tiles Link
The short answer:

You can't. Live with the graphic space limits in SMB1 or pick another ROM to hack.



The long answer:

Adding more graphics to SMB1 is quite a task. SMB1 already uses the maximum allowed PRG/CHR space for a mapperless ROM -- in order to add more space you'd have to add a mapper and expand. That means much much more than just changing the mapper number in the header.

This requires a decent level of 6502 familiarity and a detailed understanding of the target mapper -- as you will not only be moving code in the game around and changing stuff -- you will also be adding new code to the mix.

Of course expanding the ROM will more than likely prevent it from working in whatever level editor you're using -- so that's another thing you have to consider.
Dish

Spiny
Level: 38

Posts: 524/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 08-14-05 01:25 AM, in Basic Newbie Q Link
0) FOR THE LOVE OF GOD THROW NESTICLE AWAY

NESticle is an outdated piece of shit. Get FCEUXD.


1) Nope. Unless you use a game specific editor, you'll have to hunt down the palettes and edit them with a hex editor. That's as easy as it gets. Although if the offsets of the palettes are already documented you won't have to look for them -- and you can just edit them with a hex editor directly.

One might be able to argue that using FCEUXD's tracelogger to find out where the palette is loaded from is easier than hunting -- but it requires moderate 6502 knowledge.

2) Nope. There are only 4 sprite palettes for use on the NES. If you change one of those palettes... every sprite on the screen which uses that palette will be affected. It's just how it is.
Dish

Spiny
Level: 38

Posts: 525/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 08-14-05 02:11 AM, in Basic Newbie Q Link
Yes that is very possible to change which sprites use which palette, but not as straightforward. I'm unsure of an easy way to do it outside of code tracing. You could try corrupting and replacing '02' values with '03' or something and see if you can find the offset that way.

Note I'm use using 02 and 03 as examples -- what you'd want to do is find out which palette the bubbles are using (00 would be the left-most sprite palette, 01 would be one to the right of that, then 02, then 03 would be the right-most). However there is no guarantee that this will work, as the code might take the player ID directly and use that as the palette index... in which case there would be no one value you can change to make that hack work, you'd have to change an opcode or two. And in fact -- it's more likely that the game does it that way... so corrupting might not be the best idea.

Are the bubbles what you're looking to change? Or were you just using that as an example?


(edited by Disch on 08-13-05 05:11 PM)
Dish

Spiny
Level: 38

Posts: 526/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 08-15-05 02:22 AM, in General Project Screenshot Thread Link
This isn't really rom-hacking... but......



Just a little game I'm working on because I didn't want to work on my "real" game project. This has been part time-killer, part educational, and part real project.

The idea is you're that mouse-with-a-bandanna in the lower left corner and you have to rescue all your buddy mice from these places. But there's mazes and baddies in the way. The good graphics in this screen (mice, turtles, dog-looking guys, etc) were provided by Setzer (wub you). I did the shitty filler graphics (that hideous yellow triangle thing -- supposed to be cheese, that [G] thing, etc). Drag has provided various sound effects and will hopefully hook me up with some BGM as well ^^

I thought I was sorta original when I came up with the idea, but later I realized it's a lot like OddWorld in concept. And then later someone mentioned it reminded them a lot of Krusty's Super Funhouse -- only the mice don't die when they reach their goal. So I guess it's not as original as I thought ;P
Dish

Spiny
Level: 38

Posts: 527/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 08-15-05 04:43 AM, in How I changed SMB1's Music Engine to that of another game. (lengthy post, ips included) Link
You have to press select for the music to play.

*cough*readthepost*cough*
Dish

Spiny
Level: 38

Posts: 528/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 08-16-05 12:43 AM, in Inserting/importing music into NES rom Link
You'd have to change the mapper to VRC6 or VRC7 but yeah it can be done if you know what you're doing.

Metroid: NES music is not really interchangable. If you read bbit's thread a few threads below this, you can see all the work he put into that hack. There's no tool to automate the process -- and it's fairly complex.
Dish

Spiny
Level: 38

Posts: 529/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 08-16-05 10:20 AM, in How do you port FDS games to .nes files? Link
It's very similar to a mapper change -- only you have a lot of free space since what was previously used as FDS BIOS can be used for initiation code and other goodies (excluding the areas of BIOS the game actually uses). However it comes with several problems:

1) FDS disk images are (as the name suggests) floppy disk images -- they are not ROMs. Floppy disks are a form or RAM, not ROM. So FDS games can write to what's normally ROM space and it will actually change the data there (behavior which does not exist on the NES). If you are going to move this to NES, you will have to find all the areas in the game which write to PRG-RAM and find a way around it. It might be as simple as changing the space to somewhere free in cartridge SRAM -- or it might be difficult if, say, the game has self-modifying code.

2) FDS has a scanline IRQ counter. If the game uses it, you'll have to pick a mapper which also has a scanline counter -- this may involve heavy code rewrites unless the IRQ counters work very similarly.

3) FDS has an extra sound channel which obviously won't play on an NES. And yes, Ai Senshi Nicol uses this channel. Quite heavily in fact. If you're going to play it on an NES, prepare yourself for some very dull sound.

4) I *think* FDS can put PRG-RAM at $6000-7FFF. The only NES mapper I know of which does this is FME-07 (it can put either cartridge WRAM or PRG-ROM at $6000-7FFF)... and good luck finding a compatible FME-07 board -- your best bet would be Batman: Return of the Joker -- but I'm not even sure if that has the PRG@6000 capabilties (the game doesn't use it). You might need to get a copy of Gimmick! (or the PAL version Mr. Gimmick). I don't know really if FDS can do this though -- I haven't looked into FDS all that much. And even if it does this will only be an issue if Ai Senshi Nicol puts PRG there -- odds are it keeps RAM there, in which case it's not a problem.

5) If the game uses any info from the FDS BIOS you will have to put the routines it uses in the ROM.

6) There are probably other potential complications, but these are all I could think of off the top of my head


All of these issues probably won't be a problem -- but some of them will.

Basically it comes down to three things:

- Knowing the details about the NES
- Knowing the details about the FDS
- Knowing the details on the target mapper you want to switch to


If you can do a proper mapper change hack -- like say take a MMC1 ROM like Kid Icarus and convert it to use MMC3 -- then you have the idea of what more or less needs to be done for an FDS conversion. If MMC1->MMC3 is too tough -- then you probably won't be able to change from FDS->xxxx ... it's far more difficult.


EDIT

Having actually looked at the game in question a little bit, it might not be all that tough. Doesn't look like the game uses the IRQ counter -- but it does fill $6000-7000 with something -- but it looks like RAM (BIOS moving it there? perhaps FDS doesn't really swap in PRG??)

The game seems simple enough -- for some reason I was expecting it to be more complex. So yeah... the biggest problem looks like the sound... which unfortunately you can't do anything about. Nothing else looks like it'll be a problem though. At least not at first glance.

I say get yourself some FDS docs and start futzing around ;D I don't have any to recommend unfortunately, but I'm sure there are plenty on nesdev.


(edited by Disch on 08-16-05 01:44 AM)
Dish

Spiny
Level: 38

Posts: 530/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 08-17-05 08:26 PM, in another memory management issue qq Link
Crashes like this usually aren't that hard to track down -- just find the line that the program is crashing on (this can be done in MSVS very easily by hitting the "break" option when the program crashes). When you know where the thing is going wrong -- examine everything that could make it go wrong -- whether it be a bad pointer, an out-of-bounds write, or whatever.

So yeah -- you gotta isolate the crash in order to solve it. If the crash is predictable, consistent, and easily reproduced (you made it sound like it's all three), then you should have no trouble finding out where the problem is. Like I said just break execution at the crash -- if it puts you at some garbage code (like some disassembly or a standard lib file), move back on the call stack until you reach your code.


(edited by Disch on 08-17-05 11:28 AM)
Dish

Spiny
Level: 38

Posts: 531/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 08-17-05 08:32 PM, in another memory management issue qq Link
ahh yeah... I used to do that too before I got semi-familiar with VS's debugger.

Breakpoints, variables watches, and memory viewers beat Message boxes anyday ;D


Anyway, another alternative would be to output to a text file or something instead of doing a message box. I'd still recommend a debugger over that though.
Dish

Spiny
Level: 38

Posts: 532/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 08-20-05 07:28 AM, in sunsoft drum sample (dpcm) ripping Link
Mod won't sound like the original no matter what you do.

Midi DEFINATELY won't sound anything at all like the original no matter what you do.

The obvious question I have to ask is, "why don't you just stick with NSFs?" I mean NSFs DO sound like the original (since they are the original).

Anyway, to actually answer your question -- there probably isn't a program for this (or at least, I don't know of one) -- but it can be done very easily with a wave editor, Winamp, and an NSF player plugin for winamp.

1) Disable all sound channels except the DMC
2) Switch to Winamp's .wav dumper output plugin ("Diskwriter")
3) Play the NSF to dump the .wav
4) Use a wave editor to crop out the samples

It's a quick 5 minute job once you have the materials. I might even be willing to do it for you. Are you interested in just the drums? Or do you want the classic Sunsoft bassline? Which game in paticular has the samples you're looking for (and specificially which tracks on the NSF)?
Dish

Spiny
Level: 38

Posts: 533/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 08-21-05 06:03 AM, in Justified? Link
Originally posted by DarkSlaya

You give a warning before taking action. If the warning doesn't work, you go ahead an punish who needs to be punished.


In otherwords: allow yourself to be walked all over at least once before doing anything. Let's just say I don't agree.

He might have had stuff like this to deal with in the past. Even if he would have given a warning saying "take that down" -- how would he have known the guy would? He probably assumed the guy wouldn't. And that's not an unreasonable assumption at all... considering the types that are usually involved in this kind of thing.


Also, if the person doesn't do what you want you to do (doesn't get rid of the modified program on his website), you can ask the host to take action and DELETE THE SINGLE FILE.


For all we know -- that's all he did. He probably alerted Tripod about his program -- then they either decided to close it on their own -- or they noticed the OTHER stuff he had on his page (SM64, ?SLRPG?) and close it because they saw that. We don't know whether he really said "OMG SHUT HIS PAGE DOWN FOREVER" or not.



Because it's pretty fucking moronic to ask the host for complete site deletion if said website isn't all about the released program.


Quit making assumptions. You don't know he did any such thing.

Though personally -- I wouldn't call that moronic. And I wouldn't blame him if that's actually what he did (though I don't think I'd do it, myself).


Of course, Shadow shouldn't have made those modifications at first, but Veeb0rg obviously overreacted.


Let's step back and look at how we know Veeborg actually acted.

1) He assumed ShadowSonic was some sort of pirate/thief
2) An e-mail saying "hey don't do this"
3) A banning from his forums
4) Alerted Tripod so they could remove his program.


I don't see a single unreasonable reaction on that list:

1) He may have been kind of quick to make this assumption -- but it all depends on the circumstances. I didn't see the source available on zbattle.net, so apparently he doesn't want people tinkering with it. He may have had to deal with problems like this in the past, and thought it best to deal with the problem directly rather than tip-toe around it to avoid hurting some dude's feelings. Whatever the reason, he decided to take action.

2) I don't even think you would object to this action.

3) If I didn't want people messing with my crap and some dude on MY forums comes by and flashes something like that, you bet your ass I'd ban him. That's not the kind of people I want on my forums. I'm sure Veeb0rg felt the same way. Even if you don't agree -- they're his forums. No rule that says you have to allow everyone on them.

4) I probably would have done this too. Remember for all we know he just told them to remove his program -- not the whole page.


Because from what Shadow said, he didn't take credit for the program, only for the modification (like Rom Hackers take credit for the changes and not for the original game).


I fail to see how that matters at all.

If you start posting your Nintendo DS ROM hack all over the Nintendo forums, you can bet your ass they'll have the same or worse reaction. And I'm sure you wouldn't think they were overreacting at all. So how comeyou say this this guy is overreacting and is being childish? Because he gives his software away for free? Rather than "immature" and "childish" -- I'd call that "kind" and "protective".


And deleting an account + ban from your website the way he did it was pretty childish, since it let's no chance from the offender (Shadow) to explain himself. He doesn't give a chance to do anything. Way to go


Maybe he thought the hack was childish and decided he didn't want people like that on his forums.


Anyway, this is all based on the Shadow's side of the story, so some things may not be right, but that's all I have and I don't exactly have any proofs.

So in the end, it wasn't justified, even if Shadow shouldn't have done it.


Do you realize what you just said there? You said "I know I don't have all the info, but I know Veeb0rg was wrong"

The bottom line is we heard half a story in sob-story form from a guy that got canned from some forums and came here looking for sympathy. So without trying to get all the facts or trying to get the whole story... you (and apparently at least 12 others) ate it up like candy.

I don't even know what to say.
Dish

Spiny
Level: 38

Posts: 534/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 08-22-05 09:07 PM, in Ask your questions about hacking here! Link
We don't need a thread to tell us to ask ROM HACKING questions in the ROM HACKING forum. But thanks for trying to clear it up anyway =P
Dish

Spiny
Level: 38

Posts: 535/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 08-23-05 11:00 AM, in Justified? Link
Originally posted by ShadowSonic
What I said in any of my posts is all just what happened.


While that may be true, it's still only half the story -- it's only your perspective. Try as you might, you can't tell us about Veeborg's situation and how he perceived this situation.

Which is my point. Nobody should have voted on this poll yet, and everyone that did is talking out of their ass. Nobody here knows the whole story.


Anyway I'm not, NOT, looking for any sympathy from anyone. I wanted to know if what he did was a bit harsh.


Maybe 'sympathy' is too big a word. How about 'support'? You were definatly looking for some kind of group affirmation in your first post: "and I hope you think what he did was wrong." -- Hardly the picture of impartiality -- your story is invariably going to be spun to make you look like the 'good guy'.


Also, I'm sure no one would be dumb enough to send a hacked rom to Nintendo or post it on their forums.


You completely missed the point of that analogy.

You state that posting a hacked ROM on Nintendo's boards is obviously a dumb thing to do -- yet you turn around and post a hacked program on that author's boards and wonder why he got pissed. It's the exact same thing.


And I'm sure it wouldn't have gotten my sites deleted from having information about some WIP roms (Super Luigi 64 and Super Luigi RPG). It's not like I posted any beta roms on my site from those.


They might have gotten the message from Veeborg and said "that guy is stealing programs? We should close his site". I mean it's a free server -- they're not going to be worried about losing business, they're more worried about legal trouble. If you're doing something that even smells illegal, they'll close you down without thinking twice. I mean why should they risk it? Why suffer the headache?

So it was probably Tripod's idea to close your site. If Veeborg did anything, he probably only alerted them that he didn't want his program distributed there. And he might not even have done that -- maybe someone else on the forums did or something. Who knows? We sure don't.


Anyway, he's still holding a grudge against for making a very dumb small hacked version of zbattle.net.


Freeware authors don't usually respond well to people messing with their stuff. I know if someone was messing with my programs in a way I didn't want them to, I wouldn't be so quick to be their buddy either.

I doubt you two will ever make up or get along =P. Thems the breaks -- can't be friends with everyone.


BTW, if Veeb0rg could come here and post his side of the story, maybe that could change some things.


Why would he bother? I doubt he cares. From where he stands, his problem is solved.
Dish

Spiny
Level: 38

Posts: 536/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 08-24-05 08:34 PM, in another memory management issue qq Link
Originally posted by HyperHacker
VB has awesome debugging, though. You don't need to do that. Use breakpoints and debug.print; you can even type code in the Immediate window and press Enter to execute it. (Of course, in C's defense, this is only possible because VB is interpreted, but yeah. )


VS lets you do an 'edit and continue' feature with C/C++ where, when the program is broken (like on a breakpoint), you can edit some of the code and then continue program execution without rebuilding. Although it will only work two or three times before you have to rebuild -- it's still enough to fix the minor quirk here and there.

I'm telling you -- there's no substitute for a good debugger. All these ideas with printf and beep and MessageBox and all the other crap everyone does are great ---- when you have no other options. But nothing beats having a real... actual.... good.... debugger.

One of the reasons I still use VS.. in fact. I can't tell you how much of a pain in the ass some of my bugs in my emu would have been to chase down without a debugger. And I don't even know how to use most of VS's debugging tools.
Dish

Spiny
Level: 38

Posts: 537/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 08-26-05 09:36 PM, in New NES gaming console. Link
The idea of taking an old console and making it more powerful doesn't make a whole lot of sense. I mean why would people design games for this platform?

It wouldn't be like designing games for the NES -- since games which use the advanced capabilities wouldn't work on an NES. Because of that, the console isn't retro -- it's closer to backwards compatible.

And if you're not designing for a retro console -- all you're really doing is designing for an abstract platform that probably only 200 people will be able to play. Why put effort into making a game for a crippled platform that only a handful of people are going to have access to? Why not just make a game for a virtually limitless modern platform that virtually everyone has access to?

On top of that, I question how well it will mimic old hardware. Sure it will play most games fine -- but what about Battletoads, Micro Machines, and the other thousands of games which do quirky timing tricks? Many games rely on exact hardware behavior and/or rely on system quirks to run their games -- if this new console doesn't do things just so, those games aren't going to run right/at all. Which, in the end, will make this nothing more than an unpopular system that has a hardware NES emulator (an emulator without typical emulator features and which might not even be as good as today's emulators for PC).
Dish

Spiny
Level: 38

Posts: 538/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 08-27-05 11:19 PM, in WM_KEYDOWN Issue Link
the WM_KEYDOWN repeat rate is one of the user preferences set in Windows (the speed can be changed in one of the control panels), so no, you're program can't (or at least shouldn't) try to change the speed at which WM_KEYDOWN messages are sent.

The obvious solution here sounds to me like you should just not process WM_KEYDOWN messages if your program is too far behind. This could be done by doing some checks in your message pump:




MSG msg;
int ok_to_sleep;
while( program_open )
{
  ok_to_sleep = 1;
  while( PeekMessage( your_wnd, &msg, 0, 0, PM_REMOVE) )
  {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    ok_to_sleep = 0;
  }

  program_busy = 0; // queue is clear, program is no longer busy

  if(ok_to_sleep)
    Sleep(1);
}




Then in your ChangePipeSets function or whatever.. just do a check to see if the program is busy before continuing:




void ChangePipeSets()
{
  if(program_busy) return; //abort, program is too busy

  program_busy = 1; //this will make the program busy

  // do the rest of the work here
}


Dish

Spiny
Level: 38

Posts: 539/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 08-28-05 12:31 AM, in WM_KEYDOWN Issue Link
Quite a thing? It's only like 4 lines of code. You already have a message pump, just clear a 'busy' var when there are no messages pending, check the 'busy' var before doing lengthy work, and set the 'busy' var when you start doing lengthy work.

Anyway, there are other ways to do it. All you have to do is figure out a way for your program to tell itself that it's too busy to do the requested workload. Another way to do this would be to flush the message queue after you finish with lengthy work so that any repeat messages are discared ... although this will toss all other messages as well -- such as quit requests and other crap (so I don't recommend it)

Really, this way isn't that hard.


By the way, no need to quote my entire post if you're just replying with a single liner
Dish

Spiny
Level: 38

Posts: 540/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 08-28-05 08:47 PM, in Delete a byte. Link
As beneficii suggested --- I dont' know of a way to remove a single byte rather than reading/adjusting/rewriting the whole file either =/

Although I just thought I'd chime in and say that for large chunks of data, fread() and fwrite() are more preferable to fgetc() and fputc()
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Acmlm's Board - I2 Archive - - Posts by Dish


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.010 seconds.