ROM Hack SeiSaboten: Sword of Mana editor

cearp

瓜老外
OP
Developer
Joined
May 26, 2008
Messages
8,732
Trophies
2
XP
8,542
Country
Tuvalu
Hi guys, here's a rom editor I made for this game.
It took loads and loads of work, and took some of my first reverse engineering of asm code.
I want to write an article on here/my website about it, really - I spent ages on this.

dudbear-message3x.png


Some people know that the Chocobo makes a cameo appearance in this game: once you complete the game, you see it at the very end.
But I don't think anyone knows (not even TCRF?) that it's an actual enemy and with some minor hacking, can be added to the regular monsters in the game!
chocobo_book3x.png

chocobo3x.png


My tool can be used to translate the game, randomize, or just tweak some values to make it more balanced.
It's still not perfectly finished or functional, but definitely usable enough for someone to have fun with.
Of course, in time I will improve it and fix some things.

SeiSaboten0.6.png


https://github.com/llakssz/SeiSaboten

PS. One internet point for whoever can explain the name of the project (SeiSaboten) and tell me why it's slightly humorous.
 
Last edited by cearp,

cearp

瓜老外
OP
Developer
Joined
May 26, 2008
Messages
8,732
Trophies
2
XP
8,542
Country
Tuvalu
SeiSaboten -> Sex Cactus? :P
I don't think I need to explain the humor there, lol. Is there a romantic cactus in the game or something? Never played it ;p

edit: does it have something to do with this character?
https://mana.fandom.com/wiki/Li'l_Cactus
eh not too far off :) the Japanese name is Seiken Densetsu (Legend of the Holy Sword/Sacred Sword) - in this game there's a really random cactus house that grows on demand when you want to enter, to forge items.
SeiSaboten = Holy Cactus :D
 
  • Like
Reactions: raxadian and zoogie
D

Deleted User

Guest
eh not too far off :) the Japanese name is Seiken Densetsu (Legend of the Holy Sword/Sacred Sword) - in this game there's a really random cactus house that grows on demand when you want to enter, to forge items.
SeiSaboten = Holy Cactus :D
Do you think there is a way to reduce the slowdown? The game has some issues and I was wondering if this is because of inefficient programming.
 

cearp

瓜老外
OP
Developer
Joined
May 26, 2008
Messages
8,732
Trophies
2
XP
8,542
Country
Tuvalu
Do you think there is a way to reduce the slowdown? The game has some issues and I was wondering if this is because of inefficient programming.
i never really remembered that abot the game, but when playing on a flash cart like 2 years ago, i notice the music would slow down a little bit when you open the menu.
i tried on my real cart and noticed the same thing! so yeah... i guess it's possible that that lag could be reduced, but i don't have any ideas how to do it myself. i remember a hack for some game (snes i think) where a hacker did remove the lag that appered in that game's ring menu.

i certainly have made the game lag when adding 'too many' enemies to an area, and it has to process them all at once. it would be cool if that limit was removed but yeah, it is only a gba after all.

but speaking of asm hacks... i have made a pretty cool one myself for this game, just not shared it online.
it's not 100% perfect, but it seems to work pretty well. it's a bgm select hack, so you can change the current playing song in the background, or, go back to what 'should' be playing.
i wanted to add text, to show which track number is currently playing, but never made it that far. i guess that's why i never released it.
i should do!
 
  • Like
Reactions: Deleted User
D

Deleted User

Guest
i never really remembered that abot the game, but when playing on a flash cart like 2 years ago, i notice the music would slow down a little bit when you open the menu.
i tried on my real cart and noticed the same thing! so yeah... i guess it's possible that that lag could be reduced, but i don't have any ideas how to do it myself. i remember a hack for some game (snes i think) where a hacker did remove the lag that appered in that game's ring menu.

i certainly have made the game lag when adding 'too many' enemies to an area, and it has to process them all at once. it would be cool if that limit was removed but yeah, it is only a gba after all.

