Jump to content
IGNORED

Work In Progress: "Bentley Bear: Crystal Quest"


PacManPlus

Recommended Posts

Hi Guys:

 

Ok, so No go on the new 'loader' routine, it produced 'lines' between the screen zones on the real thing. So I'm using the same one as before.

That being said, I fixed the object placement bug that KevinMos3 found, and here is RC6

 

*This* I believe is the last one. :) :ponder:

 

Bob

Bentley.a78

Bentley.BIN

BentleyP.A78

BentleyP.BIN

  • Like 4
Link to comment
Share on other sites

Oh yeah, and it can also do this...

 

http://atariage.com/forums/topic/101596-how-to-waste-the-memory-of-your-cc2-mmc-cart/?hl=%20waste%20%20space

 

No more hacking up of old BS boards. :P

 

 

No idea why my phone decided to upload this one upside down. LOL :ponder:

 

@Schmutzpuppe: Do one like this, but make it 1 megabyte, instead of 512K. :D

 

Forgive me for the crappy videos, I don't have time to re-shoot and re-shoot and I like the convenience of the phone upload feature. :sad:

  • Like 5
Link to comment
Share on other sites

It's designed for 144K or 256K by default, no jumpers. Two jumpers control 512K and 1MB mode. But I just looked at the datasheet for 27C010's and A17 is N/C on it, so I am willing to bet that 128K will just work as well.

 

EDIT: The first run of production boards should be here by the end of the week, they'll be red with beveled and gold plated edge connector, just like all my other boards. It's no different in size, compared to my 48K board.

  • Like 6
Link to comment
Share on other sites

It's "snooze you lose" as I also designed a bankswitch board. I improved it over the Tomlin design as it requires just ONE resistor (R1) for 144k-256k, not three. It also has a serial EEPROM for save games - this requires all five resistors to be populated and will support 256k, and the jumper needs to be closed. I've been too busy to even test the one I have so I'm just going to post it all here. Sorry that the schematic is awful and the board needs cleaning up, it's still prototype stage so I encourage anyone to clean up those goofy wire placements so it looks nicer. Under the circumstances, I think it's best I just give this to the community and let someone else do the rest if they are so inclined.

I have three boards that I'll send to 7800 programmers if they want to try them, but I won't be getting any more since there are now competing production boards on the way. If anyone who doesn't have an active 7800 project wants a board or boards, I encourage you to get your own, (please remember this is untested, I have had the boards sitting on my bench for a month and just haven't had time, but this is a second prototype, I think it will work fine.) These Eagle files are public domain, I don't need any compensation or otherwise if you use them.

The code below requires EQN2JED.EXE to build to a JED file. It's an old DOS program you can find on Google, though it will likely need DOSBox to run it.

Here's the .eqn file for 144k-256k (populate one resistor, R1.)


; JED2EQN -- JEDEC file to Boolean Equations disassembler (Version V063)
; Copyright (c) National Semiconductor Corporation 1990-1993
;$GALMODE REGISTERED

chip 7800AABS GAL16V8

capin=1 A15=2 CLK2=3 RW=4 D3=5 D0=6 D1=7 D2=8 A14=9 /OE=11
GND=10 o2=12 ROMCE=13 EA17=14 EA14=15 EA15=16 EA16=17 capout=18 o3=19
VCC=20

@ues 0000000000000000
@ptd unused

equations

o2 := D1 * /A14 * A15 * /RW + o2 * A14 + o2 * /A15 + o2 * RW
o2.oe = vcc
o3 := D2 * /A14 * A15 * /RW + o3 * A14 + o3 * /A15 + o3 * RW
o3.oe = vcc
ROMCE = /A14 * /A15 + /RW
ROMCE.oe = vcc
EA14 := D0
EA14.oe = OE
EA15 = o2 * /A14 * A15 + A14 * A15
EA15.oe = vcc
EA16 = o3 * /A14 * A15 + A14 * A15
EA16.oe = vcc
EA17 = A14 * /A15
EA17.oe = vcc
capout = /A14 * A15 * /RW * /CLK2
capout.oe = vcc

