robmcmullen / omnivore

Hex editor and debugging emulator, sponsored by the Player/Missile Podcast
Mozilla Public License 2.0
53 stars 7 forks source link

py/b64 not decoded correctly #113

Closed robmcmullen closed 7 years ago

robmcmullen commented 7 years ago

A .omnivore file generated on one system produced:

    "antic_font_data": {
        "char_h": 8,
        "char_w": 8,
        "data": {"py/b64": "AAAAAAAAAAAAGBgYGAAYAABmZmYAAAAAAGb/Zmb/ZgAYPmA8BnwYAABmbBgwZkYAHDYcOG9mOwAA\nGBgYAAAAAAAOHBgYHA4AAHA4GBg4cAAAZjz/PGYAAAAYGH4YGAAAAAAAAAAYGDAAAAB+AAAAAAAA\nAAAAGBgAAAYMGDBgQAAAPGZudmY8AAAYOBgYGH4AADxmDBgwfgAAfgwYDGY8AAAMHDxsfgwAAH5g\nfAZmPAAAPGB8ZmY8AAB+BgwYMDAAADxmPGZmPAAAPGY+Bgw4AAAAGBgAGBgAAAAYGAAYGDAGDBgw\nGAwGAAAAfgAAfgAAYDAYDBgwYAAAPGYMGAAYAAA8Zm5uYD4AABg8ZmZ+ZgAAfGZ8ZmZ8AAA8ZmBg\nZjwAAHhsZmZseAAAfmB8YGB+AAB+YHxgYGAAAD5gYG5mPgAAZmZ+ZmZmAAB+GBgYGH4AAAYGBgZm\nPAAAZmx4eGxmAABgYGBgYH4AAGN3f2tjYwAAZnZ+fm5mAAA8ZmZmZjwAAHxmZnxgYAAAPGZmZmw2\nAAB8ZmZ8bGYAADxgPAYGPAAAfhgYGBgYAABmZmZmZn4AAGZmZmY8GAAAY2Nrf3djAABmZjw8ZmYA\nAGZmPBgYGAAAfgwYMGB+AAAeGBgYGB4AAEBgMBgMBgAAeBgYGBh4AAAIHDZjAAAAAAAAAAAA/wAA\nNn9/PhwIABgYGB8fGBgYAwMDAwMDAwMYGBj4+AAAABgYGPj4GBgYAAAA+PgYGBgDBw4cOHDgwMDg\ncDgcDgcDAQMHDx8/f/8AAAAADw8PD4DA4PD4/P7/Dw8PDwAAAADw8PDwAAAAAP//AAAAAAAAAAAA\nAAAA//8AAAAA8PDw8AAcHHd3CBwAAAAAHx8YGBgAAAD//wAAABgYGP//GBgYAAA8fn5+PAAAAAAA\n/////8DAwMDAwMDAAAAA//8YGBgYGBj//wAAAPDw8PDw8PDwGBgYHx8AAAB4YHhgfhgeAAAYPH4Y\nGBgAABgYGH48GAAAGDB+MBgAAAAYDH4MGAAAABg8fn48GAAAADwGPmY+AABgYHxmZnwAAAA8YGBg\nPAAABgY+ZmY+AAAAPGZ+YDwAAA4YPhgYGAAAAD5mZj4GfABgYHxmZmYAABgAOBgYPAAABgAGBgYG\nPABgYGx4bGYAADgYGBgYPAAAAGZ/f2tjAAAAfGZmZmYAAAA8ZmZmPAAAAHxmZnxgYAAAPmZmPgYG\nAAB8ZmBgYAAAAD5gPAZ8AAAYfhgYGA4AAABmZmZmPgAAAGZmZjwYAAAAY2t/PjYAAABmPBg8ZgAA\nAGZmZj4MeAAAfgwYMH4AABg8fn4YPAAYGBgYGBgYGAB+eHxuZgYACBg4eDgYCAAQGBweHBgQAA==\n"},
        "name": "8x8 Atari Default Font"
    }, 

