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 beneficii
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
User Post
beneficii

Lakitu
Level: 36

Posts: 321/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 07-25-05 07:38 AM, in how do you pronounce gui? Link
Originally posted by paraplayer
Originally posted by beneficii
You should learn the Windows API before moving onto anything else. Just perform a Google search.

What language are you using, btw?


I'm using C++

okay going to google windows API right now.

whats the diffrence between GUI and API?


Yeah, as Disch said, they're not really different. An API is just a common set of functions for the programmer to use. An API usually makes it easier for you to set up a GUI, because it does all the low-level stuff (like displaying a windows and text onto the screen) for you. The Windows API is a really powerful way of setting up a window with the controls you want to allow the user to communicate with the program, while the DirectX API is done for things like fast animation, which is not really supported by the standard Windows API.

Here is a good site for learning the basics of the Windows API:

http://www.winprog.org/tutorial/



(edited by beneficii on 07-24-05 10:39 PM)
(edited by beneficii on 07-24-05 10:39 PM)
beneficii

Lakitu
Level: 36

Posts: 322/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 07-25-05 08:58 AM, in Mario Party Link
Six was much better than some of the more recent ones, but the CPUs are stil pretty dumb, especially when it comes to the Flutter Orb (which takes you right to the Star space). In the same game, one comp threw away his Flutter Orb when he could have used it to go to a Star space and buy a star--he had enough coins. Then, at another time, one comp used the Flutter Orb when he didn't have enought coins.

If the comps are on hard mode, they can be pretty hard and smart on some of the mini-games.
(restricted)
beneficii

Lakitu
Level: 36

Posts: 324/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 07-25-05 10:09 PM, in The YTMND Thread Link
Yoshi Dude,

The others aren't that good, but that Yoshi one is hilarious.
beneficii

Lakitu
Level: 36

Posts: 325/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 07-25-05 10:18 PM, in Extending NES roms- no flaming please! Link
With SMB3, which uses the MMC3 mapper, I don't think it would be too difficult. Keep the first 3C000h bytes of the PRG-ROM in place while making sure those last 4000h bytes remain the last. Fill in anything else in between. (It should only be a problem if the game attempts to load any 2000h byte bank of those last 4000h bytes into any other bank, which I consider unlikely but possible; in that case, make two copies of the last 4000h bytes.) With the CHR-ROM, just keep the banks in place and add past the end. If you increase Mario 3, which has a 256k PRG-ROM and 128k CHR-ROM, you should increase it to 512k PRG-ROM and 256k CHR-ROm.


(edited by beneficii on 07-25-05 01:20 PM)
beneficii

Lakitu
Level: 36

Posts: 326/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 07-25-05 10:22 PM, in the War on Terrorism - you can't kill an Idea, only outlast it Link
Originally posted by GeckoYamori
The "war" on terrorism is about as effective as that old "war" on drugs.


Agreed. It looks like the "war" on fat will be next.
beneficii

Lakitu
Level: 36

Posts: 327/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 07-25-05 11:02 PM, in "The Decline and Fall of Conservatism" by Butler Shaffer Link
http://www.lewrockwell.com/shaffer/shaffer114.html

This is a very well-written article about how the modern conservative movement has corrupted itself and is leading the nation down a destructive path. I think it's definitely worth reading.


(edited by beneficii on 07-25-05 08:13 PM)
(edited by beneficii on 07-25-05 08:13 PM)
beneficii

Lakitu
Level: 36

Posts: 328/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 07-25-05 11:28 PM, in Extending NES roms- no flaming please! Link
Originally posted by Disch
adding more PRG/CHR is one thing (and is actually not that hard if you have the idea)

Actually USING that new space is something else entirely, and it often isn't easy. For extra PRG... whenever you wan to use the new space you must swap in the desired bank, do whatever work you want to be done, then swap back in the original bank before returning to the game's original code. This takes not only a decent understanding of 6502, but also of the mapper's registers and swapping abilities.