Here is the code for 256k + EEPROM.

To use the I2C EEPROM, write $08 and $18 to the normal bankswitch area to toggle SCL, and the bit on D7 can read or write SDA as needed (read from any unused address below $4000, like the HSC area will do.) You'll have to bit-bang the I2C protocol yourself to read/write bytes.

Note that writes of $08 and $18 to the bankswitch area DO NOT affect bankswitching, it will stay in whatever bank you left it in.

; JED2EQN -- JEDEC file to Boolean Equations disassembler (Version V063)
; Copyright (c) National Semiconductor Corporation 1990-1993
; Disassembled from mini78.jed. Date: 1-30-113
;$GALMODE REGISTERED

chip 7800AABS GAL16V8

capin=1 A15=2 CLK2=3 RW=4 D3=5 D0=6 D1=7 D2=8 A14=9 /OE=11
GND=10 D4=12 ROMCE=13 EA17=14 EA14=15 EA15=16 EA16=17 capout=18 SCL=19
VCC=20

@ues 0000000000000000
@ptd unused

equations

capout = /A14 * A15 * /RW * /CLK2
capout.oe = vcc
ROMCE = /A14 * /A15 + /RW
ROMCE.oe = vcc
EA14 := D0 * /D3 + EA14 * D3
EA14.oe = OE
EA15 := D1 * /D3 + EA15 * D3
EA15.oe = OE
EA16 := D2 * /D3 + EA16 * D3
EA16.oe = OE
EA17 = A14 * /A15
EA17.oe = vcc
SCL := D4 * D3 + SCL * /D3
SCL.oe = vcc
D4 = gnd
D4.oe = gnd

Edit: removed incorrect comments in eqn files.

 

EDIT2: First EQN file was the wrong one, corrected.

7800BS_EE.zip

  • Like 5
Link to comment
Share on other sites

Thanks!

 

Also if anyone grabbed the EQN files above, one was an older version that won't work with the board posted, so I just updated it.

 

I thought I'd build the JED files too just to ensure that they will compile. As said I leave it up to others to validate this (though eventually I may get around to it.)

78bs_batari.zip

  • Like 2
Link to comment
Share on other sites

@Trebor: hmmm, that's odd... does MESS support the Pokey at $450?

Yes [AM_RANGE(0x0450, 0x045f) /* XBOARD POKEY1 */]. XM/XBoard POKEY address mapping was added several versions ago with high score support address mapping as well.

 

High score support works similar to the ProSystem emulator where if the high score data is present within the *.a78 file it will read the data, but does not properly save/store once the emulator session is terminated and does not work 'stand-alone' with just the game code looking for a High Score Cart/XM module...Example:

 

post-18-0-74377900-1384179937_thumb.pngpost-18-0-31341000-1384179939_thumb.png

 

The way for it to be 'properly' supported in MESS would be to have the High Score Cart, or better yet the XM module (code) handled like a slot-device (Think Sonic & Knuckles cart on the Genesis). That type of coding goes beyond my abilities though. Address maps, screen parameters, and color palettes - no problem; but slot-device coding is over my head.

Link to comment
Share on other sites

 

Correct [AM_RANGE(0x0450, 0x045f) /* XBOARD POKEY1 */]. XM/XBoard POKEY address mapping was added several versions ago with high score support address mapping as well.

 

High score support works similar to the ProSystem emulator where if the high score data is present within the *.a78 file it will read the data, but does not properly save/store once the emulator session is terminated and does not work 'stand-alone' with just the game code looking for a High Score Cart/XM module...Example:

 

attachicon.gifDKXM TITLE.PNGattachicon.gifDKXM_HS.PNG

 