but speaking of asm hacks... i have made a pretty cool one myself for this game, just not shared it online.
it's not 100% perfect, but it seems to work pretty well. it's a bgm select hack, so you can change the current playing song in the background, or, go back to what 'should' be playing.
i wanted to add text, to show which track number is currently playing, but never made it that far. i guess that's why i never released it.
i should do!
Track selection is a great idea! Seiken Densetsu 3 has something similiar.
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,348
Country
United Kingdom
Was having trouble loading this under linux.
Grabbed a zip from github, stuck it in a directory, renamed main.pyw to main.py because I wanted to.
Was getting encoding errors at various points (the smiley in the comments being the first thing it seems)
Chucked a # coding=utf-8 at the start and it opened up.

Tried loading a ROM and
Code:
python3 main.py
Traceback (most recent call last):
  File "main.py", line 259, in openFileNameDialog
    rom_code = (globals.my_file[0xAC:0xB0]).decode('ansi')
LookupError: unknown encoding: ansi
Aborted
That was obviously python3 (and same for 3.7), 2 and 1 fail at a different point but I am not sure about what goes for the version differences these days.

Changed ansi for utf-8 because I am a cowboy and roll that way and it loaded, and loaded aspects of the ROM. Didn't try saving at this point.

Screenshot_2020-01-23_20-07-57.png


Anyway portal post incoming.
 

cearp

瓜老外
OP
Developer
Joined
May 26, 2008
Messages
8,732
Trophies
2
XP
8,542
Country
Tuvalu
Was having trouble loading this under linux.
Grabbed a zip from github, stuck it in a directory, renamed main.pyw to main.py because I wanted to.
Was getting encoding errors at various points (the smiley in the comments being the first thing it seems)
Chucked a # coding=utf-8 at the start and it opened up.

Tried loading a ROM and
Code:
python3 main.py
Traceback (most recent call last):
  File "main.py", line 259, in openFileNameDialog
    rom_code = (globals.my_file[0xAC:0xB0]).decode('ansi')
LookupError: unknown encoding: ansi
Aborted
That was obviously python3 (and same for 3.7), 2 and 1 fail at a different point but I am not sure about what goes for the version differences these days.

Changed ansi for utf-8 because I am a cowboy and roll that way and it loaded, and loaded aspects of the ROM. Didn't try saving at this point.

View attachment 194126