Using extra CHR is easier -- since all you need to do is swap to the desired bank. For things like animation done through CHR swapping, you'd need to add/modify an existing routine in the game to constantly swap in new CHR banks (animating tiles which use that bank). But still, to do this you have to actually know what you're doing.

As was already mentioned... most mappers need to have a power-of-2 PRG/CHR size. So if a game has 256k PRG and you want to expand it... you'll have to bump it up to at LEAST 512k of PRG -- even if you only want a few extra bytes (there are exceptions to this rule, some rare mappers can have abstract PRG/CHR sizes).

Also beware of mapper limitations. Not only do PRG/CHR sizes have a limit, but some mappers also lack on board cartridge RAM (no ram @ $6000-$7FFF), and some mappers have bus conflicts, so the value you write to the mapper register must match the value read from that address.


Agreed. It should only be done if you're going to make a huge expansion. Otherwise, just try to find some clusters of FF's in the already existant banks to hack, like I did in my starting space ASM hack of SMB3.


(edited by beneficii on 07-25-05 02:58 PM)
beneficii

Lakitu
Level: 36

Posts: 329/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 07-25-05 11:30 PM, in Strings in C++ Link
Originally posted by Disch
don't confuse this with Java. 'new' without a matching 'delete' will lead to memory leaks.


string myString("string literal");


^ is the proper way to use a class constructor in C++. Alternatively if you want to use heap memory:



string* myString = new string("string literal");

// do stuff with myString here

delete myString; // don't forget this line if using 'new' !!!!



Meh, I don't even know why people bother using the string class; quit being lazy and just use a char array/pointer! It's not that hard! If you want it to be of variable size, then just use malloc.


(edited by beneficii on 07-25-05 02:30 PM)
beneficii

Lakitu
Level: 36