while I normally see:

    "antic_font_data": {
        "char_h": 8,
        "char_w": 8,
        "data": {"py/bytes": "=00=00=00=00=00=00=00=00=00=18=18=18=18=00=18=00=00fff=00=00=00=00=00f=FFff=\n=FFf=00=18>`<=06|=18=00=00fl=180fF=00=1C6=1C8of;=00=00=18=18=18=00=00=00=00=\n=00=0E=1C=18=18=1C=0E=00=00p8=18=188p=00=00f<=FF<f=00=00=00=18=18~=18=18=00=\n=00=00=00=00=00=00=18=180=00=00=00~=00=00=00=00=00=00=00=00=00=18=18=00=00=\n=06=0C=180`@=00=00<fnvf<=00=00=188=18=18=18~=00=00<f=0C=180~=00=00~=0C=18=\n=0Cf<=00=00=0C=1C<l~=0C=00=00~`|=06f<=00=00<`|ff<=00=00~=06=0C=1800=00=00<f=\n<ff<=00=00<f>=06=0C8=00=00=00=18=18=00=18=18=00=00=00=18=18=00=18=180=06=0C=\n=180=18=0C=06=00=00=00~=00=00~=00=00`0=18=0C=180`=00=00<f=0C=18=00=18=00=00=\n<fnn`>=00=00=18<ff~f=00=00|f|ff|=00=00<f``f<=00=00xlfflx=00=00~`|``~=00=00~=\n`|```=00=00>``nf>=00=00ff~fff=00=00~=18=18=18=18~=00=00=06=06=06=06f<=00=00=\nflxxlf=00=00`````~=00=00cw=7Fkcc=00=00fv~~nf=00=00<ffff<=00=00|ff|``=00=00<=\nfffl6=00=00|ff|lf=00=00<`<=06=06<=00=00~=18=18=18=18=18=00=00fffff~=00=00ff=\nff<=18=00=00cck=7Fwc=00=00ff<<ff=00=00ff<=18=18=18=00=00~=0C=180`~=00=00=1E=\n=18=18=18=18=1E=00=00@`0=18=0C=06=00=00x=18=18=18=18x=00=00=08=1C6c=00=00=\n=00=00=00=00=00=00=00=FF=00=006=7F=7F>=1C=08=00=18=18=18=1F=1F=18=18=18=03=\n=03=03=03=03=03=03=03=18=18=18=F8=F8=00=00=00=18=18=18=F8=F8=18=18=18=00=00=\n=00=F8=F8=18=18=18=03=07=0E=1C8p=E0=C0=C0=E0p8=1C=0E=07=03=01=03=07=0F=1F?=\n=7F=FF=00=00=00=00=0F=0F=0F=0F=80=C0=E0=F0=F8=FC=FE=FF=0F=0F=0F=0F=00=00=00=\n=00=F0=F0=F0=F0=00=00=00=00=FF=FF=00=00=00=00=00=00=00=00=00=00=00=00=FF=FF=\n=00=00=00=00=F0=F0=F0=F0=00=1C=1Cww=08=1C=00=00=00=00=1F=1F=18=18=18=00=00=\n=00=FF=FF=00=00=00=18=18=18=FF=FF=18=18=18=00=00<~~~<=00=00=00=00=00=FF=FF=\n=FF=FF=C0=C0=C0=C0=C0=C0=C0=C0=00=00=00=FF=FF=18=18=18=18=18=18=FF=FF=00=00=\n=00=F0=F0=F0=F0=F0=F0=F0=F0=18=18=18=1F=1F=00=00=00x`x`~=18=1E=00=00=18<~=\n=18=18=18=00=00=18=18=18~<=18=00=00=180~0=18=00=00=00=18=0C~=0C=18=00=00=00=\n=18<~~<=18=00=00=00<=06>f>=00=00``|ff|=00=00=00<```<=00=00=06=06>ff>=00=00=\n=00<f~`<=00=00=0E=18>=18=18=18=00=00=00>ff>=06|=00``|fff=00=00=18=008=18=18=\n<=00=00=06=00=06=06=06=06<=00``lxlf=00=008=18=18=18=18<=00=00=00f=7F=7Fkc=\n=00=00=00|ffff=00=00=00<fff<=00=00=00|ff|``=00=00>ff>=06=06=00=00|f```=00=\n=00=00>`<=06|=00=00=18~=18=18=18=0E=00=00=00ffff>=00=00=00fff<=18=00=00=00c=\nk=7F>6=00=00=00f<=18<f=00=00=00fff>=0Cx=00=00~=0C=180~=00=00=18<~~=18<=00=\n=18=18=18=18=18=18=18=18=00~x|nf=06=00=08=188x8=18=08=00=10=18=1C=1E=1C=18=\n=10=00"},
        "name": "8x8 Atari Default Font"
    }, 

The b64 is obviously more compact but my 2nd system raises an error:

Traceback (most recent call last):
  File "/noaa/maproom-deps/omnivore/traits/trait_notifiers.py", line 340, in __call__
    self.handler( *args )
  File "/noaa/maproom-deps/omnivore/omnivore/framework/application.py", line 193, in _application_initialized_fired
    self.load_file(arg, None, task_id=task_id)
  File "/noaa/maproom-deps/omnivore/omnivore/framework/application.py", line 340, in load_file
    task.new(document, **kwargs)
  File "/noaa/maproom-deps/omnivore/omnivore/framework/task.py", line 217, in new
    editor.init_extra_metadata(source)
  File "/noaa/maproom-deps/omnivore/omnivore/framework/editor.py", line 154, in init_extra_metadata
    self.process_extra_metadata(doc, e)
  File "/noaa/maproom-deps/omnivore/omni8bit/hex_edit/hex_editor.py", line 177, in process_extra_metadata
    self.machine.restore_extra_from_dict(e)
  File "/noaa/maproom-deps/omnivore/omni8bit/arch/machine.py", line 323, in restore_extra_from_dict
    self.update_colors(self.antic_color_registers)
  File "/noaa/maproom-deps/omnivore/omni8bit/arch/machine.py", line 340, in update_colors
    self.set_font()
  File "/noaa/maproom-deps/omnivore/omni8bit/arch/machine.py", line 408, in set_font
    self.antic_font = self.get_antic_font()
  File "/noaa/maproom-deps/omnivore/omni8bit/arch/machine.py", line 434, in get_antic_font
    return fonts.AnticFont(self, self.antic_font_data, self.font_renderer, self.antic_color_registers[4:9], reverse)
  File "/noaa/maproom-deps/omnivore/omni8bit/arch/fonts.py", line 58, in __init__
    self.set_fonts(machine, font_data, font_renderer, reverse)
  File "/noaa/maproom-deps/omnivore/omni8bit/arch/fonts.py", line 75, in set_fonts
    bytes = np.fromstring(font_data['data'], dtype=np.uint8)
TypeError: argument 1 must be string or read-only buffer, not dict
robmcmullen commented 7 years ago

Fixed with upgrade of jsonpickle to 0.9.4