Jump to content
IGNORED

MESS 0.155 - XM with High Score Saving and YM2151 Support


Trebor

Recommended Posts

Outstanding release with XM support including high score saving and YM2151 sound, in addition to POKEY of course. ;)

 

Now all 7800 games that support high score saving will retain your high scores under MESS with the XM module attached. FYI...Xevious has a sweet melody playing as you enter your initials. :)

Still apprehensive or confused about getting MESS emulation of the Atari 7800 up and running?

:ponder:

 

It's just four simple steps :

1. Download MESS 0.155 (Direct link to Win32 most compatible version which works on XP/Vista/7/8, 32 or 64-bit - for other flavors see here).
-Double click the downloaded file and install to desired location.

 

2. Unzip the following file* to the same desired location: MESS0155_A7800_ADDFILES.zip

 

3. Double click system you wish to play "PLAY_NTSC_ATARI_7800", "PLAY_PAL_ATARI_7800" or "PLAY_NTSC_ATARI_7800_XM", "PLAY_PAL_ATARI_7800_XM".

 

4. Press 'Tab' --> Arrow down to 'File Manager' and press 'Enter' --> After 'Atari 7800 Cartridge Slot (cart)' appears [go down to (cart2) if launched with XM attached], press 'Enter' again --> Highlight game ROM (Use arrow keys down/up), press 'Enter' and play game. 'Esc' exits emulator.

 

RevEng made a great post in the Atari 7800 Programming Forum providing some technical details respecting this new release. Please see it here for more information.

 

 

*Step 2 [MESS0155_A7800_ADDFILES.zip] content notes:
-NTSC, PAL, BIOS and XM files already stored to their correct location and structure.
-The entire NTSC and PAL original library of games in their correct location and structure.
-Already created *.ini and *.cfg files which have been initiated for NTSC and PAL regions respectively with the following conditions:
A. Starts MESS Atari 7800 emulation in a maximized window
-Press Alt-Enter to toggle between Window and Full Screen mode.
-In Window mode, grab corner of window to modify size.
B. Default controls: Arrow Keys, Left Ctrl, Left Alt (Remap via "Tab" menu).
-First installed game controller under Windows automatically becomes mapped to Player 1 (Remap via "Tab" menu).

  • Like 6
Link to comment
Share on other sites

Knock on wood, hopefully sometime the keyboard will be supported so I can test most of what I plan to write =P

 

Eh, it's not that important.

 

Which keyboard? The unreleased GCC/Atari 7800 Keyboard that plugs into Joystick Port #2 or an XE Game System Keyboard plugged into an XM [with a PIA chip installed]?

 

I guess I should've written the why not both? meme as the answer to that.

 

 

True XBoard simulated support would have provisions for Dual POKEY. If the emulators adopted that, perhaps more homebrew original games and hacks would support that scheme too.

Edited by Lynxpro
Link to comment
Share on other sites

 

Which keyboard? The unreleased GCC/Atari 7800 Keyboard that plugs into Joystick Port #2 or an XE Game System Keyboard plugged into an XM [with a PIA chip installed]?

 

I guess I should've written the why not both? meme as the answer to that.

 

 

True XBoard simulated support would have provisions for Dual POKEY. If the emulators adopted that, perhaps more homebrew original games and hacks would support that scheme too.

The one that exists (i.e., the XEGS one). xD I dunno if the SIO is still in there, that a disk drive could be hooked up, but if so, that architecture is what would be necessary to test the entire project, once I get something off the ground.

 

I guess my idea is in 4 pieces - 2 of which I already have (the BASIC interpreter and the high-level TTY code), the third would be the 7800 TTY initialization code and the keyboard/joystick drivers, and the fourth would be some sort of DOS. It may or may not happen, but it would make the XM the "7800-based computer" that would have happened.

  • Like 1
Link to comment
Share on other sites

I'm trying to use the XM support with 0.155 on Debian Linux. I built 0.155 without issues and it works as well as the previous release. I've also unzipped the addfiles in the same directory I'm running my mess64 binary from. Doing the following plays a rom just fine:

 

./mess64 a7800 -cart software/a7800/Planet\ Smashers\ \(1990\)\ \(Atari\).a78

 

But I'm stymied trying to play the XM Donkey Kong preview

 

./mess64 a7800 -cart1 xm -cart2 software/a7800/dkxm_final_demo_ntsc.a78
Error: unknown option: -cart2

Ideas?

 

Link to comment
Share on other sites

I partially fixed my problem by copying over the non-source directories (hash namely) into the directory I dropped the mess binary in. This basically got the High Score cart working.

 

When I try to run the Donkey Kong XM demo I now get this:

 

./mess64 a7800 -cart xm -cart2 software/a7800/dkxm_final_demo_ntsc.a78
POKEY + Bank 0 of 144K ROM at $4000 (Header 0x09)
Disabling POKEY

I'm invited to customize my High Score card but the POKEY always disables so I have no sound with this rom image.

 

Link to comment
Share on other sites

  • 1 month later...

I would love some help with this. I'm having the same problem that frogstar_robot had. I run Ubuntu, and I built the latest version of MESS from the GitHub. I have all the files in the right place, but no matter what I do, I can't get the POKEY sound to work when I try to run DKXM. I always get:

POKEY + Bank 0 of 144K ROM  at $4000 (Header 0x09)
Disabling POKEY

By contrast, if I try to run the Pac-Man Collection with POKEY sound, it works fine. I'm using the bioses contained in Trebor's original post. Any suggestions?

 

Edit: More info. What I notice is that if I run:

 

mess64 a7800 -cart xm

 

then POKEY is listed as part of the system's sound components.

 

But if I then choose the dkxm_final_demo_ntsc.a78 file, or if I run:

 

mess64 a7800 -cart xm -cart dkxm_final_demo_ntsc.a78

 

then POKEY is removed from the sound components, and only TIA is listed. I tried both dkxm_final_demo_ntsc.a78 and dkxm_final_demo_ntsc_htc.a78 with the same results.

Edited by procyon
Link to comment
Share on other sites

The pokey getting removed makes sense. The "pokey" bit in the header was made more exact recently to mean "pokey@4000". But the cart header also specifies ROM at that location.

 

It seems the game isn't storing a "3" in the pokey SKCTL register before playing sounds. I don't know if this is strictly required or not for Pokey. (ie. what the state of this register is on startup) But this is why the audio isn't playing under MESS.

Link to comment
Share on other sites

Edit: More info. What I notice is that if I run:

 

mess64 a7800 -cart xm

 

then POKEY is listed as part of the system's sound components.

 

But if I then choose the dkxm_final_demo_ntsc.a78 file, or if I run:

 

mess64 a7800 -cart xm -cart dkxm_final_demo_ntsc.a78

 

then POKEY is removed from the sound components, and only TIA is listed. I tried both dkxm_final_demo_ntsc.a78 and dkxm_final_demo_ntsc_htc.a78 with the same results.

 

Just a small note in case the above is not just a typo, but what is actually being utilized.

 

The correct command line for executing the XM hardware attached to the 7800 with a cart

(Using your above example of the 64-bit executable and ROM path is already set/known):

 

mess64 a7800 -cart1 xm -cart2 dkxm_final_demo_ntsc.a78

 

A typical setup for someone using vanilla (32-bit) MESS and the ROMs placed elsewhere:

 

mess a7800 -cart1 xm -cart2 "C:\Path\To\ROMs\dkxm_final_demo_ntsc.a78"

 

Just setting up the XM pass through on the 7800 with no cart attached:

 

mess a7800 -cart1 xm

 

If you're not attaching the XM pass through hardware device, then you just utilize the singular '-cart' (with no number) option ;)

 

mess a7800 -cart

 

You could just specify '-cart and -cart2', but I often find it better to use "-cart1", when there is a "-cart2".

 

Regardless, you definitely will not get the right results with '-cart and -cart' though; what you're in effect stating is insert the XM into the one cart slot, then remove and replace it with this cartridge in that same one slot.

Link to comment
Share on other sites

The correct command line for executing the XM hardware attached to the 7800 with a cart

(Using your above example of the 64-bit executable and ROM path is already set/known):

 

mess64 a7800 -cart1 xm -cart2 dkxm_final_demo_ntsc.a78

 

When I try this, I get what frogstar_robot initially got:

Error: unknown option: -cart2

Like I said, this is with the latest MESS source from GitHub, although I doubt the command line syntax has changed recently. Any suggestions?

Link to comment
Share on other sites

Try the list media option like this:

 

mess64 a7800 -cart1 xm -lm

C:\MESS>mess a7800 -cart1 xm -lm

 SYSTEM      MEDIA NAME (brief)   IMAGE FILE EXTENSIONS SUPPORTED
----------  --------------------  ------------------------------------
a7800        cartridge1  (cart1)    .bin  .a78
             cartridge2  (cart2)    .bin  .a78

What do you see listed?

Link to comment
Share on other sites

What do you see listed?

 

OK, I got exactly what you printed, and -cart2 is working as expected. Originally, I did not have xm.zip in the right location.

 

However, that being said, when I execute the command: mess64 a7800 -cart1 xm -cart2 dkxm_final_demo_ntsc.a78, I still do not get proper sound, but rather feint crackling.

 

Trebor, I assume you _do_ get proper sound when playing this ROM through MESS? What bit/OS version are you running? Based on RevEng's analysis, is there any hex editing magic I can do to the header to fix things?

 

Thanks for your assistance.

Link to comment
Share on other sites

I think it's a header issue. Here are a few that are giving me a problem.

 

Apple Snaffle

Crazy Otto

CrazyBricks

 

Is there a way to insert a header or to repair a rom that might be lacking a header?

 

Thanks,

John

 

PS: I can send a rom or two if you would like to look at them yourself. I got them from these forums though so they are obtainable from here.

Link to comment
Share on other sites

I think it's a header issue. Here are a few that are giving me a problem.

 

Apple Snaffle

Crazy Otto

CrazyBricks

 

Is there a way to insert a header or to repair a rom that might be lacking a header?

 

Thanks,

John

 

PS: I can send a rom or two if you would like to look at them yourself. I got them from these forums though so they are obtainable from here.

 

All three play fine under MESS. In the case of Apple Snaffle and Crazy Otto, it's likely a header issue.

Regarding CrazyBrix, it may be a header issue and/or the difficulty switch may be set to paddle instead of joystick.

 

With Crazy Brix running:

-Press the 'Tab' key

-Use the Arrow keys to navigate to 'Dip Switches'.

-Hit 'Enter'.

-Use the Left/Right arrow keys to change: A - Right Position / B - Left Position

-Up/Down arrow keys to switch between: P1 (Left Difficulty Switch) / P2 (Right Difficulty Switch).

 

You need to endure "Left Difficulty Switch" is set to "A - Right Position":

 

post-18-0-44090700-1419526019_thumb.png

 

Here are the confirmed, working, publicly available, most recent ROMs for the aforementioned titles:

Apple Snaffle (SP).a78

Crazy Brix (SP).a78

Crazy Otto (SP).a78

  • Like 1
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...