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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 02-01-05 07:58 AM, in 2 questions Link
CV3 doesn't use the MMC5 features that allow you to specify a palette color for individual 8x8 tiles -- so you couldn't even do to that game (at least not without hefty rewriting).
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 02-02-05 03:51 AM, in Easiest Language to learn and why you wanted to learn it Link
Originally posted by HyperHacker
Bleh. I'll tell you what. You code how you want and I'll code how I want. Obviously neither of us is going to convince the other.


Well I'm not really trying to 'convert' you, really. The bottom line is most things are case sensitive. So you're going to have to code "my way" because that's how things work. I was just trying to show the logic behind it, because it really does make way more sense than the alternatives.

I won't be able to rip VB from your embrace I'm sure... but the sooner you decide to leave it behind the better.
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 02-03-05 08:23 AM, in Easiest Language to learn and why you wanted to learn it Link
I'm pretty certain your stand on the case sensitivity issue spawned almost solely from your VB beginnings. Your view might not be as scewed had you started with something more... well... normal. So while you may not be embracing VB anymore (hooray), you're still embracing its ideas (shucks).
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 02-06-05 06:15 AM, in 2 questions Link
He meant 32K PRG

SMB is 32K PRG + 8 K CHR = 40K -- the absolute maximum you can have without making use of a mapper.
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 02-07-05 04:40 AM, in How can i convert.. Link
You don't.

The FDS has it's own unique operations which aren't available on your generic NES/Famicom. It's kind of like an add-on unit... like the Sega CD added on to Genesis. There's no way you can just convert any SegaCD iso to a genesis ROM --- likewise there's no way to convert an FDS disk image to an NES rom.

Wait for PocketNES to get FDS support.... or use an emu that supports FDS... or you're SOL.
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 02-07-05 05:46 AM, in 31 Reasons Link
Originally posted by geeogree
I don't agree with what they do, or how they act in certain aspects


A false, blatant stereotype of this magnitude just screams ignorance on your part. Unless I totally misinterpretted that.

But you just gave me the impression that your idea of a homosexual is the "flaming" gay man or the "butch" lesbian. If that's not what you meant... then please clarify... but I can't comprehend what else you would mean by you disagreeing with "how they act".


(edited by Disch on 02-07-05 01:46 AM)
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 02-07-05 07:44 AM, in Who wants to make an NES emu with me? Link
I don't know if anyone is still interested in this (or if anyone ever was)... but I figured I'd update just in case... or just for the hell of it

Binary:
http://hypher.net/disch/NES.zip (READ THE README)

No source yet (see below)

Most obvious change is sound =P. I sort of half-assed the output (just wanted to get it working). So amplitudes and stuff aren't right... and other areas can use tweaking. DMC IRQs don't work yet... nor does the DMC steal cycles like it should... plus I haven't tested APU Frame IRQs (not sure of any games that use them... Hyde told me one but I lost that list!)

Corrected a few other things... added some mappers. Quick list:

