Register - Login
Views: 99795185
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
05-03-22 05:23:31 AM
Jul - General Game/ROM Hacking - Wario Land 4 Hacking New poll - New thread - New reply
Next newer thread | Next older thread
Linkin800
User
Level: 11


Posts: 7/17
EXP: 5012
For next: 973

Since: 05-01-08


Since last post: 13.0 years
Last activity: 12.4 years

Posted on 08-05-08 08:24:41 PM (last edited by Linkin800 at 08-21-08 04:03 PM) Link | Quote
Well I started hacking WL4 and found some discoveries.

I found some unused tiles in the game that only appear around the file select and new game cutscene.



Their is also a beta logo for the title screen (this was not found by me, it was found by Racoon Sam)



Most people probably already know about the unused tiles though.

The most intresting thing I found though was the test level, It's surprisingly similar to the Metriod Fusion one, but thats because MF was built off of WL4's engine.

<object width="425" height="344"><embed src="http://www.youtube.com/v/2tpTpL2mNe0&hl=en&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>

And now for the hex areas I found, you must have visualboy advance and be useing the Memory tool to do this.

Level select (must be in overworld and standing on a level to do this)


03000000: 00 00 00 06 00 00 01 01 00 00 00 00 00 00 00

Right at 06 change it to any number that dosent go past 23. like 1A. the level discription will change to what level it is. For the test level change it to 02. Now if you change the two 00 behind the 06 while your in the main overworld to 01 or 06 you'll end up at sound room or emeralde passageway.

Oh and the 01 01 seems to be an odd counter that keeps counting up then resets itself back to 00 when it reachs FF then starts counting up again.


Beta BG for file select (must be at title screen)

3000010: 00 00 00 01 00 00 00 00 00 01 00 00 00 01 00 00

Change the 6th set of 00 to anything below 08 (if you put it at 08 or anything higher then that the game will crash)

Cutscene's

03000C30: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00

change the 01 into anything shown below to get a cutscene thats in the game.

(When you first start the game up)

01 = Nintendo

05 = Buldings with cat and dog

07 = Wario opening door

09 = Wario walking to his car

0B = wario driving

0D = Cat walking along street

0F = Newspaper

11 = Title screen


Controller Input?

Starts at

0448F000

Ends at

0448F130

not to sure what this is besides for 0448F130 which seems to react to the controlls.


Music and Sounds

Starts at

03FFCF30

Ends at

03FFD170

Just simply where the music and sounds are located. if you set some of them to 00 you'll end up with music that only plays some notes in it. Example is the opening cutscene where you can hear people singing in the background. If you turn some numbers in their to 00 you'll only hear them singing and not the normal music.


FG/BG Tiles (for first level only?)

Starts at

6244820

Ends at

06DB4E00

I havent really messed around with this to much. But I know that this is where the FG/BG is located.


Thats all I know so far and I know this was a very sloppy document but I rushed this as fast as I could. Post anything else you know about the game here to if you wish.

Rachel Mae

Creature of Chaos
Level: 141


Posts: 1057/5929
EXP: 33603734
For next: 516280

Since: 07-03-07

Pronouns: she/her
From: Foxglen

Since last post: 21 days
Last activity: 12 hours

Posted on 08-06-08 07:54:18 AM (last edited by BMF54123 at 08-06-08 05:01 AM) Link | Quote
1. Which areas in the first video are "unused"? If you're talking about the weird underground areas with the archaeologist, I'm pretty sure those are just glitches.

2. That "unused" HUD looks like a scrambled coin counter to me.

____________________

Linkin800
User
Level: 11


Posts: 8/17
EXP: 5012
For next: 973

Since: 05-01-08


Since last post: 13.0 years
Last activity: 12.4 years

Posted on 08-06-08 06:39:29 PM Link | Quote
Originally posted by BMF54123
1. Which areas in the first video are "unused"? If you're talking about the weird underground areas with the archaeologist, I'm pretty sure those are just glitches.

2. That "unused" HUD looks like a scrambled coin counter to me.


1: Well in the video it may seem like its just a glitch, but when you open up the map it shows a completely diffrent map then the one that was originaly their. The tiles dont appear but the collision does. the tiles appear if you go to one side of the screen and back so it can refresh.

2: hmmm you might have a point their. I never really did pay attention to the coin counter, My bad.
Rachel Mae

Creature of Chaos
Level: 141


Posts: 1061/5929
EXP: 33603734
For next: 516280

Since: 07-03-07