Posts: 330/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 07-25-05 11:34 PM, in Strings in C++ Link
Classes are pretty useful, but they sometimes seem restrictive (like it seems you can't pass a pointer of a class function--say if you wanted to use a class function as a DlgProc), so I on some projects I may choose not to use them at all.

Plus, for me that may be "to each her own."
beneficii

Lakitu
Level: 36

Posts: 331/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 07-26-05 12:52 AM, in Extending NES roms- no flaming please! Link
Originally posted by HyperHacker
Actually, most games I've seen use 00 instead of FF.


Well, if you see any clusters like that, you know what to do.
beneficii

Lakitu
Level: 36

Posts: 332/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 07-26-05 02:09 AM, in Xtreme graphics NES demo Link
Putting this in Nintendulator, will get back to you on it....

Hey, Disch, can you like upload it to a different site? You exceeded your bandwidth limit. Or perhaps you can e-mail me?

Oh, well, upon further reading it wouldn't work on the real NES. I just don't see the point.


(edited by beneficii on 07-25-05 05:10 PM)
(edited by beneficii on 07-25-05 05:17 PM)
beneficii

Lakitu
Level: 36

Posts: 333/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 07-26-05 02:24 AM, in New Hot Cauldron Mod unlocks Sex Scene in new Harry Potter book. Link
Originally posted by HyperHacker
Awesome. How exactly do you mod a book, though?

Also their 'related stories' box is floating over the text. Couldn't just use a plain link, oh hell no.


Modding a book is simple. You uh, uh ...

See, it's pretty simple? I'm surprised you haven't learned how yet.
beneficii

Lakitu
Level: 36

Posts: 334/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 07-26-05 03:44 AM, in Xtreme graphics NES demo Link
Originally posted by Disch
I would've thought you would be happy with this development. I mean it allows for better graphics! Isn't that what you were after?


Well, it's just that it's not NES, so I don't know if it can be valid.

Now, in response to Dr. Mario's comment, if someone can make a mapper that allows for this and can get it to work on the real NES, then I would change my view.

EDIT: Perhaps, something based on the MMC3? Behold, the MMC7!

$8000 write
FCxx xLLL
F: Do EOR $1000 for CHR-ROM bank swap
C: Have fixed banks be at $E000 and $8000 instead of $E000 and $C000
L: if following value:
0 - swap 2k bank to CHR-ROM $0000
1 - swap 2k bank to CHR-ROM $0800
2 - swap 1k bank to CHR-ROM $1000
3 - swap 1k bank to CHR-ROM $1400
4 - swap 1k bank to CHR-ROM $1800
5 - swap 1k bank to CHR-ROM $1C00
6 - swap 8k bank to PRG-ROM $8000 (or $C000, depending on fixed)
7 - swap 8k bank to PRG-ROM $A000

$8001 write
BBBB BBBB
B: Bank to swap to $8000 write

$A000 write
xxxx xxxM
M: mirroring (0=vertical, 1=horizontal)

$A001 write
xxxx xxVS
V: allow writes to SAVERAM
S: enable SAVERAM ($6000-$7FFF)

$A002 write
xxxx xxB4
B: allow 4-bits per pixel (will use nametable that would normally mirror it--i.e., if vertical, the one above it, if horizontal, the one below--4-screen mirroring must be enabled!)
4: allow 4-screen mirroring (required for space for the extra pixel bits, if allowed)

$A003 write
xxxx xxxE
E: make CHR-ROM directly writeable (through $2006/$2007, of course)

$C000 write
CCCC CCCC
write IRQ counter here

$C001 write
write any value to copy the IRQ counter from $C000 to $C001 so it can begin

$E000 write
write any value to disable the IRQ counter

$E001 write
write any value to enable the IRQ counter

Tell me how feasible this is.


(edited by beneficii on 07-25-05 07:01 PM)
beneficii

Lakitu
Level: 36

Posts: 335/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 07-26-05 04:06 AM, in Xtreme graphics NES demo Link
I would too. BTW, who made Schpune?

Anyway, would something like I outlined in my proposed mapper be feasible?
beneficii

Lakitu
Level: 36

Posts: 336/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 07-26-05 04:13 AM, in Xtreme graphics NES demo Link
Originally posted by Disch
Schpune is my emu -- although that "PL6" build is the joke build for the XTREME demo. The PL6 build will run other games normally though.

As for your proposal:

B: allow 4-bits per pixel -- this is beyond what the NES can do. You're stuck with 2bpp. The best you can do is change/replace the palette/attribute data between tile fetches (that's kind of what MMC5 does in ExAttribute mode)

E: make CHR-ROM directly writeable -- ROM (aka Read Only Memory) is, by definition, not writable. I fail to see why you'd want to do that anyway... or maybe I'm just not understanding?


Well, for that latter one, I heard vaguely something about making it writeable (I think it gets its name changed to VRAM or something when that happens), for certain animations, but let's quietly drop that subject.

Oh, there's no way to trick the NES into masking the bits in one table with the bits in the other?
beneficii

Lakitu
Level: 36

Posts: 337/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 07-26-05 04:27 PM, in Questions about hacking Mario 1 Link
Quirk,

Here's a challenge. Learn 6502 assembly, learn the NES-specific i/o, get a 6502 opcodes reference, (a lot of the previous you can get at nesdev.parodius.com--if you don't know what I'm talking about, then you have a lot to learn), get the dissassembly of Mario 1 (which is out there somewhere), and find the code you're looking in it, and then go to the ROM and hack the relevant parts.
beneficii

Lakitu
Level: 36

Posts: 338/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 07-26-05 08:27 PM, in Extending NES roms- no flaming please! Link
Originally posted by DahrkDaiz
Originally posted by HyperHacker
Actually, most games I've seen use 00 instead of FF.


Actually, the way a PROM works is that there are fuses on a cartridge that are blown out. A non-blown fuse = a 1, a blown fuse = 0. So since we can't un-do a blown fuse it's sensible to leave unused bytes with all fuses intact, rather than blowing them all out, so if there's a byte in a PROM that's not used, all of it's fuses are left intact, thus, an unused bytes in a PROM are FF, not 00. An NES cartridge probably doesn't use fuses, but the concept is still the same. Chunks of FF = free data.