0 - (SMB, Ice Climber, Excitebike, Balloon Fight, etc)
1 - (Final Fantasy, Blaster Master, Dragon Quest 4, Megaman 2, etc)
2 - (Castlevania, Megaman, etc)
3 - (Solomon's Key.... etc?)
4 - (Megaman 3-6, SMB2-3, Kirby's Adventure, a million other freaking games)
7 - (Battletoads, Marble Madness)
9 - (Mike Tyson's Punch Out)
24 - (Akumajou Densetsu)
66 - (Dragon Power)

it will also try to run mapper 10 (Fire Emblem) and mapper 26 (Madara), but I haven't had success with those yet.

Mapper 4 emulation isn't perfect... some games still have some issues (Wolverine flickers a bit, Mother (J) runs but has slight flicker when you open the menu, some others have problems)


Gonna fix up the sound issues, work on the backend->frontend communication, and try to weed out some of the other problems before I upload the source. If you're interested lemme know and I'll get it to you ahead of time.


This is turning out pretty well... so I'll probably eventually make a real Windows front for it... but I'd still rather have someone else field that end ;D. Anyway yeah... further comments/feedback/criticism welcome.
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 02-07-05 08:42 AM, in Who wants to make an NES emu with me? Link
Originally posted by neotransotaku
I wouldn't mind making a GUI for it. I'd like to learn how to program a windows interface using either the API or MFC.


I'd welcome any effort you'd be willing to give. And remember there's no pressure -- if you don't want to do it or you don't feel like working on it -- don't sweat it. I want a stictly "for-fun" stress free deal =)

I can help out with problems when working with the API. I'd recommend avoiding MFC. It's easier to start out, but down the line it becomes a big pain in the ass... especially for something of this nature.

I'll whip up a "blueprint" doc not unlike that "InitialEmuLayout.txt" file I linked to earlier which describes how the front end will communicate with the back end. I can't guarantee I'll have it done tonight, but I'll try. Definatly will have it by this time tomorrow (possibly some source by then too)


So, yeah not bad. Runs pretty well. Looks promising


Thank you ^^. This is the "best" full emu I've constructed so far. I'm really happy with how it's turning out.


Very minor graphics errors for the level selected part of Megaman 3 (could be the ROM).


My sources tell me that's how the game runs on the real deal (so it's a problem with the game itself, not the emulation)... but I haven't played that cart in ages so I couldn't tell you first hand. To my knowledge... emus that play it "correctly" either have bad MMC3 code or do some sort of CRC check and hackish tweak to correct the problem.


------- EDIT -----------

http://hypher.net/disch/EmuBackEnd.txt

Promised txt file (took a little longer than I thought). Should explain things pretty well. I might add a few more options and crap when I release the next chunk of source. Still some things I want to do before I do that though.


(edited by Disch on 02-08-05 07:27 AM)
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 02-08-05 08:49 PM, in Who wants to make an NES emu with me? Link
Hrm... hypher.net seems to be having problems =/

http://www.geocities.com/disch_/EmuBackEnd.txt

Alternative upload. The file's a little long but it should explain things well enough. It's not as complicated as it may seem. And of course feel free to ask me questions if something's not clear.

I'll really try and get the source up as soon as I can. I still want to finish up a few things.
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 02-09-05 07:18 AM, in 64-bit integers in C? Link
I don't know if there's a standard variable for 64-bit vars. If there is... I would assume it's "long int".. though I have memories of that not working. When I need them in VS, I use "__int64", although I'm almost certain that wouldn't work in other compilers.

Find whatever one works... but instead of using it directly, typedef it to something else so that if you (or anyone else) ever needs to use a different compiler, all they have to do is change the typedef line and everything will be peachy. Something like

typedef signed __int64 s64;
or
typedef signed long int s64;


then make your vars with

s64 myVar;
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 02-09-05 07:40 AM, in 64-bit integers in C? Link
This is like the one thing I really dislike about C/C++. And ironically, they didn't change it for Java =P. They should have obvious type names which detail the size of the variable.
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 02-09-05 10:07 AM, in Who wants to make an NES emu with me? Link
New demo uploaded... along with the source!!!!!

Binary -- http://hypher.net/disch/NES.zip

Source -- http://hypher.net/disch/NESsrc.zip

The binary is showing off the nifty stereo effects. I might have went a little overboard with it, but it sounds pretty good I think ^^.

Anyway.... I made 2 changes from the EmuBackEnd.txt thing:

1) HardReset() has the slight possibility of returning NES_ERR_MEMORY
2) A 3rd option was added to the NESOPTIONS struct:

s32 nInversionCutoff;