Pronouns: she/her
From: Foxglen

Since last post: 21 days
Last activity: 12 hours

Posted on 08-07-08 02:25:25 AM Link | Quote
Originally posted by Linkin800
1: Well in the video it may seem like its just a glitch, but when you open up the map it shows a completely diffrent map then the one that was originaly their. The tiles dont appear but the collision does. the tiles appear if you go to one side of the screen and back so it can refresh.
I still doubt those are "unused maps". It looks like the game's just reading invalid data to me.

Is that unused "Warioland" logo still in the ROM or something?

____________________

Raccoon Sam
Member
free speech disabled
Level: 32


Posts: 69/187
EXP: 187838
For next: 18604

Since: 07-25-07

From: Somewhat

Since last post: 4.5 years
Last activity: 1.1 years

Posted on 08-07-08 11:50:24 AM Link | Quote
Originally posted by BMF54123
Is that unused "Warioland" logo still in the ROM or something?

Yup. LZ77'd among the other titles.

Jigglysaint was the one who discovered Metroid Fusion's/Zero Mission's level format, so you should probably see his docs or something. The way I see it, the Metroid games on the GBA are no more than Wario Land 4s in heavy, heavy disguise.

I looked back on Wario Land 4 several months ago and found the TSA data. Didn't document it, but it's ridiculously simple.
Xkeeper

Level: 263


Posts: 6655/25353
EXP: 297139134
For next: 1821319

Since: 07-03-07

Pronouns: they/them/????????

Since last post: 3 days
Last activity: 29 min.

Posted on 08-07-08 01:03:09 PM Link | Quote
Originally posted by Raccoon Sam
The way I see it, the Metroid games on the GBA are no more than Wario Land 4s in heavy, heavy disguise.

Yeah, especially considering that Metroid Fusion(?)'s debug room features, surprise, Wario Land 4 blocks

____________________
Linkin800
User
Level: 11


Posts: 9/17
EXP: 5012
For next: 973

Since: 05-01-08


Since last post: 13.0 years
Last activity: 12.4 years

Posted on 08-07-08 04:03:13 PM (last edited by Linkin800 at 08-07-08 02:39 PM) Link | Quote
Originally posted by Raccoon Sam

I looked back on Wario Land 4 several months ago and found the TSA data. Didn't document it, but it's ridiculously simple.


Thats why this game is great to hack

I bet if we had a couple people working on this alot we could have a level editor in about a year or so. It could even end up being better then lunar magic... But I highly doubt it could get to where lunar magic is in about 3 years or so.

Oh yeah I also found out what those beta Wario tiles are used for.



A diffrent BG for the file select. It could either be a S Hard reward or a beta BG. I don't know because I never beat the game at S hard and it only appears when you change the hand sprite into something diffrent like the crown or the delete file sprite. oh and the image looks all messed up in japanise and crap because I was testing some things when I took that picture.

If you want to do this yourself go to the address 03000010 you should see something like this.

3000010: 00 00 00 01 00 00 00 00 00 01 00 00 00 01 00 00

