Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Suggestion: Functionality to automatically parse memory map from .cfg files #4

Open
spspspspspsp opened this issue Jan 21, 2021 · 12 comments

Comments

@spspspspspsp
Copy link

This is a great little tool. Thank you very much. I have been using it to convert homebrew titles to the .intv format. It is easy to use, and the code is easy to understand, even for someone like myself who has not used c++ in ages.

To convert homebrew titles, I have been looking at the .cfg files and manually converting the memory map to the format used by int2intv. It is a simple process, but it takes some time for me to calculate the ranges in hexidecimal.

A nice feature would be if .cfg files could be passed as a parameter, and then the memory map could be automatically extracted.

So far almost every homebrew title I have looked at has had a different map, so the conversion is slow going.

Also, Aardvark has five banks. I modified my local copy to have an extra bank.

int2intv_rev.zip

@SoulSwordStrike
Copy link

Didn't know if you're still on github @spspspspspsp , but I need help converting a homebrew game to intv. Thanks.

@spspspspspsp
Copy link
Author

spspspspspsp commented Nov 16, 2022 via email

@SoulSwordStrike
Copy link

SoulSwordStrike commented Nov 16, 2022

I didn't have much luck but maybe I am doing something wrong or my files need different values? (Im not really a programmer but I was able to recompile a new int2intv) Need some help to figure out what I'm doing wrong, maybe you could provide me with a different cpp to compile or a compiled exe using these values.
edited: (forgot to mention the problem I'm having is I'm getting a black screen when I load the converted intv, so I'm almost certainly doing something wrong, or my files need different values)

(This is regarding the full game of intellivania)
Intellivision collector gave me a separate bin+cfg for the game when I e-mailed them and asked for help
This is contained in it
[mapping]
$0000 - $1FFF = $5000
$2000 - $2FFF = $D000
$3000 - $3FFF = $F000

If I use rom2bin to convert the rom they gave me on purchase I see this in the cfg
[mapping]
$0000 - $0EFF = $2100
$0F00 - $36FF = $4800
$3700 - $45FF = $7100
$4600 - $74FF = $8800
$7500 - $ACFF = $C800

[vars]
ecs = 1
voice = 0
intv2 = 1
kc_compat = 1
tv_compat = 1
lto_mapper = 0
jlp_accel = 0
jlp_flash = 0

@SoulSwordStrike
Copy link

@spspspspspsp sorry to ping/bump this issue I believe I'm close to getting the game to work, but I think my files may need different map address and data size values than the ones you posted, or I am somehow missing something or messing up the script. Unfortunately I do not know how to convert the cfg values to the values expected by the converter. I have posted the contents of both of the cfg files I have in the post above for reference. Thank you in advance for any assistance.

@spspspspspsp
Copy link
Author

spspspspspsp commented Nov 17, 2022 via email

@spspspspspsp
Copy link
Author

spspspspspsp commented Nov 17, 2022 via email

@SoulSwordStrike
Copy link

Thank you so much! Yes I was messing up something in the code. This time I simply edited the Aardvark entry in the code file you posted previously and it worked. Thank you again for helping me on this.

@mholzinger
Copy link

mholzinger commented Jul 27, 2023

Edit: I Solved my issue - I was attempting to convert the rom instead of the bin to intv2.

For the curious the correct md5 will be:

md5sum Intellivania_Final.intv
a4014094369df9ca39ea8d9bae924086  Intellivania_Final.intv

mholzinger added a commit to mholzinger/int2intv that referenced this issue Jul 27, 2023
Basing this commit from the comment thread and code posted in the comments.

dot-bob#4
@spspspspspsp
Copy link
Author

spspspspspsp commented Jul 27, 2023 via email

@mholzinger
Copy link

That was my issue!

I'm currently attempting to write a tool that converts the cfg maps to values to use in this program but struggling to understand how the following mapping works.

Using Princess Quest as an example:

From the cfg file generated by rom2bin, we can see the following map:

[mapping]
$0000 - $0EFF = $2100
$0F00 - $36FF = $4800
$3700 - $55FF = $A000
$5600 - $94FF = $C100

But I'm still uncertain how the Satasize is derived between the starting memory map and the second value.

$0000 - $0EFF

That should produce $0F00 which would be the Datasize and I'm still stuck on how to arrive at that value.

I've been trying to follow along with the docs here:

https://github.com/SmokeMonsterPacks/Nt-Mini-Noir-Jailbreak#intellivision-core-release-notes

    MapAddress[0] = 0x2100;
    DataSize[0] = 0x0F00;

    MapAddress[1] = 0x4800;
    DataSize[1] = 0x2800;

    MapAddress[2] = 0xA000;
    DataSize[2] = 0x1F00;

    MapAddress[3] = 0xC100;
    DataSize[3] = 0x3F00;

Any pointers on how I can generate those values so I can program a feature?

@spspspspspsp
Copy link
Author

spspspspspsp commented Jul 28, 2023 via email

@espiox
Copy link

espiox commented Jan 19, 2024

Has anyone been able to convert any homebrew games with more than 7 banks? I've expanded the script to account for it and triple checked that I've entered the correct values, but when I try to load it up in the Pocket core, I get a Chip32: Unaligned Value error.

Also, did anyone work out what to do with games that have a RAM bank specified in their CFG file? All those ones I've converted have had errors.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants