Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

YoYo Games data.win

Featured Replies

  • Author
  • Localization

Karurosu, posted Fri Mar 04, 2016 8:09 am (11765)


aluigi wrote:
CODE is a non-file, in fact extracting it is not a good thing in my opinion.
I'm not sure about what they contain but if you open these files with a hex editor you can notice that there is nothing readable and their size is very small.
Maybe they are compiled objects (instructions).


So there isnt anyway to see the scripts from the compiled game?
  • Replies 80
  • Views 7
  • Created
  • Last Reply

Top Posters In This Topic

  • Author
  • Localization

haku0011, posted Fri Apr 08, 2016 4:17 am (12472)


what should i do with 000009b1.dat in FONT folder?
  • Author
  • Localization

SpringyTM, posted Sat Nov 26, 2016 4:21 am (19094)


I don't understand. Whenever I do all these steps, It ends up saying: Error: invalid command "elif" or arguments at -1 at line 137

What do I do here? It doesn't work.
  • Author
  • Localization

aluigi, posted Sat Nov 26, 2016 8:19 am (19097)


@SpringyTM
Download the script ("Save Page As"), probably you made mistakes while copy&pasting it
  • Author
  • Localization

colinkid32, posted Tue Nov 29, 2016 3:19 am (19148)


Hey could you post a little tutorial like the last one showing how to re-import. Thanks for being so responsive. :D
  • Author
  • Localization

ever17, posted Wed Jan 11, 2017 9:01 am (20074)


Wow, first it's don't work for reimporting (because i leave only moded files)
But with original reimport works, great!
Thanks!
Sad thing that new YoYo games dont have .win file and all packed in .exe
  • Author
  • Localization

aluigi, posted Sat Jan 14, 2017 6:58 am (20149)


Do you have an example (game name or exe) of these games that have the data archived in the main executable?
  • Author
  • Localization

ever17, posted Tue Jul 25, 2017 1:58 pm (25012)


aluigi wrote:
Do you have an example (game name or exe) of these games that have the data archived in the main executable?

Cant answer before, sorry.
Dunno if its allright, because they 18 games.
From ??????? company.
Sample name of game: ????????????? or Housesitting With Sister
http://www97.zippyshare.com/d/SbgssIHt/ ... 000883.rar
Pass: zeoarchive
  • Author
  • Localization

aluigi, posted Thu Aug 03, 2017 5:39 pm (25197)


Archive password seems wrong
  • Author
  • Localization

aluigi, posted Thu Aug 10, 2017 4:15 pm (25365)


Script 0.1.2
  • Author
  • Localization

zaphiel, posted Thu Aug 10, 2017 6:44 pm (25367)


I never thought trying the script on the exe would work, but it did beautifully! Thank you so much!
  • Author
  • Localization

aluigi, posted Thu Aug 10, 2017 7:34 pm (25371)


It's a feature I have just added for this new version of the script :)
  • Author
  • Localization

theus, posted Sat Sep 09, 2017 12:23 am (26377)


Can someone help me? After i extract the files from a .win archive all the files are raw with no extensions.
I've tried opening sprite files (From the SPRT extracted folder) with photo viewers but it says the file is invalid.
The data.win archive i'm trying to extract is from the game called Relic Hunters Zero, it's a free game on Steam if you want to try extracting the files yourself.
I've also tried extracting the files from a game that has the game files built in the .exe file (Yes it is a GameMaker game), but the extracted files are raw aswell.
This one is a paid game but i'll leave the .exe for download if you want to try extracting it:
https://www.dropbox.com/s/58k44bf6fbhfo ... w.exe?dl=0
  • Author
  • Localization

aluigi, posted Mon Feb 12, 2018 11:46 am (32411)


Some TXTR files had the offset 0xffffffff or 0, I don't know if there is a real way to fix it.
In the meantime I have released the script 0.1.2a
  • Author
  • Localization

makc_ar, posted Mon Feb 12, 2018 2:48 pm (32420)


Thanks a lot aluigi!
  • Author
  • Localization

neptuniapp2, posted Sat Mar 24, 2018 1:03 pm (33537)


Is there no possibility of unpacking the full files inside the font folder? Only one .dat file appears inside it.
  • Author
  • Localization

CureLovelyWarrior, posted Mon May 21, 2018 3:42 pm (35154)


Not sure if this is old news or not, but regarding people who are having trouble with opening images in the "SPRT" folder. Truth is they're not images, they are .json files (so are the files in many of the other folders). They contain data for animation, coordinates, etc but not the images themselves, which are instead in the "TXTR" folder (and they're all jumbled, so anyone who makes a script that fixes this - or gives a source code file - would be most appreciated).
Here is an example of what the code in one of the .json files looks like (viewable in firefox for sure): http://biancagames.com/bullet_enemy.json

Although the quickbms script exported the "SPRT" files without an extension, I found another decompiler: https://gitlab.com/PoroCYon/Altar.NET/tags
that exported them as .json files. Just so everyone knows, I think this decompiler also can decompile readable gml code.

I hope this helps someone! 
  • Author
  • Localization

GGG, posted Tue May 29, 2018 2:23 am (35373)


Thanks, I hope this hasn't been addressed elsewhere.

I was looking to modify the sprites in Cook Serve Delicious 2. The original could be edited, the sequel doesn't extract fully, it throws the error below:
The data.win file is quite large, but is here: https://mega.nz/#!OrYGTQxS!AwVC1MsKh_FNUSw9lWmTx5zKSpNXnTfHZtBuoFBGZzs
I used quickbms 0.8.4 and yoyogames.bms 0.1.2a from the front page

Quote:
...
< 8780: gml_Script___BT_init
< 8781: gml_Script_bt_set_borderless
< 8782: gml_Script_bt_set_windowed
< 8783: gml_Script___BT_preserveWindowSize
< 8784: gml_GlobalScript_0
< 8785: gml_GlobalScript_1
< 8786: gml_GlobalScript_2
< 8787: gml_GlobalScript_3
CHUNK TXTR 0x00b3f488 0x2c9fb6d4

Error: the script uses more array indexes (809) than supported (809)

Last script line before the error or that produced the error:
131 getarray NEXT_OFFSET 0 j


If a full log is useful let me know.
  • Author
  • Localization

aluigi, posted Wed May 30, 2018 11:28 pm (35433)


Script 0.1.3
The cause of the problem was a slightly different format of the TXTR chunk, instead of being 01 00 00 00 OFFSET it was 01 00 00 00 00 00 00 00 OFFSET.
I also fixed problems like this happening in the future because the array indexing wasn't limited.
TXTR still remains an unreliable field so I hope to have not broken any compatibility with other data.win archives :)
  • Author
  • Localization

GGG, posted Thu May 31, 2018 12:38 am (35440)


Tested it, it works.
I was also able to edit and repack.

Thanks!
  • Author
  • Localization

CureLovelyWarrior, posted Fri Jun 08, 2018 6:51 pm (35736)


I'm using the newest version of the script and although I am able to use "reimport" on stuff in the "CODE" folder, reimporting stuff in the "OBJT" folder breaks the game. (edit: figured out I don't need to do this as the object event data is actually in the CODE folder)
Just so you know, I wasn't editing gml code. I copied a gml code file that was decompiled from another version of the same game. It's complicated.
It would be really nice if I could edit and reimport code, that'd fix my problem I think (doing what I did caused in game errors).
Hacking images with "reimport2" also is breaking the game for me.
Maybe you guys should collaborate with the creators of altar, because that program can clearly let you read and edit code.... only thing is you can't reimport it. 
  • Author
  • Localization

aluigi, posted Wed Sep 16, 2020 9:19 pm (58729)


I checked the reports about why the data.win reimported with quickbms 0.9.x worked while that with 0.10.x doesn't.

In short the strings in data.win are like the following:
- 32bit size of the string 1
- string
- NUL byte

quickbms needs to take some decisions on its own during reimporting via the SLog command:
- what byte to use as "filler" to cover the gaps between the original string and the new one
- what to do if there are NUL bytes at the end of the original string

In version 0.9.x the filler was the byte 0x00 (NUL), in version 0.10.x it was adopted 0x20 (the space) because it was more appropriate and failsafe to use with strings.
Quickbms simply doesn't display the NUL bytes at the end of the strings because the resulting text file would be very chaotic... imagine having a \0 at the end of each line of the output file.

What happens with data.win is that the string coming from data.win with this format |0x00000006 "hello" 0x00| is saved as "hello", and not as "hello\0".
During reimporting quickbms has a 5 bytes long string ("hello") to fit the 6 bytes long slot, therefore it must put a filler at the end for covering the 1 byte gap.
The filler is the space in version 0.10.x.

Long story short... is there a way to fix this behaviour?
Since there is no automatic way to guess what to do, my solution for quickbms 0.11 (work-in-progress) is adding in-script support for the -b option already available in 0.10 and meant to set the "filler" byte.
I already updated the yoyogames.bms script with it, so it's ready when version 0.11 will be out.

What to do now with quickbms 0.10.x?
Simple, use the -b 0x00 option at command-line during reimporting.
If you use reimport.bat just add -b 0x00 in it after quickbms.exe
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.