Jump to content
IGNORED

Omnivore, the Atari 8-bit Binary Editor


playermissile

Recommended Posts

I just don't know exactly how the data is stored because I just never looked into it deep enough but if I can find the time I can figure it out. Or maybe someone else already did. Have to ask around for that,.

 

So it's like a container format for an Atarimax flash cart or something like that? That's not one of my use cases, but if it turns out to be a low enough hanging fruit, who knows? Keep me updated on what you find out.

Link to comment
Share on other sites

Partitions on a Black Box are much like a bunch of ATR's but the headers are separately stored at another location (the partition table). This header holds all important info.

 

A small comparison to get an idea:

 

BB <-> ATR

Partition Name in ASCII <-> file name of ATR

Partition Length <-> file size minus header of an ATR

Partition Start <-> determined by O.S. with ATR

Partition Density <-> Is in header of ATR

 

What's actually in a partition is where your program comes in as it's just an Atari 8-bit formatted image which can be handled the same as an ATR, albeit all data is inverted.

 

 

Near the bottom over here

http://www.nleaudio.com/css/products/BB_Docs.htm

is some info about how to get to the data when on Atari 8 bit. Just to get an idea.

 

As a bonus, this partition set-up is similar to the MIO but on the BB all data on a disk is inverted by default (the BB has a dip switch to invert again to access disks that were formerly used on a MIO).

  • Like 1
Link to comment
Share on other sites

New version! 0.9.1 available here: https://github.com/robmcmullen/omnivore/releases/tag/0.9.1

New visualization modes for graphic bitmaps: Antic mode E and GTIA modes 9, 10, & 11! All the graphics viewing-specific stuff has been moved to the Machine menu item, where eventually you'll be able to save the state of what you're working on so when you reload you'll have all the colors/fonts/modes just like you left them.
Added (optional) display & highlighting of undocumented opcodes in the disassembly window, better highlighting in the bitmap & character panes, and moved the page map view into a pop-out sidebar so it doesn't take up so much screen real-estate. And lots of bug fixes, including fixing the annoying pane resize problem. From the ChangeLog:
* Fixed boot disk image loading
* Enabled double click in grid to start cell editor
* Fixed font highlighting to use blended colors
* Added GTIA modes 9, 10, and 11
* Changed ModeF to OneBitPerPixel[bW] because it really wasn't mode F without artifacting
* Added Antic Mode E bitmap visualization
* Added menu item for bitmap renderer
* Added command to turn all the found matches into a selection
* Added highlighting of undocumented opcodes
* Added 6502 undocumented opcodes
* Fixed off-by-one cursor position on char map selection

 

  • Like 4
Link to comment
Share on other sites

  • 1 month later...

New version! 0.9.2 available here: https://github.com/robmcmullen/omnivore/releases/tag/0.9.2

 

Biggest new feature is selection using expressions: you can enter an expression like

(a>0x100) & (a<0x200) & (b<0x80)

and it will select all the bytes between addresses 0x100 and 0x200 that have values less than 0x80.

 

I've added a project state file that will restore segments and comments the next time you load an image. Also added many new bitmap visualization modes and support for other processors in the disassembler/mini-assembler. And it has basic support for opening up MAME rom .zip files.

 

My test case to evaluate the application in a real-world sense is to begin reverse-engineering Jumpman, and I think I have enough to do that now. I'll keep everybody updated.

 

 

  • Like 5
Link to comment
Share on other sites

New version! 0.9.3 available here: https://github.com/robmcmullen/omnivore/releases/tag/0.9.3

 

You can now define emulators and run them right from the program. Hit F5 and it will save your file and run the emulator that you've defined.

 

Among other bug fixes, the memory map is working again in the disassembler. You can chose between the Atari 800 and the Atari 5200 memory maps so far.

  • Like 3
Link to comment
Share on other sites

This is great! Thank you for your continued hard work on this. Do you have a feature list you intend to add before the 1.0 version?

One thing that would be nice is an auto-fit option for the different windows, instead of having to resize them all manually if I resize the main window.

Link to comment
Share on other sites

This is great! Thank you for your continued hard work on this. Do you have a feature list you intend to add before the 1.0 version?

One thing that would be nice is an auto-fit option for the different windows, instead of having to resize them all manually if I resize the main window.

 