Anyways, expanding NES ROMs is rather easy but like Disch said, using that data is the hard part. I'll walk you guys through a quick run down of how I expanded SMB3 for Luigi vs Mario.

First, I found out that for the MMC3, the last 16K of PRG-ROM is "hard wired" into the ROM, meaning that this code will exist at all times and cannot be swapped out. MMC3 has options as to where to put this unswappable code and SMB3 chooses to put the first 8K at $8000-$9FFF and the last 8K at $E000-$FFFF. Thus, $A000-$DFFF will change through out the game.

So anyways, since the last 16K of space won't ever be changed out and it needs to STAY the last 16K, I realized you need to add your free space between the last 16K (which for SMB3 starts at 0x3C010) and the rest of the ROM, so I had to add the space between at 0x3C010, pushing the last 16K further down the road. Now, MMC3 requires that the PRG-ROM be at 128K, 256K or 512K. That's how the MMC3 works. So since PRG-ROM for SMB3 was already 256K, I extended it to 512K. So I inserted 256K of the byte 0xFF at 0x3C010.

Now, emulators need to know how much PRG-ROM there is. The iNES header format has the amount of 16K PRG-ROM banks numbered at the 4th byte. Let's do a byte of math. I now have 512K of PRG-ROM. Divide that up by 16: 512/16 = 32. So 32 in hex is 0x20. I enter 0x20 for the 4th byte to show there's 32 banks of 16K of PRG-ROM in this newly expanded ROM.

Tah-dah! The ROM has now been expanded. Now how do I use this newly found ROM area? What I wanted to do with Luigi vs Mario was to have seperate paths for each character, and since the game divides up each level "type" (Plains, Hills, Sky, Underground, etc) into it's own seperate 16K bank, I could do that easily. I copied over all the level data to the new expanded area (0x1e010-0x30010). Then, I made an ASM hack. When the game switches banks to load level data from the proper bank area, I did a small check. If the game is being played by Mario, I jumped to a new routine that loaded a different bank number for Mario. The bank number it loaded would be in the area of the newly expanded ROM area. Then, I made a small program that would copy the normal level data of one rom over to the new level data in the expanded area of another rom. I made a copy of my hack, a Luigi side and a Mario side. When I edit the ROM for the Mario side, I just run the program once and it copies over the Mario side into the new level data area of the main rom. Then when I play the main hack rom and am Mario, my routine will switch in a different bank and with the same pointers, I get two different levels with each character.

This just goes to show the amount of work needed to pull off ROM expansion. It takes a lot of patience, but it's not THAT hard. I made a lot of mistakes and errors before I got SMB3 expanded and working like this, but I kept at it and within 2 hours, I had it all done.


Ah, you did just as I predicted above.

Anyway, I've been thinking of simply making a much longer game (which would require the same expanion), but I should probably make the SAVERAM battery-backed in that case; since the game keeps writing over the whole SAVERAM, that would be somewhat difficult. I still think it's possible though.

Anyway, good job.
beneficii

Lakitu
Level: 36

Posts: 339/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 07-27-05 12:58 AM, in Green gas bubbles and the Big Boo . Link
Originally posted by SoNotNormal
I seem to be having a problem when adding these sprites in my ghost house - the green gas bubble and the big boo. Whenever I get on the same screen, Mario and most other sprites vanish. Also with the big boo, all the small boos around it vanish. How can I fix this? Thanks


It may be that those sprites are incompatible; in this game, some sprites are. Let's see what the others have to say, though.
beneficii

Lakitu
Level: 36

Posts: 340/567
EXP: 299656
For next: 8454

Since: 06-27-04
From: Cordova, TN, USA

Since last post: 14 hours
Last activity: 6 hours
Posted on 07-27-05 01:01 AM, in NASA Goes Up Again: Discovery Touches Down Link
How about we abolish NASA and let the people who work there go into private business? That is probably the way to get space exploration going.
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
Acmlm's Board - I2 Archive - - Posts by beneficii


ABII


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



Page rendered in 0.019 seconds.