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: 201/596
EXP: 355646
For next: 14801

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 11-24-04 02:54 AM, in Suggestions/info for home-made arcade unit? Link
1) You shouldn't charge to use free software. This is a hair above being as lowdown as those people that sell SNES roms bundled with ZSNES on a CD over eBay. If you're going to charge for something like this... it should be something you wrote from yourself or have gotten permission from the software authors to do so.

2) I think you need a liscence for this kind of thing. If you're going to try to get it into arcades, they'll definatly want to see some paperwork ensuring everything's on the up-and-up.

3) If the games are pirated, you probably will get snagged. I don't know about a fine or anything, but you probably will be confronted about it and possibly even have it forcefully removed from wherever you're planning on putting it.


Something like this is cool for your own personal use (and many people do it and have something like it in their own home)... but marketing it is a bad idea.


(edited by Disch on 11-23-04 05:58 PM)
(edited by Disch on 11-23-04 05:58 PM)
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 11-27-04 10:07 PM, in Help with coding.... Link
I must insist that whatever you do... avoid VB like the plague. Pick up a free C compiler (gcc perhaps), dig up some C tutorials for beginners and get cracking. The hardest part is learning how to use the compiler ;P

You'll probably have to start with console programs with C at first until you get familiar.. .then you can move to traditional Windows programs.
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 11-27-04 10:58 PM, in Help with coding.... Link
A game like a PC game? If you have the source, you'll need to know whatever language the game was coded in (likely C/C++). If you don't have the source... then changing the engine is improbable (I suppose it is possible, but it probably ain't gonna happen).

Or if you're just looking to change stuff the game uses (like graphics... possibly map layouts, sound effects, other misc data), you might not even need programming knowledge at all. Sometimes this stuff is stored in seperate files along with the game and can be edited via a hex editor (not unlike ROM hacking -- only it can be significantly more complex depending on the game).
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 11-27-04 11:00 PM, in Best NES Palette? Link
ah... k. Thanks for the correction.

*Disch apologizes to Fx3
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 11-28-04 03:06 AM, in Help with coding.... Link
your layout makes it impossible to read your post without highlighting (or turning your layout off). Use common sense when making a post layout plzkthx

Anyway the download on the page just had a setup file... so I doubt it includes any source... so knowing any specific programming language won't really matter. I don't know if the download was what you said it was... you were talking about a WWE game, this is called Chron X or something. Are you sure that's the right link?

Anyway... without the source.. this is more in the realm of hacking rather than programming. I don't have much/any experience in the area of PC game modding, so I can't be much help to you here.
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 11-29-04 10:04 PM, in porting VB.NET code to C++ help Link
bah @ fgets

fread and fwrite are the only f___ functions I really every use for file i/o due to their simplicity and control.

To read a 64 byte array from a file:

unsigned char buffer[64];
FILE* romStream;
romStream = fopen("rom.smc","rb");
if( romStream )
{
  fread( buffer, 1, 64, romStream ); /* reads 64 bytes from the start of the file, puts it in buffer */
  fclose( romStream );
}


it looks like you were doing some weird byte swapping in your VB code (looks like you want 16-bit words instead of individual bytes). If this is the case... you can use fread in the same manner to read 16-bit variables. all you'd need to do is redefine your 'buffer' array:

unsigned short buffer[32];

the fread line could look the same way... but I think you're supposed to change it to:

fread( buffer, 2, 32, romStream );

either will work on a little endian system. On a big endian system you'll have to swap the byte order by hand (unless you're planning on porting to Mac or some other big endian system, I wouldn't worry about it).

Final notes:

- after you fopen... fseek to your desired offset before you fread
- if fopen fails and you get NULL... do NOT call any other file i/o function.... not even fclose (after all... if nothing was successfully opened, nothing needs to be closed).


And kudos for making the switch =). The fewer VB coders the better.


erm...well streams are something else in C++. you're using the older C file functions


meh... C++ includes all of C. fopen and family are C... and as such they are also C++... so the "that's technically not C++" technicality is moot... since it is C++


