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

Author Topic: Little Master GB English 100% - Released!  (Read 744 times)

CapnCrunch

  • Jr. Member
  • **
  • Posts: 34
    • View Profile
Little Master GB English 100% - Released!
« on: June 07, 2018, 06:48:14 pm »
Hey everyone!  Well, I'm very proud to announce that after 17 years (and originally abandoning this project) - that my work on it is complete! 

You can view the VERY OLD project page on the Wayback Machine (I am Zatos, CapnCrunch is an alias):
http://web.archive.org/web/20100513024734/http://zatos.parodius.com:80/projects/lm1.html

You can download the patch from the project page:
https://www.romhacking.net/translations/3647/

Here are some screenshots:



I'm very excited to release this, but there's only one thing holding me back.  I could really use some ASM help!  With the character names, I really wanted
to be able to keep the longer names.  They are really cute, and add some flair to this game.  I think the problem is relatively simple to fix, but I might be underestimating the work it would take to implement these simple fixes.  You can see the bugs in the screenshots below.  The first one involves the troop report screen, where you can see all your troops.  The redraw is set to only go out about 8 characters or so, so anytime text changes and the original text was longer than that, it leaves the characters on the screen.  The second issue, is that there isn't enough room for the full names on the battle map.  Now, other than a few characters that have just one name, the other characters all use a double name system.  It's sort of random because of this game's unity system.  You can combine troops into a new form.  Thus, the semi-random names composed of a first and last name.  Now, on the battle map, all it would need is just for it to stop after the first name, so basically just drop the second name from showing (I had thought about maybe just showing the first initial of the last name as well).  This is something the game does during battle scenes, where it only shows the first name.  So it wouldn't be out of place.  These don't seem like they would require too much work, but of course, it might be a lot harder than it sounds. 

I really hope someone can help out with this!  Other than this issue, this game is ready to go!  I'd hate to abbreviate these names as it seems like they wouldn't have any impact and the charm would be lost.  Most would have to be shortened to 3-4 characters, which might make for some really bad abbreviations.


I would still like an ASM fix if anybody wants to do one, but it was looking like it wasn't going to happen - at least any time soon, and I wanted to release this game!  Contact me if you'd like to do an ASM hack to restore the full character names!



Meanwhile, I have already begun work on Little Master 2.  The game appears to have been built on top of the original, so a lot of my work easily carried over.  Lots of reused text because the same battle system and menus are in place.  I am looking to see if anybody might be interested in translating the script?  I don't know the exact size of it because my dumps include some extra control codes but I think it's close to 35K.  The formatting in them is very clean and should be really easy to work with.    -- got a translator ;)
« Last Edit: June 13, 2018, 02:55:06 am by CapnCrunch »

mikeprado30

  • Full Member
  • ***
  • Posts: 126
    • View Profile
Re: Little Master GB English 100% [Need ASM help]
« Reply #1 on: June 07, 2018, 10:54:05 pm »
Is amazing to see a project from many years ago to be completed nowadays  :thumbsup: Congrats, pal.

mz

  • Sr. Member
  • ****
  • Posts: 341
  • Whore
    • View Profile
Re: Little Master GB English 100% [Need ASM help]
« Reply #2 on: June 07, 2018, 11:28:48 pm »
If you can send me a patch, a table file, a save file and clear instructions on how to reproduce these issues, I could give it a look tomorrow. Hopefully it's as simple as you make it sound. :D
« Last Edit: June 07, 2018, 11:40:04 pm by mz »
There has to be a better life.

CapnCrunch

  • Jr. Member
  • **
  • Posts: 34
    • View Profile
Re: Little Master GB English 100% [Need ASM help]
« Reply #3 on: June 08, 2018, 01:07:56 am »
Is amazing to see a project from many years ago to be completed nowadays  :thumbsup: Congrats, pal.

Thank you!

If you can send me a patch, a table file, a save file and clear instructions on how to reproduce these issues, I could give it a look tomorrow. Hopefully it's as simple as you make it sound. :D

Sweet, I will send you a link for the files in a little bit here :)
« Last Edit: June 08, 2018, 04:12:42 am by CapnCrunch »

mz

  • Sr. Member
  • ****
  • Posts: 341
  • Whore
    • View Profile
Re: Little Master GB English 100% [Need ASM help]
« Reply #4 on: June 08, 2018, 03:13:30 pm »
Sweet, I will send you a link for the files in a little bit here :)
Thanks! I got the files and sent you four PM. :P

June 08, 2018, 03:51:52 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
So, I wasn't able to fix this. Some quick notes for other ones who might be interested:

- The "cleaning routine" for the first issue actually just copies the bytes from 0x7BC4 to VRAM until it finds a 00 byte. You can try changing the 00 at the end of "03 02 20 20 20 20 20 20 20 20 FF 02 01 20 20 20 20 20 20 20 20 20 00" to "20 20 20 20 00" or whatever to "fix" it. Of course, you'll overwrite the next bytes, and that's where the main problem comes in: this game doesn't have one single free byte in the ROM.

