Jump to content

Classic99 "Appmode" cartridge booting problems

Recommended Posts

Posted (edited)

Hi everyone!


I've made a little compiled XB program and turned it into a cart with the "MAKECART8" file and I wanted to boot the cart straight from the .exe, so I followed the Classic99 docs and set up appmode. I'm pretty sure this bit is working right, but I can't get the Usercart definition in the .ini file to work properly. There was one thread about this with one of those sidecar cartridges, but I couldn't get anything useful from it.


Since the cart works perfectly from user, open, [path] in the emulator, I used the * type since I didn't know what I was doing. I know it ignores the length and address in this mode but it didn't work when left out so I added some values that I think are right (compiled XB carts are 32k) but in theory they shouldn't matter. This is what I've got:




I've tried a whole load of settings but the closest I've gotten is the  name on the cartridge selection menu that then sits doing nothing when selected. Any thoughts?

Edited by Krool885
fixed a typo
Link to comment
Share on other sites

Posted (edited)

"Read the debug log".


The length of 32k is >8000 in hex, "22000" is 136k. Classic99 will load that but it will also tell you that the file on disk is not actually 136k in size.


The reason that SteveB's worked is because the start address for bank-switched cartridges is 0000, not 6000. 8000 is still the correct size. In the first case, you would have seen that it miscalculated the cartridge size since you started it 24k into the ROM space. 24k+32k=56k, so it would have rounded up and assumed you wanted a 64k cartridge.


Can we please reduce the number of guesses we post? We can educate people how to KNOW what to put in there. Guesses just make it look like magic, and it really isn't. Wrong guesses that work on one image might fail on another with no idea why.


The probable reason why '*' didn't just work is you didn't include the tag character in the name (ie: name8.bin). It's possible I didn't put the workaround for no recognized tag character in the INI read, as I was really irritated to have to implement it in the first place. ;) Again, the debug log would have explicitly said what it was trying to do, and you'd probably have noticed it was wrong.


So "ROM0=8|0000|8000|FILES\name.bin"


How do you know whether it's "6000" or "0000" for the cartridge starting address? Does it fit in 8k? If yes, it's not paged and so it lives in the /cpu/ address space - cartridges are at >6000.


If it's bigger, then the emulator knows it has to be a cartridge at >6000 in the CPU space, and it needs to know where in the EPROM space it loads (because it is possible to break it up into multiple files). So for anything that needs to page, it has its own dedicated address space that represents the EPROM, and so starts at >0000. Or to be simpler, types "8" and "9" start at 0000, types "C","X","G" start at 6000. ;)


Edited by Tursi
  • Like 4
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.

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.

  • Recently Browsing   0 members

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