Now change the 6th set of 00 into anything less then 08 (if you put it at anything 08 or higher the game crash's)

Example 3000010: 00 00 00 01 00 02 00 00 00 01 00 00 00 01 00 00

Ill post all the codes in my first post so we have a list.
Raccoon Sam
Member
free speech disabled
Level: 32


Posts: 70/187
EXP: 187838
For next: 18604

Since: 07-25-07

From: Somewhat

Since last post: 4.5 years
Last activity: 1.1 years

Posted on 08-08-08 12:20:44 AM Link | Quote
Pretty interesting.
You should probably go for it yourself with a ROM and a corrupter and start documenting the game, and once you've got enough of them, post them to the public and hope for a group effort.
That's what I did with my SML2 findings (and ironically enough, failed) but you get the point.

I for one would be more than glad to help you out if you intend on tearing the game apart. Be sure to contact me either here or via PM/MSN/AIM/whatever if you need to.
smkdan
User
Level: 12


Posts: 17/21
EXP: 7067
For next: 854

Since: 07-28-07


Since last post: 13.0 years
Last activity: 13.2 years

Posted on 08-10-08 02:34:42 AM Link | Quote
If you can pull together some decent documentation I wouldn't mind starting a level editor if you don't have someone else to do it. No promises though, I just feel like picking up a new project and you seem to be doing OK here as far as hacking it goes.
interdpth
Member
Level: 20


Posts: 12/64
EXP: 37497
For next: 4942

Since: 08-26-07


Since last post: 5.4 years
Last activity: 5.8 years

Posted on 08-10-08 10:19:00 PM (last edited by interdpth at 08-10-08 07:23 PM) Link | Quote
Since it uses ZM and MF engine,

It uses 4 layers,
Foreground, Level, Back Layer and clipdata


I'd guess it uses the same level compression so here's the code that I use for ZM and MF works perfectly.




long ZMUncompRle(u8 arg0, u8 *arg1, u8 *arg2)
{

u8 *src= (u8*)arg1, *dst= (u8*)arg2;

u32 jj,ii, nn;
u32 ctrl, type;

type= 0;
nn= 0x3000;


switch(arg0)
{
case 0:
type= 0x0800; break;
case 3:
type= 0x2000; break;
default:
type= 0x1000;
}

nn= 0x2000;


//DMAFill(3, 0, arg2, nn, 16)

for(ii=0; ii<2; ii++)
{
dst= (u8*)&arg2[ii];
if(*src++ == 1) // 8 control field
{
while(1)
{
ctrl= *src++;
if(ctrl == 0)
break;

else if(ctrl & 0x80)
{
nn= ctrl & 0x7F;
if(*src)
for(jj=0; jj<nn; jj++)
dst[2*jj]= *src;
src++;
}
else
{
nn= ctrl;
for(jj=0; jj<nn; jj++)
dst[2*jj]= src[jj];
src += nn;
}

dst += 2*nn;
}
}
else // RLE16
{
while(1)
{
ctrl= src[0]<<8 | src[1];
src += 2;
if(ctrl == 0)
break;

if(ctrl & 0x8000)
{
nn= ctrl & 0x7FFF;
if(*src)
for(jj=0; jj<nn; jj++)
dst[2*jj]= *src;
src++;
}
else
{
nn= ctrl;
for(jj=0; jj<nn; jj++)
dst[2*jj]= src[jj];
src += nn;
}
dst += 2*nn;
}
}
}

return type;
}

long compress(u8 cmp[], u8 uncmp[], long sze)
{
//int sze = 3;




int cmpptr=0;
int sizeptr=0;
int dataptr=0;
u16 rl=0;

int samebytecount=0;

for(int j=0; j<2; j++)
{
cmp[cmpptr++]=1;
while(sze>dataptr)
{
rl=2;
while(uncmp[dataptr]==uncmp[dataptr+2] && uncmp[dataptr+2]==uncmp[dataptr+4] && rl<0x7F && sze>dataptr)
{

dataptr+=2;
rl++;
}

if(rl>2)
{
// printf("run found s=%02X\n", rl)
cmp[cmpptr++]=(u8) ((rl | 0x80)&0xFF)
cmp[cmpptr++]=uncmp[dataptr];
dataptr+=4;
}

sizeptr=cmpptr;
cmpptr++;

rl=0;
while((uncmp[dataptr]!=uncmp[dataptr+2] || uncmp[dataptr+2]!=uncmp[dataptr+4]) && rl<0x7F && sze>dataptr)
{

cmp[cmpptr++]=uncmp[dataptr];
dataptr+=2;
rl++;
}
// printf("norun found s=%02X\n", rl)
if(rl!=0)
cmp[sizeptr]=(u8) rl;
else
cmpptr--;
}
cmp[cmpptr++]=0;


dataptr=1;
}










return cmpptr;

}

My editor for ZM/MF will be open source on Jan 1st '09 so you could easily just put the game in there
Linkin800
User
Level: 11


Posts: 10/17
EXP: 5012
For next: 973

Since: 05-01-08


Since last post: 13.0 years
Last activity: 12.4 years

Posted on 08-17-08 11:02:37 PM Link | Quote
Originally posted by smkdan
If you can pull together some decent documentation I wouldn't mind starting a level editor if you don't have someone else to do it. No promises though, I just feel like picking up a new project and you seem to be doing OK here as far as hacking it goes.



That would be great if you did. But ill probably won't have a decent document for a long time. Oh and thanks interdpth.
Next newer thread | Next older thread
Jul - General Game/ROM Hacking - Wario Land 4 Hacking New poll - New thread - New reply


Rusted Logic

Acmlmboard - commit 47be4dc [2021-08-23]
©2000-2022 Acmlm, Xkeeper, Kaito Sinclaire, et al.

31 database queries, 4 query cache hits.
Query execution time: 0.099059 seconds
Script execution time: 0.018972 seconds
Total render time: 0.118031 seconds