Language…
3 users online: fenko, Reggiamoto, ShadowMistressYuko - Guests: 82 - Bots: 116
Users: 67,562 (2,002 active)
Latest user: Dilshacking

Yoshi's Island GBA Hacking Progress - A Level Converter

Quote
Now, I know this may be considered bumping. Also, whatever I'm about to post may be obsolete due to obvious changes in available tools since I went dormant. However, I didn't want to create a new topic, and I had ALOT of fun programming the newest release of the SNES-->GBA converter.

I hoping that, even if this tool is pretty useless, that I at least did SOMETHING productive.

This release is a complete 100% rewrite of the code. It is more stable, and it converts better too.

It is written in C++, and for any programmers who exist out there, the code is SOOOO much more clean and readable than in previous releases.

Features:

-Manual overrides, of any kind, have been removed for this release. This is because, in next release, I am developing a text-based configuration file parser for overrides instead of using binary files. That way, you could use notepad to add in custom rules for ignoring sprites, level pieces, etc.

-The handling of the "unknown bytes" in GBA screen exits and level entrances has been improved. Assuming that your input GBA rom is 100% clean, the converter will take default sample values and use them in the conversion process. Level entrance values are sampled from level 1-1. Screen exit values are sampled from the first screen exit of the first room of level 1-2.

-No more batch file needed.

-The program accepts default filenames, in case you don't want to use command prompt. It uses Yoshi.SMC and Yoshi.GBA.

-The program no longer mixes up the level entrances of the GBA secret levels and GBA extra levels.

Readme:



Code
To Use:

Simply copy cmd.exe from C:\windows\System32 to the same folder as this program.

Next, assuming that your roms are named YOSHI.GBA and YOSHI.SMC, open cmd.exe and type:

YOSHI.EXE YOSHI.SMC YOSHI.GBA

And the conversion will be done!

By the way, the program will try to use default filenames without the command prompt. 
It will try to use YOSHI.SMC and YOSHI.GBA by default.

-Adolif


Download:

<Fixed link is below>



EDIT:

Many new bugs have been found. Such bugs include corruption of random screen exits, Yoshi being spawned in the ground at the beginning of levels, and...tile data of the map screen being overwritten????

I'll get to work on fixing these immediately.

EDIT AGAIN:
Bugs have been fixed! The converter now decodes all pointers properly, and because of that, it converts so much faster.

EDIT AGAIN:
The GBA-only bytes for screen exits have been figured out! This release should solve alot of issues.

EDIT AGAIN:
The converter now has a GUI, and now features scripted sprite overrides. I'll go more in depth with these in a moment.

EDIT AGAIN:

The scripting system goes as follows:

If you want the converter to ignore/skip sprite 1D9 (473 in decimal) you would add this to the script:

Code
@SKI #473


The number of spaces is VERY important. The converter's parser works by alot of assumptions, so you have to be specific down to the very last char.

Now, using multiple lines was supposed to work, but bugs out as of now. To use multiple overrides, you would use this for example:

Code
@SKI #473@SKI #478


Notice how there is no extra space in between the first sprite id and the second "@SKI". That is critically important.

Now, "@SKI" isn't the only supported command type. There is one other: "@REP". It simply replaces one sprite id with another.

To replace 1D9 (473 in decimal) with 1DE (478 in decimal) you would use:

Code
@REP #473 #478


And one more example, where I mix a skip command and a replace command:

Code
@REP #473 #478@SKI #474



This would replace all instances of 478 with 473, and skip all instances of 474.

Download Link:
http://www.mediafire.com/file/xbry354yckwrhw9/ADO-CONVERT_2.3.ZIP
This sounds very good so far! I'm looking forward to when you release it!Free counters!
Thank you. I'm going to post a short video in a sec, if it's ok.

I'm hard-coding the offsets into the converter itself, since using pointers makes the code SO complex. (It hurts my head, lol.)

So it might take awhile. ;D
Sounds good, but how do you use the program in it's current state? I always get "Yoshi_Converter.exe has encountered a problem and needs to close"Free counters!
Did you use command prompt, or just simply double click on it? The tool has no detection of when it's doing something it shouldn't (such as trying to read files with no file names given to it). In that case, the operating system will just close it.

If it's crashing and you ARE using command prompt, then it could be an issue with the way I compiled it (Even though I tested it on multiple Windows XP 32-Bit computers).

If everything fails, try clean roms.

If that fails, I'll look deeper into it.
I wasn't using command prompt then, but...

I tried it with command prompt and followed the exact method in the syntax file. The program doesn't crash anymore, but gives me the message "The system cannot find the file specified" whenever I type it in.Free counters!
Oh, I figured it out (I think).


The syntax file is flawed. Change the second ".SMC" to ".GBA".

Try that.

***EDIT*** That still doesn't explain it I don't think. Command prompt doesn't parse arguments. Just make sure you're typing in the file name without typos I guess.
I tried that, and it still didn't work, just said "The system cannot find the file specified". I'm sure I spelt both ROM-File names right.Free counters!
Paste here what your typing into command prompt. It works 100% on all my computers, so I'm not sure what's going on.
Yoshi_Converter.EXE <Hack.smc> <GBA_Hack>.GBAFree counters!
Ok, I'm completely clueless.

I'll just say this, in case there's *something* we did differently.

Take cmd.exe, and paste it into the program's folder.

Name the snes rom "test.smc"

Name the gba rom "test.gba"

Type in "Yoshi_converter.exe test.smc test.gba"

And it should work.

If it doesn't, I'm going to pull my hair out. (All my programs have problems like this at first XD).
Well, I tried it, and although I didn't get any errors this time, the GBA ROM is completely unedited when I play it.Free counters!
The currently released version only converts the first level.

Also, it works by hard-coded offsets.

So, that most likely means that your gba rom doesn't use the same offsets as mine for level data. If that's true, the data was injected somewhere into the rom where it shouldn't be.

All I can say now is...try different YI GBA roms. I have a U.S. version, and I don't know whether or not the GBA version comes with version numbers.

***EDIT***

Is the file modified at all, and you just can't see the changes? Or is it completely unmodified?
I think my ROM is a US version, but I'll try downloading another US version and see if that works. I'll update this post with my findings soon.Free counters!
I looked more into it. It appears to not work with the European version of Yoshi's Island. So that means that there must be different U.S. versions, not just one.


***EDIT***

Also, I just wanted to prove that it works at all.

<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/zKF720qCOs0?fs=1&hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/zKF720qCOs0?fs=1&hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>
Nice conversion there! Also I lookeed and can't find a working US version of the ROM. If I PM you with my email address, could you send me your version of the ROM?Free counters!
I wouldn't talk about that here in the future, since banning is always an issue. (At least in the forums I come from it is) But sure, I'll send you it. I won't however, send it to anybody else who asks later. (Fear of being banned here.)
OK, thanks. I've sent you a PM with my email address, BTW.Free counters!
@adolif2:
Cool, but it does not fully works. Also, the sand blocks don't seem to work anymore with Tileset12 in the GBA version. Also, some sprites have different IDs there and some other things are changed. Before we can do perfect conversions we must figure out how everything works in the GBA version. But nice work anyways!
NEW! SMW2 Yoshi's Island is done!
Last update: 2012-12-31
If the community really wanted to, we could find ways to make fun hacks despite the limitations. I'm just trying to make it *somewhat* possible.