News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Magic Kids; Scubbing McD's from M.C. Kids  (Read 34596 times)

keithisgood

  • Full Member
  • ***
  • Posts: 192
  • [DANGER ! ! ! ! ! ! ] [TERROR HORROR]
    • View Profile
    • keithisgood
Re: Magic Kids; Scubbing McD's from M.C. Kids
« Reply #20 on: September 26, 2012, 10:09:10 am »
Quote
Hamburglar becomes a dragon? Wow he's serious now! XD

Yeah, I felt that the last level deserved a decent antagonist. Since it takes place in a lava-filled cave, who better than a dragon?

Vanya

  • Hero Member
  • *****
  • Posts: 1885
    • View Profile
Re: Magic Kids; Scubbing McD's from M.C. Kids
« Reply #21 on: September 26, 2012, 01:19:01 pm »
Who is the Engineer? Kinda looks like radio host George Noory.

keithisgood

  • Full Member
  • ***
  • Posts: 192
  • [DANGER ! ! ! ! ! ! ] [TERROR HORROR]
    • View Profile
    • keithisgood
Re: Magic Kids; Scubbing McD's from M.C. Kids
« Reply #22 on: September 26, 2012, 03:05:16 pm »
The Engineer is based on an actor's portrayal of a famous scientist; in the context of the game, The Engineer builds tricks for the Wizard.

darkanx

  • Jr. Member
  • **
  • Posts: 29
    • View Profile
Re: Magic Kids; Scubbing McD's from M.C. Kids
« Reply #23 on: September 26, 2012, 08:15:59 pm »
The Engineer is based on an actor's portrayal of a famous scientist; in the context of the game, The Engineer builds tricks for the Wizard.

Famous scientist? Am I right again in thinking... pre-cancer Walter White from Breaking Bad? X3  I thought that the minute I saw him, but Walter usually wears glasses, so didn't make a post asking. If so, you are doing a fantastic job with 8bit caricatures.

keithisgood

  • Full Member
  • ***
  • Posts: 192
  • [DANGER ! ! ! ! ! ! ] [TERROR HORROR]
    • View Profile
    • keithisgood
Re: Magic Kids; Scubbing McD\'s from M.C. Kids
« Reply #24 on: September 26, 2012, 11:10:12 pm »
While it would be awesome for Walter to make an appearance, the Engineer is based on Nikola Tesla (as played by David Bowie in The Prestige). Source pic here: http://serbianna.com/blogs/savich/wp-content/uploads/2012/08/tesla1.jpg

September 28, 2012, 09:35:18 am - (Auto Merged - Double Posts are not allowed before 7 days.)
More before and after artwork, this time a larger portrait of Hamburglar becoming the Dragon:


The graphics are done, so now comes the real work in figuring out the text compression.

Anyone with skill in this area would be greatly appreciated.
« Last Edit: September 28, 2012, 10:35:23 am by keithisgood »

MegaManJuno

  • RHDN Patreon Supporter!
  • Hero Member
  • *****
  • Posts: 1293
  • Robot Master
    • View Profile
Re: Magic Kids; Scubbing McD's from M.C. Kids
« Reply #25 on: September 28, 2012, 12:01:34 pm »
The Engineer is based on an actor's portrayal of a famous scientist; in the context of the game, The Engineer builds tricks for the Wizard.

I'm guessing Tesla (a la The Prestige)?

Edit: Nevermind... helps to read the full thread first. I see now that my assumption was correct. :P

Vanya

  • Hero Member
  • *****
  • Posts: 1885
    • View Profile
Re: Magic Kids; Scubbing McD's from M.C. Kids
« Reply #26 on: September 28, 2012, 12:30:42 pm »
If that's supposed to be Tesla then his face needs to be more gaunt.

The Dragon looks great.

keithisgood

  • Full Member
  • ***
  • Posts: 192
  • [DANGER ! ! ! ! ! ! ] [TERROR HORROR]
    • View Profile
    • keithisgood
Re: Magic Kids; Scubbing McD\'s from M.C. Kids
« Reply #27 on: October 05, 2012, 11:01:02 am »
I realize it's not the greatest take on Tesla, but I figured I'll go with it for now, and once I figure out how to change text without learning copious amounts of ASM, I may go back and re-touch some graphics.
The sprite version looks a bit more Tesla-ish:




