Tauwasser
"dumb piece of shit needs to learn some fucking ettiquette" - Anonymous
Level: 21
   

Posts: 1/73
EXP: 43076 For next: 6867
Since: 04-10-09
Since last post: 11.1 years Last activity: 10.0 years
|
|
You probably haven't had a very close look at this rom...
Actually all data in every rombank but rombank 0x00 starts at 0x4001. That is, because the rombank number is stored at 0x4000 except for rombank 0x00. This is done in very many gameboy games, as the game can then relax and not track every bank swap because it just has to read from 0x4000 to know where it currently is.
Anyway, I took a look. The data you're looking for seems to be general sprite data or something that is loaded for every level. So ok, here it goes.
There is a pointertable at 0xE9B. It contains 0x10 2byte-pointers. There are many others like at 0x1016 that have the same layout. These are always referencing the following structure:
[length (2byte, signed)][source pointer (2byte)][destination pointer(2byte)][rom bank]...
All 2byte values are LE.
Now. It has two modes for copying data. If length is negative (bit 7 SET), then it will perform decompression, else it will simply copy the bytes from (rom bank) : (source pointer) to destination in ram/vram.
This will loop until a length of 0x0000 is encountered
However, if it is told to decompress, it will actually point to a structure like this:
[decompressed length (2byte)] [compressed data]...
The decompressed length should be reasonable, of course. Also, the data should not cross rom bank boundaries obviously. Anyway, it's an lzXX-style compression routine, here goes:
[compression byte] 8 * [packet]
The compression byte is read from bit0 to bit7 (from lo to hi). A set bit (1) means that the packet is a direct copy of one byte. A reset bit (0) means that it will tack a 2-byte packet:
FEDCBA9876543210
OOOOOOOOOOLLLL
Repetition length is L + 3 bytes. Repetition offset is bits 4 to F, remember endianness! If the offset is actually in front of the buffer (meaning you would read before the data you already wrote), you cause to copy 0x00 instead of any data that there might be. If you're less bytes from the start of your data than you would copy, then you start copying from the start of the decompressed data when you copied enough 0x00 to be inside of the data boundary again.
Examples:
[10][00][00][1D][00]
(length) (compression byte) (1 packet)
would produce: [00][00][00][00][00][00][00][00] [00][00][00][00][00][00][00][00] (0x10 times 0x00)
[10][00][01][01][3C][00]
(length) (compression byte) (2 packets)
would produce: [01][00][00][01][00][00][01][00] [00][01][00][00][01][00][00][01] (5 times 0x01 0x00 0x00 then one 0x01 again)
Routine for all that at approx. 00:0E6B.
____________________ cYa,
Tauwasser |
Tauwasser
"dumb piece of shit needs to learn some fucking ettiquette" - Anonymous
Level: 21
   

Posts: 2/73
EXP: 43076 For next: 6867
Since: 04-10-09
Since last post: 11.1 years Last activity: 10.0 years
|
|
@Dwedit: Yep. Ususally older games do this only. Maybe it was stuff from the original SDK. Of course you would still have to write code that can change the rombanks if data crosses boundaries (like in Zelda iirc), however, it has some pros and cons for both methods. I know Pokémon G/S also does keep track of the rom bank (also FF98 iirc lol), however, it always has to utilize multiple registers to get a bank swap/call into another bank, so you have to write all arguments to the functions you call to stack or into other ram locations... a bit icky...
The best way I have seen to this day is utilized in shin megami tensei: devil children. They just have a rst $0 defined to take the next 3 bytes and branch to it, so you can keep all your registers' contents
@devin: Yes, some data actually uses this compression method. The decompression routine can be called seperately and a lot of data uses it as far as I can tell. For example in the intro etc. Also, you could just check the table offsets I gave you and find out for yourself
cYa,
Tauwasser
____________________ cYa,
Tauwasser |
Tauwasser
"dumb piece of shit needs to learn some fucking ettiquette" - Anonymous
Level: 21
   

Posts: 3/73
EXP: 43076 For next: 6867
Since: 04-10-09
Since last post: 11.1 years Last activity: 10.0 years
|
|
Originally posted by The T Since I can't read a readme because I have Vista
Riiiight...
____________________ cYa,
Tauwasser |
Tauwasser
"dumb piece of shit needs to learn some fucking ettiquette" - Anonymous
Level: 21
   