(edited by Disch on 11-29-04 01:12 PM)
(edited by Disch on 11-29-04 01:13 PM)
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 11-30-04 08:12 AM, in porting VB.NET code to C++ help Link
Originally posted by neotransotaku
that is one of the few good qualities about C++: still being able to program in C


It's the reason why I just don't understand why ANYONE would code in straight C (cue Parasyte). I mean most of what C++ offers is stupid... yes. But if you code in C++ anyway, you can take what you want (and it does have a lot of great stuff to offer), but still fall back to vanilla C when perferable.
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 12-01-04 01:53 AM, in An alternative to Romhacking Link
It would have to be one hell of a random number generator. Random number generators usually produce number that are, more or less, random (well... sequenced and random... see below). To make an operable executable there has to be patterns here and there.

My understanding of how pseudo-random number generators work, is you just have a big math formula with produces garbage numbers... kind of like:

R2 = (m * R1) + a

where 'm' and 'a' are carefully chosen numbers (note they're probably much more complex, but this is just the idea). R2 is the random number you're given, and would also be used as R1 when the formula is run again, giving you a new number... and a 'seed' is used as the starting R1 when the number generator is inited (usually the system time is used as the seed, or some other rapidly changing variable on the system. Older systems like the NES might count a var up every frame and stop as soon as the user presses a button and use that as the seed).

A random number generator is really just a very large string of numbers, each of which are used in order. Like an A->B cause and effect situation. If you get $A9 from the generator and then get $23 after it... if $A9 ever comes up in the generator again... the next number is going to be $23. This makes it pretty much completely impossible to make operable assembly code from a pseudo-random number generator.


All that aside... and assuming you COULD make truely random numbers... the number of possibilities is:

2^( 8 * S )

Where S is the size of the file in bytes. A simple 4-byte file will have 4294967296 (2^32) possibilities.

A 256K file will have 2^2097152 ( or 2^(256 * 1024 * 8) ).

The odds of getting something that doesn't crash.. let alone is a full game... are completely rediculous. You have better odds winning the lotto 5 times in a row.


I debated doing something like this with NES graphics. Like draw a bunch of garbage tiles and sort through them until I found some graphics that would look like I want. But there's just way too many possibilities.


(edited by Disch on 11-30-04 05:02 PM)
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 12-04-04 06:39 AM, in OS: Does it matter? Link

Whatever happened to, say, three years ago when it was mainly DOS editors? XD


Thank God that's over. There shouldnt've been that many DOS editors 3 years ago... it actually kind of got on my nerves that there was. Nobody runs DOS anymore*. It's archaic and stupid. It should have disappeared long ago. Thankfully now people are finally stopping to develop... 10 years after DOS's hey-day.

Not suprising that Windows is dominant here... since the only other OS listed was DOS -- and not MacOS or Linux (Polls never do provide the right options... which is why I think the feature is rather stupid... but that's another issue )

Ideally, platform independance is what you want to go for. Java is great for this... despite being a bit... sluggish. I'm not a fan of C# because it doesn't really serve a purpose -- I mean Java already does the platform independant high level thing.. and does it quite well. C# is MS's way of saying "hey we can do that too"... only it's years behind. Java has had time to get a big supportive base, optimized and quick executables, and wide support. C# is still relatively new to the table... and doesn't really bring anything new to the table (but of course, MS will muscle it in to the market anyway).

I'm a fan of good old fashioned C/C++. There's some libraries to achive platform independance, but they're typically harder to use than the native API (which I why I never really got into them for editor development). People using C/C++ and other lower languages will just likely code for whatever OS they're running (which, in the rom-hacking scene, seems to be mostly Windows).

* ( Yes I know there are people that still run DOS... but not in the same manner as a modern OS -- like... they don't run DOS for their everyday work. People that typically run it do so because they have DOS programs/games they still want to use... or they haven't discovered Linux yet.... or they're clinging to some insane sense of nostolgia. )


(edited by Disch on 12-03-04 09:44 PM)
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 12-05-04 12:21 AM, in Gameboy sound is getting shut off! Link
I'm assuming 'sound1' is $10, no?

> ld a,$FF ;Set sound length
> ldh (sound1+1),a ;FF10

Your ";FF10" comment threw me off here at first... since you're really writing to $FF11 (assuming 'sound1' is $10 and not $0F).


> ld a, $C7 ;High freq byte, endless, start
> ldh (sound1+4),a

if you're looking for 'endless' sound you want the length counter disabled (not enabled), so turn that bit off, not on (a write of $87 would do).

You never seem to write to $FF12 (never giving the channel an output volume). Write to this with your volume (range: 0-F) as the high 4 bits, and keep the low 3 bits off (unless you want envelope enabled).

You're writing to $FF25, which is good... but I don't see you writing to $FF26. You have to flip the high bit of $FF26 on to turn on the pAPU. If you don't... the pAPU doesn't get power and no sound is produced (this may very well be your main problem -- unless you did it elsewhere and didn't paste that portion).

> (And for those who ask why I bother to set lengths when I also set the 'endless' flag

It's important to write a nonzero value to the length anyway. I'm not 100% sure on the GB, but if it's anything like the NES (which it seems to be), a length count of zero would silence the channel even if length is disabled.

I'm not as confident on GB Sound as I should be... I may be wrong on a few areas but it's worth a look anyway ^^.
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 12-06-04 06:04 AM, in What languages can you program? Link
there's a GBA style of C++?

or do you mean you're just more familiar with the GBA API than you are with, say, the Windows API?
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 12-10-04 04:34 AM, in DS Emulator Link

Disch, who exactly is being ripped off by people "putting Linux on the X-Box"? It sounds like you've absorbed some pretty strange, almost Galambosian views on intellectual property.


The point I was getting at is that retro emulation and 'next-gen' emulation aren't as seperated as some people like to think they are. It's all the same community of people, all involved in the same things. Whether it be figuring out how to bypass system security measures, figuring out how a system works (so emu development is possible), or doing the actual development of an emu. Perhaps Linux on XBox was a bad example, but I'm sure the people involved with that are no stranger to emulation.

The whole deal with emulation not only revolves around.... but completely relies on pirating copyrighted material. If all you could play on emus was legit games, nobody would use them... they'd be pointless.
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 12-10-04 09:15 AM, in Mario Dream Link
It's no suprise that tiles are recycled several times in the screen. You could reshape the tiles on the screen on top of editing the tiles in TLP.. then you could actually get the screen the way you want it without having to comprimise. ;P
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 12-18-04 11:37 PM, in hello i am new to zelda romhhacking Link
Originally posted by Jason
can you pm me a link that where i can get the emulator and rom please? sorry for asking



*nt*
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 12-22-04 11:18 AM, in Reminesce Link
I was hesitant on trying the emu... since the last program from FP I got my hands on was a malicious fake exe marked as "fceuxd.exe" he 'leaked' into #rom-hacking on IRC which presumably scanned your harddrive for the real FCEUXD and uploaded it to a server of his (hint for future reference... when you try a stunt like that, don't code the app in VB - the function names are in the executable... all you had to do was open it in a hex editor to see the FTP routines... not to mention the exe was way smaller than it should have been). I like to think I'm a nice, helpful guy... and I tried to help FP along back in the day... but man he really stabbed me in the back. I think I got more mad at him from the whole FCEUXD scandal than bbit did.

Anyway... With the beta copy of FCEUXD I've had the privilage to try out... there's little reason to have any other program running for hacking purposes (other than like Notepad or something for taking notes). With the built in hex-editor (with table file support), excellent debugger with inline assembler, and full memory viewer... it's possible (and relatively easy) to do all of your hacking work within FCEUXD. I don't see how Reminisce can somehow get more "in depth" than that.. but maybe I just don't know what you mean by "in depth".

Anyway.... to be constructive:

- Your sound crackliness problem is probably caused by buffer underrun/overrun. You're probably not timing your sound streaming right (not giving it enough sound to stream, or giving it too much). Example, if you write a half of second's worth of sound to your stream, then wait a little -over- half a second to write more, the sound will crackle and pop like your emu does. The sound quality is good though (but then again... blargg's Blip Buffer and NESAPU libraries are awesome)

- You have some graphical glitches in Battletoads. Although I must say I'm somewhat impressed you got that game running (I played it through level 1 and into level 2 -- where it's been known to hang.. but yours seemed to play it -- glitches aside).

- Several games which rely on mid-scanline ppu changes don't work properly. This includes: Final Fantasy (the monochrome orb effect when you step on an orb... Here's a pic (taken from an old version of my own emu with a ROM hacked to produce the effect sooner) of more or less how it should look), Marble Madness (Intro text to a race), Punch Out! (Jarbled graphics everywhere), probably some demos (like Quietust's scanline demo), and probably many others.

- When you press Alt or open a menu (or click/drag the window)... sound continues playing even though emulation is paused (sounds bad).

- VRC6 has some issues. Akumajou Densetsu crashes and I don't think I heard any of the expansion sound (it's included as part of blargg's library, I'm sure)

- VRC7 also has issues. Lagrange Point has graphics problems... and no expansion sound (but I don't think blargg's library supports it.. it might, but I'm not sure... kinda doubtful actually). VRC7 sound is a bitch though... only a handful emulate it... and only like 2 or 3 emulate it decently. Also... I quit the emu while Lagrange Point was running and it crashed with a bad pointer error.

- You have scroll issues with Megaman 2 (start on Quickman's stage, fall in the pit. Gets screwy)

- PAL mode seems funky. I tried playing Ufouria and it detected PAL mode fine... but still ran at ~60 fps (typically PAL is ~50), and it sounded like the music was offkey.

That's about all I could remember.


(edited by Disch on 12-22-04 02:24 AM)
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 12-25-04 10:32 PM, in FCEUXD Release Link
Yes... Kudos on a job well done! This is definatly the tool for NES hacking. Excellent work BBit and Para.
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 12-29-04 07:03 AM, in Help for a new weapon in Castlevania Link
3 parts:

1) Graphics should be easy enough. You could just replace the watch with the cross grahpics... I even think they use the same palette, so there's no problem.

2) Number of hearts should be easy too. There's a 05 somewhere in the ROM which is the number of hearts. Find it...change it to 0A (or however many hearts.... 10 seems a little low for how awesome the cross is, imo). You could do this by corrupting (replacing all 05's with 0A and narrowing down which 05 is the right one)... or you could set a breakpoint in FCEUxd on writes to your heart count and then use the watch (this would probably be the easiest way).

3) Get the stopwatch routine to jump to the cross routine instead. Obviously the hardest part =P. Anyway... likely there's a JSR somewhere (or a JMP.. or even possibly a branch) which jumps to the cross routine... and ditto for the watch. Provided they're both in the master bank... it's as simple as finding them and copying the cross routine address to the stopwatch. Finding them can be somewhat of a hassle though.

Anyway... I'll look into this if I get bored (which I am... so perhaps I might find something)
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 12-31-04 05:49 AM, in Who wants to make an NES emu with me? Link
I really want to... the NES fascinates me and I really enjoy working with it. I have made crude emus in the past, but I always grow tired of the project when working with the user interface.

So pretty much... I want someone to make a sort of frontend for the emu. The basic idea is... you're half of the program would give my half a pointer to a buffer for video and audio... then you'd call a 'DoFrame' function (which would fill those buffers with data), and then you'd output the video/audio to the user. Basically... I'm looking for someone to do all the stuff that isn't directly related to emulation


Your half of the emu would involve:

1) Providing everything related to a user interface. Like the main menu, any option screens you want to add, ROM file selection, etc.

2) Regulating a framerate (typially ~60 fps when emulating NTSC, ~50 when emulating PAL)

