(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
05-10-24 06:55 PM
0 users currently in ROM Hacking.
Acmlm's Board - I3 Archive - ROM Hacking - Super Mario Kart AI: I'm confused New poll | |
Add to favorites | Next newer thread | Next older thread
User Post
Ninetales
banned by request


 





Since: 11-17-05
From: Gone.

Last post: 6291 days
Last view: 6290 days
Skype
Posted on 11-20-05 01:31 PM Link | Quote
I'm pretty sure this has been posted before, but I am still in the dark.

I have in front of me a copy of d4s's SMK hacking document, and it says,
"AI pointer table: 0x201cb, 2 byte pointers, bank C6(hirom), 24 pointers
format: XX YY SS, XX = X position on map, Y = position on map, S = speed

note: these are more or less checkpoints wich lead the cpu drivers around the track.
terminated with FF."

Using these data, I attempted to change the AI for Mario Circuit 1 (track 07). I found the pointer in the table at 0x210D9 (5A 0F, or 0x6115A for a headered ROM). Going to that address, I entered in new checkpoints in the order that the computerized karts should follow. The new data ranged from 0x6115A to 0x611B3 (with all data after that seeming not to follow the format d4s enumerated and having no effect on the computers' actions).

Testing the game in 50cc Mario GP, the computers did not follow the checkpoints; rather, the computers starting in first through fourth drove straight ahead to the first turn in the upper-right corner of the map and then began to drive in circles, and the computers starting in fifth through seventh followed the checkpoints in reverse order until they reached the bottom left corner of the map, in which they began driving in circles themselves.

I have not found any other data regarding SMK AI editing, and the data in d4s's document seems not to be entirely correct.

Could someone please tell me what I am doing wrong?

Thanks in advance,


(edited by Kamek77 on 11-21-05 06:05 PM)
(edited by Kamek on 10-09-06 05:59 PM)
HyperHacker

Star Mario
Finally being paid to code in VB! If only I still enjoyed that. <_<
Wii #7182 6487 4198 1828


 





Since: 11-18-05
From: Canada, w00t!
My computer's specs, if anyone gives a damn.
STOP TRUNCATING THIS >8^(

Last post: 6291 days
Last view: 6291 days
Posted on 11-21-05 01:17 AM Link | Quote
I don't think anyone ever figured out exactly how the AI works.
Ninetales
banned by request


 





Since: 11-17-05
From: Gone.

Last post: 6291 days
Last view: 6290 days
Skype
Posted on 11-21-05 12:39 PM Link | Quote
Originally posted by HyperHacker
I don't think anyone ever figured out exactly how the AI works.
I thought for a fact that either d4s or OK Impala! had figured out the AI data, but if not, then I guess I'm alone on it.
Oh well. If no one knows, then I guess I'll experiment and try to figure it out myself.

Thanks,


(edited by Kamek77 on 11-21-05 06:05 PM)
(edited by Kamek on 10-09-06 05:59 PM)
DJ Bouche

Koopa


 





Since: 11-22-05
From: Bligh Park, NSW, Australia

Last post: 6453 days
Last view: 6453 days
Posted on 11-22-05 10:43 PM Link | Quote
It's been too long but if I recall, there's another pointer table similar to this which points to other AI related data (or it might be Lakitu pick up / zone data or what not), in which I did not figure out. Yeah, I don't think anyone got the AI data fully figured out , it works so much simpler in MKSC . Since I discontinued TD and stopped on my SMK research years ago, d4s and Impala probably have more information than me. But yeah, I do remember another pointer table (or at least a pointer to that pointer table) in a similar place, with a similar structure. Try to find the pointer of the AI pointer table and look for another pointer to a pointer table nearby.
HyperHacker

Star Mario
Finally being paid to code in VB! If only I still enjoyed that. <_<
Wii #7182 6487 4198 1828


 





Since: 11-18-05
From: Canada, w00t!
My computer's specs, if anyone gives a damn.
STOP TRUNCATING THIS >8^(

Last post: 6291 days
Last view: 6291 days
Posted on 11-23-05 03:23 PM Link | Quote
Holy shit, it's DJ Bouche. I'm guessing you're not going to actually finish that MKSC editor?

Anyway, I know OK Impala was working on a hack with changed AI, but I haven't seen him in a while.
DJ Bouche

Koopa


 





Since: 11-22-05
From: Bligh Park, NSW, Australia

Last post: 6453 days
Last view: 6453 days
Posted on 11-24-05 08:45 PM Link | Quote
lol, I think the most I got done was it to display a level, reading all the gfx from the ROM, in birds eye view.. It's a pretty dead project but I will gladly release the data info when and if I can find it .

Hmm.. might that be the hack he discontinued? :/
Blue Falkon

Hoarder


 





Since: 11-18-05
From: Canada

Last post: 6497 days
Last view: 6497 days
Posted on 11-24-05 10:58 PM Link | Quote
Something that makes me wonder about the Super Mario Kart editors: why is the CPU not automatic? Why must you edit the AI?

I'll bring F-Zero games into context... in every game, an editor is built in. The programmers cut off the editors in most games (restrict access, but NOT removing the editor itself). These editors have automatic AI interfaces meaning whatever you change, the AI will change too. You can redo the entire level and the AI will follow and not stay default. F-Zero X is like that, and F-Zero Climax is like that too. Those are two racing games for example. Super Mario Kart should be the exact same way... why aren't the ROM editors extracting the AI data so it follows what Nintendo did? Unless Super Mario Kart wasn't developed in such a way (which I very highly doubt).
HyperHacker

Star Mario
Finally being paid to code in VB! If only I still enjoyed that. <_<
Wii #7182 6487 4198 1828


 





Since: 11-18-05
From: Canada, w00t!
My computer's specs, if anyone gives a damn.
STOP TRUNCATING THIS >8^(

Last post: 6291 days
Last view: 6291 days
Posted on 11-25-05 12:48 AM Link | Quote
When you say every game, does that include the original? Either way, I think it's because of how the levels themselves are designed. In X, they're drawn using a lot of crazy geometry based on a series of points, so it's easy enough to just have the AI follow the same path that's used to draw the track. SMK uses a tilemap, so the game doesn't really have any idea what path the track follows, plus it can split into different paths. It has to have them pre-defined. I imagine it's possible to calculate them mid-game, but that'd take a fair bit of processing power that the SNES doesn't have.

Hm... could there be multiple paths for different difficulty levels and/or characters?

Originally posted by DJ Bouche
lol, I think the most I got done was it to display a level, reading all the gfx from the ROM, in birds eye view.. It's a pretty dead project but I will gladly release the data info when and if I can find it .

I'd appreciate it.
Ok Impala!

Goomba








Since: 11-25-05
From: The Netherlands

Last post: 6389 days
Last view: 6329 days
Posted on 11-25-05 06:50 AM Link | Quote
Ok!

I'm actually from time to time on the board, though I'm not posting that much. But rest assured, work on Epic Racers still is flowing nicely.
Stifu









Since: 11-18-05
From: Your mom's bed

Last post: 6292 days
Last view: 6290 days
Posted on 11-25-05 07:06 AM Link | Quote
Epic Racers is not dead and will never die, we're not going to stop working on it until it's finished, remember that...
Blue Falkon

Hoarder


 





Since: 11-18-05
From: Canada

Last post: 6497 days
Last view: 6497 days
Posted on 11-25-05 10:01 AM Link | Quote
Originally posted by HyperHacker
When you say every game, does that include the original? Either way, I think it's because of how the levels themselves are designed. In X, they're drawn using a lot of crazy geometry based on a series of points, so it's easy enough to just have the AI follow the same path that's used to draw the track. SMK uses a tilemap, so the game doesn't really have any idea what path the track follows, plus it can split into different paths. It has to have them pre-defined. I imagine it's possible to calculate them mid-game, but that'd take a fair bit of processing power that the SNES doesn't have.


Hey, I think you're right about the points thing. I didn't think about that. Climax is kind of tiles too... but it also has coordinates and works on a password system to generate the map so maybe that controls the AI as well. Good point.
DJ Bouche

Koopa


 





Since: 11-22-05
From: Bligh Park, NSW, Australia

Last post: 6453 days
Last view: 6453 days
Posted on 11-28-05 10:09 AM Link | Quote
Hmm Epic Racers.. shows how far behind I am , I haven't even heard of that yet ...And yeah.. even MKSC doesn't have automatic calculating AI data
Stifu









Since: 11-18-05
From: Your mom's bed

Last post: 6292 days
Last view: 6290 days
Posted on 11-28-05 12:23 PM Link | Quote
Originally posted by DJ Bouche
Hmm Epic Racers.. shows how far behind I am , I haven't even heard of that yet

Or maybe you weren't listening.
Nah, actually, you may remember I sent you a PM on the previous board (which you didn't reply to, by the way), and I mentioned our hack in it... Although I probably didn't tell you its title since it was about to change from Epic Battle to Epic Racers.


(edited by Stifu on 11-28-05 11:25 AM)
Ok Impala!

Goomba








Since: 11-25-05
From: The Netherlands

Last post: 6389 days
Last view: 6329 days
Posted on 11-29-05 05:09 AM Link | Quote
Originally posted by DJ Bouche
Hmm Epic Racers.. shows how far behind I am , I haven't even heard of that yet ...And yeah.. even MKSC doesn't have automatic calculating AI data

Ok!

I suggest you take a quick look at my website to see what we've already accomplished.
duffjr
Newcomer


 





Since: 01-21-06

Last post: 6684 days
Last view: 6684 days
Posted on 01-21-06 12:59 PM Link | Quote
i think the cpu runs through a series of checkpoints, maybe 16 throughout the level similar to what lakitu does. when the cpu hits someone or an object, it can cause them to miss a couple and go off course temporarily. for instance, if the cpu hits an item or oil spill on mc2, it will miss the arrow jump. when i used the track designer, i could make some spots two tiles in width surrounded by water, and the cpu had a 90% success rate.
Ninetales
banned by request


 





Since: 11-17-05
From: Gone.

Last post: 6291 days
Last view: 6290 days
Skype
Posted on 01-22-06 01:29 AM Link | Quote
I'm pretty sure that is the case; however, I don't have a clue what the format is. I tried putting in data points according to d4s's format, but the computer either drove in circles at the end of the first straightaway or followed the course backwards. If anyone who knows the format or knows what may be wrong with the method described in the first post, I would be much obliged.


(edited by Kamek on 10-09-06 06:00 PM)
HyperHacker

Star Mario
Finally being paid to code in VB! If only I still enjoyed that. <_<
Wii #7182 6487 4198 1828


 





Since: 11-18-05
From: Canada, w00t!
My computer's specs, if anyone gives a damn.
STOP TRUNCATING THIS >8^(

Last post: 6291 days
Last view: 6291 days
Posted on 01-22-06 01:45 AM Link | Quote
I think the best way to see if you have it right is to hack up a quick SMK track viewer (or is TrackDes's source available?) and add code to plot the points/path. Just keep tweaking that code until it looks right.
NetSplit

Paratroopa


 





Since: 11-18-05

Last post: 6452 days
Last view: 6452 days
Posted on 01-22-06 01:52 AM Link | Quote
What do you mean by 'followed the course backwards'? Do you mean they followed all the turns of the new track properly, but turned around at the starting line and went the wrong way? If so, you could always put the data in backwards.
Dirtbag

Koopa








Since: 09-20-06
From: UK

Last post: 6294 days
Last view: 6290 days
Posted on 10-08-06 02:23 PM Link | Quote
Originally posted by Kamek
I'm pretty sure that is the case; however, I don't have a clue what the format is. I tried putting in data points according to d4s's format, but the computer either drove in circles at the end of the first straightaway or followed the course backwards. If anyone who knows the format or knows what may be wrong with the method described in the first post, I would be much obliged.

--Kamek77


As you know I've started to look in to this because we need to figure out SMK's AI it's been far too long now

I started by mapping out the AI on to the track by putting in visual points.

I still don't know why they go in random circles at the top of the track if you change too much however to prevent the CPU heading backwards try putting the 1st 3 check points in the 27th 28th and 30th slots of the point. I did manage to make the CPU skip over a corner as a short cut as desired. I've also noticed that Lakiu's drop off points are at curtain check points from the same data area. By making a level where I can fall off the track at any stage and differently mapped check points, the CPU did as you described, however noticed that despite being near to one check point I will always be taken other set points. So maybe not all of the 30 check points used are used for AI?

From address $6115A the following check points are used as drop off points

Race
Drop off
Drop off
Race
Race
Race
Drop off
Race
Race
Drop off
Race
Race
Drop off
Race
etc...

DJ Bouche any chance of a slightly updated editor that will let us directly edit these? I'm more than happy to spend time working out WTF is going on It's just painful flicking between your editor for the cords, excel and then to the hex editor.


(edited by Dirtbag on 10-08-06 01:25 PM)
HyperHacker

Star Mario
Finally being paid to code in VB! If only I still enjoyed that. <_<
Wii #7182 6487 4198 1828


 





Since: 11-18-05
From: Canada, w00t!
My computer's specs, if anyone gives a damn.
STOP TRUNCATING THIS >8^(

Last post: 6291 days
Last view: 6291 days
Posted on 10-09-06 12:34 AM Link | Quote
Check for bit patterns or tables that might denote which is a checkpoint and which is a dropoff.
Add to favorites | Next newer thread | Next older thread
Acmlm's Board - I3 Archive - ROM Hacking - Super Mario Kart AI: I'm confused |


ABII

Acmlmboard 1.92.999, 9/17/2006
©2000-2006 Acmlm, Emuz, Blades, Xkeeper

Page rendered in 0.027 seconds; used 448.07 kB (max 583.82 kB)