Posts: 4/73
EXP: 43076 For next: 6867
Since: 04-10-09
Since last post: 11.1 years Last activity: 10.0 years
|
|
Originally posted by Darkdata You kinda fail Tauwasser, that is a common problem that a certain help file format does not work in vista without a download.
@The T
Download this to look at .hlp files.
So what? A proper outline along with periods and commas would probably have gotten the point across. Seriously, recently 95% of all computing problems are "It's not because I'm lazy...it's...eh... because I got Vista, please hack xyz for me".
Also, a quick google on the problem and you're done with it...
Also, it would be most kind of you to remove that sticky thing next to my name.
____________________ cYa,
Tauwasser |
Tauwasser
"dumb piece of shit needs to learn some fucking ettiquette" - Anonymous
Level: 21
   

Posts: 5/73
EXP: 43076 For next: 6867
Since: 04-10-09
Since last post: 11.1 years Last activity: 10.0 years
|
|
There's this Console Tool thread at RHDN, in which the author is building a tool that can view (and possibly edit) many Nintendo formats. He also finished some documentation on these formats; links in said thread.
It's really looking good, too, so you might get some stable info from him.
____________________ cYa,
Tauwasser |
Tauwasser
"dumb piece of shit needs to learn some fucking ettiquette" - Anonymous
Level: 21
   

Posts: 6/73
EXP: 43076 For next: 6867
Since: 04-10-09
Since last post: 11.1 years Last activity: 10.0 years
|
|
Originally posted by xdaniel [...] the Windows console itself supports Unicode since NT4 or so [...] .
Nope, still ANSI. You can set it to Unicode, but that has pretty bad side-effects for many users. The console IME for Japanese only works with codepage 932 set, same things for other console IMEs for Chinese, Korean iirc.
cYa,
Tauwasser
____________________ cYa,
Tauwasser |
Tauwasser
"dumb piece of shit needs to learn some fucking ettiquette" - Anonymous
Level: 21
   

Posts: 7/73
EXP: 43076 For next: 6867
Since: 04-10-09
Since last post: 11.1 years Last activity: 10.0 years
|
|
Are you sure those maps use the same format as the playable maps? There sure are a lot of tiles that are just mirrored incorrectly in the maps you uploaded to TCRF.
cYa,
Tauwasser
____________________ cYa,
Tauwasser |
Tauwasser
"dumb piece of shit needs to learn some fucking ettiquette" - Anonymous
Level: 21
   

Posts: 8/73
EXP: 43076 For next: 6867
Since: 04-10-09
Since last post: 11.1 years Last activity: 10.0 years
|
|
What's so bad about uploading them with a proper name each separately? You can use galleries to blow them up a bit and have every use see them in their screen width. Combined images are always somewhat awkward, because you have to put them on their own line...
cYa,
Tauwasser |
Tauwasser
"dumb piece of shit needs to learn some fucking ettiquette" - Anonymous
Level: 21
   

Posts: 9/73
EXP: 43076 For next: 6867
Since: 04-10-09
Since last post: 11.1 years Last activity: 10.0 years
|
|
I actually remember reading that this code was actually code from the dumping tool used, because it had a buffer flaw somewhere. Not sure how the credibility of this is as I don't have linkage right now.
cYa,
Tauwasser |
Tauwasser
"dumb piece of shit needs to learn some fucking ettiquette" - Anonymous
Level: 21
   

Posts: 11/73
EXP: 43076 For next: 6867
Since: 04-10-09
Since last post: 11.1 years Last activity: 10.0 years
|
|
Actually, could the TODO shit be automated so it can be assigned a user and some bottage would add it to his userpage? Do we even have any bots right now? Like, how is deletion going to be handled? Just add the tag and an admin will notice?
Also, what's up with the #cscore shit? Mine doesn't seem to work, I think I even started off with those high values...
cYa,
Tauwasser |
Tauwasser
"dumb piece of shit needs to learn some fucking ettiquette" - Anonymous
Level: 21
   

Posts: 12/73
EXP: 43076 For next: 6867
Since: 04-10-09
Since last post: 11.1 years Last activity: 10.0 years
|
|
Why don't you get a hex editor and dump strings the proper way instead of posting notepad pictures?
cYa,
Tauwasser |
Tauwasser
"dumb piece of shit needs to learn some fucking ettiquette" - Anonymous
Level: 21
   

Posts: 13/73
EXP: 43076 For next: 6867
Since: 04-10-09
Since last post: 11.1 years Last activity: 10.0 years
|
|
Originally posted by cen
Originally posted by Tanks Kirby 64!
there are debug maps but there is also a cool and mysterious debug menu that im gonna enable instead