3) Actually outputting the generated image to the user (my half will actually generate the image... your half would be in charge of actually displaying it -- as well as stretching and/or applying neat-o filters if you want)

4) Actually outputting the generated sound to the user (again, my half will actually generate it... your half would be in charge of streaming it)

5) Actually getting input from the user and sending it to my half (so you'd need to actually read joypad/keyboard status).


That's it really. You don't need to know any technical NES stuff... I'd be taking care of all that. The project is a C++ deal... I'm typically more of a C/C++ hybrid coder, but I'll be using some C++ stuff (classes), so a C++ compiler would be necessary. Use of a cross-platform library or something to achieve platform independence would be awesome... but since I'm running WIndows, that's really the only thing I really care about.

Anyway... as well all know, NES emulators are a dime a dozen. I'm not suggesting we go and make the most super-best-revolutionary NES emu to date. There are already lots of great options when it comes to NES emus... I'm just proposing this because it's a fun thing to do. I know it's a longshot... but if anyone out there is at all interested, I'd like to hear about it ^^
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 12-31-04 08:50 AM, in Who wants to make an NES emu with me? Link
Originally posted by HyperHacker
I could do it in VB easily, including the whole pointer thing, but I don't know how you would work that into your program. (Compile it as a DLL, perhaps?)


I suppose that could work. I'd prefer to avoid the wretch that is VB... but beggers can't be choosers. I haven't had the best of luck in my prior experiences getting DLLs running in VB (I attempted to make a DLL to play back NES sound for a music editor made in VB a long while back, but we couldn't get it working for some reason).