It specifies a cutoff line for right channel inversion (in Hertz). When inverted channels play notes below the cutoff line, they will not be inverted (this is useful for people with subwoofers, since inverted waves don't work well with subbies). Setting this value to 0 (or less than zero) will disable the cutoff line and inverted channels will be inverted regardless of their frequency).


A few bugfixes and mapper issues solved. Still need to do some DMC things and fix some timing issues (some MMC3 games still have troubles). List of supported mappers (and example games):

0 -- Super Mario Bros, Ice Climber, Excitebike, Balloon Fight
1 -- Final Fantasy, Megaman 2, Blaster Master, Castlevania 2
2 -- Castlevania, Megaman
3 -- Solomon's Key
4 -- Megaman 4-6, SMB2, SMB3, Kirby's Adventure, Crystalis
7 -- Battletoads, Marble Madness
9 -- Mike Tyson's Punch Out!
10 -- Fire Emblem
11 -- Crystal Mines
24* -- Akumajou Densetsu
26* -- Madara, Esper Dream 2
66 -- Dragon Power
69** -- Batman: Return of the Joker, Gimmick!

* VRC6 expansion sound included!
** FME-07 expansion sound included! (in games that use it anyway: Gimmick!)

That's all for tonight.... I'm about ready to pass out
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 02-09-05 08:50 PM, in 64-bit integers in C? Link
To follow up with what Para was saying... you could make an array of constant strings with the following:


const char* stringarray[3] = {
"String 1",
"String 2",
"etc"
};


Like para pointed out, whatever is in quotes will give you a pointer, so you can make an array of char pointers, each of which will point to a string.


(edited by Disch on 02-09-05 04:51 PM)
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 02-10-05 02:07 AM, in 64-bit integers in C? Link
Originally posted by neotransotaku
That's because you declared the stringarray variable as const.


const char* somepointer;

That's a non-constant pointer to a constant char. Meaning the pointer itself isn't constant, but what it points to is.

I believe to make the pointer itself constant.. you'd do:

char* const somepointer;

So that would mean the pointer itself is constant.. but what it points to isn't. I'm not 100% sure on this, because having a pointer that's constant is really useless.
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 02-10-05 11:20 PM, in My SMB2 editor keeps freezing up :( Link
Get WinRAR

http://www.rarlab.com

There's free versions for download
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 02-11-05 08:53 PM, in Editor programming - Graphics? Link
I second that. CreateDIBSection all the way.

If for some reason you can't use it.... SetDIBits is the next best thing. SetPixel is so far beyond slow it's practically useless.
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 02-12-05 12:59 AM, in Editor programming - Graphics? Link
I'm not really familiar with CImage (are you using MFC?)

Anyway... the HBITMAP handle is just that: a handle to the bitmap. It's the non-MFC equivilent of a CBitmap. You get the pointer to the bitmap data through one of the parameters you pass to the function.

Here's some sample code to help explain.



HDC mDC;
HBITMAP bmp, oldbmp;

BITMAPINFO bi;
memset(&bi,0,sizeof(BITMAPINFO));
bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bi.bmiHeader.biBitCount = 32;
bi.bmiHeader.biHeight = 240;
bi.bmiHeader.biPlanes = 1;
bi.bmiHeader.biWidth = 256;
void* pixels;

mDC = CreateCompatibleDC(NULL);
if(!mDC)
{
//error getting offscreen DC
}

bmp = CreateDIBSection(mDC,&bi,DIB_RGB_COLORS,&pixels,NULL,NULL);
if(!bmp)
{
//error creating offscreen bitmap
}

oldbmp = (HBITMAP)SelectObject(mDC,bmp);



This example makes a bitmap 256x240 pixels and puts it in an offscreen DC. You can write directly to the pixels as though it were a big array through the "pixels" pointer in this example. One funky side effect to take note of is that Windows bitmaps are stored upside-down... so 'pixels' actually points to the last row in the bitmap followed by the second last, etc... not the first followed by the second like you'd might expect.

Once you change your pixels and stuff you can do ordinary BitBlt()s with mDC as your source to blit the image to another surface (or to the display)

Once you're done with everything, you need to do cleanup:



SelectObject(mDC,oldbmp);
DeleteObject(bmp);
DeleteDC(mDC);

Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 02-12-05 01:46 AM, in Editor programming - Graphics? Link
That works?

Haw
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 02-12-05 07:12 AM, in Editor programming - Graphics? Link
Originally posted by Exim
yes, I'm using MFC. Creating all the windows, buttons, textfields, input, messagehandling my own would drive me crazy I think... never got far beyond creating a window and draw stuff in it with the mouse. I bet when I'd like to add buttons I'd use mfc-objects.


It's not as hard as you'd think. Dialogs and stuff are pretty much automated by the API. There's only like 4 things you have to do differently when making dialogs straight in the WinAPI than you'd do when working in MFC.

But I'm just talking. If you're more comfortable with MFC, it's alright to stick with it... just try to break from it eventually.

Originally posted by HyperHacker
Ugh. I tried to use DIB sections once, damn near drove me nuts. WTF is this scanline crap anyway?


*shrug*

The code I gave in that other post pretty much takes care of all of it. All you have to do from there is treat "pixels" as a big array of pixels =P. Writes to it will change the image directly. Don't see what's so complicated about that.
Dish

Spiny
Level: 38

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

Since: 03-15-04
From: Disch

Since last post: 18 days
Last activity: 18 days
Posted on 02-23-05 09:28 AM, in CastleVania: DeNasty Dynasty Link
Originally posted by Dr. Mario
The problem with hacking CV3 is that I refuse to. It's too good of a game to alter, with the exception of a pallete switch for a couple of levels, that game is a work of art. I don't want to taint what has already been perfected.


I can't even begin to understand your logic -- but whatever.

I'd comment on the hack but it doesn't look like there's much to comment on yet.


(edited by Disch on 02-23-05 12:29 AM)
(edited by Disch on 02-23-05 12:31 AM)
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.018 seconds.