The NEW Build Your Own Arcade Controls
Main => Main Forum => Topic started by: Derrick Renaud on January 20, 2011, 11:50:35 pm
-
I already mentioned I thought it would be neat to control 720 with just a spinner. I have to report that it seems to work quite well. Unfortunately adding another hacked input device is not going to be acceptable. So I had to break down and add Real/Fake handling.
http://rapidshare.com/files/443684040/mame.zip (http://rapidshare.com/files/443684040/mame.zip)
(edit) use the official MAME 141u1 for testing instead.
Please try it and let me know if the 3 types of input (Real; Joystick; Spinner) work as expected. There is a new menu item when Real/Fake controls are found called "Controller Type." There you can select to use 1 of the 3 types. The player controls will then be updated in the "Input (This Game)" menu.
So for those of you with the Real control, hook it up and let me know how it works. Let me know what interface you are using. No mouse hacks please.
Those of you with a spinner, try it out and give me your comments. Spinner automatically sends the alignment pulses. You can try your spinner on the Real setting and see how bad it is without the fake Spinner handling. Set the sensitivity using the standard formula.
real_full_turn_count / actual_spinner_used_count * 100
For a 1200 count spinner -> 144 / 1200 * 100 = 12%
The setting is not saved in the cfg file yet, but will be.
Also I need opinions on what controls to output in the XML file for front ends. Just the real? Real and Fake? The selected control? Both but with "Fake" added to fake ports? Something else?
For those of you interested in how it works:
PORT_REAL specifies a group name and a handler. The group name groups all the ports with the same name together under the new "Controller Type" menu.
If Real is selected then the current port is used unmodified.
PORT_FAKE specifies a group name and a controller name. The controller name will add itself to the "Controller Type" menu. If selected in the menu, the PORT_REAL port will call the handler to process the selected fake port data and return it as real.
/* Center disc */
/* X1, X2 LETA inputs */
PORT_MODIFY("LETA0")
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REAL("Rotation", fake_leta_r) PORT_NAME("Center")
/* Rotate disc */
/* Y1, Y2 LETA inputs */
/* The disc has 72 teeth which are read by the hardware at 2x */
/* Computer hardware reads at 4x, so we set the sensitivity to 50% */
PORT_MODIFY("LETA1")
PORT_BIT( 0xff, 0x00, IPT_DIAL_V ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_FULL_TURN_COUNT(144) PORT_REAL("Rotation", fake_leta_r) PORT_NAME("Rotate")
PORT_START("FAKE_JOY_X") /* not direct mapped */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_FAKE("Rotation", "Joystick")
PORT_START("FAKE_JOY_Y") /* not direct mapped */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_REVERSE PORT_FAKE("Rotation", "Joystick")
/* Let's assume we are using a 1200 count spinner. We scale to get a 144 count.
* 144/1200 = 0.12 = 12% */
PORT_START("FAKE_SPINNER") /* not direct mapped */
PORT_BIT( 0xffff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(12) PORT_KEYDELTA(10) PORT_FAKE("Rotation", "Spinner")
static FAKE_INPUT( fake_leta_r )
{
if (!strcmp(current_controller, "Joystick"))
{
/* special thanks to MAME Analog+ for the mapping code */
static double last_angle;
static int rotations;
int analogx = input_port_read(field->port->machine, "FAKE_JOY_X") - 128;
int analogy = input_port_read(field->port->machine, "FAKE_JOY_Y") - 128;
double angle;
/* if the joystick is centered, leave the rest of this alone */
angle = last_angle;
if (analogx < -32 || analogx > 32 || analogy < -32 || analogy > 32)
angle = atan2((double)analogx, (double)analogy) * 360 / (2 * M_PI);
/* detect when we pass the 0 point in either direction */
if (last_angle < -90 && angle > 90)
rotations--;
else if (last_angle > 90 && angle < -90)
rotations++;
last_angle = angle;
/* LETA0 returns 0xff when the controller blocks one of two gaps */
if (!strcmp(tag, "LETA0"))
{
/* original controller had two gaps 10 degrees apart, each 2.5 degrees wide */
/* we fake it a little to make it possible to hit the zeroed state with a digital controller */
return (angle >= -5.0 && angle <= 5.0) ? 0xff : 0x00;
}
/* LETA1 returns dial value; 144 units = 1 full rotation */
else
{
/* take the rotations * 144 plus the current angle */
return (rotations * 144 + (int)(angle * 144.0 / 360.0)) & 0xff;
}
}
else if (!strcmp(current_controller, "Spinner"))
{
static UINT32 last_in;
static INT32 center_count;
UINT32 in = input_port_read(field->port->machine, "FAKE_SPINNER") & 0xffff;
INT32 diff;
UINT32 temp;
int flag = 0;
/* see if count rolled between 0xffff and 0x0000 */
if ((last_in > 0xc000) && (in < 0x03ff))
flag = 1;
if ((in > 0xc000) && (last_in < 0x03ff))
flag = -1;
if (flag == -1)
{
temp = 0xffff - in;
diff = last_in - temp - 1;
}
else if (flag == 0)
{
temp = in - last_in;
diff = temp;
}
else
{
temp = 0xffff - last_in;
diff = in + temp + 1;
}
last_in = in;
center_count += diff;
while (center_count < 0)
center_count += 144;
while (center_count >= 144)
center_count -= 144;
if (!strcmp(tag, "LETA0"))
{
/* for now just return 0xff at rotation 0 */
return (center_count == 0) ? 0xff : 0x00;
}
else
return in & 0xff;
}
return 0xff;
}
-
I should mention that, No, this will not be used for adding shifters. IPT_GEARSHIFT code is needed. Not a bunch of fake handers.
This is for use in games like 720, and those fighting/punching weird games mentioned.
-
:notworthy:
I will check this out when I get back from travel.
PS. Thanks for being a true developer and taking this on as a puzzle while avoiding the annoying human factors involved.
-
There is a new menu item when Real/Fake controls are found called "Controller Type." There you can select to use 1 of the 3 types.
a.) Changing MAME core engine functionality to suit only one game, or very small and specific group of games, is no good.
b.) You have not submitted all the changes, not even complete "atarisy2.c", but more importantly you forgot to mention what other files you modified.
c.) As other similar menu options this should then also be accompanied with a new command line switch, and as anything 'unnecessary' this is also no good.
d.) You have only TWO types of devices there, not three. Arcade spinner can be mapped to "720 spinner" with no problems. No need for "real" and "fake" when we already have "mouse" and "analog", where analog stick maps to analog axes and both 'arcade spinner' and '720 spinner' map to mouse axes.
PORT_MODIFY("LETA0")
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10)
PORT_REAL("Rotation", fake_leta_r) PORT_NAME("Center")
PORT_MODIFY("LETA1")
PORT_BIT( 0xff, 0x00, IPT_DIAL_V ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10)
PORT_FULL_TURN_COUNT(144) PORT_REAL("Rotation", fake_leta_r) PORT_NAME("Rotate")
Addition of "PORT_REAL", "PORT_FAKE", "PORT_FULL_TURN_COUNT(144)" is unnecessary and involves changes to core MAME engine, like modification of "inptport.c", and who knows what else.
It's nice to see you too named calibration port as "IPT_DIAL_V", but Mouse_Y and Mouse_X data seem to be swapped around in "REAL_FUNCTION", which is one of those things you did not show us.
PORT_START("FAKE_JOY_X") /* not direct mapped */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10)
PORT_FAKE("Rotation", "Joystick")
PORT_START("FAKE_JOY_Y") /* not direct mapped */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10)
PORT_REVERSE PORT_FAKE("Rotation", "Joystick")
Now that I know there is such thing as "PORT_START" I can add a 3rd variant to the list of my beautiful solutions, which generally is to any PC game developer just a very common and standard way to handle different input devices.
PORT_START("FAKE_SPINNER") /* not direct mapped */
PORT_BIT( 0xffff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(12) PORT_KEYDELTA(10)
PORT_FAKE("Rotation", "Spinner")
You do not need this, 'arcade spinner' maps to '720 spinner' very well. If you are doing it just to set different sensitivity then you shouldn't as various types of 'arcade spinners' would require different settings anyway, and their full rotation does not need to equal 720's full rotation, so the sensitivity of arcade spinners in this case is more a matter of personal preference, plus it can always be adjusted from the menu. Gameplay with an arcade spinner is much like gameplay with a mouse where you rotate the character by moving the mouse left-right, calibration at "360 degrees" in not necessary or better to say it's inapplicable.
static FAKE_INPUT( fake_leta_r )
You show us "FAKE_INPUT", but not "REAL_INPUT" function, nor where is the branching instruction to decide which one of them to execute. Without you submitting complete, and all the files you have modified no one will able to compile your changes, try to improve, learn from it, play with it, or anything.
if (!strcmp(current_controller, "Joystick"))
Finally we know what was the mysterious variable in infamous "Step 2", it's a bloody STRING?! Are you mad, comparing strings in a core function that you execute at least once per frame? So, you were not happy with all the unnecessary bloat introduced for this simple thing, now you also have to make it run slower, sheesh!
int analogx = input_port_read(field->port->machine, "FAKE_JOY_X") - 128;
int analogy = input_port_read(field->port->machine, "FAKE_JOY_Y") - 128;
Should be "- 127", not "- 128". I suggest you try to monitor what kind of data is incoming to those variables. Something seem wrong there as it gets clamped to min and max when stick retains in constant position, only when actually being moved, I suppose when there is a difference between immediate data packets - deltaX and deltaY, only then we can read actual position of the stick, which might have to do with why anal_hack rotation is not smooth but flickers and jitters.
else if (!strcmp(current_controller, "Spinner"))
It makes me puke just to look at the word - "strcmp". Anyway, "else" will do here, you do not need that second comparison until you decide to add keyboard hack too. But, the thing is, you do not need that whole part at all, the real input function can handle 'arcade spinner' as it is, without any hacks, changes or additions - it's still just a "mouse input" in either case.
-
:troll:
Ignoring troll post that yet again does not contain any truth or understanding.
(Edit) Well accept for the fact that I did not post the rest of the code. There is no need for something I just posted as a pre-compiled test program. Code will be submitted when the 2 issues I mentioned are complete. CFG and XML handling. Which there is no need to do until the program completes the testing phase.
-
It makes me puke just to look at the word - "strcmp".
What's up with that? Are you, in fact, a troll?
-
I already mentioned I thought it would be neat to control 720 with just a spinner. I have to report that it seems to work quite well. Unfortunately adding another hacked input device is not going to be acceptable. So I had to break down and add Real/Fake handling.
That is great! Except you spoiled the fun of figuring it out on my own. :lol
I'll test it out over the weekend with a spinner, an analog stick, and a spinner modified to have two encoders like a real controller and see how it works.
-
I will test it with the real controller once it arrives. I can test with a spinner as well, but it probably won't be until later in the weekend. I am upgrading the cab PC to Windows 7 64 tonight, and it will take some time to get everything set up again.
-
That is great! Except you spoiled the fun of figuring it out on my own. :lol
And here I thought the fact that no non troll posted any interest in trying to code it meant that no one was trying. ;D ;)
I'll test it out over the weekend with a spinner, an analog stick, and a spinner modified to have two encoders like a real controller and see how it works.
Great, for the spinner also try it under the "Real" selection. You will notice how it does not work when you kick to move. The player goes in random direction. This is why the "Spinner" selection is added to automatically send the calibration pulse. This means you can also use the mouse under the "Spinner" selection, but it is not as easy as a spinner.
As far as using a "spinner modified to have two encoders like a real controller", this will only work if they have the same tooth count/ratio/positions as the 2 real discs. The Rotation disc has 72 teeth, and the Center disc has 2 only at the top. Trying anything else will not result in a meaningfull test. Sorry, but thanks.
-
abara - I told you to mellow your tone. You didn't. 3 day ban in effect. You seem genuinely interested, I'd love to see you contribute, but I won't have your attitude here. Try again when you come back.
--- saint
-
Wow...I am genuinely confused by Abara's attitude....he puts up a stink for weeks about MameDev not taking this matter seriously, then when a MameDev finally does he chastises him and tries to downplay the work that he didn't have to do in the first place? Talk about inconsiderate. My only guess would be that Abara was trying to get the code working first so that he could get a pat on the back and now feels that Derrick is stealing his thunder. Sorry Saint, I didn't mean to feed the troll, I just had to comment.
Derrick...I commend you on this. Especially since MameDev had no interest in this matter to begin with.
-
That is great! Except you spoiled the fun of figuring it out on my own. :lol
And here I thought the fact that no non troll posted any interest in trying to code it meant that no one was trying. ;D ;)
I did post my interest in the "State of MAME" thread.
I am actually interested in it for the technical challenge even though I couldn't care less about 720. I already know how I am going to modify my spinner to incorporate the second encoder wheel.
It may be a week or so before I can begin to work on it seriously though.
I can understand how it got missed amongst the chaff.
I'll test it out over the weekend with a spinner, an analog stick, and a spinner modified to have two encoders like a real controller and see how it works.
Great, for the spinner also try it under the "Real" selection. You will notice how it does not work when you kick to move. The player goes in random direction. This is why the "Spinner" selection is added to automatically send the calibration pulse. This means you can also use the mouse under the "Spinner" selection, but it is not as easy as a spinner.
As far as using a "spinner modified to have two encoders like a real controller", this will only work if they have the same tooth count/ratio/positions as the 2 real discs. The Rotation disc has 72 teeth, and the Center disc has 2 only at the top. Trying anything else will not result in a meaningful test. Sorry, but thanks.
My spinner is custom built. I can easily swap out the encoder wheel and add the special second wheel at the bottom of the shaft.
-
My spinner is custom built. I can easily swap out the encoder wheel and add the special second wheel at the bottom of the shaft.
Ram Controls sells repro wheels. http://www.ram-controls.com/order-720.html (http://www.ram-controls.com/order-720.html)
FYI, they've had trouble sourcing some parts for the whole controller, so be prepared for a star wars yolk type experience if you order the whole thing from the website without calling first.
EDIT: Just tried adding it to my cart and it shows up as a PRE-ORDER (and $50 cheaper).
-
I'll fabricate my own. The originals are probably too large of a diameter.
-
Yeah, not cheap either. While looking for an inkjet transparency template for one with 72 teeth, I came accross this:
http://www.thingiverse.com/thing:1527 (http://www.thingiverse.com/thing:1527)
I haven't used it and won't download it at work, so I'm not sure if it will do the job or not.
-
Dave said he still needs to finish the upper housing before he can sell the whole stick. I just bought a controller from someone at KLOV, but it is misssing the pcb. I ordered the premium rebuild kit from Dave, so hopefully I will get both of them soon to test.
-
OK, now that it is safe to post again, I will try to answer some of abaraba's troll post by treating it as questions and not the statement of fact that he incorrectly believes they are. Even though he will troll it again in 3 days, I thought others might benefit from the discussion of why I went with the solution I did.
There is a new menu item when Real/Fake controls are found called "Controller Type." There you can select to use 1 of the 3 types.
a.) Changing MAME core engine functionality to suit only one game, or very small and specific group of games, is no good.
b.) You have not submitted all the changes, not even complete "atarisy2.c", but more importantly you forgot to mention what other files you modified.
c.) As other similar menu options this should then also be accompanied with a new command line switch, and as anything 'unnecessary' this is also no good.
d.) You have only TWO types of devices there, not three. Arcade spinner can be mapped to "720 spinner" with no problems. No need for "real" and "fake" when we already have "mouse" and "analog", where analog stick maps to analog axes and both 'arcade spinner' and '720 spinner' map to mouse axes.
a. without adding the new functionality there is no clean way to add multiple controls. This will be used for other games and can even be used to add back in the fake Battlezone and Defender single joystick hacks, if MAMEdev agrees. This allows all fake handling to be maintained under 1 routine.
c. as stated ad nauseum, no new command line switches. They are not needed. They can be easily controlled in the cfg file when I add that.
d. Try testing the code as I asked, you will see you can not use a mouse if only the real port existed. No center disc data is sent. The player will spin fine when standing still, but will go off in a random direction when kicked. Hence the need for fake "Spinner" handling. If the Real port code worked using only a mouse, then we would not even be discussing this and the current fake joystick would not be in the current MAME code.
PORT_MODIFY("LETA0")
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10)
PORT_REAL("Rotation", fake_leta_r) PORT_NAME("Center")
PORT_MODIFY("LETA1")
PORT_BIT( 0xff, 0x00, IPT_DIAL_V ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10)
PORT_FULL_TURN_COUNT(144) PORT_REAL("Rotation", fake_leta_r) PORT_NAME("Rotate")
Addition of "PORT_REAL", "PORT_FAKE", "PORT_FULL_TURN_COUNT(144)" is unnecessary and involves changes to core MAME engine, like modification of "inptport.c", and who knows what else.
It's nice to see you too named calibration port as "IPT_DIAL_V", but Mouse_Y and Mouse_X data seem to be swapped around in "REAL_FUNCTION", which is one of those things you did not show us.
PORT_FULL_TURN_COUNT has been around for a few years. It is to document how many counts in a full turn of a real control. No affect on speed.
PORT_REAL and PORT_FAKE are needed to group different PORTs together to allow for their selection and disconnection of unused ports from being processed by the port update mechanism. Otherwise if you tried to make the current fake joystick and the real port exist at the same time without my new code, both would be updated, conflicting with each other (unless you set the unused controls to NONE) and slowing down the port read by updating unused ports.
You conveniently removed the comments from the code that showed the Center disc connected to X and Rotate disc connected to Y. That is why they are named that way, to more accurately reflect how the hardware works.
Another benefit is that the memory map can now call the LETA ports directly instead of calling the fake handler.
AM_RANGE(0x1810, 0x1810) AM_MIRROR(0x278c) AM_READ_PORT("LETA0")
AM_RANGE(0x1811, 0x1811) AM_MIRROR(0x278c) AM_READ_PORT("LETA1")
AM_RANGE(0x1812, 0x1812) AM_MIRROR(0x278c) AM_READ_PORT("LETA2")
AM_RANGE(0x1813, 0x1813) AM_MIRROR(0x278c) AM_READ_PORT("LETA3")
instead of the old code:
AM_RANGE(0x1810, 0x1813) AM_MIRROR(0x278c) AM_READ(leta_r)
PORT_START("FAKE_SPINNER") /* not direct mapped */
PORT_BIT( 0xffff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(12) PORT_KEYDELTA(10)
PORT_FAKE("Rotation", "Spinner")
You do not need this, 'arcade spinner' maps to '720 spinner' very well. If you are doing it just to set different sensitivity then you shouldn't as various types of 'arcade spinners' would require different settings anyway, and their full rotation does not need to equal 720's full rotation, so the sensitivity of arcade spinners in this case is more a matter of personal preference, plus it can always be adjusted from the menu. Gameplay with an arcade spinner is much like gameplay with a mouse where you rotate the character by moving the mouse left-right, calibration at "360 degrees" in not necessary or better to say it's inapplicable.
As I previously stated, this is false. While the player will spin when standing still, when you press kick the player does not go in the direction he is facing. That is why fake spinner code is needed to send the alignment pulse.
static FAKE_INPUT( fake_leta_r )
You show us "FAKE_INPUT", but not "REAL_INPUT" function, nor where is the branching instruction to decide which one of them to execute. Without you submitting complete, and all the files you have modified no one will able to compile your changes, try to improve, learn from it, play with it, or anything.
Sorry, there was no need. Code will be submitted when fully tested. There is no REAL_INPUT function. When "Real" is selected, the ports tagged as PORT_REAL are connected. When a fake controller is selected, the Real port is disconnected and the data is generated through the fake handler using the selected ports specified as PORT_FAKE.
else if (!strcmp(current_controller, "Spinner"))
It makes me puke just to look at the word - "strcmp". Anyway, "else" will do here, you do not need that second comparison until you decide to add keyboard hack too. But, the thing is, you do not need that whole part at all, the real input function can handle 'arcade spinner' as it is, without any hacks, changes or additions - it's still just a "mouse input" in either case.
An "else" is needed in case someone incorrectly trys to add a PORT_FAKE without adding it to the handler or incorrectly names a PORT_FAKE. Otherwise it will incorrectly use the "Spinner" code. Which reminds me, I have to add an errorlog to report any controller names received that are not handled.
strcmp is not slow in this case. It bails out at the first difference. "J"oystick and "S"pinner will bail at the first letter. Any fear of a slowdown is also more then compensated for by the fact that unused ports are being disconnected.
-
Thanks for working on this Derrick! And also thanks for taking the time to explain the choices you made.
-
The troll moves on. Unbelievable.
http://www.mameworld.info/ubbthreads/showthreaded.php?Cat=&Number=244132&page=0&view=expanded&sb=5&o=&fpart=1&vc=1 (http://www.mameworld.info/ubbthreads/showthreaded.php?Cat=&Number=244132&page=0&view=expanded&sb=5&o=&fpart=1&vc=1)
:banghead:
-
:laugh2: Sorry, but I can't help but laugh.
Tell people on mameworld to just google the username and they'll get the idea.
The guy is infamous for annoying the ---steaming pile of meadow muffin--- out of message boards.
http://www.gamedev.net/topic/545989-incoming-hilarity-abaraba-is-back-and-this-time-hes-fixated-on-p2p-networking/ (http://www.gamedev.net/topic/545989-incoming-hilarity-abaraba-is-back-and-this-time-hes-fixated-on-p2p-networking/)
EDIT:OMG just looked at the page 2 results. It goes on and on...ufo forums, astronomy forums...banned in all and his posts deleted in most of them.
(sorry, we now return you to your original topic)
EDIT: This one is classic: http://developer.nvidia.com/forums/index.php?showtopic=2286&start=0&p=6307&#entry6307 (http://developer.nvidia.com/forums/index.php?showtopic=2286&start=0&p=6307&#entry6307)
-
Im pretty sure I've found his home phone and address if anyone wants to send him a "thinking of you" card :P
-
Tell people on mameworld to just google the username and they'll get the idea.
The guy is infamous for annoying the ---steaming pile of meadow muffin--- out of message boards.
Believe me, I'm quite aware! :cheers:
-
Heh. Apparently, tag you're it Twisty.
-
EDIT: This one is classic: http://developer.nvidia.com/forums/index.php?showtopic=2286&start=0&p=6307&#entry6307 (http://developer.nvidia.com/forums/index.php?showtopic=2286&start=0&p=6307&#entry6307)
Might as well sick him on the limitations of the human eye vs frame rate speed for all the good it would do.
-
Turns out there is a PORT_CONFNAME setting that does something similar to my PORT_REAL/PORT_FAKE idea.
So here is the code I submitted based on that.
It lets you select between Real/Joystick/Spinner. Real should work fine with the real control if you use a good interface and not some old cheap mouse hack. Joystick is the current MAME code from Analog+. Spinner allows the use of just a mouse/spinner and the code anally reproduces the Center wheel alignment data. Some say the alignment data is not needed and demand I not reproduce it. Yet they also say they want accuracy. Well accuracy is anally reproducing the alignment data.
-
I will try to get this tested soon Derrick. My 720 controller and the rebuild kit both came in today, so I am hoping to get it working tonight or tomorrow.
-
Real life got in the way this weekend so I didn't get my spinner rebuilt to test this.
-
Shouldn't this thread belong in software?
-
Out of all the controllers Ive acquired over the yrs, 720 was not one of them, partly due to it not being functional in Mame.
I wish to thank Derrick for his efforts in getting this, and possibly others like it, finally added. :applaud: :cheers:
Hopefully this change will also inspire Dave from Ramcontrols to put more energy into reproduction of his 720 controller.
Till then, I gota get a spinner hooked up and give it a go :)
-
MAME 0.141u1 What's New.....
720 - added Driver Configuration option to allow the controls to be
set to Real 720 Controller Input; fake joystick; or fake spinner. It
defaults to fake spinner for mouse/spinner use. [Derrick Renaud]
Wow, that was quick! ;D
-
MAME 0.141u1 What's New.....
720 - added Driver Configuration option to allow the controls to be
set to Real 720 Controller Input; fake joystick; or fake spinner. It
defaults to fake spinner for mouse/spinner use. [Derrick Renaud]
Wow, that was quick! ;D
Very nice! Derrick, is it already tested with the controller? I rebuilt the controller yesterday, but didn't have a chance to hook it up yet. I will try to get it hooked up tonight. That thing is too deep for my panel, so I am going to have to make a riser for it.
-
Very nice! Derrick, is it already tested with the controller? I rebuilt the controller yesterday, but didn't have a chance to hook it up yet. I will try to get it hooked up tonight. That thing is too deep for my panel, so I am going to have to make a riser for it.
It has not been tested with a real controller yet but should work fine with the default sensitivity of 50% to compensate for the fact that the game hardware read at 2x and new interfaces read at 4x. Please let me know if you do test it.
The fake spinner code accurately creates the center count based on the rotate count so that it behaves just like the real thing. From that I can tell that the real control should work just fine. It is also easier for most users to just use spinner instead of real. Real requires you to disable the Center axis (mouse-Y) when using a mouse so you don't send incorrectly aligned center counts.
Some troll is going to start ranting that I should not have done this, but I wanted to document how the control works, and now anyone using the debugger on the 720 game can get real synced data from 1 control. It also passes the service mode test.
-
Derrick-
Just played 720 with my spinner. Kudos to you!
-
Glad you found it usefull.
For my next trick:
http://forum.arcadecontrols.com/index.php?topic=108813.0 (http://forum.arcadecontrols.com/index.php?topic=108813.0)
-
For my next trick:
http://forum.arcadecontrols.com/index.php?topic=108813.0 (http://forum.arcadecontrols.com/index.php?topic=108813.0)
Blasphemous. :P
(the added number of controls add difficulty, which adds to the experience and feeling of accomplishment when you do well)
How about simulating / emulating the Track n Field version that used a Trackball?
That looked like it could be an interesting way to control the game. :) Not sure if anyone has gotten hold of the converter or not... and or if its needed.
From what it looked like, there was some sort of small pcb that changed the values to digital pulses.
-
For my next trick:
http://forum.arcadecontrols.com/index.php?topic=108813.0 (http://forum.arcadecontrols.com/index.php?topic=108813.0)
Blasphemous. :P
(the added number of controls add difficulty, which adds to the experience and feeling of accomplishment when you do well)
Playing with a gamepad can be quite hard with the real controls. This helps out.
How about simulating / emulating the Track n Field version that used a Trackball?
That looked like it could be an interesting way to control the game. :) Not sure if anyone has gotten hold of the converter or not... and or if its needed.
From what it looked like, there was some sort of small pcb that changed the values to digital pulses.
You requesting non real controls? Blasphemous. ;)
The only way I can see that working is the harder you spin, the faster the buttons are pressed. That would be kind of pointless because you would always get a good score.
Ikari style games using Robotron controls would be a better candidates. I would need to know the memory locations that control rotation but I am too lazy/no interest to find them myself.
-
you requesting non real controls? Blasphemous.
heh. No, actually. There was a real Arcade version that used a trackball that was used
on-location.
Spinning the trackball fast requires a lot of effort, so is very similar to the button mashing.
Im guessing however, that the Mfg. had too many complaints of people smashing their hands into the cabinet side or something like that.
Ikari style games using Robotron controls would be a better candidates.
I dont know how you think you are going to move one way, face another, and then press any buttons rapidly in the process. (unless you have 3 hands)
Sure, you could lock down the facing so that its always firing which way they face... but it would destroy the gameplay, the same way it never works well to play robotron with one stick.
Which is why the Rotary sticks were created in the first place, and are the best choice for playing the game.
-
Ikari style games using Robotron controls would be a better candidates.
I dont know how you think you are going to move one way, face another, and then press any buttons rapidly in the process. (unless you have 3 hands)
Sure, you could lock down the facing so that its always firing which way they face... but it would destroy the gameplay, the same way it never works well to play robotron with one stick.
Which is why the Rotary sticks were created in the first place, and are the best choice for playing the game.
I guess I was thinking that the right joystick would autofire in the direction of the right joystick so you could hold it down. Forgot about the second button. Maybe add a fire/grenade toggle. Press it and you then lob a grenade (no autofire) with each right press. Maybe even add a lob a grenade in the player direction button. Starts to get complicated though.
It was just something I get lots of requests for.
How about:
Joust with Kinect control of arm flapping. ;D
-
How about:
Joust with Kinect control of arm flapping. ;D
Damn it! Milk meet monitor........monitor meet milk. :lol
-
you requesting non real controls? Blasphemous.
heh. No, actually. There was a real Arcade version that used a trackball that was used
on-location.
Spinning the trackball fast requires a lot of effort, so is very similar to the button mashing.
Im guessing however, that the Mfg. had too many complaints of people smashing their hands into the cabinet side or something like that.
He's right about that. They had a Track & Field with trackball at the mall by my house for a long time when I was a teen. And yes, it was easy to slam your hand into the cabinet sides if you got into it too much. heh
-
How about:
Joust with Kinect control of arm flapping. ;D
What we need is a API for hooking up arbitrary programs to send input so we can have competitions of the best AI to play a given game like they did with:
http://julian.togelius.com/mariocompetition2009/ (http://julian.togelius.com/mariocompetition2009/) (Mario styled platformer with progressively difficult layout)
http://eis.ucsc.edu/StarCraftAICompetition (http://eis.ucsc.edu/StarCraftAICompetition)
Of course the difficulty then becomes how does the AI understand whats coming OUT of mame. That would have to be solved with some sort of machine vision, unless you tied into the debugger and mapped various memory locations/values to what they meant in-game.. that would almost be an extension of the cheating system, just not things you'd want to force a static value into.
-
Arm flapping. That's just preposturous. :lol
-
I wish to thank Derrick for his efforts in getting this, and possibly others like it, finally added.
My friend, if you care about accuracy, authenticity, about bloat, slowdowns and unnecessary hacks, as you do, then perhaps you should consider more carefully whether you are kissing the wrong buttocks there. -- And, why in the world you chose to ignore me when we are on the same side, it's two of us against everybody else, don't you see?
Please read this thread and note Derrick's is actually alone by himself in supporting those changes, he lost every argument we had, and even though his friends would like to support him, no one did, which is only natural since it takes just few minutes to actually test and confirm what I am talking about:
http://www.mameworld.info/ubbthreads/showflat.php?Cat=&Number=244132&page=0&view=expanded&sb=5&o=&vc=1 (http://www.mameworld.info/ubbthreads/showflat.php?Cat=&Number=244132&page=0&view=expanded&sb=5&o=&vc=1)
There is obvious bug that makes Derrick's code produce jittery movement, beside all the redundancy and unnecessary hacks, bloat and slowdowns, so again, if you want things to be done proper way I bid you reconsider coming back to fight on the same side again, by which I only mean to be completely neutral, objective and honest, just not silent and conditioned by mass-hypnotic ass kissing. I know you are brave, my friend, and now the time has come, so let's rock'n roll - in the name of truth, veracity and such!
Derrick,
- are you still not aware of this bug that makes movement in your code is jittery, or you just don't care?
-
Are the three days up already? Awwwwwwww....
-
Oh, and BTW, tested Derrick's code with my spinner, and didn't notice anything abnormal regarding speed, slowdowns, or jitter. It was certainly a lot easy with the spinner than with the joystick, that's for sure.
-
abaraba,
1) Im not a programmer, so understanding the inner most workings on your level are not going to happen. I can understand basic concepts of programming and logic however... so if people can provide a simplistic & logical explanation, I might be better equipped to make an informed judgment.
2) I dont kiss any butts. I merely thanked for the efforts.
3) If there is a problem with his code... just submit the fix / other version. Im sure the project leader will chose to go with the best solutions. Especially if there is a well explained reason sent along with it.
And, why in the world you chose to ignore me when we are on the same side, it's two of us against everybody else, don't you see?
4) No. I may fight for better preservation... but this isnt a 2 person -vs- the world thing. A lot more people than 2 wish for better preservation efforts.
The spirit in preservation should be cooperation, not selfishness, not ego, not war.
I pretty much only resort to personal attacks when Im attacked. Or occasionally to push a button or two. And I dont continue to keep bashing or attacking. Eventually, my points get through, not because of what kinds of curses I throw... but because they are on the side of whats best and right.
While for example, Im not a friend of Haze... it does not mean I hate him. In fact, hes done some great work over the years. 'Might' be a decent guy in person too. But his viewpoints are too out-of-touch, skewed, selfish, ..and he is way too black/white.
Still, I wont keep bashing him every post he makes. I might toss a few tomatoes at him to make him realize hes missing the boat... but Im not going to throw rocks at him.
5) Neither Haze nor Derrick are in charge of the Driver Inclusion. A good submission will be handled by the project leader.
6) Derrick is much more willing and flexible to adding things and helping out than Haze.
While you and him might not completely agree... you might be able to learn and share from each other ... IF... you can calm your attitude down.
Edit:
To be honest, Im surprised the submission was accepted. One thing about submitting your hard efforts is that they can be denied. I believe there are many who wont even attempt to make any big core / input changes... merely because they are fearful that they will be rejected... and so no progress ever happens, even If that person actually would like to make beneficial changes.
-
Please read this thread and note Derrick's is actually alone by himself in supporting those changes, he lost every argument we had, and even though his friends would like to support him, no one did, which is only natural since it takes just few minutes to actually test and confirm what I am talking about:
http://www.mameworld.info/ubbthreads/showflat.php?Cat=&Number=244132&page=0&view=expanded&sb=5&o=&vc=1 (http://www.mameworld.info/ubbthreads/showflat.php?Cat=&Number=244132&page=0&view=expanded&sb=5&o=&vc=1)
I know that English is not your first language and that your comprehension skills are teh suxxorz, but WTF are you talking about ?
As you were told in that thread -- your knowledge is lacking or outdated.
More than two weeks I am trying to explain the simplest thing to you, and all you did was ignore me like that and call me a "Troll", making everyone else hate me, ignore me too or jump all over me with no good reason or explanation, usually having no idea what is really going on. Then when I loose my patience with you, I get to be called jerk again, as if no one really cares what I am actually saying and what is the TRUTH.
To be clear, I hated you as Driver-Man and Derrick had nothing to do with that.
PS - 60-in-1 boards are illegal!
-
I hated you
You Hate a lot of people. And thats part of the problem. You instigate a lot of the pile-on's which cause things to get even more out of hand.
"Hate" is a Childish response period.
Your responses are just as Childish as his, and designed to provoke him further.
-
Your responses are just as Childish as his, and designed to provoke him further.
That's not true -- my responses are far more childish. They are, however, designed to provoke him. I'm glad the nuance wasn't wasted on you.
:applaud:
FWIW, the choice of 'hate' was a direct tongue-in-cheek response to his blaming Derrick for "making everybody else hate me". I guess I'm not surprised that that particular nuance was wasted on somebody who sees capitalization and punctuation as an exercise in random character placement.
::)
You really should read the stuff that he posts, here and elsewhere, and THEN come back and tell me who the problem is.
-
Are the three days up already? Awwwwwwww....
Yep and this will be my last post here and on the MAMEworld forums. Too time consuming to deal with the child that is everywhere on the internet annoying everyone.
One last attempt at real facts:
1. Abaraba keeps saying to put "his" code in and not mine. First, it is not his code. He found the code on another site describing MAME's original code.
2. All you have to do is select "Real" in the new code and this code he wishes is there. No speed hit measurable even on a P2. Though unless you set the center axis to "None", it will mess up on mouse control.
3. The joystick code that he demands be removed has nothing to do with me. This code is usefull to some users. But he keeps saying it is my anal_hack code. Which is a misnomer anyways. Anal would be to accurately do something in anal detail, which would better describe:
4. The new spinner code that accurately emulates the real control using a single axis. This is better for code testing. Easier for the end user and no real speed hit.
So he is ranting on for no reason that I can see.
So all in all, as always, he refuses to read/understand any issue and just rambles on, always slightly changing his attacks, all the while saying don't hate me, etc. All the trademarks of a Troll.
But I have no interest in costant troll attacks, so bye. Anything I do will be found in the what's new file. Or posted as an update on the forums, but not responded to, except in private to usefull people.
Please contact Abaraba about any questions on the shifter support he is adding. I will not do anything to conflict with his code.
-
Xiaou2,
You can do the same thing what brave Lando did in that thread. You can test it with spinner and mouse so to explain to Derrick those two work just the same and do not need separate handling function. Ok?
If you have analog stick, move it slowly and please report to Derrick there is a bug making movement jittery, ok?
I started all this becasue of you, why are you now giving up after 8 years? Without me, you do not have PROPER solution for this, nor will you see gear shifter games resolved any time soon. I'm telling you again, now is the time, join me and we will rule the galaxy... I'm your father!
-
Derrick-
As someone who played a lot of 720 as a kid, thanks for making it useable on my system. :applaud:
-
A good submission will be handled by the project leader.
Obviously Derrick's submission was accepted with all the bugs and nonsense, which means there is NO ONE "handling" submissions. This is the time where brave humans like you and super mutants like me have to stand up and make a difference, wake up, don't give up!
And what do you imagine how "handling" of submissions looks like? Is there discussion about it, many people saying pros and cons, or do you think its just one very wise person making all the decisions? Well, the truth obviously is no one seem to care, my friend. Do you?
-
So he is ranting on for no reason that I can see.
How about the bug causing jittery motion I told you about 73 times?
Forget bloody everything, I found you a bug in core input engine, hello!!
Sure, go plug your head back in the sand and mumble "troll", disappointing.
-
Someone shut this --cream-filled twinkie-- up already. This guy is like a fart in a car.
Somehow I want to believe that it is a fake account used with the intent on annoying and pissing off everyone. No one agrees with anything you say...please just go.
-
Whether you agree or disagree or like or dislike Derrick, at least he is making an effort to do the things that people are requesting. Give the guy a little credit. Now you just drove him away. And why? Because it wasn't your code that was submitted? :dizzy:
-
Someone shut this --cream-filled twinkie-- up already. This guy is like a fart in a car.
Somehow I want to believe that it is a fake account used with the intent on annoying and pissing off everyone. No one agrees with anything you say...please just go.
You do not even have an opinion of your own, not one you could articulate anyway, so you can't even really "disagree", just wave hands like that.
Homer Simpson:
- " ...and all they ask for in return is a little bit of blind fate."
-
Whether you agree or disagree or like or dislike Derrick, at least he is making an effort to do the things that people are requesting. Give the guy a little credit. Now you just drove him away. And why? Because it wasn't your code that was submitted? :dizzy:
No. This is what happened:
1.) Derrick came to support Haze into repeating one and the same story to Xiaou how they DO NOT WANT TO DO IT, which was just the same old story going on for LAST EIGHT YEARS.
2.) Then, when I said I am going to do it, they REFUSED to discuss it, saying those changes will never be accepted.
3.) Then Derrick made contradicting statement, literally confirming the main argument against them, and to get out of that funny mistake he decided to do what he was refusing to do all these years.
I made him do it, and I regret it. Instead of my mission to be accomplished at that point, the new mission had begun as I could not let to be responsible/connected to such an ugly hack. Why? PRINCIPLE, the one that sorts out good from lousy programs, and I care about that, it's my curse ever since I was bitten by radioactive driver.
-
Someone shut this --cream-filled twinkie-- up already. This guy is like a fart in a car.
Somehow I want to believe that it is a fake account used with the intent on annoying and pissing off everyone. No one agrees with anything you say...please just go.
You do not even have an opinion of your own, not one you could articulate anyway, so you can't even really "disagree", just wave hands like that.
Homer Simpson:
- " ...and all they ask for in return is a little bit of blind fate."
Say what you want about me, you know nothing about me to form such an opinion.
I on the other hand can form such an opinion of you because you have crudded up this forum and every other forum under the sun with all of your crap and everyone knows what you are about. You make developer's jobs harder because no matter what you are never satisfied.
But I am not about to get into a flame war with you...because I believe that somehow you get turned on by it.
-
Obviously Derrick's submission was accepted with all the bugs and nonsense, which means there is NO ONE "handling" submissions.
There is someone handling the submissions, else nothing would get added or rejected.
Have you Officially submitted your code in?
When you do, then you can complain if it does get rejected.
Until then, you are just trying to open a door by pulling it instead of pushing it.
Ive not yet tested the code. However, Im pretty sure I understand why he made 2 separate methods to handle optical input. Ill try to explain a little later. Maybe my explanation will be a little more clearer. I believe you are not quite understanding a certain aspect of it all.
My old spinner was a mouse hack, and isnt operational anymore. I planned to buy a new spinner, or driver board for the arcade spinners I have... but have not yet gotten round to it, so tests will take a while for me. Someone with a spinner can report as needed...
And as said... if there really is a jitter / bug problem, then its either from the original hack, which Derrick may not have dared to change for fear of driver rejection... or there is something else... and if you have that solution, it surely will be accepted.
Either way, if you react with low class you will only get more negative reactions from people.
As for Derrick leaving.. you cant blame anyone except him for it, as its his choice. Haze threatened to quit the scene, and yet he still continued to work on mame. It was more of a drama move than anything else.
Derrick has made threats about shifter stuff before, but in reality, he gave up midway due to reasons other than peoples complaining. The threats about cessation were just made to try to get masses who didnt know the situation, to dislike the "Complainer", as his form of being a Troll.
Understandably, the input system is a mess, and nobody wants to work on it... and it would seem most Devs are fearful that any changes are not going to be accepted.. so they dont make any attempts.
-
I guess I'm not surprised that that particular nuance was wasted on somebody
Cheffo,
After you troll... You gave me a backhanded comment, and yet you want me to give you credit?
I think there is a difference between someone who has some issues, and cant see past them
(yet) ... -vs- someone who knows better, and decides to act out equally cold/mean/negatively.
Anyways, I believe in Infinite possibilities. If you have ever thought I was a mess recently, you should have seen me in my childhood to teen stages. Knowing that I was able to become better, makes it easier to know that every person can become better, if they want to. Which makes it easier to see the good in people, and what they have potential to become... rather than what they currently are. I know I thank the heavens that some people viewed and treated me like this as well.. else I would have been 1000x worse than what I started out as... which is 6000x worse than all the Trolls on Byoac put together. heh
Sometimes people need a little push (or bucket of ice cold water) in the right direction... rather than a troll showdown which further pushes them in the Wrong direction. (That certainly almost caused my own early demise.. )
As a father, you of all should know the value of patience, understanding, acceptance.
Being a child has little to do with age however... and so we should remember that when we look upon our fellow humanoids.
For those stuck in a "personal hell" ... feel sympathy for them. For whatever caused and causes them to act in such a way is a backpack that you would never want strapped to you.. let alone them, or anyone else.
-
you should consider more carefully whether you are kissing the wrong buttocks
....
I only mean to be completely neutral, objective and honest, just not silent and conditioned by mass-hypnotic ass kissing. I know you are brave, my friend, and now the time has come, so let's rock'n roll - in the name of truth, veracity and such!
Meh, do it somewhere else. This time the ban is permanent.
-
And there was much rejoicing ...
-
:applaud: :cheers: :applaud:
-
:duckhunt
-
And there was much rejoicing ...
+1000
-
I installed win7 on my cab, and now I need to buy a new wireless card before I can get everything running to test the 720 controller. I will stop at Best Buy tonight to see if they have any decent ones, otherwise, back to Amazon.
It will be a couple days until I can test the controller and a spinner, but I did fire up .141u1 to test out the UI. It is very well done! Very quick and easy to choose between real, spinner, and joystick with the Driver Configuration menu. A separate menu makes it easy to change the analog settings to adjust the dial sensitivity.
Thanks Derrick! It is great to see these changes in there. Sorry the testing is taking so long;I ws hoping to have it done days ago.
-
Meh, do it somewhere else. This time the ban is permanent.
He was perma-banned on MW as well.
My current working theory is that he's going for a Guiness Book of World Records attempt on forum bans :lol
-
now that hes gone, for now, can someone get Derrick Renaud to come back?
-
I doubt it's gone for good. He was banned last time too. We'll see a new user called "Z.Aksen" show up here in a few weeks :P
-
saint's note - Driver-man is determined to get this out. I don't have an issue with the technical discussion. He was banned for not following the rules of civility on the forum despite being asked repeatedly. Accordingly, I've nuked his personal commentary from this post of his, but left the technical bits. This account of his is also banned (that's 4 now for anyone counting). I have lots of patience and no personal emotional investment in this.
--- saint
720 Degrees bugs:
1.) analog stick jittery monition
2.) SPRITE FLICKERING/DISAPPEARING
http://mametesters.org/view.php?id=380 (http://mametesters.org/view.php?id=380)
Second one is officially submitted bug we have since 2008. I can fix them both.
Xiaou, I wish to give you a present. The source code, binaries and diffs ready to be be submitted to MAME, but of course you can do with it whatever you want as it's yours now, if you will take it? The code I have fixes both problems and can also support analog stick hack, authentic controller, arcade spinners, trackballs, mouse, and keyboard with two modes of operation. If I get banned again just send me an e-mail and I'll give you download links.
... Manifesto quotes snipped......
Theory of operation: "inptport.c"
--------------------------------
Nicola Salmoria and the MAME Team:
" There are three types of controls that the OSD can provide as potential
input devices: digital controls, absolute analog controls, and relative
analog controls.
Similarly, the types of controls used by arcade games fall into the same
three categories: digital, absolute analog, and relative analog. "
C:\>mame 720
Default mapping for all the games is to keyboard (digital) input, naturally.
So, above command will start the game without enabling any additional
input devices, and consequently the TAB mapping menu looks like this:
Analog axis X .................... NONE
Digital LEFT ..................... Left arrow
Digital RIGHT .................... Right arrow
Analog axis Y .................... NONE
Digital UP ....................... Up arrow
Digital DOWN ..................... Down arrow
C:\>mame 720 -mouse
To play the game with authentic controller, spinner, trackball or mouse,
you do exactly the same thing as you would do with Arkanoid, Missile
Command or any other such game, that is you have to ENABLE the mouse
first, and consequently the TAB mapping menu looks like this:
Analog axis X .................... Mouse X
Digital LEFT ..................... Left arrow
Digital RIGHT .................... Right arrow
Analog axis Y .................... Mouse Y
Digital UP ........................ Up arrow
Digital DOWN ..................... Down arrow
C:\>mame 720 -joy
To play ANY game with analog joystick we again need to ENABLE it first,
MAME then automatically maps it, and consequently the TAB menu looks
like this:
Analog axis X .................... Joy X
Digital LEFT ..................... Left arrow
Digital RIGHT .................... Right arrow
Analog axis Y .................... Joy Y
Digital UP ........................ Up arrow
Digital DOWN ..................... Down arrow
That's it. The menu was there since the very beginning. User does not even have to know anything about it, only to enable their input device like they would for any other game. Mapping of enabled devices is AUTOMATIC already, it's a nice old feature.
...Self important "savior of MAME" bits removed...
-
Refer to my reply to your PM on the subject and follow my instructions.
-
I'm curious to what your reply and instructions were. :)
-
/me sits back and waits for dipshit's IP to be reported and banned
-
Are we allowed to make St. Goblin jokes or is it too soon? ;D
-
I think I'm supposed to be St. Goblin? I look ridiculous in orange...
-
I'm curious to what your reply and instructions were. :)
It is clear that DriverCadabraMan is very passionate about MAME and I can respect that.
He also refuses to lie down when the world stands against him and I can respect that.
He makes a clear and impassioned case about how he is a persecuted antihero and I can respect that.
So, in the spirit of all of that respect, I sent a reply to him that said "---fudgesicle--- off, dipshit!" (props to Hoopz for calling it as I see it ... we're both right!).
:cheers:
-
Someone with more time and energy than me should find out if our friend "Driver-Man|abaraba|M.Batao" saint's note - possible personal info removed... Thanks guys, but no pitchforks and burning torches please :) :P I'm sure they'd love a fresh supply of eggs. :angel:
-
Someone with more time and energy than me should find out if our friend "Driver-Man|abaraba|M.Batao" saint's note - possible personal info removed... Thanks guys, but no pitchforks and burning torches please :) :P I'm sure they'd love a fresh supply of eggs. :angel:
Does Ark know that you're stealing his thunder? And if we're road trippin', I'll go to New Zealand straight away. :)
-
And though I know I'm playing along by doing so, I really can't stand accusations of censorship. I believe I cut him off before he got all his PM's out. He intended it, as I understand it, for:
pinballjim, Grasshopper, cotmm68030, RayB, Haze, CheffoJeffo, Vigo, ark_ader, yotsuya, and shateredsoul.
If any of you didn't get the PM and want to see it, I believe Cheffo got a copy. You can ask him for a copy of it. If you care to, you can also compare what I left of his original post to see if I left the pertinent technical bits while nuking the self-serving drama. Feel free to correct anything you think I cut incorrectly. No drama please.
At any rate, I like the technical discussions, I have no patience for the drama.
--- saint
-
I'm only around 75% certain of that information. saint's note - possible personal info removed... Thanks guys, but no pitchforks and burning torches please :). Though as that's the only listing with that last name in all of NZ, as far as I can tell, and Zelko has positively identified himself as a NZ resident in a Digg post some time ago, it seems unlikely to be unrelated. :dunno
-
saint's note - Driver-man is determined to get this out. I don't have an issue with the technical discussion. He was banned for not following the rules of civility on the forum despite being asked repeatedly. Accordingly, I've nuked his personal commentary from this post of his, but left the technical bits. This account of his is also banned (that's 4 now for anyone counting). I have lots of patience and no personal emotional investment in this.
In the original post, he was begging Xiaou to submit the code to MAMEdev, instead of just submitting it himself.
More evidence that he has no intention of actually resolving anything.
He just wants to argue in circles and see how much time he can get other people to waste.
There should be a forum just for trolls, where they just waste each others time.
He uses proxy's, so banning the IP isn't going to do much.
-
There should be a forum just for trolls, where they just waste each others time.
Ask and you shall receive ...
http://forum.arcadecontrols.com/index.php/board,31.0 (http://forum.arcadecontrols.com/index.php/board,31.0)
Wait, who was the fool who gave me access to PnR ?
:dunno
-
And if we're road trippin', I'll go to New Zealand straight away. :)
I like Steinlager and have always wanted to pay spacies a visit ...
-
There should be a forum just for trolls, where they just waste each others time.
Ask and you shall receive ...
http://forum.arcadecontrols.com/index.php/board,31.0 (http://forum.arcadecontrols.com/index.php/board,31.0)
Wait, who was the fool who gave me access to PnR ?
:dunno
I knew there was a reason I never asked for entry to PnR! ;D
-
To further the technical discussion:
The latest idea to use the -joy & -mouse options to select between options in the driver code would be refused.
Options should not be used in this way. They are used to tell the MAME core how to operate, not game code. Not one file in the src\mame directory accesses options using options_get_string() The -joy & -mouse options tell MAME that these devices are hooked up to the computer. Not how a game is to behave.
Doing so limits the user. If it was done with the -joy options, then you are forcing the user to use the joystick simulation, when maybe they are using -joy just to use the inc/dec buttons on their joystick.
As for fixing the sprite flicker, submit the code as everyone has told you. I do not make the MAME decisions. The submissions are sent to everyone on the team for discussion.
-
5) Neither Haze nor Derrick are in charge of the Driver Inclusion. A good submission will be handled by the project leader.
Decisions tend to be delegated to those who have actively worked on an area of the code. Derrick, being an actual developer has direct access to SVN, and can check changes in directly. Aaron handles very little directly, there are many areas of MAME, he can't possible make decisions regarding every single one because he doesn't have the knowledge to do so (I doubt ANYBODY knows the entire MAME code-base inside out)
As a developer Derricks decisions are trusted.
6) Derrick is much more willing and flexible to adding things and helping out than Haze.
While you and him might not completely agree... you might be able to learn and share from each other ... IF... you can calm your attitude down.
It's Derrick's area of the code, had you come to me with problems more related to my areas of the code I'm sure you'd find me to be just as helpful at getting them sorted out. I've worked with plenty of people in the past doing just that. IOW you found the right guy, the one who knows and understands that code well, and can make + approve appropriate changes as well as reject ones that seem inappropriate whereas I could only give you the overall policy. This is what has happened.
Derrick came here of his own accord.
-
Let's throw this thread sightly off topic.
MAME - the conspiracy.
I know everyone thinks that MAMEdev is some huge corporation that holds closed meetings and mainly discusses how we can torment the public. We revel in keeping all the good drivers to ourselves, etc.
But truth be told, it is just a mailing list that loosely keeps things together. Prove that you are a useful contributor and won't run amok with the code and you are in, if you want. Then you too will get all the hidden drivers, ROMz, Babez, etc.
Actually, sorry to disappoint. Being a DEV gets you nothing special. No Babes, no hidden ROMz, etc. You just get to help out more by giving your say on code in your area of interest. Even then, the team leader has final say. For this you get some public thanks and some public scorn, all while collecting a salary of $0,000.00.
Come join the team.
I started out just figuring out unknown DIPs. I did not even know how to contact MAME and could not compile the code myself. That DJGPP compiler kept crashing and I never once got it to work. I believe Tiger-Heli or Triggerfin submitted my first attempts. Then MAME switched from DOS to Windows. While I'm never a big fan of the necessary evil that is Windows, at least with the new compile tools I could now compile and test my own code.
From there I looked into how the sound system worked and figured out how do get sounds in the old games I was/am interested in. I've played around with the input system due to my desire to make the controls better and easier to use.
All along the way I have received no money and nothing special from being on the MAME team that every other MAME user does not have access to. Other then access to the mailing list, which needs to be private so we don't have to deal with stuff like what you have read recently on the forums.
So it really is just as simple as "Submit your code." And yes we don't have the time to bother to respond to all submissions. No one kept me up to date on anything I submitted. If it was accepted, I would see it eventually in the MAME code. Then look to see what they changed in it. The changes gave me a better idea of how the team at the time liked things done. I did not hate them for it. I learned from it.
-
Now, sort of back on topic.
I did a quick patch to make Return of the Jedi easier to play with a mouse. This will not be in the official MAME, but I am interested in other games that use that kind of throttle control for movement. Speed increases only while moving stick forward. Centering keeps at that speed. Moving stick back reduces speed.
I'm thinking Paperboy speed axis, but don't know of any other games.
See the patch here:
http://forum.arcadecontrols.com/index.php?topic=108813.msg1155368#msg1155368 (http://forum.arcadecontrols.com/index.php?topic=108813.msg1155368#msg1155368)
-
Is this thread still viable for driver/performance feedback? If so, I'd like to say that the 'joystick' option in current MAME doesn't seem to work very well, and works differently than the original analogue stick implementation.
In the new format, I had trouble getting very far in the game, because I had to hug the periphery of the stick's range. If I did not, there was a snapping movement of the skater toward the direction that my joystick next registered.
In the old analogue stick feature, I was able to get my highest score ever (50k+) using a digital stick.
-
I don't believe you. I know there are MAME babes.... Otherwise it sounds an awful lot like running a forum :)
Let's throw this thread sightly off topic.
MAME - the conspiracy.
I know everyone thinks that MAMEdev is some huge corporation that holds closed meetings and mainly discusses how we can torment the public. We revel in keeping all the good drivers to ourselves, etc.
But truth be told, it is just a mailing list that loosely keeps things together. Prove that you are a useful contributor and won't run amok with the code and you are in, if you want. Then you too will get all the hidden drivers, ROMz, Babez, etc.
Actually, sorry to disappoint. Being a DEV gets you nothing special. No Babes, no hidden ROMz, etc. You just get to help out more by giving your say on code in your area of interest. Even then, the team leader has final say. For this you get some public thanks and some public scorn, all while collecting a salary of $0,000.00.
Come join the team.
I started out just figuring out unknown DIPs. I did not even know how to contact MAME and could not compile the code myself. That DJGPP compiler kept crashing and I never once got it to work. I believe Tiger-Heli or Triggerfin submitted my first attempts. Then MAME switched from DOS to Windows. While I'm never a big fan of the necessary evil that is Windows, at least with the new compile tools I could now compile and test my own code.
From there I looked into how the sound system worked and figured out how do get sounds in the old games I was/am interested in. I've played around with the input system due to my desire to make the controls better and easier to use.
All along the way I have received no money and nothing special from being on the MAME team that every other MAME user does not have access to. Other then access to the mailing list, which needs to be private so we don't have to deal with stuff like what you have read recently on the forums.
So it really is just as simple as "Submit your code." And yes we don't have the time to bother to respond to all submissions. No one kept me up to date on anything I submitted. If it was accepted, I would see it eventually in the MAME code. Then look to see what they changed in it. The changes gave me a better idea of how the team at the time liked things done. I did not hate them for it. I learned from it.
-
Is this thread still viable for driver/performance feedback? If so, I'd like to say that the 'joystick' option in current MAME doesn't seem to work very well, and works differently than the original analogue stick implementation.
In the new format, I had trouble getting very far in the game, because I had to hug the periphery of the stick's range. If I did not, there was a snapping movement of the skater toward the direction that my joystick next registered.
In the old analogue stick feature, I was able to get my highest score ever (50k+) using a digital stick.
I will look into it next week. All I can say though is that the Joystick code was not changed. You may have to go back into your settings and disable the joystick inc/dec options. Any settings you previously made will be changed with the new code. This also includes any settings you previously made in the analog settings. Unavoidable due to adding the 2 new options and renaming the joystick ports as FAKE.
-
I don't believe you. I know there are MAME babes.... Otherwise it sounds an awful lot like running a forum :)
;D
-
Heh, I find it interesting that Haze is against multiple control input methods due to code maintainability.. yet Derrick is all about putting in tons of hacks to be 'maintained'.
Personally, I dont care if there are hacks, as long as they are not the default.. or are confusing others as to what the game really used. There are always times when a person might not have a proper controller... and its nice to have the ability to substitute.
If there truly isnt leadership, then I have to say that its no wonder why things are such a mess... But then again, Derrick has stated in previous posts points that are completely contrary to that... saying that certain changes will probably get rejected. If there was no leadership, or someone to review and check over things... there wouldnt be any trouble with making any changes... or any reason to fear a driver from being rejected.
This is at least the 2nd time Derrick has changed his tune.
Derrick has mentioned money.. as if that is what will motivate changes such as adding better shifter support.. then Im sure we can get enough driving fans to donate to him.
If not, maybe Driver-Man can silently submit a fix that might just get accepted.
Its funny, all the Hypocrisy that is behind the mame team. Admittedly Driver-Man was way too brass knuckles. But he might still be able to be helpful regardless. If Devs are against new people, then it goes against the call for Developers help... and it goes to show that getting to make changes, and be a dev that gets in the elite club, is not as easy nor friendly as they say. And it only proves why more people with talent have not joined up to add more efforts to the mame preservation goals.
-
It seemed as though the biggest concern with driverman's code was that part of it wasn't his, and the other part didn't adhere to the conventions being requested in implementation.
The issue is only partly "does it work?", it's also "how does it work?". If someone coded a 3dfx to D3D wrapper for Vegas engine games (and these already exist), it would be rejected on similar grounds because that's not how they want to solve the problem.
-
Futile.
:banghead:
(edit) For the 100th time. SUBMIT THE CODE!
(edit 2) The above was not meant against cotmm68030's post.
I Just don't understand what is so hard to understand that if arabara has some magical shifter code, sprite fix code, etc, then submit it, submit it, submit it. Maybe saying it 3 times in a row will make it happen. Strange as it seems, that is how stuff gets added to MAME. Not by stating the world is against me and stopping me from submitting it.
-
Heh, I find it interesting that Haze is against multiple control input methods due to code maintainability.. yet Derrick is all about putting in tons of hacks to be 'maintained'.
Yes, that is why I posted the 3 control hack patches on the software forum and did not submit them. You realize that we do allow digital control of analog devices for ease of use. That is a hack. Map lightguns to joystick guns. Mice to analog sticks and guns. More hacks. Or maybe we care about ease of use. Which is why I asked if other games used a Return of the Jedi type centering thrust type analog axis. Currently MAME maps the mouse as a non centering analog joystick. I was wondering if there were enough cases to warrant the ability to map the mouse as a return to center device so it behaved closer to the real control, as in the patch I mentioned on the software forum.
(edit) Instead of discussing what the Sinister Derrick is all about, can we stick to the topic of what games used that type of control? (edit)
So the options are remove the ability to use the mouse as a joystick, or improve the remapping so it has the ability to behave more like the real control.
While I can't speak for him, I don't believe Haze is completely against more type of controls, as long as they are well thought out core implementations and serve a purpose. He just states as I have, "No one is interested in coding it"
Personally, I dont care if there are hacks, as long as they are not the default.. or are confusing others as to what the game really used. There are always times when a person might not have a proper controller... and its nice to have the ability to substitute.more efforts to the mame preservation goals.
The world is ending, I did something that X2 agrees with me about. ;D Notice you can select "Real" in 720 which means the others are fake and are there for ease of use. Well spinner is also there to accurately simulate synced rotate/center data.
-
"No one is interested in coding it"
Let me clarify this. I did not want to edit the post, because that makes people think something sinister is going on.
720 - Very minor thing added. Difference in code was quite small. Never ending flack because of it.
That really makes people interested in doing more. Not to mention we have to wait a few years to make sure some other shifter submission is not lost in the mail. Would not want to be the cause of more hate.
-
Its funny, all the Hypocrisy that is behind the mame team. Admittedly Driver-Man was way too brass knuckles. But he might still be able to be helpful regardless. If Devs are against new people, then it goes against the call for Developers help...
I don't think anybody wants another 'Guru' to be added to the list. As has been stated, all Driver-Man was doing was pulling up a tiny amount of code from old versions while demonstrating an attitude that belonged at a playgroup even without anybody provoking him and without actually having achieved anything to even attempt to warrant his treatment of people actually involved.
I've stated elsewhere that I'm not against such things being done in a way which doesn't break existing functionality / testability on normal hardware. (I'm not Aaron, I'd even consider extra commandline switches / configuration files myself)
I wouldn't agree to adding fake buttons to defender, fake joystick hacks to assault, or even the 'run like hell' garbage that used to be in track n field etc. because they're 100% usable on a keyboard / pad as it is, but some games are simply untestable without some degree of hacks. Prebillian, for example, would be completely unusable without the 'power' display added to the OSD (I think)
Reasonable decisions must be made on a case by case basis.
-
For the 100th time. SUBMIT THE CODE!
The latest idea to use the -joy & -mouse options to select between options in the driver code would be refused.
Whom did you consult, or is that just YOUR own OPINION?
Submitting code just to be refused is waste of time, no?
You are doing the same thing again. I'm not submitting anything untested. How abut we let people decide, or at least let's hear their opinion first. Vox populi, vox dei, do you agree?
The submissions are sent to everyone on the team for discussion.
Where was your submission discussed, by whom? It was only me trying to discuss it here and on MAMEworld forum, and I got more support there among MAME devs than you, even though everyone hated me. -- Why would we not discus it BEFORE submission is made, would that not make more sense?
Options should not be used in this way. They are used to tell the MAME core how to operate, not game code. Not one file in the src\mame directory accesses options using options_get_string() The -joy & -mouse options tell MAME that these devices are hooked up to the computer. Not how a game is to behave.
Ugghhh. MAPPING, it's all about mapping. I do not read command line parameters, but use the same information "inptport.c" uses to separate between digital, absolute and relative devices. I could just as well use the information from UI mapping menu, just like you get your string variable from your new menu. It's all the same to me. As I said, you only had to PICK one of my solutions, and now you finally did.
If this was some good movie you would have realized by now that crazy old drunk is not a fool, but great and wise Code-Fu master, in disguise. This so far was with my both hands in my pockets, let me now show you some real moves...
ShaaaZZzzzzaam!
http://www.mediafire.com/?skcth05nid0txbb (http://www.mediafire.com/?skcth05nid0txbb) ...the school is Wudang,
technique... female form of 'eight trigram palm', KaabOOoooshhh! -:
* Fixed sprite flickering/disappearance (broken since .115)
* Jittery analog motion diagnosed/attended, can be fixed in several ways.
* SIMULTANEOUS support of all the devices! Play with analog hack and authentic spinner or mouse, and keyboard, in the same time.
* Easy for testing without any menu selection or need to change anything anywhere, other than to map your input devices in whichever way you want, as usual.
* Maximum flexibly, you can map any devices to both authentic or hack input.
* Does not use command line parameters or whatever external data to the driver - the only files need changing is "atarisy2.c" for control fixes, and the file requiring correction for flickering is "atarigen.c".
Code-Fu in slow-motion....
static READ8_HANDLER( leta_r )
{
static int last_in, input, rotations, last_angle, angle;
int aX= input_port_read(space->machine, "LETA0") - 127;
int aY= - (input_port_read(space->machine,"LETA1") - 127);
int relative_in = input_port_read(space->machine, "LETA2");
if(aX!=0 || aY!=0){
if((angle= atan2(aX, aY) *22.9183)< 0) angle+= 144;
if(last_angle > 120 && angle < 24) rotations+= 144;
if(last_angle < 24 && angle > 120) rotations-= 144;
input = (last_angle = angle) + rotations;
}else if(last_in!=relative_in)last_in=input=relative_in;
return((offset&3)<1)?
input_port_read(space->machine,"LETA3") : input;
}// +=1;
Beautiful, isn't it? This little piece of code does all that I said above, and so can substitute hundreds of your lines with unnecessary bloat and fiddling with MAME core engine.
Derrick & Haze: - Master, please forgive, we have failed!
You fought well, but you fought me, so master understands.
1.) Do you want to know how to fix flickering animation?
2.) Do you want to know how to solve jittery analog motion?
3.) Do you want to use my new algorithm to handle analog hack?
-
marcusP
Tested new upload.
While this seems to work with a mouse well...
It will not work with a real 720 controller.
A real 720 controller has 2 optical reader discs.
Dial a (72 spokes) = read rotation of the player
Dial b (2 spokes ONLY ) = calibrate player to face north if reading is true/on
Dial b will only be read Once in a full rotation. When it is read, it will immediately snap the player to face North. With your code, it is not snapping north immediately... its incrementing gradually over time. There was also a decrease option... which should not exist.
The reason for the Instant snap to North, is because the if the player is facing the wrong direction when the stick is pointing North... the Dial B will let the game know that the stick is north, and to make the player face north right now... so that the stick direction matches the player direction.
-
Ok, heres a visual so its easy for anyone to understand how the real controller works:
Parts: (from top to bottom)
1) Controller Lever
2) Encoder 1 ( 72 notches )
3) Encoder 2 ( 2 notches )
Color Key:
Light Blue Dots = Notches (holes where the sensor can read through )
Orange = Sensors (can tell if a notch has passed, and in which direction)
A) Game starts and the Skater is facing diagonally left... but the stick is pointing diagonally right. The game does not know this, because Encoder 1 isnt capable of telling the machine which way is Up. It can only track movement.
B) When the player spins the controller, the 2nd encoders 2 notches go past the sensor. The sensor tells the game that the stick is now in the NORTH position, so please reset the character on the screen to face NORTH.
C) Now the game is calibrated, and the Lever and Character both face the same direction. If any time in the game there is any de-calibraion... the game will recalibrate it when the 2nd encoder moves past the sensor.
Playing the game with a normal spinner is sort of possible... but to pull of tricks, you have to land the skateboard facing the right way or you will crash. That isnt easy when you can not feel which direction you are facing... which is why the game designers made a stick that points in the direction you are facing. This way you are well aware of how much you have to turn to land the trick without botching the landing and falling flat on your knees.
-
For the 100th time. SUBMIT THE CODE!
The latest idea to use the -joy & -mouse options to select between options in the driver code would be refused.
Whom did you consult, or is that just YOUR own OPINION?
Submitting code just to be refused is waste of time, no?
Are you back to actually try to learn something or just rant more. Everything in your new rant shows that you refuse to read anything. You actually cut the answers given right out of the quotes you make.
I explained why these options are not to be used. Also the proof is in the fact the no drivers do this. It limits the users ability to map inputs the way they desire.
If you actually read anything I wrote, I stated that my own first code submissions would be changed to meet core standards. I did not rant on like a child about that. I used it to learn and become a team member.
I will ignore the rest of your trolling and move on to your code. I will discuss it for the forum members that actually do want to learn from technical discussions. Feel free to actually learn from the discussion of it.
static READ8_HANDLER( leta_r )
{
static int last_in, input, rotations, last_angle, angle;
int aX= input_port_read(space->machine, "LETA0") - 127;
int aY= - (input_port_read(space->machine,"LETA1") - 127);
int relative_in = input_port_read(space->machine, "LETA2");
if(aX!=0 || aY!=0){
if((angle= atan2(aX, aY) *22.9183)< 0) angle+= 144;
if(last_angle > 120 && angle < 24) rotations+= 144;
if(last_angle < 24 && angle > 120) rotations-= 144;
input = (last_angle = angle) + rotations;
}else if(last_in!=relative_in)last_in=input=relative_in;
return((offset&3)<1)?
input_port_read(space->machine,"LETA3") : input;
}
First off, you removed the whole checking if the hander is only running from the 720 game. This will break all other games that use the LETA ports. Do not remove the "state->pedal_count != 0" check and handling that is in the original code. You can not overlook the fact that other games use these ports.
int aX= input_port_read(space->machine, "LETA0") - 127;
int aY= - (input_port_read(space->machine,"LETA1") - 127);
Interesting changing the -128 to -127. Unforunately 8-bit integers go from -128 to + 127. So this would be wrong.
We are tring to change an UINT8 (0-255) to a INT8 (-128 to +127). So if the UINT8 value is 0 it should move to -128.
0 - 127 = -127 (wrong)
0 - 128 = -128 (correct, at min)
255 - 127 = 128 (wrong, overflows to -1)
255 - 128 = 127 (correct, at max)
128 - 127 = 1 (wrong, not center 0)
128 - 128 = 0 (correct, at center)
I imagine your code only seems to work because you must have changed the port default from 0x80 to 0x7f.
FWIW you do not need to do (offset & 3) like the previous code did. That is done automatically by the core memory call. I only mention this to explain how it works. Leaving the code as (offset & 3) would not reflect poorly on the submission.
AM_RANGE(0x1810, 0x1813) AM_MIRROR(0x278c) AM_READ(leta_r)
Memory range 0x1810 to 0x1813 can only have an offset value in the 0-3 range.
I won't even bother to check if your changes to the joystick code is correct. But it does not seem so. This seems strange but it does not matter to the discussion:
if((angle = atan2(aX, aY) *22.9183)< 0)
angle += 144;
I also will ignore that you asign values in the if statement. I do not beleive Aaron would let that pass. It should be like this:
angle = atan2(aX, aY) *22.9183);
if (angle < 0)
angle += 144;
You really need to change the names of the ports. LETA0 is the centering, LETA1 is the rotate. And name the fake ports as such. That would have been the cleanup part of my original walkthrough, that you just ranted about instead.
MAME concerns itself with actually hooking up ports that the original hardware had hooked up. In my original walk-through I suggested just using the LETA ports to make things easy for the discussion. The unused LETA ports really should not be used this way. I would have discussed this after step 1/2 had been completed and we moved on to the cleanup. I would have explained why the fake joystick port tag should be renamed as such. And the original unused LETA ports be passed through unchanged.
So your code at this point should be:
static READ8_HANDLER( leta_r )
{
static const char *const letanames[] = { "LETA0", "LETA1", "LETA2", "LETA3" };
atarisy2_state *state = space->machine->driver_data<atarisy2_state>();
if (offset <= 1 && state->pedal_count == -1) /* 720 */
{
static int last_in, input, rotations, last_angle, angle;
int aX= input_port_read(space->machine, "FAKE_X") - 128;
int aY= - (input_port_read(space->machine,"FAKE_Y") - 128);
int relative_in = input_port_read(space->machine, "LETA1");
if(aX!=0 || aY!=0)
{
if((angle = atan2(aX, aY) *22.9183)< 0)
angle += 144;
if(last_angle > 120 && angle < 24)
rotations += 144;
if(last_angle < 24 && angle > 120)
rotations -= 144;
input = (last_angle = angle) + rotations;
}
else if (last_in! = relative_in)
last_in = input = relative_in;
return (offset != 1) ? input_port_read(space->machine, letanames[offset]) : input;
}
return input_port_read(space->machine, letanames[offset]);
}
The rest of the code, unfortunately is a complete hack. Unfortunately you refused to understand my code which shows how the game truly behaves. Your only concern in your code seems to be to make the game behave in the way you want it to. No concern for how it really behaves is shown.
I know you want to completely ignore the center disc and only concern yourself with game play, but that is not what MAME wants. You modified the joystick code to not return any centering data because "you" do not care about it. You are free to not care in your own build.
I have told you my spinner code lets you test the game code with simulated centering data that matches the real thing. You want to ignore that and are free to do so in your own build. As far as MAME goes, the game constantly polls this data. A way for us to test this is preferred. The service mode control test will only constantly pass this test with a real control or my spinner code. It will go out of sync otherwise. Again you are free to ignore this in your build. MAME does not.
So now, congrats you made it to step 2 of my original coding walk-through. Well even though you did not post the PORT code (step 1,) I can infer what it must be. You made both the real input and the fake joystick exist at the same time. Adding the spinner code like I did was not part of the original challenge. Though I would have moved on to explain it if we ever sanely got past the cleanup part after step 1/2 were done.
That leads us to the final thing I would have got to. The problem with making the fake/real controls exist at the same time. It would be nice to see your PORT code to see how you handled this. I would have suggested at this point an easy to use menu selection so the user does not have to see/understand why there are multiple inputs in the player control menu. A lot of users already have a hard time with the fact that inc/dec buttons exist at the same time as the analog axis. Adding more ports mapped together would only add to their confusion. So IMHO a user selection process if preferred to limit the player controls and analog settings to just the control the player wants to use.
One final thing is that the final submission should follow MAME coding standards. So each { } in if statements should be on their own line. I do not say this to be picky. It is a code policy that you need to be aware of. See:
http://mamedev.org/devwiki/index.php/MAME_Coding_Conventions (http://mamedev.org/devwiki/index.php/MAME_Coding_Conventions)
You may feel that having standards is being too picky when your only concern is making one game behave the way you want. MAME has to concern itself with marinating maintaining thousands of games. Standards need to be followed. MAME is an ongoing project. I'm sure you will find old drivers not up to current standards. These should not be used as an argument to justify old standards. MAME's policy when working on old drivers is to try to update them to new standards whenever work is done to them.
First submissions will not be refused for not following standards. If the code serves a valid need, it will be cleaned up and added. For future submissions to be continued to be looked at as good quality, the person will be explained the standards. If they learn from it they will continued to be guided when needed. Refusing to learn from the process, will reflect negatively.
1.) Do you want to know how to fix flickering animation?
2.) Do you want to know how to solve jittery analog motion?
Submit the code once you are sure it is correct. Not if it is anything like the code you submitted in your post. If it is it will be rejected. No one will bother giving you the in-depth explanation that I have here. MAME does not have a paid response team to to handle all messages. If a submission shows promise, someone usually tries to guide the person who submitted the code. If it is totally wrong like above, it most likely will not be responded to.
(edit) stupid spell checker - marinating?
-
Some minor changes to the code I posted:
These are optimizations. "angle" does not need to be defined as static. Doing so forces it to be in memory when it only needs to be temporary. Changing it to just an int allows the compiler to be free to use a register instead.
Also no need to get the "relative_in" value from the input_port_read() at the start if it is not needed. Doing so is slower then the strcmp() that caused you so much grief in my previous code. A better placement is after it is found that the fake joystick has not moved.
static READ8_HANDLER( leta_r )
{
static const char *const letanames[] = { "LETA0", "LETA1", "LETA2", "LETA3" };
atarisy2_state *state = space->machine->driver_data<atarisy2_state>();
if (offset <= 1 && state->pedal_count == -1) /* 720 */
{
static int last_in, input, rotations, last_angle;
int angle;
int aX= input_port_read(space->machine, "FAKE_X") - 128;
int aY= - (input_port_read(space->machine,"FAKE_Y") - 128);
if(aX!=0 || aY!=0)
{
angle = atan2(aX, aY) *22.9183;
if(angle < 0)
angle += 144;
if(last_angle > 120 && angle < 24)
rotations += 144;
if(last_angle < 24 && angle > 120)
rotations -= 144;
input = (last_angle = angle) + rotations;
}
else
{
int relative_in = input_port_read(space->machine, "LETA1");
if (last_in! = relative_in)
last_in = input = relative_in;
}
return (offset != 1) ? input_port_read(space->machine, letanames[offset]) : input;
}
return input_port_read(space->machine, letanames[offset]);
}
Or better yet, my original coding walk-through suggested to check the relative port for change. This way the relative port only has to be read. If it changes then you do not have to read the 2 fake ports, do some fast math on them and check for 2 changed items. 1 port read versus your current 3. Which brings us to araraba's answer to his ultimate question. What variable are you talking about in step 2. That would be the "last_in" that he created to compare against.
static READ8_HANDLER( leta_r )
{
static const char *const letanames[] = { "LETA0", "LETA1", "LETA2", "LETA3" };
atarisy2_state *state = space->machine->driver_data<atarisy2_state>();
if (offset <= 1 && state->pedal_count == -1) /* 720 */
{
static int last_in, input, rotations, last_angle;
int relative_in = input_port_read(space->machine, "LETA1");
if (last_in != relative_in)
last_in = input = relative_in;
else
{
int aX= input_port_read(space->machine, "FAKE_X") - 128;
int aY= - (input_port_read(space->machine,"FAKE_Y") - 128);
if(aX!=0 || aY!=0)
{
int angle = atan2(aX, aY) *22.9183;
if(angle < 0)
angle += 144;
if(last_angle > 120 && angle < 24)
rotations += 144;
if(last_angle < 24 && angle > 120)
rotations -= 144;
input = (last_angle = angle) + rotations;
}
}
return (offset != 1) ? input_port_read(space->machine, letanames[offset]) : input;
}
return input_port_read(space->machine, letanames[offset]);
}
-
Do you know about Xiao-Xiao fighting figures, master Xiaou? You see, they were even accusing me of doing nothing else but re-using that old code from Analog+ days, and we all know authentic controller did work there. I uploaded binary TWO WEEKS ago specifically to test this functionality first, please everyone:
TEST - OBSERVE - COMPARE - DESCRIBE - ASSUME NOT
Anyway, it does work with authentic controller, it works perfectly with everything. Calibration snaps to north only 1st time when the game is started, after that re-calibration is GRADUAL, of course! My code does nothing to authentic input, it simply just forwards it to virtual input pins, as it was discussed already, and even Derrick confirmed that works with authentic controller.
To calibrate analog stick or arcade spinner with a handle (absolute spinner), move AD_ANALOG stick, or "DEC" (HACK_UP) key, or spinner handle towards north and then press digital UP or DOWN, or move Mouse_Y, mapped to DIAL_V until the character sprite faces north too. After that this input is unnecessary/irrelevant, just like with authentic controller where this second encoder stops working and the game would stay calibrated during the whole day of gameplay, need only be calibrated at the start up, by moving the handle to the east before powering the cabinet on.
Playing the game with a normal spinner is sort of possible... but to pull of tricks, you have to land the skateboard facing the right way or you will crash. That isnt easy when you can not feel which direction you are facing... which is why the game designers made a stick that points in the direction you are facing. This way you are well aware of how much you have to turn to land the trick without botching the landing and falling flat on your knees.
This is irrelevant, we all know about your "Robotron argument" and how authentic controllers are very important aspect of the gameplay, and I of course agree, but anyone can now play _720 Degrees_ whit whatever controller they want/have. So, the point now is to discuss the two implementation, compare differences, establish cons and pros, test for the bugs, test if there is any impact of these changes to other Atari games, and such... By the way, as explained several times by both me and Derrick, you can always try to stick some handle on top of arcade spinner and thus make it "absolute" just like 720 spinner is, you know what I'm talking about?
Derrick, I am purposely giving you obfuscated code, you would not want me to do everything for you now, right? This is not place to discuss source code, let's please stick to what code actually does and how it works. Then, I can help you write it down properly. Bring some of MAME developers here if you want to discuss the code itself, I dare you bring anyone, just ONE person from the team to support what you are saying, I don't think even haze will support you.
Anyway, I already addressed and explained all your objections on MAMEworld, most specifically here in this post:
http://www.mameworld.info/ubbthreads/showthreaded.php?Cat=&Number=244562&page=0&view=expanded&sb=5&o=&fpart=1&vc=1 (http://www.mameworld.info/ubbthreads/showthreaded.php?Cat=&Number=244562&page=0&view=expanded&sb=5&o=&fpart=1&vc=1)
*** I suggest non-programmer should do not pay attention to Derrick's confusion as to how sentences in C, just as in English, can be re-written in many different ways, and some of those ways is plain blabbering and gibberish, while the other are pure application of mathematics. In any case it is the MEANING or "what code actually does", that is important, where simpler and smaller is ALWAYS better, that's Occam's razor in general, while in mathematics the same thing is really just a plain "sanity".
-
Derrick, I am purposely giving you obfuscated code, you would not want me to do everything for you now, right? This is not place to discuss source code, let's please stick to what code actually does and how it works, compare that. Then, I can help you write it down properly. Bring some of MAME developers here if you want to discuss the code itself, I dare you bring anyone from the team here and support what you are saying, I don't thing even haze will support you, but he has even less clue what is going on there.
?????????????
That is useful. No place to actually discuss facts. Wow. You said it was your working code and now you say it is not. On MAMEworld you said it was proper to use -127 instead of -128 and I have explained how that is incorrect. More obfuscation?
This is the guy that some users still believe is capable of actually providing a usefull code submission?
My code works. Your posted code does not. Yet you hold all the world's answers. Again I can only say "Wow."
He is only back to troll. How useful.
I was sucked in again trying to explain details to other forum users. Silly rabbit.
:banghead:
-
My code works. Your posted code does not. Yet you hold all the world's answers. Again I can only say "Wow."
Your code has TWO bugs as I said many times. Do you acknowledge, YES/NO?
I uploaded the binary and everyone can try it, how can you say it does not work??!
My my code does all that what your code does, plus it has those two bugs fixed, Ok?
Enough of your opinions, find those guys you discussed submission with and bring them!!
Again, it was all explained to you, many times in many ways:
http://www.mameworld.info/ubbthreads/showthreaded.php?Cat=&Number=244562&page=0&view=expanded&sb=5&o=&fpart=1&vc=1 (http://www.mameworld.info/ubbthreads/showthreaded.php?Cat=&Number=244562&page=0&view=expanded&sb=5&o=&fpart=1&vc=1)
Let the people decide for themselves, stop steering public opinion by your assertive false authority. We both have said quite enough, now both of our code is there for everyone to test and compare. Let the public have as say and make up their own mind, sheesh!!!
-
Do you know about Xiao-Xiao fighting figures, master Xiaou?
Yes I do, however, I do not understand what this has to do with anything we are discussing..
Calibration snaps to north only 1st time when the game is started, after that re-calibration is GRADUAL,
I do not know if this is how the original game worked... but I suspect that calibration is read all the time. To alter this might make the driver faster, but not accurate to the hardware... which is important in documenting things accurately.
As for you saying that the game will not get de-cailbrated after the boot-up/start...
Im not so sure about that. What if the main encoder wheel got an error on it, because one or more of the notches were clogged with dust? If the calibration isnt always checking... it may eventually get de-calibrated gradually over a period of time.
Im also not sure why you would make it so that calibration was gradual for any reason. Its not true to how the game operated... and only would confuse people.
where simpler and smaller is ALWAYS better,
I agree that in most cases, optimized code will produce better results.
However, I believe that many programmers are trying to make the code easier to read and understand.
However, as Derrick said, the code structure is not really the main issue. Its accuracy of the driver representing the real hardware faithfully.
-
Banned again...
-
Again, it was all explained to you, many times in many ways:
http://www.mameworld.info/ubbthreads/showthreaded.php?Cat=&Number=244562&page=0&view=expanded&sb=5&o=&fpart=1&vc=1 (http://www.mameworld.info/ubbthreads/showthreaded.php?Cat=&Number=244562&page=0&view=expanded&sb=5&o=&fpart=1&vc=1)
Is anyone interested in why the code he posted at MAMEworld is so wrong?
Note: Above code requires ports to be set as IPT_POSITIONAL. It's only becasue IPT_AD_STICK can't be properly centered to zero, so it erroneously triggers "if(aX != 0 || aY != 0)", while IPT_POSITIONAL works fine and even seem adequate for handling relative (mouse/spinner) input too.
PORT_MODIFY("LETA0")
PORT_BIT( 0xff, 0x00, IPT_POSITIONAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10)
PORT_MODIFY("LETA1")
PORT_BIT( 0xff, 0x00, IPT_POSITIONAL_V ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10)
Hint it has to do with the fact that he is determined to use -127 and has no idea what IPT_POSITIONAL is for.
As I've stated in the past, this is not a pissing contest. If anyone wants to learn, then fine. But posting incorrect code as proof you are right and then saying it is really not my code because my real code must be kept top secret from the government spies. Booo-ahh-ha-ha (or other maniacal laugh,) please wait while I tighten my tinfoil hat. That is just insane trolling.
I only went through the discussion of his current code because it helped to illustrate my original quiz on the process needed to add the real port code to 720. Completing a painful learning exercise.
-
Derrick,
(http://bios.weddingbee.com/pics/41540/dont-feed-the-troll.jpg)
-
Derrick,
I am very interested in the explanations, but I have no desire to post in the thread in between bans. You have a lot more patience with him than I do. Even if it looked like he knew what he was doing, I wouldn't want to discuss this with him or try to work with him.
btw, I am still working on the MAME cab. I am leaving for Best Buy now to buy yet another wireless adapter. The one I bought the other day keeps dropping every couple of minutes, so I can't even get everything updated. If I can't get this controller tested in the cab by tomorrow night, I will pull the Optipac and test it on the laptop. This is getting ridiculous.
-
You may have to go back into your settings and disable the joystick inc/dec options. Any settings you previously made will be changed with the new code. This also includes any settings you previously made in the analog settings. Unavoidable due to adding the 2 new options and renaming the joystick ports as FAKE.
I deleted the cfg and sta files for 720, reset the driver to 'joystick', and it seems to work as it did in older builds. Thank you.
-
Gray_Area, you did not test it properly.
Please see if you can confirm the following:
1.) Analog jittery motion and flickering sprites bug.
2.) Does not save the settings, user must navigate new menu to select between the input methods.
3.) Analog input gets de-calibrated just by using the new menu and there is no option to re-calibrate.
4.) It adds 2MB to the .141 binary.
5.) There is a better solution, that does everything, and more, Derrick's 2MB extra bloat does,
only without bugs, faster and simpler: http://www.mediafire.com/file/skcth05nid0txbb/m720c.zip (http://www.mediafire.com/file/skcth05nid0txbb/m720c.zip)
Yes/No?
Paul Olson,
You have been saying for more than a month now how you GONNA test it, but you never did, or did you?
Xiaou,
Uh, ah... dude! You spent the last decade arguing this same argument I TOOK FROM YOU. Yes, I really, honestly, only wanted to make your wish come true and have it all sorted out, both 720 and gear shifter games. I could not stand seeing them putting you down for more than eight years with the same one old story, parading their bloated egos and spending far more time "explaining" how and why they DO NOT want to do it, the simplest thing in the world. It could have been solved in 15 minutes, yet they opted to play 'rock stars', making people beg of them just so they can refuse and feel important. -- Yes, I was arrogant over the point of being an ass-hole, and you realized at one point why. Indeed, I am clown, but this clown carries a MIRROR, and boy let me tell you, it reflects! In other words, I gave them a taste of their own 'medicine'. All you have to do now is PROPERLY test it, both binaries, and see if you can confirm the above five statements. How about it, master Xiaou?
-
Like a moth to a flame, the troll returns.
-
its ok, the bug zapper is working fine.
-
Hey uh, dude. Whatever you want to call yourself.
I can't vouch for anyone else here, but I've completely lost interest in your argument, whatever it may be.
It's not because your point is invalid, it's because you're pouring massive amounts of disrespect on Saint and this forum.
-
Coming back to this...
There is some weird sprite flickering. Mostly the skater, though some other items, like the speaker stack at the center of the park, will also flicker. According to MAWS, this has been reported.
In olders versions, either P1 start or one of the 'kick' buttons would start the game. Currently, only the kick buttons will.
'Joystick' works for both digital and analog sticks, but seems optimized for digital. The tracking of an analog stick is off.
Curious, I tried 720 in the binary linked above. It was a mess. Spinner tracked very smoothly - until you kicked. Then the skater tried to orient, I guess because it wasn't getting the data from the 'centering disc'. Using a joystick was worse.
-
So, basically exactly what Derrick said.
-
So, basically exactly what Derrick said.
and you're surprised?
Every time he posts 'adds 2mb to the binary' people should just point and laugh, it only serves to make him look completely clueless as to how things work and why Derrick's binary might actually be bigger, and as others have now noted, Derrick is right over the other things.
He is now impossible to take seriously, at all, over anything. he will simply be ignored from this point.
Saint, just keep up the bans.
-
Every time he posts 'adds 2mb to the binary' people should just point and laugh
We do. I took a photo of a table and chairs set I'm giving away for free on my mobile phone earlier and the resulting image file was bigger than 2 megs.
Oooh, 2mb. In 2011 thats like complaining that the tyres on your car were overinflated because somebody sneezed into them.
-
Gray_Area,
Don't forget to delete /cfg files before you try either binary or the input mappings might get corrupted. In Derrick's binary tracking can get off just by using the new menu, and it almost certainly gets off when using both relative and absolute inputs in the same game session, which is only natural, but in Derrick's version there is no option to re-calibrate and so you would need to exit the game and re-start.
+ Confirmed flickering sprites bug
+ Confirmed unstable angle tracking bug
In Driver-man's binary sprite flickering bug is fixed and tracking needs to be calibrated first, just like with authentic 720 spinner. To do this at any time simply point the stick/handle to 12 o'clock and pres UP or DOWN key, or move MOUSE_Y (or whatever you mapped to DIAL_V) until the character matches the same orientation. If using authentic 720 spinner, it will do this automatically, by itself, as the handle moves over 12 o'clock. To calibrate tracking at the beginning of the game, without using calibration input at all, just point the stick towards 3 o'clock and then start the game while holding it there, which is also authentic operation and exactly how original 720 controller could be calibrated on an actual arcade cabinet if the calibration input was not connected.
Two down, three left to go:
- To test for the bloat - notice the size of the regular .141 binary, compare that with Derrick's binary, and the difference is "bloat".
- To test "settings save" - change the "default" device, quit the game, start it again and see if your selection is there or is it "default" again.
- To test "jittery motion" - move analog stick very slowly, and see how the character goes "nervously" back and forth between the two orientations
Dexter & yotsuya,
Why is it easier to talk about it for weeks than just simply test it? Download, start the game, move joystick and mouse a bit, press few keys, and that's it. In a matter of minutes you would truly _know, as opposed to blindly believe in Derrick's assumptions, or misinterpret what Gray_Area said.
Every time he posts 'adds 2mb to the binary' people should just point and laugh, it only serves to make him look completely clueless as to how things work and why Derrick's binary might actually be bigger, and as others have now noted, Derrick is right over the other things.
Is it not Derrick the one with this problem? Are you saying that's Driver-man's fault?
Is he still not able to figure out those 'mysterious options' and make a PROPER binary?
By the way, there are no such options, and he should not fiddle with any of it anyway. The reason why there is 2MB extra bloat is obvious to anyone who actually took a few minutes and saw Derrick's .diff file. It contains over 1000 lines of new code, and changes to core input and menu engine: inptport.c, inptport.h and uimenu.c; which is quite unlike Driver-man's solution that is even smaller than what was there before.
-
Shades of tranhairummon with the references to himself in the 3rd person ... ::)
-
Driver-man-
You burned off any goodwill with your stupid spamming antics. As much as I love 720, I wouldn't try your hack for anything. I trust proven programmers, not drama queens who try to pass off someone else's work as their own.
-
I vote to move this thread into PnR until Dr. Clueless gets the hint. The members who respect this forum already have access to PnR and can continue the conversation without the obvious ---That which is odiferous and causeth plants to grow--- nonsense by Clueless here.
If/when the moron lose interest or apologize to Saint and this forum, it would be a simple matter to move it back under public scrutiny.
-
The members who respect this forum already have access to PnR and can continue the conversation without the obvious ---That which is odiferous and causeth plants to grow--- nonsense by Clueless here.
That is not really true. I do not have access to PnR and don't want it.
He hasn't taken the hint from the multiple bans, so I am pretty sure he will just start another thread if this one is moved.
-
The members who respect this forum already have access to PnR and can continue the conversation without the obvious ---That which is odiferous and causeth plants to grow--- nonsense by Clueless here.
That is not really true. I do not have access to PnR and don't want it.
Yeah, I asked for it and found I'm not always up to snuff on my politics. I don't go in there much.
In any case my point is this thread attracts him. Better to extinguish the flame then to let the moth hover around.
-
One really neat feature I found on a VB forum was an inverse of PnR. Members who annoyed everyone would be restricted to post only there an nowhere else. It was hidden from public view but not from regular members. It worked pretty well since those morons can go on and on without disturbing the more sensible posts.
-
Kinda like a DoucheDome ?
-
Kinda like a DoucheDome ?
Not a clue but it sounds appropriate.
-
One ---meecrob--- enters and never leaves ?
-
I'd like to dispel this right now as an explanation to everyone following along..
It is no bloat in Derrick's binary. If you noticed that the release of 0.141u1 contained well over 1000 new setname/descriptions in skeleton drivers for pinball and other mechanical games and is larger compared to 0.141. Derrick's test binary was based on a freshly pulled SVN after all these new games were added. No deception or unexplained bloat to any code. Very simple.
-
Dexter & yotsuya,
Why is it easier to talk about it for weeks than just simply test it?
Why is it easier to steal other peoples code and diss REAL programmers than to contribute something useful yourself??
Even if you knew what you were talking about, which you clearly don't, I wouldn't be assisting you. You disrespect this site and its moderator, you disrespect its members, and unfortunately for you your sense of entitlement and self importance only exists in your head. So, do your own damn work
oh, and respect the mod.
-
Wrong .... a number of people tried it and sent you feedback. You dismissed us and refused to post our comments on your weakass little blog. ---fudgesicle--- off.
-
GO AWAY! :hissy:
:'(
-
Derrick-
Just played 720 with my spinner. Kudos to you!
Some of us DID test it out and provide feedback. Derrick's fix worked for me!
-
Wrong .... a number of people tried it and sent you feedback. You dismissed us and refused to post our comments on your weakass little blog. ---fudgesicle--- off.
Are you talking to me?!
Please try it and let me know if the 3 types of input (Real; Joystick; Spinner) work as expected.
Do you see? Read opening post and read the title of this topic, >>Derrick<< is asking you to test his binary. Who cares about Driver-man's code, that's not about to be released in MAME.
RayB,
What is going on with you two? This discussion is about helping Derrick and MAME team sort out the bugs before this gets in official release, and all you do is talk about some spoof on imaginary character from comic book?! If you are not doing what Derrick is asking of you, then what are you doing here?
LOL...you actually think you have us fooled? We know you ARE Driver-Man...no need talking in the 3rd person.
-
He's like one of those ---meecrobs--- for a dirty hooker, plugging away thinking it'll do some good when all he's really doing is shoving the sloppy seconds even deeper.
-
He's like one of those ---meecrobs--- for a dirty hooker, plugging away thinking it'll do some good when all he's really doing is shoving the sloppy seconds even deeper.
Gawd there goes my supper. A very descriptive and appropriate description for this disruptive poster.
-
Tafoid, where is MAME SVN tree?
How do we get those changes separately from the rest of 0141u1.diff?
It's non-public, For the record, and should anybody else ask.
-
Seriously....joined yesterday...only 3 posts...all 3 in this thread in the same tone as Driver-Man...and the email address fabio.mrenes@mail.com in his profile is fake.
Couldn't be Driver-Man though. ::)
-
:banghead:
Man, is he an annoying troll.
Get this through your head. Only atarisy2.c was changed. How hard is it for you to search the official diff. Search for input.c; inptport.c; uimenu.c
The only UI change was not 720 specific. It was for "Changed the Analog Controls menu to only list controls selected in the Driver Configuration."
I find your statement that I wrote 1000s of lines of code to do this, truly hilarious. Completely shows how you just make stuff up with no facts.
It is also quite amusing that you can not even do basic math. The joystick port defaults to a center value of 128 (0x80). You then do 128 - 127 and are completely baffled that the result is not 0. Your ignoring the many times I told you this does not make 128-127 magically = 0.
How long are you going to rant about things you know nothing about?
:dizzy:
-
:police: pulled over and ticketed. Just waiting on the return............any minute now.
-
I find your statement that I wrote 1000s of lines of code to do this, truly hilarious. Completely shows how you just make stuff up with no facts.
BTW, it would take closer to 100,000s of lines of code to add 2M to the exe. So even if I decided to write 1000 lines of code, a lot of it would be spacing and comments with the final result being in the few k range, not few M range.
Remember, just because you make stuff up and believe it in your head, that does not make it true in the real world.
-
While I'm ranting about your rants:
Yes, people on this forum actually did help me out. Some privately, because they did not want to post publically due to the ongoing mess you have made. So you are ranting again about stuff you know nothing about and refuse to actually read anything in the thread you continue to troll.
-
I think he found this line in your submission:
char makeProgLookBig[2048000];
:P
-
:laugh2:
-
char makeProgLookBig[2048000];
:applaud: congrats on finding my secret bloat code.
-----
I wonder if the compiler would be silly enough to allow that if you put a "const" at the beginning.
-
I think he found this line in your submission:
char makeProgLookBig[2048000];
:P
Holy ---steaming pile of meadow muffin--- in a hand basket!!! That's why my code always compiles too big. I thought that setting was in bits, not bytes!
THANK YOU :notworthy: :notworthy:
-
Thread below this has been snipped. There isn't anything more to say that I can see from the most recent content. This thread is locked.
Driver-man, you've had your say and now it's just arguing. You aren't going to convince them, they aren't going to convince you. I have no interest in hosting arguments just for the sake of arguing.
--- saint