Though really, if I'm going to be writing any emulators, I'd rather do it for GB. (I started one but couldn't get enough speed in VB and don't know enough C. )


Bleh... I hate GB/GBC. Can't get on board with you on that one.

All the API stuff you do in VB (which I've seen you talk about in other posts) works exactly the same way in C... so I don't see why you'd have a harder time doing stuff in C than you would VB (in fact... I'd figure it'd be just the opposite).

Anyway... If you're really interested... I'll work on getting a setup...erm... set up ^^. Like what functions you'd use to communicate with my half of the emu, and how you'd work with it. I'll have something tomorrow... and hopefully... something you can actually use in 2 or 3 days.

If you're not interested, or aren't really sure or whatever... it's cool. I want this to be a totally fun thing, no pressure. If you wouldn't have fun, then don't go for it.
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 01-01-05 04:11 AM, in Who wants to make an NES emu with me? Link
http://hypher.net/disch/InitialEmuLayout.txt

Just finished the preliminary layout. This is more or less how I'm planning to have it set up. I'm a little unsure about the function pointer deal for joypad data. Perhaps I could just have you call a function every frame to supply new joypad data? The of course would limit the number of joypad refreshes to one a frame... but that's probably all you'd need anyway.

The rest seems good to me. Still need to do sound stuff, but I'll worry about that later. Other options still need to be added... but for now this is good.

It's not carved in stone. If anyone out there who wants to jump on board has ideas to make it easier to use / better, I'm all ears. I have yet to do any actual work on it (i've written nothing apart from that txt file)... so it wouldn't be a bother at all ^^

Anyway... I'm seeing mostly a lot of "I'd like to, but...." except for HH's "I could, but...." ;P I'd be more than willing to help someone along if they're interested in learning (I could do the other end... I just don't want to - it's not fun for me... but I know how to do it... so I could answer Qs and stuff)

As far as the VB thing goes. The bottom line is: I don't really care. Yeah I'd prefer a single C/C++ executable... but a VB app and a C++ DLL is fine. And it's not like a person doing it in VB would stop someone else from doing it in C.

Anyway... I'm going to go ahead and get working on the emu. I'll probably have something in a few days (don't know how much I'll get done tonight )... maybe it'll be easier/more tempting for people to try out when it's actually there, ready to use rather than "I'm planning on doing this". I'll make it out like the above txt file.. so if anyone wants to start working on the other end for shits and giggles, that doc's got you covered.

And remember... no obligation. If you want to try it, go ahead... and if you get bored... don't hesitate to quit. This is a no pressure thing which is just for fun. You don't have to feel like there's a responsibility to get things done.
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.014 seconds.