ladyabaxa: (Delacroix)
I'm still around. I just haven't logged in LJ for a month now. I've just been busy over here mucking with Knights of Justice since a debug menu was discovered.

In other news those interested in video games might want to check out a new wiki over at The Cutting Room Floor. It's an attempt to dissect and document things from video games that have gone unused.  There's a Knights of Justice page (of course!) which still needs some work and eventually I need to get off my ass and learn wiki editing so I can make a page for Space Griffon.

It's on the list.
◾ Tags:
ladyabaxa: (Default)
This post is to say the complete script for the game has been dumped to text. This includes all the plain text script in the ROM as well as all the decompressed text from a savestate at the end of the game. It has been amended to the file I already started:

http://ladyabaxa.livejournal.com/36755.html#cutid1

That entry has likewise been cleaned up for readability. I would like to stress that as of right now I've tried to group lines together into what I can remember about conversations but it may not be 100% accurate. I also haven't added any names for ease of telling what lines belong to which character. This is as complete a text dump as I can make it at this time.

◾ Tags:
ladyabaxa: (Default)
Why screenshots? Well for one thing they're smexy! Ha, ha, ha, I'm terrible I know. Seriously, however, I've finished searching through the portraits for the game using a Hex editor. It's nothing particularly fancy. I just started with a few known values and through a tedious process of slowly incrementing and decrementing the values deciphered the correct numbering scheme for all the portraits in the game. They are, in chronological order:

Arthur: 5c 81
Breeze: 70 81
Brick: 84 81
Darren: 98 81
Gallop: ac 81
Lance: c0 81
Lug: d4 81
Phil: e8 81
Tone: fc 81
Trunk: 10 82
Wally: 24 82
Zeke 38 82
Lady of the Lake: 4c 82
Merlin: 60 82
Blacksmith: 74 82
Hungry Traveler: 88 82
Unknown Male (Erek?): 9c 82   
Brave Woman: b0 82
Wise Woman: c4 82
Morgana: d8 82
Lord Pendragon: ec 82
Everett: 00 83 and 14 83 [2 separate portraits of Everett]

Blaise: 28 83
Druas: 3c 83
Gnome Prince: 50 83
Kazak: 64 83
Gemcutter: 78 83
Mapmaker: 8c 83
Death's Doorman: a0 83
Undead: b4 83
Skeleton: c8 83

[For reference the knight portraits are as displayed here: www.flyingomelette.com/koj/knights.html and the NPCs are here: www.flyingomelette.com/koj/chars.html. There were NO portraits for the warlords as there is no dialogue for any of them to be had. The one mysterious block of unused dialogue that sounds like a challenge is actually tagged to the Lady of the Lake.]

This means that each one is precisely twenty values (in hex!) from the one prior to it. Simply change the two bytes preceeding the block of text to change what appears in the portrait slot. It should be noted that Merlin's text in his room in Camelot can NOT be modified in this way as it is both A.) compressed and B.) uses a different system as it is displayed differently.

Most values will simply crash but some do not and the game can continue although the graphics will be temporarily glitched. The following screenshot only encompasses a small sampling of what is possible. I've only tested for a tiny fraction of the possible values and all tests have been done on a single screen. That's important because anything that rewrites the entire screen will remove the glitchy data and restores the game's proper graphics.



The lower left shot has disabled layers as layer two (normally the treetops) fills up the entire screen with garbage that makes it hard to see anything. The most common effect of my screwing around was that the lone poison flower in the upper left shot would be moved around. The two sets of glitched tiles in the upper right shot are normally piles of bones.



More glitchiness abounds with this result. The treetops turn this biting shade of pink and it appears the game loads either text graphics (part of the graphics engine for text) or displays some code as junk text. A secondary effect is what happens to the poison flower in the same area.



----------------
Now playing: Motoi Sakuraba - Tiger of Integrity and Benevolence
via FoxyTunes
◾ Tags:
ladyabaxa: (Default)
My continued efforts to get Tone's text to display without repeating has resulted in the game now crashing once the dialogue chain ends. I'm getting a better handle on the dialogue system but I'm still puzzled about that behavoir. There appears to be no way in the dialogue tree, ITSELF, to check for Tone's presence in the party. Obviously the code supporting each dialogue tree is built separately and the two are connected by pointers. Without actual knowledge of programming I cannot even locate this set of instructions let alone begin to correct them.