Right now I'm staring at the FCEUX Debugger like teenage me stared at the female body: very excited but absolutely zero clue how to work it.

October 06, 2012, 10:36:26 am - (Auto Merged - Double Posts are not allowed before 7 days.)
Okay, so messing with FCEUX's debugger, I've discovered the following:

*All Cutscene text is loaded into RAM between addresses $6905 and $74C4
*Large chunks of Dialogue text are loaded into RAM starting at $6905, depending on which sprite you talk to.
*When Text is being written to the screen, each letter's tile data is called from RAM address $0343

I'm trying to figure out how to change the text called into RAM. I set a Write Breakpoint for $6DDB (the RAM address for the R in Ronald--the game's first text). It returned me the following debugger data:

07:E478:A5 A5     LDA $00A5 = #$52
07:E47A:91 9B     STA ($9B),Y @ $6DDB = #$52

$52 is the RAM value used for R, so this is the correct code. So, now I've got the end of the string, so to say, how do I follow this back to the ROM so as to change $52 (R) to $57 (W)? I realize this is probably to then find out how 52 is loaded into $00A5, but that RAM address seems to be a catch all for storing data. I set a breakpoint there and spent half an hour hitting RUN repeatedly without any of the game text loading. Is there a better way to see how 52 gets into $00A5 other than the FCEUX debugger?
« Last Edit: October 06, 2012, 10:54:42 am by keithisgood »

snarfblam

  • Submission Reviewer
  • Hero Member
  • *****
  • Posts: 595
  • CANT HACK METROID
    • View Profile
    • snarfblam
Re: Magic Kids; Scubbing McD's from M.C. Kids
« Reply #28 on: October 06, 2012, 06:55:21 pm »
It looks like it's copying from a buffer for decompression. Try using the trace logger. Log to a file, and when you break on the write to $6DDB, open up the trace log, and search backwards for writes to $A5. That should help you find the decompression routine, which should help you find the compressed text.

keithisgood

  • Full Member
  • ***
  • Posts: 192
  • [DANGER ! ! ! ! ! ! ] [TERROR HORROR]
    • View Profile
    • keithisgood
Re: Magic Kids; Scubbing McD's from M.C. Kids
« Reply #29 on: October 07, 2012, 11:47:52 am »
Thanks. I'm still getting the hang of FCEUX's various tools.

Dwedit

  • Sr. Member
  • ****
  • Posts: 307
    • View Profile
    • Dwedit's Website
Re: Magic Kids; Scubbing McD's from M.C. Kids
« Reply #30 on: October 12, 2012, 02:01:49 am »
Wanna tell Gregg Tavares about that hack?  His website is at http://games.greggman.com/
"We are merely sprites that dance at the beck and call of our button-pressing overlord."

keithisgood

  • Full Member
  • ***
  • Posts: 192
  • [DANGER ! ! ! ! ! ! ] [TERROR HORROR]
    • View Profile
    • keithisgood
Re: Magic Kids; Scubbing McD's from M.C. Kids
« Reply #31 on: October 12, 2012, 12:01:55 pm »
Yeah, i'd actually used his article regarding the making of M.C. Kids to verify the text was indeed compressed. His post wondering why M.C. Kids was so poorly received is one of the reasons I took up this project; I figured the reason was all the blatant McDonalds product placement.   
 
I'd actually considered e-mailing him to ask what the text compression scheme was, but if I do e-mail him, it'll probably be after I'm done.

Dwedit

  • Sr. Member
  • ****
  • Posts: 307
    • View Profile
    • Dwedit's Website
Re: Magic Kids; Scubbing McD's from M.C. Kids
« Reply #32 on: October 12, 2012, 01:18:01 pm »
I'd guess something like Huffman, so it's probably not byte-aligned.
"We are merely sprites that dance at the beck and call of our button-pressing overlord."

keithisgood

  • Full Member
  • ***
  • Posts: 192
  • [DANGER ! ! ! ! ! ! ] [TERROR HORROR]
    • View Profile
    • keithisgood
Re: Magic Kids; Scubbing McD's from M.C. Kids
« Reply #33 on: October 12, 2012, 01:57:13 pm »
The more I dig in, it seems the less I know. I'm guessing from here on out, the progress with this is going to be measured in months rather than days while I learn enough about ASM to make the needed text changes.

