Little Master English Translation 1.00 -------------------- ©2018 by Zatos Hacks Written 6-5-2018 -------------------- I am very pleased to finally release the English translation of Little Master, completed 17 years after the project started! ------------------ Applying the Patch ------------------ The ROM you'll need (both filenames are the same version): Little Master (J).gb Little Master - Raikuban no Densetsu (Japan).gb CRC32: 31cd9670 MD5: de95d425f6a2836960f4ee2a9aa2f6f7 SHA-1: 7c83b3c6cd9571c422e66e64e522a0416fa477b2 I've included both IPS and BPS patches. Use LunarIPS or beat to patch, unless you prefer another. ------------------- About Little Master ------------------- Welcome to the Kingdom of Rainac. Recently the Kingdom has been experiencing terrible tragedies since the mysterious Demon King Gezagain has appeared and started conquering the country. My chosen knight, Liam Richban, we need you to fight off this evil and return peace to our kingdom. Please help us! Little Master is the first game in the trilogy of the Little Master series. This game and the series as a whole are quite terrific experiences! The game is a strategy RPG which features great gameplay and some great music. There's variety in the levels so the game doesn't get repetitive. You can also find new troops in certain scenarios (i.e. levels) which you can use with the unity system the game has. You can combine troops to form more powerful ones! I don't believe I'm being biased, but I truly believe this game (and Little Master 2) are some of the best games ever made for the Game Boy. That is one of the main reasons I wanted to do this project. Not only to play for myself, but I also wanted to drum up some interest this game and show others how great this game series is! Hopefully someday we can get a full translation of Little Master 3 (I've already started work on Little Master 2)! --------------------------------- About Me & History of the Project --------------------------------- Project Started 2001 Project Halted 2001 Project Completed 2018 I first entered the scene quite literally, on the first day of the millenium (not technically I guess, since it was 2000 and the millenium technically started in 2001). At that time, I launched one of the first sites for news on ROM hack translations. I was a big fan of being able to play many great Japanese games in English, so I wanted to follow all the WIP translations. You can view it here to check out some history: https://bit.ly/2kPBx18 While comprehensive, the site was short-lived. Later when a new site called Whirlpool arrived, I joined the staff there. During this same time I started working on some projects of my own. While Little Master really was the first game I wanted to do, I ended up doing a couple PC Engine games - Photograph/Gekisha Boy and Aoi/Blue Blink. These were easier projects that eased me into doing ROM hacking. After those, I had the skills I felt I needed to work on Little Master. At that time I had ended up getting the table made, the text dumped, I had translators who finished translating it, and I had condensed and edited the scripts by myself. All that was left to do was reinsert! But about that same time, I made some very immature decisions in a lot of the popular ROM hacking site forums at the time, including Whirlpool. This got me removed from staff, as well as probably pissing some folks off. Ultimately, I ended up distancing myself from the scene. I also grew discouraged with the project after making some mistakes and running into some issues. So the project died, and I left the scene. You can view my other old site with my ROM hacking projects, including this one (apparently I wayyy overestimated or exaggerated about my progress with inserting text): https://bit.ly/2kLzISW Honestly, I don't think anybody even remembers about what happened with me back then, and I don't entirely remember exactly what things I did. But for everyone around at that time, I really do apologize for my behavior. I hope it can stay in the past, I'm very much a different person now than I was back then. I did end up poking my head in on Romhacking.net (RHDN) a couple times several years later, but under the alias CapnCrunch. I created the account to post my project files for Little Master. Other than a few interactions, my time spent there was brief. I still wasn't sure how people felt about what had happened back in 2001. Fast forward to 2018 though, and my brother (Fyr) showed great interest in wanting to learn ROM hacking. Through his persistence, I ended up walking him through Space Hunter, and because it didn't require a ton of work, we ended up releasing a translation patch for it. If it wasn't for that, I never would have touched ROM hacking again. If you enjoy the game as much as I have, you also have him to thank! ------------------------------------- About the Patch & Hacking Experiences ------------------------------------- I would say as a hacker, I'm probably more on the inexperienced side. Before Little Master, my completed projects were smaller and didn't require as much to complete. I definitely learned a lot from this experience, both now and 17 years ago. I wanted to have some info here that might be helpful for anyone that might have an interest in learning ROM hacking. Experienced ROM hackers may also be interested in learning about what sorts of things I encountered while working on it. When I started this project back up again, I didn't have a copy of work I did on the ROM. I still had all the project files. However, this was totally okay, because I think even if I still had that work, I would have started the hacking from scratch anyway. I made errors back then, and who knows what I might have messed up. One thing I did change from the original work that I did was use a different font. I'm pretty sure the original font was done by SpoonyBard (not specifically for Little Master I don't believe). I actually ended up liking one of his other fonts that I downloaded off RHDN, and I thought it fit better with the somewhat light hearted nature of this game. One thing that was really great about working on this game, was the generous amount of extra space for text I had to work with, which is not so common with many Japanese games/ROMs. The game had a few reasons for this. In much of the text, they used the Japanese style quotes, which is not uncommon for Japanese games. However, it was not necessary to use these until about 2/3 into the game when story scenes transitioned from being monologues into dialogues. The devs also left blank spaces on all the other lines so as not to render any text in the same columns as the quotes. Another benefit for me was that they also used a separate value for diacritical marks: the dakuten/ten-ten and handakuten/maru. These are the quotation mark and circle looking shapes that appear on some Japanese characters. Some games use alternate values for the characters when these appear, but because this game uses an extra value, every time one appeared was extra bonus space for me (I'm not sure which method is more commonly used, though). When I was replacing text though, this meant I couldn't just overwrite everything with English and still have it fit. Those diacritical marks are rendered above the character they follow, so text overflows were possible if I didn't adjust these. I also had to make sure to keep some in there (they are invisible) so that it wouldn't affect text alignment in certain areas. Another area I gained a little bit of space was with their Katakana alphabet. The game actually used a control code to swap between the Hiragana and Katakana alphabets (this means that there were actually two characters sharing one value for the table, and the control code was used to switch between them). I'm told this isn't very common. Because my font replaced the Hiragana alphabet, I didn't need to use this control code except in a couple very limited situations. The Katakana in this game was used almost primarily for character names and troop types. Although in those instances, the game was actually set to default to the Katakana alphabet instead of Hiragana. So this one didn't glean me as much space, but there were still some spots that it did. I'm going to talk again about that control code later. One other area they were generous with was character names/types. They actually gave extra space on all of them, as if they gave themselves more just in case they needed it. Up to 6 characters per name (which in this case was plenty) and up to 9 characters per troop type. Altogether, all this extra space allowed me to put together what I feel is close to a professional/official quality product. There are still a few minor abbreviations, which is amazing to me to have so little. This also allowed for better quality text, as I found that there wasn't really much lost in translation. The other control codes I encountered while working on this game were used for x,y coordinates. I'm told this is pretty common on SNES games, but pretty rare for a Game Boy game to be using them. Anyway, most of the non-story text (battles, menus, etc) used these codes. It was actually nice in some instances, since I was better able to align text to make the game look as nice as possible. Alright and now back to the alphabet swap control code. I wanted to bring this up because I've been trying to remember how I dealt with this when I started this project. Maybe there is a way of doing this that I am not aware of, but you can't build a table to account for this control code, as multiple characters will share the same value. So dumping the scripts is problematic, as everytime that control code appears, it would have to switch to a different table. So I'm not sure how I got correctly translated scripts back. My best guess at this point is that I might have just manually copied those portions in Katakana into the script dump. This wouldn't have been too bad since as I mentioned, it wasn't used a tremendous amount. I do bring it up since it is something I'll have to figure out for working on Little Master 2 - since it still has this same "feature." I didn't have to this time since the work had already been done years ago. There's some other things I encountered in this game that I'm sure experienced ROM hackers are very familiar with. Just because it seems like you've figured out how things are programmed in the ROM, doesn't mean that it's always going to work the same way. There are no rules. You never know when one of the original devs did some weird hacky stuff in a single instance (just like any programming really, sometimes you have bad devs or just sometimes some small things were done in a hacky way for who knows what reason). What I found was that in one instance, there was a hard-coded location pointer that worked differently from all the others. Normally, I was able to move around line breaks and section breaks, except in this one instance. The ROM was expecting to find a section break at a specific location, otherwise it just blew past it and went to the next one. The other weird hacky thing I found was for the unit type text encoding. Each unit is either a land/air/sea unit. The text for these were stored completely different from everything else. The characters for "land" were actually stored in 2 different places, one for in the battle map screen, and the other for on the troop report screen. The ones for "air" and "sea" were only stored once instead of twice, but were near the beginning of the ROM, far away from any of the other text. I wasn't able to find them on my own because it was done completely differently, with the 2 byte values having a control code in between them. Seemingly a completely random one-off deal with the unit types text. Expect to encounter weird. Another tip for beginners would also be to never expect all text is going to be encoded the same way. For instance, in this ROM, all the character names, types, scenario names, in battle text and story scene text were stored in different ways. For example, character names were all allocated up to 6 character spaces (values) and used a unique control code that was basically just a "skip" character for any unused characters in the 6 length string. The story text was allocated a certain amount of characters, and in this instance it just used line breaks, section breaks and an end code, which I was free to move around at will, except for exceeding the original end point. Because a lot of control codes were used, I actually ended up replacing all the text in the game straight from the hex editor. I'm not sure how commonplace that is these days in ROM hacking, but I know it was much more prevalent back in the early days. I know I actually could have reinserted the story scene scripts since those weren't so precise, but I just ended up doing it in the hex editor. Everything else was just so location specific it didn't seem like a importing a script file would have worked well. Some things I did want to point out for any beginners, is my usage of WindHex32. I found that by adding my control codes to my table, helped immensely on keeping track of where I was editing text. Part of the table looks like this: 00=(END) FF=(sect) 0D=(line) 01=<01> WindHex32 seems to change the color of the text to yellow when you load in a table like this where there's more than one character listed for a value. This makes it much easier to keep track of text and to make sure you don't overwrite any control codes you don't intend to. This might not work for all ROMs as they could be coded in a different way where you'll have to watch out for random-seeming values. I have no idea how common that is, but this definitely helped a lot, so give it a try! One last thing I wanted to talk about with this game was the character names. I really wanted to preserve these as best I could. The text allows for a total of 8 characters per name before text overflows and redraw issues start occurring. I am a big fan of the cute little names and I had some people look at the ASM of the game to see what could be done to preserve these. Unfortunately it looks like it may take some work to pull this off. So unfortunately I had to replace about 75% of the names because they were too long. Simple abbreviations wouldn't really work well, so I opted instead for names that stayed within the spirit of the game. To be clear, the main characters names are already short enough, so theirs didn't need to be changed. If anyone is interested in doing an ASM hack to restore the full names, please contact me as I would love to see this happen. For now, I think my new names will still have that cute, whimsical nature about them, to try and preserve that spirit. All in all, this was a really cool project. It was great to work on a really fun game. What's best is just being able to wrap up this project when a couple months ago was something that never would have been in the cards. I hope you guys enjoy it! --------- Emulators --------- I recommend using VisualBoyAdvance M for this game. It's one of or maybe even the only emulator with proper Super Game Boy support. While Little Master wasn't a game with official support (with enhanced palettes), it still uses the built in palettes for the Super Game Boy. It actually makes this game look pretty good. It's also funny that my original notes for this 17 years ago stated that the best emulators from that time had a few small issues running this game. ----------- Tips / Info ----------- This is a makeshift manual to explain how parts of this game work. Selecting Heroes ---------------- Before you begin the mission, you get to select the troops that will go into battle. The one you must always take is Liam Richban, the main character. However, if you don't take a troop, they can't get any experience from the battle. You will also notice some stats for each character. You will see their level, experience, and health next to their name. On the bottom you will also see what type of character they are (i.e. hero, minotaur, chicken, etc.), their attack power, their defense power, what type of unit they are (Land, Air or Sea), and how many movement points the character has. When you are done selecting which troops you want to join the battle, select Liam to begin the battle. Controls -------- Select - Not used Start - Not used A btn - Select unit to move B btn - Options (Report/Retreat/End/Save) screen When you select units, you will see dots appear - that is where they can move. You can also select your character to have them stay in the same spot. To attack an enemy, you must move to a spot directly next to an enemy - i.e. up/down/left/right, -not- diagonal. However, if a character has projectile attacks, they can attack from afar, diagonal or up to 1 tile away between your character and the enemy. You can tell if the character has projectile attacks, by looking below their defense points. If they have a projectile attack, you should see a black circle right below their defense. The battle scenes are automatic and based on the stats of each character. *** You can hold the A button to make battles speed up Pressing the B Button accesses the menu. Here are what each of the menu functions do: Report - Gives a troop report Retreat - Quits the current scenario End - Ends your turn Save - Save the game Saving the Game --------------- Saving the game only allows you to continue at the last scenario you have reached. So if you kill half the enemies on scenario 1 and then save... you will have to replay the scenario over again. It would be better to save right when you start a new scenario... or just use savestates. Land, Air and Sea ----------------- Each character travels by a different method. When you select the character in battle, you will notice in their information that it will either have a person, a fish or a bird. Basically those represent either land, air or sea type units. I actually borrowed these graphics from Little Master 2, as in this game it was originally just a two byte string that spells them out. Each type will obviously be able to move differently. Terrain Effects --------------- You will see a box labeled 'LandEffect' (shortened for text limitations) every time you attack an enemy. This box refers to the landscape that each character is in. Depending on what type of terrain you are on, it alters the statistics of each attack. For instance, forest squares are listed as 30%, this means that whoever stands on a forest square, will have all attacks reduced by 30%. Try each square for the results. However, generally squares with greater protection are also harder to traverse - resulting in the character not being able to move as many spaces. Healing Spots ------------- On the map, you will probably see a 6 pointed star inside of a circle. These are healing spots. It is a source of a god's power whom grants refreshment by restoring lost hit points. Be careful, the enemy will use these also... and it will be destroyed if a battle occurs while you or the enemy is on it (bosses might be immune to this, so be careful!). Also, if your characters do not perform any actions during their turn, they will gain back a little bit of HP. Houses/Misc Spots ----------------- Sometimes there will be certain places you can go on the map. For instance, in Scenario 1, you will find a mouse waiting for you in the house, who will join your party. Look around in all scenarios to see what you can find. Temples/Unities --------------- First seen in scenario 2, you will find temples that will allow you to combine troops into a new soldier. Just move both troops on the temple to initiate a combination. Not all combinations work, but the game will let you know when it's not possible, so you can't lose troops from failed combos. I'm aware that there are powerful unities if you keep experimenting with all different combinations. Hero Stats and Gaining Levels ----------------------------- There's three stat categories for each hero. Strength/Attack denoted by a sword. Defense, denoted by a shield. And life, denoted by a heart. Each time you gain a level, your stats may go up. The screen will show you using icons what the values of attack, defense, and life are with your new level. For instance it should look like this " 21, 6, 54 up!" This means that these are now what values you have for that character (not that your character went up 21 attack, for instance). You can also replay older scenarios in this game if you are having a hard time and need to level up your characters. It's also possible to re-recruit troops again, such as with the mouse in the first scenario (and giving you another character to use for unities). Winning the Battle ------------------ To win each battle, you must meet certain conditions. Most of the time, this is generally just to defeat the boss, who is marked with a black skull icon. Defeating this character will result in winning the battle, even if you didn't defeat all of the enemies. This might be a bad idea, since defeating all the enemies will give you more experience. ------- Credits ------- Hacking: Zatos Translators: Alexander Beetle (2001) Tomato (2001) Danke (large number of retranslations) ASM: Danke (looked up unit type text locations) Font: SpoonyBard HUGE Thanks: Fyr --- While not a contributor to this project, it wouldn't have happened without him. He's my brother and was persistent in getting me to teach him ROM hacking. We worked on Space Hunter together and ended up finishing it. He inspired me to finally finish this project! ----------------------- Special Thanks: 2001 ----------------------- Gideon Zhi (BIG Thanks!) Akimaru Taskforce Musashi (aka Paragon) Mudd Zero Six Feet Under Akujin Dave (of Gaijin) Bongo` SD Tetsuo spSPiff David Haeleth ----------------------- 2018 ----------------------- Everyone on RHDN & Discord YasaSheep (retranslations) Bunkai (retranslations) Buckwheat (retranslations) Aerdan (retranslations) Gideon Zhi (retranslations) mz & danke (attempting to solve names issue with ASM) I'd be interested to know how many of the people from 2001 are still around! ------------ Known Issues ------------ There are no known issues with my patch, but I do not know how it will run on actual hardware. I would like to point out an issue with the game that is present in the original game, overlooked by the developers. At the end of the game, there is a level with warp panels. The AI here can very easily end up blocking you from being able to beat the level by blocking the spaces your characters are transported to. I've found that once they move there, they don't want to move anymore. Luckily it's at the very beginning, and if you try to make it to the 3rd "islands" within 2 turns, you'll probably be fine. The good thing is there is no penalty for starting the level over in case you need to do so. Also, not really an issue, but it's interesting in the game that once you reach the second half of the map, you aren't able to go back and replay any of the levels on the second half. The first half is still totally accessible. ---- Bugs ---- If you find any bugs in the translation, please report them on Romhacking.net (forum account: CapnCrunch) and I will fix them ASAP.