The background says cloud (クモ ) and grass (クサ ) if you're curious.
EDIT: What the fuck is up with this board's encoding? Change to UTF already and don't use HTML entities. Morons...
cYa,
Tauwasser |
Tauwasser
"dumb piece of shit needs to learn some fucking ettiquette" - Anonymous
Level: 21
   

Posts: 14/73
EXP: 43076 For next: 6867
Since: 04-10-09
Since last post: 11.1 years Last activity: 10.0 years
|
|
Originally posted by krutomisi Two things --
http://www.tinyurl.com/tcrfloor redirects to the wiki
If you can think of a better url thingy, please do   
http://➡.ws/TCRF
cYa,
Tauwasser |
Tauwasser
"dumb piece of shit needs to learn some fucking ettiquette" - Anonymous
Level: 21
   

Posts: 15/73
EXP: 43076 For next: 6867
Since: 04-10-09
Since last post: 11.1 years Last activity: 10.0 years
|
|
Why should it have been deleted? Just point to the right map, the one that is currently in the game, and it should work, shouldn't it?
cYa,
Tauwasser |
Tauwasser
"dumb piece of shit needs to learn some fucking ettiquette" - Anonymous
Level: 21
   

Posts: 16/73
EXP: 43076 For next: 6867
Since: 04-10-09
Since last post: 11.1 years Last activity: 10.0 years
|
|
Originally posted by Xkeeper
27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;
Works for me! But hey, it's fun to be a dumbass, so why not bitch and moan about it.
(p.s. changing the board's encoding to utf-8 breaks old posts and many other things)
Yes, it is fun Convert your database then, should be possible. I know Nightcrawler converted RHDN's database without much difficulty and prior knowledge about the conversion process.
cYa,
Tauwasser |
Tauwasser
"dumb piece of shit needs to learn some fucking ettiquette" - Anonymous
Level: 21
   

Posts: 17/73
EXP: 43076 For next: 6867
Since: 04-10-09
Since last post: 11.1 years Last activity: 10.0 years
|
|
Originally posted by xdaniel Looking at the Festa video, the map's overall design is similar to the final version, but in detail it's quite different.
Ah, I wasn't aware of it being that different... Have you already looked for the actual map data? If the block data is not too different, it might still be in there, although chances are it isn't
cYa,
Tauwasser |
Tauwasser
"dumb piece of shit needs to learn some fucking ettiquette" - Anonymous
Level: 21
   

Posts: 18/73
EXP: 43076 For next: 6867
Since: 04-10-09
Since last post: 11.1 years Last activity: 10.0 years
|
|
Actually I just took JAP Ruby and looked myself. Sadly, I couldn't find any map data pertaining to a second flower show (outside). I did look for the actual map data values as well as relative matches to that data.
60 06 61 06 62 02 63 06 64 06 65 06
^-- This is the actual data for the lower row of wall tiles and entrance to the flower shop. They probably deleted the map data, but kept the events just in case.
cYa,
Tauwasser |
Tauwasser
"dumb piece of shit needs to learn some fucking ettiquette" - Anonymous
Level: 21
   

Posts: 19/73
EXP: 43076 For next: 6867
Since: 04-10-09
Since last post: 11.1 years Last activity: 10.0 years
|
|
Originally posted by Xkeeper
Originally posted by Xkeeper 27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;27515;
Still works! Then again, I don't have to cheat and run shit through another level of htmlentities() to prove a point.
Those are called zero-width spaces, for your enjoyment. Also, converting to utf-8 would actually make your database entries for posts containing non-ascii characters smaller, while staying the same for the ascii set.
However, I was only irritated because smilies appeared in my post before I edited it. Try posting (クモ ― now.
It seems smilies are interpreted before html entities, while leaving them intact. This could also possibly be a security issue on forms.
cYa,
Tauwasser |
Tauwasser
"dumb piece of shit needs to learn some fucking ettiquette" - Anonymous
Level: 21
   

Posts: 20/73
EXP: 43076 For next: 6867
Since: 04-10-09
Since last post: 11.1 years Last activity: 10.0 years
|
|
Originally posted by cen the arwing was going to be used as a chest enemy (like the zols in Links Awakening). there is still code that can be triggered in the final game by tilting your cart while opening a trap chest at the precise second
That could just be a random effect you get with concurrency. If the chest opening and cart tilting happen to use the same counters, because the programmers thought they could never occur at the same time anyway, this may be just a lucky buffer overrun. Does it happen every time? Do you have to time it just right to trigger this behavior?
Unless you find the table that explicitly contains the arwing as chest enemies without interpreting code as data and so on, this might all just be coincidence.
cYa,
Tauwasser
|