- The second issue can be fixed easily by looking at the routine at 0x388F. You can just change the byte at 0x38A5 from "FA" to "1A" to only display the first name, or the byte at 0x38BE from "06" to "01" to only show the first initial of the last name. Unfortunately, this is also used at the main list of the first issue, so we need a new routine for this part. (Again, we don't have free space available.)

So, for anyone more capable than me, I think this could be fixed by expanding the ROM, inserting a new routine and the other extra bytes for the first issue, and then modifying the original code accordingly to use this new data.
« Last Edit: June 08, 2018, 03:51:52 pm by mz »
There has to be a better life.

CapnCrunch

  • Jr. Member
  • **
  • Posts: 34
    • View Profile
Re: Little Master GB English 100% [Need ASM help]
« Reply #5 on: June 08, 2018, 07:05:53 pm »
Thanks! I got the files and sent you four PM. :P

June 08, 2018, 03:51:52 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
So, I wasn't able to fix this. Some quick notes for other ones who might be interested:

- The "cleaning routine" for the first issue actually just copies the bytes from 0x7BC4 to VRAM until it finds a 00 byte. You can try changing the 00 at the end of "03 02 20 20 20 20 20 20 20 20 FF 02 01 20 20 20 20 20 20 20 20 20 00" to "20 20 20 20 00" or whatever to "fix" it. Of course, you'll overwrite the next bytes, and that's where the main problem comes in: this game doesn't have one single free byte in the ROM.

- The second issue can be fixed easily by looking at the routine at 0x388F. You can just change the byte at 0x38A5 from "FA" to "1A" to only display the first name, or the byte at 0x38BE from "06" to "01" to only show the first initial of the last name. Unfortunately, this is also used at the main list of the first issue, so we need a new routine for this part. (Again, we don't have free space available.)

So, for anyone more capable than me, I think this could be fixed by expanding the ROM, inserting a new routine and the other extra bytes for the first issue, and then modifying the original code accordingly to use this new data.

Thanks so much for looking at this!  Would this be pretty easy then if the ROM was expanded?  There are some areas at the end of the ROM file that's just a bunch of zeros... I don't know if this qualifies as free space, or if the game actually uses it for something.  I could take a look at expanding the ROM, I just know that creates an extra step during the patch process which might be hard for some people to figure out.  I wanted to make it as most accessible as I can.  But if expanding it means making the game into what I want it to be, I can probably accept that.

mz

  • Sr. Member
  • ****
  • Posts: 341
  • Whore
    • View Profile
Re: Little Master GB English 100% [Need ASM help]
« Reply #6 on: June 08, 2018, 07:49:06 pm »
Would this be pretty easy then if the ROM was expanded?
I wish! But nothing is ever easy with ASM, at least for me. Expanding the ROM can usually be done in just a few seconds, so that isn't the biggest hurdle. :P

I'll try to explain why this is hard for me:

The GB CPU can only read the ROM up until position 0x8000. To read beyond that point, you have to switch banks. These banks are 0x4000 bytes in size, and they can only be swapped with the second bank (at 0x4000 to 0x8000).

So, if the code is in this bank (as is the case with the first issue), you can't just swap in a new bank from there, I believe. First, we'd need to jump to the first bank, switch from there and then jump back, but there's not a single byte available in the first bank to insert some new code to do this.

Maybe a more experienced coder could figure out a good way to handle this, but it's beyond my skills, I'm afraid. :-[

There are some areas at the end of the ROM file that's just a bunch of zeros...
I don't know either if those bytes are free or even enough for this, but in any case they'd need to be swapped in too. :(
There has to be a better life.

KingMike

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 6463
  • *sigh* A changed avatar. Big deal.
    • View Profile
Re: Little Master GB English 100% [Need ASM help]
« Reply #7 on: June 09, 2018, 02:29:31 pm »
In Kaiju Monogatari, I did bankswapping within the bank I was in by making sure that I lined my code up in the same relative offset in the expanded bank as the old code.
(that is, if the instruction that caused the bankswap to fire was at address 1234 relative to the start of the current bank, I'd put my new code at 1237 relative to the new bank) And make sure to align code going back.)

It should be all you would need for Little Master, but LM1 is a MBC2 game which can only be expanded from 128KB to 256KB (which isn't surprising, most of the earlier games with saving tend to be MBC2, which I'm guessing was a relatively cheap saving-capable mapper, compared to MBC1 which seemed to have come in PCB variants with and without saving function).

While LM2 (since you mentioned wanting to work on it?) is a 256KB game, it is thankfully a MBC1 game which can be expanded to 512KB if needed. (I'm going to guess MBC1 has a 512KB limit. Docs mention that MBC1 could be expanded beyond 512KB with a limit of certain banks being inaccessible due to a glitch. But I wonder how accurate that is? Pocket Monsters Red/Green/Blue was a 512KB MBC1 game which was swapped to MBC3 for the localized versions which was also expanded to 1MB. Which makes me wonder if the ROM size was the reason for that change, seems strange otherwise.)
Quote
Sir Howard Stringer, chief executive of Sony, on Christmas sales of the PS3:
"It's a little fortuitous that the Wii is running out of hardware."