|
||||||
Views:
800,597 |
Sections: Documents
| Utilities
| ROM Hacks
| Games
| Translations
| Homebrew
| Fonts
| Community
Site: Main | Rules/FAQ | Discord | Memberlist | Latest posts | Stats | Ranks | Online users |
12-03-24 05:21 PM |
||||
Guest: Register | Login |
Main - Posts by voliol |
voliol |
| ||
Goomba Level: 7 Posts: 1/20 EXP: 920 Next: 528 Since: 08-19-24 Last post: 30 days Last view: 13 days |
Hi John, and everyone else! Am also new to this site, and this seemed like a place for greetings. Like, there surely is a greeting thread I just haven't identified yet, but why not say hi here too? ____________________ Developer of the Universal Pokémon Randomizer FVX, dabbling Dragon Quest VI hacker |
voliol |
| ||
Goomba Level: 7 Posts: 2/20 EXP: 920 Next: 528 Since: 08-19-24 Last post: 30 days Last view: 13 days |
Hello everybody! I'm Voliol (they/them), and most of what I do ROM-hacking-wise is in one of those Pokémon randomizers, the UPR FVX. Though recently I've messed around a bunch with Dragon Quest VI for the Super Famicom too, am hoping to have something come out of that.
These worlds are rather different. The UPR is a binary hacking tool in a decomp/disassembly world, sure, but it is also able to lean on this and the great size of the Pokémon community quite a bit. The Dragon Quest community isn't tiny either, but VI is one of if not the most forgotten main series game. As far as I can tell, no one has done any real hacking of it since the translation patch was finished 20+ years ago. And that doesn't come with documentation. (big kudos to NoPrgress and everyone else involved back then, still) Regarding this site, it seems cool! Granted when I was first linked to it it just appeared like a forum, and I was rather disappointed thinking every single release would only be represented as a forum thread, haha ^^. But then clicking around there's this whole, and there's a whole database, seemingly feature-complete relative RHDN! Plus it is by far the prettiest of the alternatives I've seen. Please, let not the future of ROM hacking be one of those very skeevy sites you download pre-patched Pokémon hacks from. ____________________ Developer of the Universal Pokémon Randomizer FVX, dabbling Dragon Quest VI hacker |
voliol |
| ||
Goomba Level: 7 Posts: 3/20 EXP: 920 Next: 528 Since: 08-19-24 Last post: 30 days Last view: 13 days |
Yup, a ROM hackers of sorts. The Universal Pokémon Randomizer touches on most Nintendo handhelds, so I got some experience with the OG GameBoy to the NDS. Plus the SNES/Super Famicom since I picked up Dragon Quest VI. Haven't finished a ROM hack of my own though, so am more of a tool person (yet).
How about you? You seem recognized by people; a veteran (is that the right word here?) from the RHDN forums? ____________________ Developer of the Universal Pokémon Randomizer FVX, dabbling Dragon Quest VI hacker |
voliol |
| ||
Goomba Level: 7 Posts: 4/20 EXP: 920 Next: 528 Since: 08-19-24 Last post: 30 days Last view: 13 days |
Well, just about anything, cobbling together some tool that I may or may not use for a demo hack. Currently some data has been found, such as the monster/item IDs and some of the strings, and the grid(s) for the overworld encounters (did you know near where you catch the wild horse there are 2 tiles with high-level monsters? Like the infamous FF cape). But these aren't really usable yet. Though the strings are identified, these can't really be edited until I figure out how the game points to them. Similarly the encounter grid(s) refer to encounter sets by byte, but I've either not found the encounter sets themselves, or they are encrypted/in some annoying data format.
So what's the plan? Well, to get enough to make an encounter/monster stat/item stat editor, or whatever easier-to-modify data type is found on the way. I also got some grander ideas, but grander is the word there, and after the first tool/demo mod I imagine that will be it for DQ6 for a while. Got other projects to juggle as well. ____________________ Developer of the Universal Pokémon Randomizer FVX, dabbling Dragon Quest VI hacker |
voliol |
| ||
Goomba Level: 7 Posts: 5/20 EXP: 920 Next: 528 Since: 08-19-24 Last post: 30 days Last view: 13 days |
The minipics are very cute! Kind of surprised though, that there doesn't seem to be a mode to use them instead of avatars, so that forum posts aren't bloated by as much empty space/save bandwidth even more. Expected that to be their use when I first encountered the option to upload one. ____________________ Developer of the Universal Pokémon Randomizer FVX, dabbling Dragon Quest VI hacker |
voliol |
| ||
Goomba Level: 7 Posts: 6/20 EXP: 920 Next: 528 Since: 08-19-24 Last post: 30 days Last view: 13 days |
Huh, did not know those had been omitted. My only real experience with the game is playing through the DS version 2-ish times. Very formative, but not enough to know of any non-obvious quirks even in that version of the game. And for quirks only found in the SNES version, the only ones I'll know of is the ones I rediscover myself.
Thanks for the offer! Will keep it in mind EDIT: made a thread for it, if you're interested: https://neoromhacking.net/thread.php?id=83 ____________________ Developer of the Universal Pokémon Randomizer FVX, dabbling Dragon Quest VI hacker |
voliol |
| ||
Goomba Level: 7 Posts: 7/20 EXP: 920 Next: 528 Since: 08-19-24 Last post: 30 days Last view: 13 days |
Due to complications (don't remember the details), RHDN is being discontinued. Thankfully, its database has been archived/put up for use, so various sites are scrambling to become the successor. This site is one of those, and imho the nicest looking of the contenders. ____________________ Developer of the Universal Pokémon Randomizer FVX, dabbling Dragon Quest VI hacker |
voliol |
| ||
Goomba Level: 7 Posts: 8/20 EXP: 920 Next: 528 Since: 08-19-24 Last post: 30 days Last view: 13 days |
Hello everyone! This is a thread for my findings while hacking Dragon Quest VI.
Dragon Quest VI is, as the name suggests, the sixth entry in the main Dragon Quest series. This game for the Super Famicom was never released in the west, and perhaps because of this it's ill-explored by hackers. There is a translation patch made by NoPrgress from 2001, but they seem to have left the hacking community about as long ago, and left few notes on how the game works (i.e. all I could find is a TBL file). So what is the goal here, with this thread, with my current hacking? Well, in some way I'm just playing around, seeing what I can find as I go. This playing around leads to data structures of interest though, quite naturally, so it would be fun to do something with them; cobble together some simple tool and then make a demo hack with it. Will that tool be for monster data? Strings? Item data? Map editing? I dunno yet, we'll see! (Oh, and I'm hacking the NoPrgress patched version BTW. Much easier, since I don't know Japanese.) --- So what has been found? My personal notes are quite the mess, so an overview will have to do until those are rewritten. Monster and item names were one of the first things to be found. They can be found on Data Crystal. Related to these (i.e. how they were found) are offsets in WRAM for the monsters you're currently battling, as well as the player's inventory (at $2000 and $4043 respectively) At $3B90 in WRAM is the encounter countdown, when it goes below 0 there is a monster encounter. I believe it counts down different amounts depending on floor tile/map, but not sure exactly how. If you freeze WRAM $E-F you can walk through walls. Dunno why, but it's very practical. The overworlds are divided into large tiles to decide which encounters are where. The maps for these starts at $89138 in ROM, and are each 16*16=$100 bytes long. Each byte in these maps refers to a specific encounter set, with low value encounter sets generally corresponding to the early game, and high value to late game areas. E.g. here is the one for the first overworld. "05" is the area around Lifecod/Weaver's Peak:
Dunno how the encounter sets are structured, but everything between 05-73 seems to be valid. Note every set won't be seen on the world maps; dungeons have their own sets. The last valid sets seem to belong to the final dungeon. Strings for battles and other menus, including all item/monster/spell/location/class names, is separate from the story text/dialogue. They can be found starting at $3B8703 in ROM, using the TBL file found here. These strings are variable-length, with $AC as the terminator. Each string appears to come in a group containing 16 or less strings, and references to these strings have the format "0XXY" (or "XY 0X" when in little endian/the ROM), where XX is the string group id, and Y the id within that group. At $165E7 in ROM, are 3 byte long relative offsets, which tells the game where each string group starts. Just recently I found (presumably) the data for all the monsters, by following the name string track. The structure is $2A bytes long and starts at $20154 in ROM. The "(presumably)" is there because the only identified in this struct are the last 2 ones, which refer to the monster's name string. --- Planning to post updates here, as more things are found ____________________ Developer of the Universal Pokémon Randomizer FVX, dabbling Dragon Quest VI hacker |
voliol |
| ||
Goomba Level: 7 Posts: 9/20 EXP: 920 Next: 528 Since: 08-19-24 Last post: 30 days Last view: 13 days |
That's nice to hear. Is there a place to read up on DQ5 findings? Its Datacrystal page was even emptier than DQ6's (read: it doesn't exist) so I figured it was equally if not more unexplored - a shame considering how similar it ought to be to DQ6, as the only main series games on the SNES. If more documentation exists though, or earlier games are indeed similar (which they likely are), it should be of great help.
E.g. if the monster structure is known for DQ5, it probably is the same in DQ6. Or at least there's the priviliege of confirming which parts of the structs line up, instead of having to figure it out from scratch. ____________________ Developer of the Universal Pokémon Randomizer FVX, dabbling Dragon Quest VI hacker |
voliol |
| ||
Goomba Level: 7 Posts: 10/20 EXP: 920 Next: 528 Since: 08-19-24 Last post: 30 days Last view: 13 days |
Any updates on how 1. and 2. are going? No stress though, am only curious ____________________ Developer of the Universal Pokémon Randomizer FVX, dabbling Dragon Quest VI hacker |
voliol |
| ||
Goomba Level: 7 Posts: 11/20 EXP: 920 Next: 528 Since: 08-19-24 Last post: 30 days Last view: 13 days |
Posted by Chicken Knife Thank you, I'll see how it can be of use . Interesting that they changed programming dev, did not know that.
I'd actually prefer for you to go with your original plan . Hacking DQ6 is something I do for fun in a noncommital way. And sharing info and getting to talk about the game is a bonus to that. But if others go into DQ6 (SNES) hacking for the sake of collaborating, notions of dependency and resposibility come into play, and that would break it for me. ____________________ Developer of the Universal Pokémon Randomizer FVX, dabbling Dragon Quest VI hacker |
voliol |
| ||
Goomba Level: 7 Posts: 12/20 EXP: 920 Next: 528 Since: 08-19-24 Last post: 30 days Last view: 13 days |
Hello, I am wondering if there is a way to collapse text/markup, so some of it is hidden until the reader clicks a button? I'm used to forums having this feature, to hide big images/code/blocks of text that most readers of a thread may not be interested in reading/scrolling by, so not having it feels impractical and off. The Bay 12 Forums (which I am most used to, a simple machines deal) uses spoiler tagging for it, but here spoiler tagging instead works like on any modern website, boxing out the text without decreasing its size. Is there some other way to collapse/hide text?
And if there isn't, and it also isn't a planned feature, I assume you couldn't on the RHDN forum either? If so, how did you deal with it (I know there are some veterans here)? Was the standard practice just including images/code etc. unformatted, or linking to external sites like pastebin? Or not including them at all? ____________________ Developer of the Universal Pokémon Randomizer FVX, dabbling Dragon Quest VI hacker |
voliol |
| ||
Goomba Level: 7 Posts: 13/20 EXP: 920 Next: 528 Since: 08-19-24 Last post: 30 days Last view: 13 days |
Huh, html/css in posts, funky stuff.
[Tries to play around with css/html before getting ninja'd by Yuri Bacon, who then points out RT-55J had it working and posted before the playing around even started] Thanks a lot!secret bidoof ____________________ Developer of the Universal Pokémon Randomizer FVX, dabbling Dragon Quest VI hacker |
voliol |
| ||
Goomba Level: 7 Posts: 14/20 EXP: 920 Next: 528 Since: 08-19-24 Last post: 30 days Last view: 13 days |
The real Morrigan Aensland, in your ROM hacking forum? More likely than you think!
Welcome to this corner of the internet, Morrigan! ____________________ Developer of the Universal Pokémon Randomizer FVX, dabbling Dragon Quest VI hacker |
voliol |
| ||||
Goomba Level: 7 Posts: 15/20 EXP: 920 Next: 528 Since: 08-19-24 Last post: 30 days Last view: 13 days |
@Chicken Knife Apology accepted
--- Here's the secrets about the monster data structure that have been found yet: As a recollection, the structure starts at $20154 in ROM with a blank entry representing "none". Then come the monsters in the same order as already recounted on Data Crystal, given $2A bytes each. $00-0B: the even bytes represent possible actions, $42 is a normal attack. the odd bytes are arguments for said actions??? $1B: Unused? $1C: affects initial status? $04, $08 or $0C are used by vanilla monsters - chance of monster being asleep. $00, $10, $20 and $40 are used too, but no idea what they do $1D: something with behavior. When set to $02 spotted slimes seem to always run away $1E: monster image, animations included. See monster image table. $1F: Max MP $20: dropped item $21-22: palette reference $23: Unused? $24-25: Max HP $26-27: EXP points gained from defeating $28-29: name reference in the format 0XXY, where XX is the string group, and Y the id in the string group (note they are in little endian, so in PRG it looks like "XY 0X")
(Click here to show the rest of the monsters. Obvious spoilers for the game, since late-game bosses are revealed by name.)
$1E uses some table for monster images, which gives each monster an image (with animations). Multiple monsters share the same image, being palette swaps. All IDs from $00 to $61 are used, except for $0F which seems to be a broken copy of $0E, and $3C-3F and $41-42 which appear to be the images used by morph enemies. (Click here to show which values are used by which monsters. Obvious spoilers, since late-game enemy names are revealed.)
--- EDIT: Okay, $00-$0B seems to be the monster's possible actions. We can see this if we look at just the even bytes, and compare these to the actions of some early monsters. (These action names are taken from the Dragon Quest wiki/the DS translation, since that's the only place I could readily find them.)
Presumably $42 is the standard attack, and all the others line up some other action. $F7 is fleeing, $FD is "Sultry Dance", etc.. This works out with every action/monster but Tensk, as it has two non-$42-values but only one non-standard attack action. It might be that both $FD and $D2 are some version of "Sultry Dance", or the DS remake removes one of its skills, or the Dragon Quest Wiki is simply wrong. Looking at the way the bytes are laid out, the first 3 and last 3 bytes are often similar, but $F7=fleeing is much more common in the latter three bytes. Maybe these represent moves chosen at low HP? Though I believe I've seen unhurt Furrats flee, so perhaps there's some notion of disadvantage, rather than just low HP. Another thing of note is the final and secret bosses have more entries to them than they have phases. And notably, the only thing that varies between the entries for the same phase, are the bytes between $00-0B (and their name references, but that may very well be a translation error/oversight). These bosses have huge movesets, could it be that the game secretly transforms the mons between turns to allow for movesets larger than 6/3 + 3 at disadvantage? ____________________ Developer of the Universal Pokémon Randomizer FVX, dabbling Dragon Quest VI hacker |
voliol |
| ||
Goomba Level: 7 Posts: 16/20 EXP: 920 Next: 528 Since: 08-19-24 Last post: 30 days Last view: 13 days |
Sometime in the mid to late aughts, my brother downloaded a set of 100 (!) GBA ROMs from Pirate Bay for us to play. This itself was some sort of introduction, since we played them on an emulator, but the real clincher was one of those ROMs being Pokémon Chaos Black.
Chaos Black is a terrible, terrible hack, not only by modern standards but also because of how unstable it is. We couldn't get to Brock even because it would reliably crash before that. But perhaps because of it the originality and amateurness of the game was highlighted - people could make something like this! Modify the existing games to something new and cool! That said, I believe it took a couple of years more and the introduction of Quartz and Snakewood through the general Pokémon community before I gave it a try, but Chaos Black still deserves its position of "first ROM hack encounter". Or maybe it was that "Ducktales" cartridge for GameBoy we had, which in hindsight must have been a bootleg, because that's not Ducktales. Had no idea back then though. ____________________ Developer of the Universal Pokémon Randomizer FVX, dabbling Dragon Quest VI hacker |
voliol |
| ||
Goomba Level: 7 Posts: 17/20 EXP: 920 Next: 528 Since: 08-19-24 Last post: 30 days Last view: 13 days |
Having a general site for "hacks" also helps with all those games that don't have a thriving ROM hacking community, all those myriad translations of RPGs with no place to go on the anglophone internet because before said translation only a handful people have ever heard of the game.
Now do I hope we only end up with one generalist site, because having to search through a number of them to find a ROM is a pain, but we can't expect the one true successor to be apparent quite yet. As much as I hope it will be NeoRHDN rather than RHDI - some whitespace is welcome on a website, but being able to see only two (2) games listed on the search screen at once, on desktop (!), is not. ____________________ Developer of the Universal Pokémon Randomizer FVX, dabbling Dragon Quest VI hacker |
voliol |
| ||
Goomba Level: 7 Posts: 18/20 EXP: 920 Next: 528 Since: 08-19-24 Last post: 30 days Last view: 13 days |
Added some new info to the monster data part above (the first bytes are indeed for actions, $1F is indeed MP, $20 is the dropped item). What remains to find/identify is the item drop chance and resistances, and perhaps the chance for recruiting/what playable character you get when recruiting. Though I wouldn't be surprised if those were in some different part of the code. As well as attack, defense, agility, and gold dropped.
That's quite a few things, but I still moved on to the items, for now ^^; Item data is found in PRG, presumably starting at 4003D for the "none" item. Each item data appears to be 26/$1A bytes long. However, it is unclear where they start/end. Below, the assumption is made that the "17 .. .. .. 16 .. .. .." section is at the end of each item's data, but it might be at the start. The other bytes are known to be contiguous. $00-01: name reference in the format 0XXY, where XX is the string group, and Y the id in the string group (note they are in little endian, so in PRG it looks like "XY 0X") $02-03: buy cost. the sell cost relates to this, likely a uniform ~70% of the buy cost $04: unused?? $05: Equipment slot. A character can only equip one item of each value/slot. These appear to be arbitrary; you can equip items of slot $02, and above $5. However, only slots $00, $03, $04, $05, and $01 appear in the "Tactics/Equip" screen. - $00: weapon, - $01: accessory, - $02: key item or consumable, - $03: armor, - $04: shield, - $05: helmet $06: stat to increase - $00: no stat - $01: attack - $02: speed - $03: defense note that glass slippers are not here (presumably since they decrease a stat). values above $03 seem to count as defense as well. $07: stat increase value $08: unused?? $09: style value $0A: If $FF, $100 is subtracted from the style value, allowing negative style values. $10: something with item use; the $40 bit seems to relate to in-battle use
(Click here to show the rest of the items. Some spoilers for the game, since key items are in there.)
____________________ Developer of the Universal Pokémon Randomizer FVX, dabbling Dragon Quest VI hacker |
voliol |
| ||
Goomba Level: 7 Posts: 19/20 EXP: 920 Next: 528 Since: 08-19-24 Last post: 30 days Last view: 13 days |
Every now and again. Writing long posts on a touchscreen keyboard is of course a pain (and often leads to typos ^^) but it works out for shorter comments like this one. Of course my mobile browser (firefox on android) doesn't love old forum software, but it is still faster than reddit and better at resizing than your average neocities site.
Edit: Got back to my computer and discovered my mouse is as dead as a brick. Funnily, this messes up the user experience of many websites but this forum is not much worse than on mobile. ____________________ Developer of the Universal Pokémon Randomizer FVX, dabbling Dragon Quest VI hacker |
voliol |
| ||
Goomba Level: 7 Posts: 20/20 EXP: 920 Next: 528 Since: 08-19-24 Last post: 30 days Last view: 13 days |
I got 24 yet, some combination of not being very active and also quite inattentive ^^. It's a fun feature though. ____________________ Developer of the Universal Pokémon Randomizer FVX, dabbling Dragon Quest VI hacker |
Main - Posts by voliol |
Acmlmboard v2.5.6+neo (2024-08-13) © 2005-2024 Acmlm, Emuz, NinCollin, et al. |
MySQL - queries: 103, rows: 461/469, time: 0.112 seconds. |