Anyway portal post incoming.
Oh yeah certainly Python 3, and 3.7 I was using, I'll include those utf8 encoding header/macro/whatever Python calls at the top.
Yes I think I should have used 'ascii' for the encoding decoded, my mistake. ('ascii' is the default too, so I didn't have to pass anything really)
Nice to hear you got it working though, and thanks for showing what it looks like on your *nix - I'll expand the UI a big so it looks better, unless there's some better way I should do it.
This was my first time using PyQt, I've never used Qt before so things might look a bit ugly for people who know what they are doing.

This isn't a fully finished product, it still required work but yeah it certainly is usable in it's current form (or minor edits for you!), to make some fun changes to the ROM.
Very cool this will be on the portal - thank you! Honored.

Most of the work went in to reverse engineering the asm that stores the enemy stats, there are still unused values that I don't know exactly the purpose of.
And a bunch more hours were spent documenting all the kanji in the game, to support the Japanese text in the Japanese game, more than 1000 kanji I had to copy out. I did skip some, when I wasn't too sure since I wasn't looking at them in context, and the font isn't the clearest (since gba)

I used the handwriting recognition built into Windows, on my Surface Pro (not an advert, but yeah I really do like this thing!)
Below is an image of me doing the first kanji. After around 3 long sessions, I had done virtually all of them. (The (alomost )completed excel file is in my github repo)
kanji_setup.jpg
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,348
Country
United Kingdom
Portal post made
https://gbatemp.net/threads/gba-rom-editor-seisaboten-editor-for-sword-of-mana.556874/
Did also mirror it on the download section just in case github decides to throw a wobbly at some point (it has been years of them having a disassembly of pokemon on there so I am not predicting much there, however who know what the futures holds and SquareEnix have occasionally been known to have spell of idiocy), if you want your own download on the download section say so and I will lose that.

If you are worried about pretty UI that is probably more my OS setup than your choices. I have XFCE and generally think UIs that look like Windows 2000 are where it is (if it can't be as beige as the computers of that era I don't want to know) at so most things reflect that unless they take the time to hardcode their own. Probably should work on that for screenshots in the future.

OCR/handwriting input (hope you got the stroke order right) as a way of decoding Kanji. We have talked about it for years (I think we were all still using njstar and jwpce), and indeed crystaltile2 even claims some support for it, but it is a first that I can recall seeing it used practically.
That said unless a game uses a known encoding/ordering I have yet to find a useful "quick" way of listing kanji for a game so it is just one of those things that takes hours either way.
 
  • Like
Reactions: cearp

cearp

瓜老外
OP
Developer
Joined
May 26, 2008
Messages
8,732
Trophies
2
XP
8,542
Country
Tuvalu
OCR/handwriting input (hope you got the stroke order right) as a way of decoding Kanji. We have talked about it for years (I think we were all still using njstar and jwpce), and indeed crystaltile2 even claims some support for it, but it is a first that I can recall seeing it used practically.
That said unless a game uses a known encoding/ordering I have yet to find a useful "quick" way of listing kanji for a game so it is just one of those things that takes hours either way.
Yeah the kanji was in no logical order from what I could tell. It would be a big slap in the face if I found out now! It took hours :wacko:
The handwriting recognition built in to Windows 10, when using my Surface Pen was amazing honestly, stroke count and order wasn't even really important - which is good because my kanji (well, Japanese in general) is a little rusty so if there was a kanji that was very cramped, I could 'guess' and it would pick it up. If I were to use a kanji dictionary and look up each one that I don't know by radical, it would have taken 10x, 20x longer.
There is a Polish translation of this game already, and a Chinese one - I probably could have asked them for the kanji table because the Chinese translators would have had to have documented it themselves too. But, fun to do it myself.
https://tieba.baidu.com/f?kw=新约圣剑传说

I spent an hour looking into the graphics, to get the sprite of each enemy loaded for when you are editing it, but to no avail.
I'm just a rom editing noob :)

I've got a whole text document with more than 1000 lines of my thoughts and findings on this game, starting with 0 knowledge of the inner workings of the game and rom hacking in general, to getting much better at it.
I should make public too, the only problem is that it's just that, my thoughts, and so includes lots of 'fluff'.
As always, some of the coolest things I find are by trial and error, for example, I found an address in ROM where changing the value will make each map change/room transition act as if you are in a dream/the past, the screen going all wavy etc.
As you can tell I have a lot to say/write about it, I'll make a write up and post it on my website, and blog here!
 
Last edited by cearp,
  • Like
Reactions: DS1

cearp

瓜老外
OP
Developer
Joined
May 26, 2008
Messages
8,732
Trophies
2
XP
8,542
Country
Tuvalu
I am quite sure you didn't have Chocobos on the Gameboy version...
In the original you could ride one, but yeah not an enemy from what I remember.
In this GBA game, like I say in my first post, there is the complete enemy data for it in the game, but it's never used, apart from at the VERY end of the game as a little easter egg, apparently you need to wait at the 'fin' screen for a little while? but it's nothing you can interact with.
(if you want to see, look at a playthrough on youtube I guess, or scroll to the bottom of this page - http://www.coronajumper.com/2019/08/sword-of-mana-finale-evoke.html of course, it will contain spoilers!)
 
  • Like
Reactions: raxadian

raxadian

Well-Known Member
Member
Joined
Nov 10, 2018
Messages
4,395
Trophies
1
Age
41
XP
4,604
Country
Argentina
In the original you could ride one, but yeah not an enemy from what I remember.
In this GBA game, like I say in my first post, there is the complete enemy data for it in the game, but it's never used, apart from at the VERY end of the game as a little easter egg, apparently you need to wait at the 'fin' screen for a little while? but it's nothing you can interact with.
(if you want to see, look at a playthrough on youtube I guess, or scroll to the bottom of this page - http://www.coronajumper.com/2019/08/sword-of-mana-finale-evoke.html of course, it will contain spoilers!)

That's because Chocobo are not supposed to be part of the mana series. The one you can ride of the Gameboy game is supposed to just be a cameo.

Does the USA rom work only in a particular emulator or something?

I am a fan of the Gameboy version but I wanna try this one.
 
Last edited by raxadian,

akaishi

Active Member
Newcomer
Joined
Dec 17, 2018
Messages
26
Trophies
0
Age
27
Location
Portugal
XP
252
Country
Brazil
Very amazing your tool!
I'm happy to see more rom hacking tools being launched here. It's useful to revitalize an old game.
I like this one. I played a fan game based on this many years ago, so it's very nostalgic for me.

I would like to see one blogpost that you explain your reverse engineering process to create this tool and coding.

Also, I think that you could add on README a section explaining exactly what the user should to do to run it, such as Python version, packages to install and command line to run.
 
  • Like
Reactions: cearp

cearp

瓜老外
OP
Developer
Joined
May 26, 2008
Messages
8,732
Trophies
2
XP
8,542
Country
Tuvalu
Also, I think that you could add on README a section explaining exactly what the user should to do to run it, such as Python version, packages to install and command line to run.
Thank you for your feedback - your web tool is very cool, more accessible than this project :)
I'm more comfortable in python!
I will remember to play klonoa one day.

Certainly I will document more about my program, but it doesn't need much - all it requires is python (I used 3.7.5) and PyQt (5.13.1)
 

DS1

Tired
Member
Joined
Feb 18, 2009
Messages
1,600
Trophies
1
Location
In the here and now, baby
XP
2,557
Country
United States
Yeah the kanji was in no logical order from what I could tell. It would be a big slap in the face if I found out now! It took hours :wacko:
The handwriting recognition built in to Windows 10, when using my Surface Pen was amazing honestly, stroke count and order wasn't even really important - which is good because my kanji (well, Japanese in general) is a little rusty so if there was a kanji that was very cramped, I could 'guess' and it would pick it up. If I were to use a kanji dictionary and look up each one that I don't know by radical, it would have taken 10x, 20x longer.
There is a Polish translation of this game already, and a Chinese one - I probably could have asked them for the kanji table because the Chinese translators would have had to have documented it themselves too. But, fun to do it myself.
https://tieba.baidu.com/f?kw=新约圣剑传说

I spent an hour looking into the graphics, to get the sprite of each enemy loaded for when you are editing it, but to no avail.
I'm just a rom editing noob :)

I've got a whole text document with more than 1000 lines of my thoughts and findings on this game, starting with 0 knowledge of the inner workings of the game and rom hacking in general, to getting much better at it.
I should make public too, the only problem is that it's just that, my thoughts, and so includes lots of 'fluff'.
As always, some of the coolest things I find are by trial and error, for example, I found an address in ROM where changing the value will make each map change/room transition act as if you are in a dream/the past, the screen going all wavy etc.
As you can tell I have a lot to say/write about it, I'll make a write up and post it on my website, and blog here!

This is pretty fascinating to me, and I'd love to read your notes, if I weren't so far removed from the days rom-hacking. Thank you for giving some insight into how you learned through this project!
 
  • Like
Reactions: cearp

kumandrake

Member
Newcomer
Joined
Jan 31, 2020
Messages
7
Trophies
0
Age
36
XP
86
Country
Argentina
sorry to bother you people , but could someone make an exe of this editor for me ? i tried making one myself but i couldnt ( im super noob), i downloaded and installed python but i cant get seisanoten to work, it just wont load

--------------------- MERGED ---------------------------

im sorry to bother you people but could you please make an EXE file of this editor for me ? i tried making it myself but i cant ( im a noob) , i downloaded and isnatlled python but i cant get the editor to run :( . Help plese!!! and thanks in advance
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    SylverReZ @ SylverReZ: https://www.youtube.com/shorts/T78NsMwZOA0