Jump to content
IGNORED

BupSystem


TailChao

Recommended Posts

13 minutes ago, Synthpopalooza said:

I am helping Trebor improve A7800 emulation of POKEY with test examples.  That thread may be of help to you too.

Yep, I flipped through that one. Thanks.

 

Right now the biggest holdup for Pokey's accuracy is that I'm not using it in any software (and probably won't). So I'll get to it, but not soon.

Link to comment
Share on other sites

...and what would a new version be without new issues? The *.a78 loader isn't enabling the EXFIX segment for SUPER cartridges and Full Screen Mode overwrites the saved window dimensions.

 

Looks like v0.9.6.1 will show up early!

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

I decided to take advantage of the loader fault while it's there and see which SUPER cartridges would fail without the EXFIX segment mapped in. It was most of them.

 

The only titles which still appeared to work were :

  • Barnyard Blaster
  • Crack'ed
  • Dark Chambers
  • Real Sports Baseball
  • Tank Command
  • Water Ski

 

Other games have varying responses to missing 16KB of data. Some just crash immediately (Xenophobe), but others will actually play albeit with corrupt graphic data (Ninja Golf).

Link to comment
Share on other sites

  • 3 weeks later...

Since BupSystem's development will be suspended after the next update, I'd like to open preview builds of v0.9.6.1 to anyone interested in testing. This version must be closed by early September, so some accuracy issues may not get corrected. My primary focus is on stability and making sure the program gets along with all the variants of Windows before rolling its changes into Rikki & Vikki's fall update.

 

Generally :

  • Is setting up the emulator straightforward?
  • Do you have any issues loading and running game software?
  • If you have a supported joystick or gamepad, is it recognized by the [auto] mapping feature?
  • If you have a (name brand - no generic gamejoy) joystick or gamepad that isn't on the supported device list, let's add it.
  • Is HTML Help actually useful in explaining program behavior and features?

 

If you're interested send over a PM.

Link to comment
Share on other sites

Oh hey, it's BupSystem v0.9.6.1

 

What's changed in this version?

  • Added
    • Full Screen Mode toggle on double-click (unless Light Pens are enabled).
    • Upgraded to JoyFish v0.8.6.1.
  • Cleanup
    • Improved keyboard navigation in dialogs, button focus and ordering is much friendlier.
    • Input assignment procedures can now be aborted by pressing Esc.

    • Full Screen Mode was overwriting the user’s window dimensions.
    • EXFIX segment in SUPER cartridges wasn’t enabled for *.a78 files.
    • AutoSave feature wasn't working if an XBoard was installed.

 

As I won't be able to return to BupSystem for some time, I tried to make this a little more than just a "whoops" update. Using the program with a keyboard has been significantly improved, and all dialogs are a little more considerate when changing focus.

 

The biggest improvements were made under the hood in JoyFish, I've added support for device name hinting - so if you forget to plug in a joystick BupSystem can now tell you which joystick it was. As usual, more input devices are supported out of the box including (almost) the entire Mayflash product line. Unless there are any unexpected issues, this version will be the base for Rikki & Vikki's fall update.

 

 

What’s next, or what might be next...

Much of this post still holds true regarding the current state and future of BupSystem's development - minus the JoyFish enhancements which have already been added. I'd like to continue reverse engineering the hardware and posting my findings in this thread. However, because of Rikki & Vikki's poor sales I cannot continue this work full time and updates will be done at leisure - if at all.

 

I am also still in search of a replacement 7800 cartridge slot, if anyone would like to donate one it would be greatly appreciated.

  • Like 5
  • Sad 2
Link to comment
Share on other sites

  • 1 month later...
Found an issue while testing Rikki & Vikki's data migration tool, Sally's clock multiplier is pushed in save states.
 
So loading a state (unintentionally) restores your overclocking settings from that session. This was another whoops introduced during the 0.9.5.4 -> 0.9.6.0 transition. It won't affect Rikki & Vikki's fall update, but make sure to keep this in mind if you're using BupSystem.
  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...

Tomcat - The F-14 Fighter Simulator is very rude.

 

I was going to add support for crashing Sally if Maria's DMA was enabled before the HEN signal was active or her DMA_TEST_A / DMA_TEST_B modes were used. But that caused the game to lock up immediately. During startup it writes $7F, $00, $40 to Maria's CTRL register which briefly enables DMA_TEST_A. Yet the gap between the $00 and $40 is evidently short enough that this doesn't cause any issues.

Link to comment
Share on other sites

  • 1 month later...
  • 1 month later...

Meant to mention this much sooner, but it kept slipping my mind.

 

Perhaps something that seems easier to implement than a CRT filter, in the interim, is the option for screen cropping.  

 

Too much of the top and bottom is visible when compared to most (all?) displays with the actual console hardware.  If possible, a simple "None (240), Average (224), High (208)" settings, multiples of 4 or 8 scanlines added or subtracted, or even custom values would be appreciated.

  • Like 2
Link to comment
Share on other sites

Today somebody pointed me to this emulator and i tried it out in last 30 minutes.

 

"BupSystem" really makes a very good impression. Easy in handling and with great compatibility. Good emulator!

 

Only thing which nerves me a little bit is, that always when i go into the "GAME / OPEN" menue, only cdf files are shown and i always must change to a78 files first. Would be great if either, the emulator can load all file-types from the beginning on (user can see all the different files) or the emu saves the last file-type which was chosen and then stays at a78 files in this function.

  • Like 2
Link to comment
Share on other sites

22 hours ago, Trebor said:

Too much of the top and bottom is visible when compared to most (all?) displays with the actual console hardware.  If possible, a simple "None (240), Average (224), High (208)" settings, multiples of 4 or 8 scanlines added or subtracted, or even custom values would be appreciated.

This is definitely on the todo list (and I'll add it to the first post), but I'm not sure it'll make it into the next release. I'd rather go fully custom here, since visible overscan is highly dependent upon which sort of display you're using and how it's calibrated. For example, Atari's recommended 192-line safe area is very accurate to what my old Sharp Linytron displays - but I can see nearly 240 lines on my Sony PVM. It'll eventually go into an "Advanced..." configuration section.

 

 

16 hours ago, AW127 said:

Only thing which nerves me a little bit is, that always when i go into the "GAME / OPEN" menue, only cdf files are shown and i always must change to a78 files first. Would be great if either, the emulator can load all file-types from the beginning on (user can see all the different files) or the emu saves the last file-type which was chosen and then stays at a78 files in this function.

Since a short cartridge history is already part of 0.9.6.2 - a type history would also be appropriate. I'll try to add the latter behavior where BupSystem will remember your last type of file used. In the meantime, you can already load a cartridge by dragging and dropping its file onto BupSystem's window - and this doesn't require any extension scoping.

 

As a reminder, new versions will take some time since I'm not exclusively working with the 7800 anymore. But I did finally repair the console I use for development. I'd like to at least release a new version before the end of this year with minor polishing and a draft implementation of my new mapper design.

  • Like 5
Link to comment
Share on other sites

8 hours ago, TailChao said:

This is definitely on the todo list (and I'll add it to the first post), but I'm not sure it'll make it into the next release. I'd rather go fully custom here, since visible overscan is highly dependent upon which sort of display you're using and how it's calibrated. For example, Atari's recommended 192-line safe area is very accurate to what my old Sharp Linytron displays - but I can see nearly 240 lines on my Sony PVM. It'll eventually go into an "Advanced..." configuration section.

Excellent.  Thank you.  Complete customization would be perfect.  Indeed, there is a lot of variation here.  There may be some interest looking at this thread too.  The 2600 was leveraged to take a poll for scanline visibility among other things.  Min 190, like your Sharp, and Max 239, like your Sony.  The majority (60%) of NTSC displays tested average 224.2 scanlines. 

 

For the 7800, the 224 value also coincides with the other contemporary console specifications (I.E. NES, SMS).  It tends to be a favorite, based on personal experience and referencing the original retail library. Water Ski and Tank Command both perfectly fit with 224 scanlines in view, so developers (At the very least Froggo), evidently experienced, planned, and programmed accordingly.  Perhaps 224 could be considered the default line visibility with complete customization available for more or less in view, respecting future releases when the feature is implemented.

 

8 hours ago, TailChao said:

As a reminder, new versions will take some time since I'm not exclusively working with the 7800 anymore.

Regardless, thanks for keeping at it - even if it is once a year or even once every couple of years.  It is appreciated.

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

Since I was unable to find a donor cartridge slot (and would likely have destroyed it anyway), here's a - uh... alternate solution. I put two 2.54mm headers where the cartridge slot was located then made modules which attach to them. This way my test boards connect to the headers rather than requiring a beveled card edge, as another plus it's easier to hang logic analyzer probes off the thing.

 

For running normal cartridges we have this monstrosity...

 

1303809923_AMP7800Slot.thumb.jpeg.0bea80eb68321ee6453592db31409b75.jpeg

 

The slot is an AMP / TE Connectivity's 5530843-3 (Mouser #571-5530843-3), it's not as tall as the original slot but the pin spacing is identical. So if you're trying to fashion a 7800 Cartridge Programmer this is a good pick.

  • Like 7
Link to comment
Share on other sites

  • 3 weeks later...
On 1/20/2020 at 10:56 AM, TailChao said:

I'll try to add the latter behavior where BupSystem will remember your last type of file used.

...and this feature has been added for all file filters.

 

Quote

I'd like to at least release a new version before the end of this year with minor polishing and a draft implementation of my new mapper design.

...and this one is on the way.

 

 

I've also added an alternate BupSystem BIOS to the todo list, a functionally equivalent but non copyright infringing version of the 7800 BIOS which can be bundled with the emulator. Not sure if this will make it in 0.9.6.2, but it's a convenience I'd like to have.

 

Addendum : Should we have pinned topics for both A7800 and BupSystem's development status in here? This would also help nudge users towards which emulators are actually being supported (and away from ProSystem).

Edited by TailChao
  • Like 4
Link to comment
Share on other sites

  • 2 weeks later...
  • 4 weeks later...

I've mostly settled on a feature set for PMC1, so it's attached here.

 

While SOUPER was intended to be minimalist and allow easy migration of software using Atari's mapping scheme, PMC1 is designed specifically to address what I feel are shortcomings in the hardware and falls roughly between MMC3 and MMC5 class. It also contains a few "looking forward" features with an intention to be expandable, but remain compatible (i.e. it'd be feasible to do a PMC2 which adds new knobs and dials but remains compatible, or cut off things you don't need to make a PMC1-micro).

 

If the partitioning seems a little confusing, it may be helpful to think of Maria's graphic fetches as $VVUU (or $YYXX) from a giant texture which is all of memory. This is why some elements are subdivided on A7 or A7 + A6 borders.

 

The SPI Controller has been added since it's significantly cheaper to use 3.3v SPI Flashes + SPI Level Shifter and pull data into EXRAM rather than expanding the size of the NOR Flash. You can drop a 16MB SPI Flash on there easy and store all your graphic data or stage maps on there, it can also be a little simpler than converting everything to 3.3v - it's nice and isolated.

 

Please note this is a draft specification. I've written the Verilog and will add this to BupSystem for 0.9.6.2 - but are in no rush to finalize it. As stated before, "eh, maybe by the end of the year" is my timeline. If there's anything you feel would plus this feature set, let me know and I'll see if it's feasible.

EQU_PMC1.asm

  • Like 2
Link to comment
Share on other sites

13 hours ago, R_Leo_1 said:

Would it ever be possible to add a feature to pause and advance frame by frame, similar to what FCEUX has?

Pausing was added in the last few weeks, so I'll stick frame advance on the todo list. Maybe Shift + Pause to trigger it?

 

g_pause.gif.323dbf5eac3e8b3057644045fa48d071.gif

 

The only catch is that the audio might drift out of sync if you use this feature for a long period of time (i.e. step through hundreds of frames). But unpausing will snap it back into alignment.

  • Like 1
Link to comment
Share on other sites

15 hours ago, R_Leo_1 said:

Would it ever be possible to add a feature to pause and advance frame by frame, similar to what FCEUX has?

If you have an immediate need for it, the A7800 emulator has the feature present, enabled with Shift+P, as inherited from MAME.

  • Like 2
Link to comment
Share on other sites

On 3/27/2020 at 12:27 PM, TailChao said:

I've mostly settled on a feature set for PMC1, so it's attached here.

...

Please note this is a draft specification. I've written the Verilog and will add this to BupSystem for 0.9.6.2 - but are in no rush to finalize it.

...and after a week, I've nudged some things around.

 

In particular, Maria's paging has been repartitioned as follows.

;               | $xx00        | $xx40        | $xx80        | $xxC0
;---------------------------------------------------------------------------
; $00xx - $3Fxx |...........................................................
;---------------|-----------------------------------------------------------
; $40xx - $4Fxx | EXRAM (4KB, EXRAM_V_SEL) or DLM (4KB, DSX/DSY + BGL/FGL)
;---------------|-----------------------------------------------------------
; $50xx - $5Fxx | BGX_C        | BGX_D        | BGX_E        | BGX_F
;---------------|-----------------------------------------------------------
; $60xx - $6Fxx | BGX_A                       | BGX_B
;---------------|-----------------------------------------------------------
; $70xx - $7Fxx | BGX_W
;---------------|-----------------------------------------------------------
; $80xx - $8Fxx | BGR_W
;---------------|-----------------------------------------------------------
; $A0xx - $AFxx | CHX_C        | CHX_D        | CHX_E        | CHX_F
;---------------|-----------------------------------------------------------
; $C0xx - $CFxx | CHX_A                       | CHX_B
;---------------|-----------------------------------------------------------
; $E0xx - $EFxx | CHR_A                       | CHR_B
;---------------------------------------------------------------------------

 

That should work a little better.

 

CHR_A, CHR_B, and the new BGR_W are still restricted to the first 512KB of the 2MB ROM, but I've moved their registers around to leave space for an upper byte to make this future-extendable - right now they're constrained due to gate count. Rest I'm still okay with.

 

EQU_PMC1.asm

Edited by TailChao
  • Like 2
Link to comment
Share on other sites

On 4/4/2020 at 4:55 PM, TailChao said:

...and after a week, I've nudged some things around.

...and again!

 

No register or feature changes, but I got the SPI Controller to operate at exactly PHI2 (1.79 or 1.19 MHz) instead of (PHI2 / 2). So one byte every eight clocks, which is faster than most arbitrary unrolled copies like...

	LDA SPI_DATA			; 4
	STA SPI_DATA			; 4
	STA (GLO_PointerA),Y		; 6
	INY				; 2, 16
	...

 

...but if you're banging SPI_DATA (for example, seeking within flash memory), you'll still need a nop or two.

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...