Jump to content

Photo

3E does not work with larger ROM sizes


17 replies to this topic

#1 ZackAttack OFFLINE  

ZackAttack

    Dragonstomper

  • 762 posts
  • Location:Orlando, FL US

Posted Wed Apr 6, 2016 11:49 AM

It was my understanding when I ordered my harmony encore that it would support a 512KB game no problem. I've been experimenting with different sized 3E ROMs and the largest I could get to work was 32KB. I also ran into problems with odd sizes like 30KB.

Attached is a zip with the different sizes I tried. They all work in stella and only differ in image size.

Is this a hardware limitation of the encore or is there just a problem with the firmware? (I'm using the v1.06 firmware)

Attached File  3E_tests.zip   7.85KB   228 downloads

#2 DirtyHairy OFFLINE  

DirtyHairy

    Dragonstomper

  • 529 posts
  • Location:Germany

Posted Tue Dec 12, 2017 2:29 PM

Just hit the same trap --- I can't get a 512k 3E ROM to run. Does anybody know a solution, or is this a restriction of the Encore?



#3 Omegamatrix OFFLINE  

Omegamatrix

    Quadrunner

  • 6,239 posts
  • Location:Canada

Posted Thu Mar 1, 2018 9:54 PM

It was my understanding when I ordered my harmony encore that it would support a 512KB game no problem. I've been experimenting with different sized 3E ROMs and the largest I could get to work was 32KB. I also ran into problems with odd sizes like 30KB.

Attached is a zip with the different sizes I tried. They all work in stella and only differ in image size.

Is this a hardware limitation of the encore or is there just a problem with the firmware? (I'm using the v1.06 firmware)

attachicon.gif3E_tests.zip

I tried your 510k rom in Stella and noticed you TIA registers are normal (not offset). I believe with 3E you have to offset them or else you will trigger bankswitches. I looked and found in an old 3E rom I had done this:

VSYNC   = $00 | $40              ; must use TIA mirror registers at 0x40 for 3E bankscheme
VBLANK  = $01 | $40
WSYNC   = $02 | $40
RSYNC   = $03 | $40
NUSIZ0  = $04 | $40
NUSIZ1  = $05 | $40
COLUP0  = $06 | $40
COLUP1  = $07 | $40
COLUPF  = $08 | $40
COLUBK  = $09 | $40
CTRLPF  = $0A | $40
REFP0   = $0B | $40
REFP1   = $0C | $40
PF0     = $0D | $40
PF1     = $0E | $40
PF2     = $0F | $40
RESP0   = $10 | $40
RESP1   = $11 | $40
RESM0   = $12 | $40
RESM1   = $13 | $40
RESBL   = $14 | $40
AUDC0   = $15 | $40
AUDC1   = $16 | $40
AUDF0   = $17 | $40
AUDF1   = $18 | $40
AUDV0   = $19 | $40
AUDV1   = $1A | $40
GRP0    = $1B | $40
GRP1    = $1C | $40
ENAM0   = $1D | $40
ENAM1   = $1E | $40
ENABL   = $1F | $40
HMP0    = $20 | $40
HMP1    = $21 | $40
HMM0    = $22 | $40
HMM1    = $23 | $40
HMBL    = $24 | $40
VDELP0  = $25 | $40
VDELP1  = $26 | $40
VDELBL  = $27 | $40
RESMP0  = $28 | $40
RESMP1  = $29 | $40
HMOVE   = $2A | $40
HMCLR   = $2B | $40
CXCLR   = $2C | $40

CXM0P   = $00 | $40
CXM1P   = $01 | $40
CXP0FB  = $02 | $40
CXP1FB  = $03 | $40
CXM0FB  = $04 | $40
CXM1FB  = $05 | $40
CXBLPF  = $06 | $40
CXPPMM  = $07 | $40
INPT0   = $08 | $40
INPT1   = $09 | $40
INPT2   = $0A | $40
INPT3   = $0B | $40
INPT4   = $0C | $40
INPT5   = $0D | $40

SWCHA   = $0280
SWACNT  = $0281
SWCHB   = $0282
SWBCNT  = $0283
INTIM   = $0284
TIMINT  = $0285
TIM1T   = $0294
TIM8T   = $0295
TIM64T  = $0296
T1024T  = $0297

This also more properly done using vcs.h with TIA_BASE_READ_ADDRESS = $40 and TIA_BASE_WRITE_ADDRESS = $40. Also just for clarity my 3E rom was not over 32K.



#4 ZackAttack OFFLINE  

ZackAttack

    Dragonstomper

  • Topic Starter
  • 762 posts
  • Location:Orlando, FL US

Posted Thu Mar 1, 2018 10:23 PM

I tried your 510k rom in Stella and noticed you TIA registers are normal (not offset). I believe with 3E you have to offset them or else you will trigger bankswitches. I looked and found in an old 3E rom I had done this:

VSYNC   = $00 | $40              ; must use TIA mirror registers at 0x40 for 3E bankscheme
VBLANK  = $01 | $40
WSYNC   = $02 | $40
RSYNC   = $03 | $40
NUSIZ0  = $04 | $40
NUSIZ1  = $05 | $40
COLUP0  = $06 | $40
COLUP1  = $07 | $40
COLUPF  = $08 | $40
COLUBK  = $09 | $40
CTRLPF  = $0A | $40
REFP0   = $0B | $40
REFP1   = $0C | $40
PF0     = $0D | $40
PF1     = $0E | $40
PF2     = $0F | $40
RESP0   = $10 | $40
RESP1   = $11 | $40
RESM0   = $12 | $40
RESM1   = $13 | $40
RESBL   = $14 | $40
AUDC0   = $15 | $40
AUDC1   = $16 | $40
AUDF0   = $17 | $40
AUDF1   = $18 | $40
AUDV0   = $19 | $40
AUDV1   = $1A | $40
GRP0    = $1B | $40
GRP1    = $1C | $40
ENAM0   = $1D | $40
ENAM1   = $1E | $40
ENABL   = $1F | $40
HMP0    = $20 | $40
HMP1    = $21 | $40
HMM0    = $22 | $40
HMM1    = $23 | $40
HMBL    = $24 | $40
VDELP0  = $25 | $40
VDELP1  = $26 | $40
VDELBL  = $27 | $40
RESMP0  = $28 | $40
RESMP1  = $29 | $40
HMOVE   = $2A | $40
HMCLR   = $2B | $40
CXCLR   = $2C | $40

CXM0P   = $00 | $40
CXM1P   = $01 | $40
CXP0FB  = $02 | $40
CXP1FB  = $03 | $40
CXM0FB  = $04 | $40
CXM1FB  = $05 | $40
CXBLPF  = $06 | $40
CXPPMM  = $07 | $40
INPT0   = $08 | $40
INPT1   = $09 | $40
INPT2   = $0A | $40
INPT3   = $0B | $40
INPT4   = $0C | $40
INPT5   = $0D | $40

SWCHA   = $0280
SWACNT  = $0281
SWCHB   = $0282
SWBCNT  = $0283
INTIM   = $0284
TIMINT  = $0285
TIM1T   = $0294
TIM8T   = $0295
TIM64T  = $0296
T1024T  = $0297

This also more properly done using vcs.h with TIA_BASE_READ_ADDRESS = $40 and TIA_BASE_WRITE_ADDRESS = $40. Also just for clarity my 3E rom was not over 32K.

 

Thanks for taking a look. According to the kevtris blog using the TIA mirrors is only necessary for 3F. It also doesn't explain why my 32KB test program doesn't crash too. Would it be a valid test to take your 32K rom and concatenate it with itself to create a 64K test ROM? Of course if that works we could continue to double it up to 512K for testing purposes.



#5 Omegamatrix OFFLINE  

Omegamatrix

    Quadrunner

  • 6,239 posts
  • Location:Canada

Posted Fri Mar 2, 2018 12:20 AM

I took a look and my old rom was quite incomplete, so I wrote a new test rom. I won't be able to try it on hardware until the weekend at least. I have a feeling the issue might be a ram limit, and maybe that it's 32k.

 

I'm not sure about your roms, but have you tried making a 512K rom only game? Here's the one I just wrote. I haven't tried it on the Encore. I also did switch the TIA addresses to normal, but if it doesn't work I would try changing them back to start at $40.

 

Attached File  3E_Test.zip   6.43KB   128 downloads

 

 



#6 Omegamatrix OFFLINE  

Omegamatrix

    Quadrunner

  • 6,239 posts
  • Location:Canada

Posted Fri Mar 2, 2018 12:24 AM

I forgot to say. If this rom works it will just change background colors and cycle through $00 to $FE. Because the color registers don't use bit 0, the banks only update colors every 2nd bank. 



#7 ZackAttack OFFLINE  

ZackAttack

    Dragonstomper

  • Topic Starter
  • 762 posts
  • Location:Orlando, FL US

Posted Fri Mar 2, 2018 8:32 AM

The test roms that I originally posted use one page of RAM. So I limited it to 510KB of ROM in order to keep the total at 512KB. So I guess really it's a 34KB program that's working since the 32KB bin file is the one that worked on the harmony.

 

I'll try the 512KB bin that you posted sometime this weekend. Btw, stella will auto detect a 3e game if you put HEX 85 3e a9 00 in the image.



#8 DirtyHairy OFFLINE  

DirtyHairy

    Dragonstomper

  • 529 posts
  • Location:Germany

Posted Sat Mar 3, 2018 1:55 AM



I took a look and my old rom was quite incomplete, so I wrote a new test rom. I won't be able to try it on hardware until the weekend at least. I have a feeling the issue might be a ram limit, and maybe that it's 32k.

 

I'm not sure about your roms, but have you tried making a 512K rom only game? Here's the one I just wrote. I haven't tried it on the Encore. I also did switch the TIA addresses to normal, but if it doesn't work I would try changing them back to start at $40.

 

attachicon.gif3E_Test.zip

 

 

Unfortunately, I don't have time to test your code right now, but I posted a 512k ROM here which does not work either. This ROM does not use RAM and only writes to $3F (no access to $3E), and it only use the TIA mirrors at $40. It doesn't run, even if I set the file suffix. I can't get it to even launch, nothing happens if I select the file in in the menu, so I am pretty sure that at least banking detection and file checks for 3E and 3F are not adapted for the Encore.


Edited by DirtyHairy, Sat Mar 3, 2018 2:00 AM.


#9 Omegamatrix OFFLINE  

Omegamatrix

    Quadrunner

  • 6,239 posts
  • Location:Canada

Posted Sat Mar 3, 2018 1:45 PM

I wasn't able to get DirtyHairy's roms working, and most of ZackAttacks. I am trying to nail down the size the Encore is taking. I never tried the rom I posted and instead tweaked it so it compiles to different sizes much easier.

 

Some questions I have ATM:

 

Encore firmware - what is the golden version to use? I'm really not sure if I have updated my Encore in the past and if I have Harmony firmware. This is the first thing to verify, but I could not find clear info on the Encore firmware specifically. I also can not find my disc.

 

Ram allocation: ram would use address space $F000-$F3FF for read and $F400-$FFFF for write. I count that as 1K of ram, but maybe the address space allocates it as 2K of ram? So I'm trying to figure out exactly how much ram is there to be used.

 

Some of things I am trying:

- I changed my RORG's to use $Fxxx instead of $1xxx

- I went back to using the TIA mirrors at $40 instead of $00 (like DirtyHairy)

- I changed my code to always run in the last bank, and just read a byte from each ROM and RAM bank.

- I am also trying .3E and .3F extensions

 

 

Some of the things I learned:

- Stella only allows 32 RAM banks to be selected (0-31 writes to $3E)



#10 stephena OFFLINE  

stephena

    River Patroller

  • 3,380 posts
  • Stella maintainer
  • Location:Newfoundland, Canada

Posted Sat Mar 3, 2018 1:57 PM

Some of the things I learned:

- Stella only allows 32 RAM banks to be selected (0-31 writes to $3E)

 

This is directly from the description of the scheme.  Stella can easily be extended if necessary; I just went with what was described in documentation.



#11 Omegamatrix OFFLINE  

Omegamatrix

    Quadrunner

  • 6,239 posts
  • Location:Canada

Posted Sat Mar 3, 2018 2:06 PM

 

This is directly from the description of the scheme.  Stella can easily be extended if necessary; I just went with what was described in documentation.

That makes sense. Last night I found a link to the Encore appendum, and it describes that it can do (under extensions):

 

3E (3F with up to 256k RAM)

 

Link to appendum upload:

http://atariage.com/...-6#entry3895566



#12 Omegamatrix OFFLINE  

Omegamatrix

    Quadrunner

  • 6,239 posts
  • Location:Canada

Posted Sat Mar 3, 2018 2:18 PM

Here is my new rom:

 

Attached File  3E_Test_(rev2).zip   5.65KB   125 downloads

 

It will run a test and give a green screen (pass), or red (fail). The number it displays represent:

; 3  rom fail, ram fail
; 2  rom fail, ram pass
; 1  rom pass, ram fail
; 0  rom pass, ram pass

I ran the two roms included, and it failed the 3E_Test_(32rom32ram).3e and displayed a "1".

 

That tells me the I can only select 16 ram banks on the Encore, and that the total ram available is 16K.

 

I am now going to keep the ram at 16K and try increasing the rom size.



#13 Omegamatrix OFFLINE  

Omegamatrix

    Quadrunner

  • 6,239 posts
  • Location:Canada

Posted Sat Mar 3, 2018 2:30 PM

I tried a 64k, 128k, 256k, and 512k rom. All fail to load.

 

I looked at the firmware version on my Encore screen, and it is 1.06. I am now going to search and try uploading the lastest eeprom and bios files to my Encore. If anyone can say for certain they now what should be used on the Encore please say so.



#14 DirtyHairy OFFLINE  

DirtyHairy

    Dragonstomper

  • 529 posts
  • Location:Germany

Posted Sat Mar 3, 2018 3:36 PM

Thanks for the systematic testing, Omegamatrix! About the Encore firmware: this is actually an interesting question. I have never seen firmware specifically for the Encore, so I was always under the assumption that both Harmony and Encore use the same firmware and all differences are accounted for at runtime (and my Encore *does* run EF cartridges, which supposedly is a Encore-only feature). However, this is just an assumption, so a definitive statement by someone who knows better wouldn't hurt ;)



#15 Omegamatrix OFFLINE  

Omegamatrix

    Quadrunner

  • 6,239 posts
  • Location:Canada

Posted Sat Mar 3, 2018 3:50 PM

I tried:

 

Harmony 1.06 BIOS (beta) Same results as before. 32K Rom and 16 Ram maximum for 3E. This version also has garbled characters on the menu screen.

 

Harmony 1.06 BIOS (beta 2) No change for larger size in 3E. Garbled characters is fixed.

 

Harmony 1.06 BIOS (beta 5) No change for larger size in 3E.

 

Harmony 1.06 BIOS No change for larger size in 3E. I'm assuming this is the official release version, but is it the latest?

 

 

 

I updated these all with .cu file, and made sure that only the new hbios was on the root of the SD card. I also checked subfolders to make sure no hbios files were in there.

 

One other thing I wondering is if the eeprom file is different for Encore.



#16 SpiceWare OFFLINE  

SpiceWare

    Draconian

  • 12,746 posts
  • Medieval Mayhem
  • Location:Planet Houston

Posted Sat Mar 3, 2018 4:15 PM

Link to appendum upload:
http://atariage.com/...-6#entry3895566


Hmm, reading that it looks like 3E was updated to support more RAM, not ROM, and 3F wasn't updated (not listed) so it still supports 32K.

Might try experimenting with DF (128K) and BF (256K).

#17 Omegamatrix OFFLINE  

Omegamatrix

    Quadrunner

  • 6,239 posts
  • Location:Canada

Posted Sat Mar 3, 2018 5:00 PM

Those other larger bankswitching formats may very well work, but I'm just focusing on 3E at the moment. These are all the 3F games I know of:

 

- Espial

- Miner 2049er

- Miner 2049er Vol II

- Polaris

- River Patrol

- Springer

 

All are 8K. Going with that I made some new 8k roms with different amounts of ram:

 

- 8k rom, 16 ram - failed (would not load)

- 8k rom, 32 ram - failed (would not load)

- 8k rom, 64 ram - failed (would not load)

- 8k rom, 128 ram - failed (would not load)

- 8k rom, 256 ram - failed (would not load)

 

I thought about this and released I had already found that a 32k rom and 16k ram worked, so the 8k rom with 16k ram failure was interesting. I went down a path of thinking that 32K rom plus 16 ram x2 (read/write addressing) = 64K, so maybe the size of both together matered in a way it gets stored in the encore memory. Perhaps the non-loading is due the Encore not starting up in the last bank as defined by the spec, because the size is not what was expected.

 

On that note I experimented next by making a 64k rom with a 32k ram, but it would not load too. So that's where we are.



#18 Omegamatrix OFFLINE  

Omegamatrix

    Quadrunner

  • 6,239 posts
  • Location:Canada

Posted Sat Mar 3, 2018 9:19 PM

I made a test rom and tried BFSC and it works on the Encore. This is sixty four 4k banks with super chip ram.

 

Attached File  BFSC_Test.zip   34.53MB   132 downloads

 

What is interesting is while loading the Harmony logo disappears and is replaced by an 'e' for Encore. Very nice touch and I haven't seen it before. Must only appear for bankswitching schemes that the Encore can do? In the zip file above is a video of it in action.






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users