Glad you like it! I don't have a feature list for 1.0, and because of that I'm thinking about just going to a Chrome/Firefox release number instead of the dotted thing (which does imply that I do have some idea of what would be in a 1.0 release. Which I don't).

 

I'll add the auto-fit window resizing thing to my feature request list.

Link to comment
Share on other sites

I much perform the major.minor.bugfix release version numbering system over just having every new release being a whole number update, or even just major.minor, which I've tended to use in the past. Although, you could just keep releasing version 0.xx updates forever, thereby never actually completing it, which in turn will require that you be immortal and live to forever update it. :)

  • Like 1
Link to comment
Share on other sites

Wow great stuff thnx.

 

I have several question when i started it on my notebook it opens not very wel i must use the maxisize button my screen is hd ready 1366x768 :( maybe setting for me start maxisize windows.

 

2nd question what i know in begin there was support for directory files and what all so must or needed is a file linker you know ffff 0600 06ff 00000000 ffff 0800 etc .... and how can i set the good adres in disassembly if it start 0600 atr begins 0000 atr info 0010 start 1st sector etc .

 

Sorry for my bad English, I like this software but allso dis6502 from Eric Bacher and Peter Dell i hope they come with a new version soon.

 

Greetings,

Marco

Link to comment
Share on other sites

I have several question when i started it on my notebook it opens not very wel i must use the maxisize button my screen is hd ready 1366x768 :( maybe setting for me start maxisize windows.

 

2nd question what i know in begin there was support for directory files and what all so must or needed is a file linker you know ffff 0600 06ff 00000000 ffff 0800 etc .... and how can i set the good adres in disassembly if it start 0600 atr begins 0000 atr info 0010 start 1st sector etc .

 

It will remember the layout next time you start the application, but you have to use File -> Quit for it to save the layout.

 

2: It looks like I broke Atari DOS support. I'll fix that with a new release today.

Link to comment
Share on other sites

  • 2 weeks later...

New version! 0.10.0 is available here: https://github.com/robmcmullen/omnivore/releases/tag/0.10.0

 

The big change is a new comments sidebar that shows all the locations that you've tagged with comments, and allows you to quickly move to different sections of the code.

 

Other interesting stuff:

  • export disassembly text to a file, and copy disassembly text to clipboard to paste to other documents
  • custom assembler formats to specify assembler directives in the export (.org or *=, etc.)
  • hex characters are also copied to the clipboard as text to paste into regular text documents
  • data can be marked as an ANTIC display list and shown in the disassembly window
  • Insert file command to place raw binary data at the cursor of the open file
  • lots o' bug fixes
  • hopefully a lesser number of bugs introduced
  • Like 1
Link to comment
Share on other sites

On Win7 64-bit I'm getting an error on just about any file I try to open. If I select "Attempt To Continue" from the error dialogue, the program is still available for use but no file gets opened. I started getting this error since the last version (0.9.1).

 

#---- System Information ----#
Omnivore XL Version: 0.10.0
Operating System: Windows 7 (build 7601, Service Pack 1), 64-bit edition
Python Version: 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)]
wxPython Version: 3.0.2.0 msw (classic)
wxPython Info: (__WXMSW__, wxMSW, unicode, wx-assertions-on, SWIG-1.3.29)
Python Encoding: Default=ascii File=mbcs
wxPython Encoding: cp1252
System Architecture: 32bit AMD64
Byte order: little
Frozen: windows_exe
#---- End System Information ----#


#---- Traceback Info ----#
*** Mon Apr 25 16:27:42 2016 ***
Traceback (most recent call last):
File "pyface\ui\wx\action\action_item.pyo", line 496, in _on_tool
File "pyface\tasks\action\task_action_controller.pyo", line 31, in perform
File "omnivore\framework\actions.pyo", line 112, in perform
File "omnivore\framework\application.pyo", line 276, in load_file
File "omnivore\file_type\driver.pyo", line 29, in recognize
File "omnivore\file_type\recognizers\zip.pyo", line 20, in identify
File "omnivore\utils\file_guess.pyo", line 111, in get_stream
File "fs\opener.pyo", line 272, in open
File "omnivore\framework\filesystem.pyo", line 140, in parse_with_about
File "fs\opener.pyo", line 236, in parse
File "fs\opener.pyo", line 350, in get_fs
File "fs\osfs\__init__.pyo", line 145, in __init__
ResourceNotFoundError: Root directory does not exist: \\?\C:\Program Files (x86)\Omnivore\UNC\GIGABYTE-SERVER\Atari 8-Bit\Projects - Software\Donkey Kong


*** Mon Apr 25 16:28:30 2016 ***
Traceback (most recent call last):
File "pyface\ui\wx\action\action_item.pyo", line 496, in _on_tool
File "pyface\tasks\action\task_action_controller.pyo", line 31, in perform
File "omnivore\framework\actions.pyo", line 112, in perform
File "omnivore\framework\application.pyo", line 276, in load_file
File "omnivore\file_type\driver.pyo", line 29, in recognize
File "omnivore\file_type\recognizers\zip.pyo", line 20, in identify
File "omnivore\utils\file_guess.pyo", line 111, in get_stream
File "fs\opener.pyo", line 272, in open
File "omnivore\framework\filesystem.pyo", line 140, in parse_with_about
File "fs\opener.pyo", line 236, in parse
File "fs\opener.pyo", line 350, in get_fs
File "fs\osfs\__init__.pyo", line 145, in __init__
ResourceNotFoundError: Root directory does not exist: \\?\C:\Program Files (x86)\Omnivore\UNC\GIGABYTE-SERVER\Atari 8-Bit\Projects - Software\Dig Dug\ROM - XEX - ATR


*** Mon Apr 25 16:28:43 2016 ***
Traceback (most recent call last):
File "pyface\ui\wx\action\action_item.pyo", line 496, in _on_tool
File "pyface\tasks\action\task_action_controller.pyo", line 31, in perform
File "omnivore\framework\actions.pyo", line 112, in perform
File "omnivore\framework\application.pyo", line 276, in load_file
File "omnivore\file_type\driver.pyo", line 29, in recognize
File "omnivore\file_type\recognizers\zip.pyo", line 20, in identify
File "omnivore\utils\file_guess.pyo", line 111, in get_stream
File "fs\opener.pyo", line 272, in open
File "omnivore\framework\filesystem.pyo", line 140, in parse_with_about
File "fs\opener.pyo", line 236, in parse
File "fs\opener.pyo", line 350, in get_fs
File "fs\osfs\__init__.pyo", line 145, in __init__
ResourceNotFoundError: Root directory does not exist: \\?\C:\Program Files (x86)\Omnivore\UNC\GIGABYTE-SERVER\Atari 8-Bit\Projects - Software\Dig Dug\ROM - XEX - ATR


*** Mon Apr 25 16:29:08 2016 ***
Traceback (most recent call last):
File "pyface\ui\wx\action\action_item.pyo", line 496, in _on_tool
File "pyface\tasks\action\task_action_controller.pyo", line 31, in perform
File "omnivore\framework\actions.pyo", line 112, in perform
File "omnivore\framework\application.pyo", line 276, in load_file
File "omnivore\file_type\driver.pyo", line 29, in recognize
File "omnivore\file_type\recognizers\zip.pyo", line 20, in identify
File "omnivore\utils\file_guess.pyo", line 111, in get_stream
File "fs\opener.pyo", line 272, in open
File "omnivore\framework\filesystem.pyo", line 140, in parse_with_about
File "fs\opener.pyo", line 236, in parse
File "fs\opener.pyo", line 350, in get_fs
File "fs\osfs\__init__.pyo", line 145, in __init__
ResourceNotFoundError: Root directory does not exist: \\?\C:\Program Files (x86)\Omnivore\UNC\GIGABYTE-SERVER\Atari 8-Bit\Projects - Software\Dig Dug\ROM - XEX - ATR


*** Mon Apr 25 16:29:37 2016 ***
Traceback (most recent call last):
File "pyface\ui\wx\action\action_item.pyo", line 496, in _on_tool
File "pyface\tasks\action\task_action_controller.pyo", line 31, in perform
File "omnivore\framework\actions.pyo", line 112, in perform
File "omnivore\framework\application.pyo", line 276, in load_file
File "omnivore\file_type\driver.pyo", line 29, in recognize
File "omnivore\file_type\recognizers\zip.pyo", line 20, in identify
File "omnivore\utils\file_guess.pyo", line 111, in get_stream
File "fs\opener.pyo", line 272, in open
File "omnivore\framework\filesystem.pyo", line 140, in parse_with_about
File "fs\opener.pyo", line 236, in parse
File "fs\opener.pyo", line 350, in get_fs
File "fs\osfs\__init__.pyo", line 145, in __init__
ResourceNotFoundError: Root directory does not exist: \\?\C:\Program Files (x86)\Omnivore\UNC\GIGABYTE-SERVER\Documents\Financial\ABM Timesheets


*** Mon Apr 25 16:29:51 2016 ***
Traceback (most recent call last):
File "pyface\ui\wx\action\action_item.pyo", line 277, in _on_menu
File "pyface\tasks\action\task_action_controller.pyo", line 31, in perform
File "omnivore\framework\actions.pyo", line 112, in perform
File "omnivore\framework\application.pyo", line 276, in load_file
File "omnivore\file_type\driver.pyo", line 29, in recognize
File "omnivore\file_type\recognizers\zip.pyo", line 20, in identify
File "omnivore\utils\file_guess.pyo", line 111, in get_stream
File "fs\opener.pyo", line 272, in open
File "omnivore\framework\filesystem.pyo", line 140, in parse_with_about
File "fs\opener.pyo", line 236, in parse
File "fs\opener.pyo", line 350, in get_fs
File "fs\osfs\__init__.pyo", line 145, in __init__
ResourceNotFoundError: Root directory does not exist: \\?\C:\Program Files (x86)\Omnivore\UNC\GIGABYTE-SERVER\Atari 8-Bit\F I L E S\Music


*** Mon Apr 25 16:30:14 2016 ***
Traceback (most recent call last):
File "pyface\ui\wx\action\action_item.pyo", line 277, in _on_menu
File "pyface\tasks\action\task_action_controller.pyo", line 31, in perform
File "omnivore\framework\actions.pyo", line 112, in perform
File "omnivore\framework\application.pyo", line 276, in load_file
File "omnivore\file_type\driver.pyo", line 29, in recognize
File "omnivore\file_type\recognizers\zip.pyo", line 20, in identify
File "omnivore\utils\file_guess.pyo", line 111, in get_stream
File "fs\opener.pyo", line 272, in open
File "omnivore\framework\filesystem.pyo", line 140, in parse_with_about
File "fs\opener.pyo", line 236, in parse
File "fs\opener.pyo", line 350, in get_fs
File "fs\osfs\__init__.pyo", line 145, in __init__
ResourceNotFoundError: Root directory does not exist: \\?\C:\Program Files (x86)\Omnivore\UNC\GIGABYTE-SERVER\Atari 8-Bit\F I L E S\Music

#---- End Traceback Info ----#

Edited by MrFish
Link to comment
Share on other sites

On Win7 64-bit I'm getting an error on just about any file I try to open. If I select "Attempt To Continue" from the error dialogue, the program is still available for use but no file gets opened. I started getting this error since the last version (0.9.1).

 

ResourceNotFoundError: Root directory does not exist: \\?\C:\Program Files (x86)\Omnivore\UNC\GIGABYTE-SERVER\Atari 8-Bit\Projects - Software\Donkey Kong

 

I'm not a windows expert, but that looks like a UNC path specifier... Is this on a shared folder or mounted directory?

 

UPDATE: I can duplicate this trying to open a file from a network folder.

Edited by playermissile
Link to comment
Share on other sites

A little additional information: if I access the same file/folder by using a "mapped network drive" it functions fine.

 

[Edit:]

 

So something like this:

O:\F I L E S\Demo - Music

 

Instead of this:
\\GIGABYTE-SERVER\Atari 8-Bit\F I L E S\Demo - Music

Edited by MrFish
  • Like 1
Link to comment
Share on other sites

A little additional information: if I access the same file/folder by using a "mapped network drive" it functions fine.

 

[Edit:]

 

So something like this:

O:\F I L E S\Demo - Music

 

Instead of this:

\\GIGABYTE-SERVER\Atari 8-Bit\F I L E S\Demo - Music

 

Yeah, it definitely depends on how the shared drives are mapped. Like you found, if it's mapped to a drive letter it's fine, but as a network share Omnivore mangles the UNC path.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...