Trax

  • RHDN Patreon Supporter!
  • Hero Member
  • *****
  • Posts: 585
    • View Profile
    • Trax ROM Hacking
Re: Magic Kids; Scubbing McD's from M.C. Kids
« Reply #34 on: October 31, 2012, 10:23:45 pm »
I've played this game a few times in the past, and was always repulsed by the McDonald's theme. I gave it another, more serious try, and it's actually not bad. The controls are fluid, and I like the idea of finding hidden cards and the gravity reversal. By the way, Keithisgood, your replacement graphics are looking good...

I took a look at the code in the vicinity of 1E478, but nothing specific comes to mind. Do we have an idea of the location of the compressed text in the ROM?

keithisgood

  • Full Member
  • ***
  • Posts: 192
  • [DANGER ! ! ! ! ! ! ] [TERROR HORROR]
    • View Profile
    • keithisgood
Re: Magic Kids; Scubbing McD's from M.C. Kids
« Reply #35 on: November 01, 2012, 10:58:45 pm »
Unfortunately I have zero clue at this point. I've tried to follow the thread back from the RAM loading with very little success thusfar. A few more work projects are sapping away free time, so I haven't had much time to crack the compression.

I agree fully the game is much, much better than most give it credit for. Solid controls and varied gameplay. For some reason, I feel like Mack should have some ledges cut into his high-top. couldn't figure out how to get the sprite right, though.

DarkReaper

  • Jr. Member
  • **
  • Posts: 22
    • View Profile
    • Youtube Channel
Re: Magic Kids; Scubbing McD's from M.C. Kids
« Reply #36 on: November 03, 2012, 05:50:29 pm »
Ive never played the original, but once you finish cleaning it up it warrants atleast a try  ;D

keithisgood

  • Full Member
  • ***
  • Posts: 192
  • [DANGER ! ! ! ! ! ! ] [TERROR HORROR]
    • View Profile
    • keithisgood
Re: Magic Kids; Scubbing McD's from M.C. Kids
« Reply #37 on: November 08, 2012, 09:31:04 am »
Thanks. It's actually a very fun game.

snarfblam

  • Submission Reviewer
  • Hero Member
  • *****
  • Posts: 595
  • CANT HACK METROID
    • View Profile
    • snarfblam
Re: Magic Kids; Scubbing McD's from M.C. Kids
« Reply #38 on: November 13, 2012, 09:45:47 pm »
Do we have an idea of the location of the compressed text in the ROM?

I hope I'm not explaining anything that's already figured out, but it looks like a block of compressed text is stored in the ballpark of $4AB0 in the rom (headered), banked to $AAA0. I'm not sure exactly where it starts.

Text is decompressed to ASCII. It is converted to pattern numbers after it is decompressed. Definitely not byte aligned, but one of the first things I noticed was changing one bit of the compressed text changes one bit of the decompressed text.

I had been watching how modifying the compressed text changes what shows up on the nametable, which is in retrospect obviously wrong since the pattern table isn't arranged by ASCII. So don't do that. It helped once I realized I should have been monitoring how changing compressed text affects the decompressed-text-buffer (kind of a pain in FCEU).

Looks like there are nine bits per character. It's generally hard to find the bits and pieces of text because, as mentioned, they aren't byte aligned. I found the "is " in "Ronald was showing off his Magic" at 4AB5. Each character took up eight bits, followed by an extra bit. I would guess the extra bit indicates whether there are more characters in a group (of what, I'm not sure). 4B2D is " in t" from "picnic in the meadow". That one confuses me a bit more. I can clearly make out and easily modify the mentioned letters in the stream. I can also modify some bits of the following "h", but there is no "0110 1000" in the stream so I'm not clear on what's going on there.

So that's definitely something. I think it would help a lot to get input from somebody with experience with text compression. For now I already have Ronald McDonald burned into my retinas, so I'm calling it a night.

keithisgood

  • Full Member
  • ***
  • Posts: 192
  • [DANGER ! ! ! ! ! ! ] [TERROR HORROR]
    • View Profile
    • keithisgood
Re: Magic Kids; Scubbing McD's from M.C. Kids
« Reply #39 on: November 14, 2012, 08:52:17 am »
That's miles beyond where I've gotten so far!  Although I don't have experience with compression schemes, I'll take a look at it once I finish work.