UPDATE: As part of my ongoing effort to keep this post up to date I've been slowly converting my hex stat dumps to a nice decimal spreadsheet. It's a slow process but it has been good for spotting errors. In addition to that here's a second mini-spreadsheet listing the decimal values for classes, movetypes, spells, and all items in the game. These can be found in the Dark Wizard folder as Google documents. I was trying to import and update the stats spreadsheet but Google wasn't allowing that. Instead I've had to upload the new versions manually and delete the old ones.
UPDATE 2: Added the MLUNI### internal file names.
UPDATE 3: Added text offsets list (no disc file names yet for that though).
UPDATE 4: Added a compiled script dump to the Google Drive folder. This is just all the previous dumps in one large file. (See the first update for the link.)
Raw enemy stats as well as all script dumps are available in a folder over on Dropbox. To supplement the above I uploaded a pack of savestates packed via 7zip. These are savestates from Amon's game. It includes most towns although I deleted the early town states because I didn't think at the time that I'd be saving them long term. There are also start files for all the characters so I could compile start data and a few savestates from when I put the game into a badly bugged state. I didn't do anything extraordinary, one of the stage loaders is bugged. Anyway, that said, keep in mind that since these are from Amon's game some of these savestates lead to active battles.
In other news it appears some of the game's graphics are uncompressed. For two examples see below.
This is the town of Spring, file TLTOWN54.BIN on the disk, viewed in a tile editor with the correct set of palettes loaded from a savestate. Said savestate is loaded into Genesis Savestate Viewer, screen window opened with most of the layer elements hidden (that would be menus and text boxes). It might require zooming in but the graphical tiles for the town itself are fairly easy to pick out.
This file is MLUNI052.BIN, also known as a Death Dragon. This one may be a bit more confusing but things like horns and eyes are visible. It's also possible to tell what this particular file is because the first 11 bytes of every MLUNI### file are the internal file name albeit in romanized Japanese. (Watch out or the WAYBARN will get you! I'm serious, Wyvern is romanized as WAYBARN. I bet you thought only FF5's Playstation localization would do something like that, didn't you?)
Link Round-Up
- Main savestate hacking post
- Shenanigans 1
- Odds & Ends 1
- Summoning, Unit Stats
- Odds & Ends 2
- Castin Hacking
- Town Scripts 1
- Misc Scripts
- Help Scripts
- Battle Open Scripts
- Command Stats
- Town Scripts 2
- Town Scripts 3
- Odds & Ends 3
- Town Scripts 4
- Battle Retreat & Events Scripts
MLUNI### internal file names
- MLUNIOOO.BIN internal file header at start is HUMAN_A___ sprites for the class $00 human peasant?
- MLUNI001.BIN is HUMAN_B____
- MLUNI002.BIN is ELF_A______
- MLUNI003.BIN is ELF_B______
- MLUNI004.BIN is DWAF_A_____
- MLUNI005.BIN is DWAF_B_____
- MLUNI006.BIN is HOBIT_A____
- MLUNI007.BIN is HOBIT_B____
- MLUNI008.BIN is FIGHTER_A__
- MLUNI009.BIN is FIGHTER_B__
- MLUNI010.BIN is NIGHT_A____
- MLUNI011.BIN is NIGHT_B____
- MLUNI012.BIN is PARADIN_A__
- MLUNI013.BIN is PARADIN_B__
- MLUNI014.BIN is PLEAST_____
- MLUNI015.BIN is BSHOP______
- MLUNI016.BIN is CRELICK____
- MLUNI017.BIN is MEIJI______
- MLUNI018.BIN is SORSARAR___
- MLUNI019.BIN is MAREFIKAS__
- MLUNI020.BIN is ARCHAR_A___
- MLUNI021.BIN is ARCHAR_B___
- MLUNI022.BIN is SNAIPER_A__
- MLUNI023.BIN is SNAIPER_B__
- MLUNI024.BIN is RENDER_A___
- MLUNI025.BIN is RENDER_B___
- MLUNI026.BIN is MONK_______
- MLUNI027.BIN is DOLID______
- MLUNI028.BIN is VERVERRIAN_
- MLUNI029.BIN is BERSAGAR_A_
- MLUNI030.BIN is BERSAGAR_B_
- MLUNI031.BIN is DESDIRAR_A_
- MLUNI032.BIN is DESDIRAR_B_
- MLUNI033.BIN is DARKPLEST__
- MLUNI034.BIN is DARKBSHOP__
- MLUNI035.BIN is WIZARD_____
- MLUNI036.BIN is NECKRO_____
- MLUNI037.BIN is SKELTON____
- MLUNI038.BIN is SKALSOLJER_
- MLUNI039.BIN is SKALNIGHT__
- MLUNI040.BIN is GORST______
- MLUNI041.BIN is LEIS_______
- MLUNI042.BIN is RICH_______
- MLUNI043.BIN is GREATRICH__
- MLUNI044.BIN is DRAGONPAPIE
- MLUNI045.BIN is DRAGON_____
- MLUNI046.BIN is DRAGONLOAD_
- MLUNI047.BIN is FIREDRAGON_
- MLUNI048.BIN is ICEDRAGON__
- MLUNI049.BIN is FROSTDRAGON
- MLUNI050.BIN is WAYBARN____
- MLUNI051.BIN is DRAGONZONBI
- MLUNI052.BIN is DESDRAGON__
- MLUNI053.BIN is SERPENT____
- MLUNI054.BIN is KINGSERPENT
- MLUNI055.BIN is HIDRA______
- MLUNI056.BIN is PULOHIDRA__
- MLUNI057.BIN is MONOKERO___
- MLUNI058.BIN is MONOPEGA___
- MLUNI059.BIN is MANTICORE__
- MLUNI060.BIN is MANMANTICOR
- MLUNI061.BIN is HIPOGRIF___
- MLUNI062.BIN is GRIFIN_____
- MLUNI063.BIN is CHIMEIRA___
- MLUNI064.BIN is GOLDCHIM___
- MLUNI065.BIN is KENTAURUS__
- MLUNI066.BIN is KEILON_____
- MLUNI067.BIN is KAKATORIS__
- MLUNI068.BIN is BAZIRISK___
- MLUNI069.BIN is HELHAUND___
- MLUNI070.BIN is KERUBEROS__
- MLUNI071.BIN is BENNU______
- MLUNI072.BIN is POINICS____
- MLUNI073.BIN is SEILEN_____
- MLUNI074.BIN is HERPY______
- MLUNI075.BIN is DRAGONRIDER
- MLUNI076.BIN is WAYBARNRIDE
- MLUNI077.BIN is PEGASASRIDE
- MLUNI078.BIN is GRIFINRIDE_
- MLUNI079.BIN is SHINOBI____
- MLUNI080.BIN is DEORA_A____
- MLUNI081.BIN is DEORA_B____
- MLUNI082.BIN is BEARCHER___
- MLUNI083.BIN is SARMU______
- MLUNI084.BIN is KAIL_______
- MLUNI085.BIN is NEEL_______
- MLUNI086.BIN is NANA_______
- MLUNI087.BIN is FAZAMU_____
- MLUNI088.BIN is MAI________
- MLUNI089.BIN is VERO_______
- MLUNI090.BIN is ARIMAN_____
- MLUNI091.BIN is ARIMAN2____
- MLUNI092.BIN is KARMARK____
- MLUNI093.BIN is HITASUPER__
- MLUNI094.BIN is GANDUL_____
- MLUNI095.BIN is DAHARG_____
- MLUNI096.BIN is WENREEK____ (Armer IX)
- MLUNI097.BIN is SHION_A____
- MLUNI098.BIN is SHION_B____
- MLUNI099.BIN is AMON_______
- MLUNI100.BIN is IMELDA_____
- MLUNI101.BIN is GOAT_______ (short file)
- MLUNI102.BIN is DESSKAL____
These are definitely battle sprites. I loaded up Amon's file in a tile editor, imported the palettes from a savestate with Amon in a battle scene and it was obvious what the file was. (4bpp linear, row interleaved, apparently not compressed) The DESSKAL file is the skeleton warrior. It probably was finished last for some reason and was amended to the end.
Dark Wizard Savestate Text Offsets
NOTE: This is for savestate viewing! I haven't gone though and figured out which file on the disc is for which town/area yet.
- Arien is 0xb2536 - 0xb340c
- Asai is 0xb8622 - 0xb8fa5
- Astea is 0xb29f0 - 0xb315d
- Carbie is 0xb267a - 0xb34e0
- Castin is 0xb2ec4 - 0xb35d4
- Cheshire is 0xb2908 - 0xb2fdf
- Dios is 0xbe510 - 0xc06f1
- Dragonia is 0xb2c96 - 0xb35e3
- Dreik is 0xb32ee - 0xb38ef
- Enhas is 0xb7070 - 0xb8621
- Eros is 0xb2dee - 0xb39e2
- Eureska is 0xb4812 - 0xb4e16
- Iyaltis is 0xb5e9e - 0xb6d29
- Kalua is 0xb6578 - 0xb7772
- Kaus is 0xb4df6 - 0xb594f
- Koz is 0xb168c - 0xb1c12
- Laguna is 0xb3786 - 0xb3c22
- Loa is 0xb6461 - 0xb71f0
- Milsey is 0xb38ce - 0xb3faa
- Moog is 0xb1d04 - 0xb231f
- Narva is 0xb2faa - 0xb34c1
- Nast is 0xb7e2a - 0xb984a
- Nautia is 0xb247e - 0xb2dc0
- Niel is 0xb2b52 - 0xb269c
- Nieve is 0xb2200 - 0xd2867
- Pacilite is 0xb22c8 - 0xb28f4
- Palwa is 0xb4fda - 0xb53fc
- Paradis is 0xb3f20 - 0xb494d
- Quentin is 0xb27b8 - 0xb34c9
- Ribif is 0xb4d9e - 0xb5b9d
- Ridley is 0xb3d36 - 0xb43e6
- Rufus is 0xb33cc - 0xb3fd6
- Runvail is 0xb5866 - 0xb5fec
- Russell is 0xb4d50 - 0xb605a
- Sage is 0xb2a0e - 0xb3145
- Sapple is 0xb2de6 - 0xb3411
- Sharktan is 0xb41dc - 0xb49b8
- Shinobi is 0xb2cc4 - 0xb323b
- Shirster is 0xb1c82 - 0xb2281
- Solma is 0xb3efc - 0xb440d
- Spring is 0xb61ea - 0xb727e
- Sundrek is 0xb7d44 - 0xb873d
- Talislar is 0xb9268 - 0xba7e8
- Teote is 0xb1966 - 0xb209c
- Teydon is 0xb30b2 - 0xb3dfe
- Tobis is 0xb6a2c - 0xb7fde
- Treal is 0xb2960 - 0xb37b5
- Willis 0xb275e - 0xb305c
- Woors is 0xb81ec - 0xb903a
- Wuls is 0xb211e - 0xb2d00
- Yazu is 0xb1d10 - 0xb2263
- Yentz is 0xb6f42 - 0xb7c0f
- Yunas is 0xb499e - 0xb4d6d
- Zolt is 0xb5ea4 - 0xb76df
- Gilliam's shrine is 0xaf34f - 0xb2a35
MSCMDM##DAT sector lists map name and loads the text spoken at the very start
- QUENTIN is 0xdd919 - 0xde169
- TOURLA is 0xdd960 - 0xdde65
- JHELYLE is 0xdd9a3 - 0xde15f
- CARBIE is 0xdd991 - 0xde135
- ASAI is 0xdda11 - 0xde58d
- INSENIOR is 0xdd955 - 0xddf3d
- BARTH is 0xdd97d - 0xde003
- CHESHIRE is 0xdd9cd - 0xde17b
- GRACILDO is 0xd9fb - 0xde3fb
- SILKA is 0xdd9bd - 0xde36b
- SAGE is 0xdda49 - 0xddce5
- EURESKA is 0xdda57 - 0xde26b
- ALGAIN is 0xdd9e5 - 0xde1df
- BALKANDI is 0xdda47 - 0xde32b
- LOMSAIRE is 0xdda2b - 0xde5af
- FLAYRONA (east) is 0xdda89 - 0xde729
- FLAYRONA (west) is 0xdda73 - 0xde46f
- NAUTIA is 0xddab5 - 0xddf4f
- DEMIA is 0xddac0 - 0xde480
- GOD'S CASTLE is 0xddae9 - 0xde8cb
- NORTH BALTRIK is 0xdda93 - 0xdde93
- SOUTH BALTRIK is 0xdda9f - 0xddf1b
- DEMIA is 0xdac3 - 0xde481
- DORG is 0xddace - 0xde01b
- AVISIS is 0xddad7 - 0xde3e7