The way for it to be 'properly' supported in MESS would be to have the High Score Cart, or better yet the XM module (code) handled like a slot-device (Think Sonic & Knuckles cart on the Genesis). That type of coding goes beyond my abilities though. Address maps, screen parameters, and color palettes - no problem; but slot-device coding is over my head.

The way I implemented it in the emulator ROM is kind of a kludge. The HSC ROM is not mapped at the correct location in the "cart ROM". I wrote some code to copy the HSC ROM into the correct location at $3000. This only works if RAM is being emulated at that location. There also needs to be RAM at $2000 which is where the battery backed RAM is located on the HSC.

 

correction: the HSC RAM is at $1000. I guess my memory backup battery needs to be replaced. :)

Link to comment
Share on other sites

The way I implemented it in the emulator ROM is kind of a kludge. The HSC ROM is not mapped at the correct location in the "cart ROM". I wrote some code to copy the HSC ROM into the correct location at $3000. This only works if RAM is being emulated at that location. There also needs to be RAM at $2000 which is where the battery backed RAM is located on the HSC.

MAME/MESS a7800.c source:

AM_RANGE(0x1800, 0x27ff) AM_RAM

AM_RANGE(0x3000, 0x37ff) AM_RAMBANK("bank7") /* MAINRAM */

AM_RANGE(0x3000, 0x3fff) AM_ROM /* hs ROM space */

:)

Link to comment
Share on other sites

Yes [AM_RANGE(0x0450, 0x045f) /* XBOARD POKEY1 */]. XM/XBoard POKEY address mapping was added several versions ago with high score support address mapping as well.

 

High score support works similar to the ProSystem emulator where if the high score data is present within the *.a78 file it will read the data, but does not properly save/store once the emulator session is terminated and does not work 'stand-alone' with just the game code looking for a High Score Cart/XM module...Example:

 

attachicon.gifDKXM TITLE.PNGattachicon.gifDKXM_HS.PNG

 

The way for it to be 'properly' supported in MESS would be to have the High Score Cart, or better yet the XM module (code) handled like a slot-device (Think Sonic & Knuckles cart on the Genesis). That type of coding goes beyond my abilities though. Address maps, screen parameters, and color palettes - no problem; but slot-device coding is over my head.

I can send you my code so you could see how I did it. I based it off of SRAM saving in the SMS driver. It might not be technically correct but it works.

Link to comment
Share on other sites

  • 2 weeks later...

First post. This game is truly amazing! Have played it on an emulator and it is the only 7800 game that will hold my kids' attention.

 

When it is released on cartridge... will it ONLY work with the XM expansion module? Or will it play on a stock 7800 (even without music)??

 

Will the cart come with a pokey chip embedded for sound?

 

I love this game. But if it only plays on a 7800+XM, it sort of undermines the storyline that the 7800 could have been an awesome system if only the programmers weren't lazy and stuck in a 2600 mindset.

 

Anyway, whether I can drop $50 on the game (or however much) kind of depends on whether I have to buy an XM to make it work. I'd much rather be able to buy the cartridge and play it on a stock 7800. Fingers crossed...

Edited by CloakandDagger
Link to comment
Share on other sites

Welcome, CloakandDagger.

The game will play fine on a 7800 without an XM, just in silence.

Even if it only played on a 7800+XM it does not undermine that the system could have done better.

It does prove that Atari should have invested more money into cartridge hardware like Nintendo did with the NES. The majority of NES carts would not and do not play with just NES 'base' hardware. There is additional memory, video, and/or sound chips within the cartridges. At the time Atari was not investing into the hardware like it needed to in order to compete properly.

A cart could be designed for the 7800 not requiring an XM that would easily play this game complete with sound but it would be a huge resource undertaking financially and the amount of time and energy enormous. That is one of the key points for the XM hardware. You do it once (Both build and buy) and the resources are saved; especially for a homebrew genius like PacManPlus - His time and energy is better spent elsewhere doing other things. ;)

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