This supporting code system and the inability of dialogue trees to check or set flags makes me believe that the unused tree for dialogue with Lord Erek was not used because the complex checks required weren't in place. Presumably the game would have to check to make sure the player had a specific party set-up before that conversation could be seen. That brings along a problem that any other configuration, even possibly the same 3 knights but in a different slot order, would not reveal important information regarding the relationship between Erek and the Blacksmith. Were the developers planning on a more dynamic dialogue system? One can only hope so.

Unfortunately the game was rushed through development and anything unfinished or buggy was cut or stripped down to the bare essentials.
◾ Tags:
ladyabaxa: (Default)
Hmm, I haven't updated my journal since February. My bad. Sometimes I just get embroiled in what I'm doing and forget. I still have quite alot of work to do for Street Fighter but I'm a bit burned out right now. Looking through my to-edit notes I think I'm actually done with Focus maneuvers and just need to format the HTML page. *looks to see what state that is in* Yup, I was definitely doing that when I stopped. :P Anyway, the title of this post concerns hacking for Knights of Justice so here's three nice screenshots of that: (click thumbnails to see them full size):




The first, which I did get the overflows fixed and the filler no longer goes offscreen, is from Blackroot Keep. I kept this screenshot because it is self-evident that it's been altered. The second shot is from the forest around Camelot where you get Breeze's shield. I couldn't remember whether or not the useage message found in the ROM is ever displayed so I checked and yes it is. However it was boring so I changed it.

The third is the most frustrating. I am not a hacker. These were simple brute force edits in WindHex with lots of trial and error and a bit of deductive reasoning. I got Tone's dialogue to display despite the fact that he's not even in the party and the key is still on the pedestal. What's even more annoying is that the dialogue then repeats once.

ladyabaxa: (velonese)
Flying Omelette has a page dedicated to the weirdness of the Knights of Justice but I think she's missed a few things.  You can find her site right here: http://www.flyingomelette.com/koj/oddities.html

To begin with some text is compressed and some isn't.  How do I know this? Because I've looked through both the ROM and multiple save states in a hex editor. In the ROM none of Merlin's hint text appears in plain text format but it does appear in a savestate made at the end of the game. Note: This text does NOT appear in a savestate made at the beginning of the game.  Thus it seems logical that the game decompresses these hints as they are needed and loads them into temporary memory which is then never erased.




(There are more screenshots if you click through to the album on Photobucket.)
edit: 2/17/09: links above fixed, darn you LJ!
edit: 5/17/14: fixed some formatting errors and some of my old comments
Read more of the text dump... )
◾ Tags:
ladyabaxa: (Default)


Why yes I have been trying to glitch sprites so that they appear in areas they aren't supposed to. I want to know if anything interesting pops up. I'm using the Zug because it's semi-reliable in not wanting to crash. However, I have to keep infinite life enabled because if Arthur dies the emulator will crash. It is interesting in that the Viper sprite is loaded into memory as soon as you enter his room. That's good because once you close the menu and start fighting the giant snake you can't re-open it to try another warp until Viper is dead.

How did I do this? That's simple. I warped to the screen with the creature I wanted to transplant then warped to the Swamp of Zagar. The first critter's sprite will, at times, overwrite the second one's. I would try taking the Zug someplace else but the way it works is that it spawns offscreen and charges Arthur. At the moment it spawns the game goes into combat mode (a special script is running) until the Zug has been offscreen for a few seconds on the opposite side where it then despawns.

It's probably just as well. The Zug is invincible. Believe me, I've tried to kill that thing!

This will work with any screen up to memory position 255. Trying to warp to a position any higher doesn't work for some reason. This means I can't take any boss creature to any of those screens. I was hoping I could drag the ogre into the last room in Blackroot Keep but it simply refuses to work. That room is item 258 in the list. It's already enough of a pain getting multiple warp codes working in unison. Oh well I guess there's not much I can do about it.

Click the LJ cut if you want a list of all warp memory positions I've located.
Read more... )
----------------
Now playing: Koji Kondo - Surrounded by Flames
via FoxyTunes   
◾ Tags: