felipesanches / AnotherWorld_VMTools

Toolchain for software development targeting the virtual machine originally designed for Eric Chahi's Another World game.
21 stars 2 forks source link

Error running banks2resources.py #1

Closed lawrie closed 3 years ago

lawrie commented 4 years ago

I am trying to run Another World on the Ulx3s board. It said I needed to use these tools to extract the roms from the original game files. I have the MSDOS version with the memlist.bin and bank files.

When I run banks2resources.py, I get:

lawrie@lawrie-VirtualBox:~/AnotherWorld_VMTools$ ./banks2resources.py memlist.bin data/aw_msdos/
id:1    type:0  offset:0x0  size:6188/6716
Traceback (most recent call last):
  File "./banks2resources.py", line 173, in <module>
    main()
  File "./banks2resources.py", line 165, in main
    data = Unpacker(data).unpack(entry["packedSize"])
  File "./banks2resources.py", line 91, in unpack
    self.decUnk2(12)
  File "./banks2resources.py", line 106, in decUnk2
    self.index = self.getCode(numChunks)
  File "./banks2resources.py", line 122, in getCode
    if self.nextChunk():
  File "./banks2resources.py", line 129, in nextChunk
    self.chk = self.READ_BE_UINT32()
  File "./banks2resources.py", line 58, in READ_BE_UINT32
    self.buffer.seek(self.index)
ValueError: negative seek value -2

There also seem to be errors on line 168 on banks2resources.py. The format string is missing an "x" and I believe it should be opening the file with write access.

felipesanches commented 4 years ago

Thanks for reporting this issue!

Another World on ULX3S is still not ready to play. I still have to work more on its development. But I am glad to learn that you're interested. I will try to fix the issue you reported here and then I may show you what we already have working and which portions of the code still need further development.

lawrie commented 4 years ago

Thanks. I was interested in seeing what it can currentlly do.

felipesanches commented 4 years ago

It currently has a large portion of the instruction set implemented, bytecode execution seems to work fine for some simple examples, but it still lacks cooperative multi-tasking support (I did not implement the thread mechanism yet) and it lacks the graphics processing and audio playback features.

It does load the color palette assets from the game and currently renders a screen on HDMI that displays the colors of all available palettes.

felipesanches commented 3 years ago

It seems to be fixed after the recent code-changes. Please reopen the issue if you still have trouble running the script.