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

Option to move Fonts out of HBIOS area to ROM Bank 3 #486

Open
wants to merge 14 commits into
base: master
Choose a base branch
from

Conversation

b1ackmai1er
Copy link
Contributor

The FONTS_INLINE equate controls whether the fonts are included in the HBIOS area as per existing behaviour or whether they are placed in the currently unused ROM bank 3.

In the case where we use bank 3 for font storage, the HBIOS is built with the font data located at 0x8000 onwards. The build process splits this off for relocation to the correct image position. Unlzsa, the TMS and VGA driver have been updated to access the font data from either location, whether compressed or not.

Moving the font data to bank 3 results in significant savings in HBIOS space.

If you are happy with this approach, I will continue developing and roll changes into other display drivers and do some hardware testing.

Further on, as mentioned, I would like to look see if i can get the decompressor to decompress one byte at a time and move the CCP cache to bank 3 as well.

Regards Phil

b1ackmai1er and others added 14 commits December 17, 2024 17:45
The FONTS_INLINE equate controls whether the fonts are included in the HBIOS area as per existing behaviour or whether they are placed in the currently unused ROM bank 3.
In the case where we use bank 3 for font storage, the HBIOS is built with the font data located at 0x8000 onwards. The build process splits this off for relocation to the correct image position.  Unlzsa, the TMS and VGA driver have been updated to access the font data from either location, whether compressed or not.

Moving the font data to bank 3 results in significant savings in HBIOS space.

If you are happy with this approach, I will continue developing and roll changes into other display drivers and do some hardware testing.

Further on, as mentioned, I would like to look see if i can get the decompressor to decompress one byte at a time and move the CCP cache to bank 3 as well.

Regards Phil
ECB SBC hangs if no CVDU card is installed. Added timeout.
:: Split off anything above 32K mark of the hbios. This will be relocated to rom bank 3
::

"%TOOLS%\srecord\srec_cat.exe" hbios_rom.bin -Binary -crop 0x8000 0x10000 -offset -0x8000 -o osimg2.bin -Binary || exit /b
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An opinion:

This command overwrites and replaces the logic (116-122) that creates osimg2.bin. This will probably break S100 functionality, It would be easier to understand if you included this line in the above if statement

I don't see any conditional IF FONTS_INLINE around this code, should there be?

The concept of building an oversize hbios.bin file which you then split-up using this command, is counter to the approach used in much of the build. i.e. Generally should build smaller BIN files specifically with the content you need and append these files together using binary copy. better to stick to this approach for clarity and consistency

I didn't see any changes to makefile to support this change

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @kiwisincebirth,

I have been having an offline conversation with @b1ackmai1er about this. This conversation probably should have been as part of this PR or a discussion in the repository. Sorry about that.

I had already suggested to @b1ackmai1er that the imbedding of the fonts in the alternate ROM bank be done differently. Specifically, I am advocating that all fonts be imbedded and indexed by a simple table of font id's and pointers. This would allow the fonts to just another chunk within a ROM bank (like all the other .bin chunks).

Thanks, Wayne

@wwarthen
Copy link
Owner

Hi @b1ackmai1er,

I apologize for taking so long to get back to you on this. I have been challenged with multiple things going on here personally and have had almost no time for this project.

You have created some excellent code that I do want to include in RomWBW. However, I am really feeling like this is more change than I want to deal with right now. I am trying to lock down the source for v3.5 and get a new stable version released. I would prefer to include this work in v3.6. This means it will be on hold for at least a month and I apologize for that. However, I have committed to a new stable release by mid-February and I really need the next few weeks for testing with a stable codebase.

Finally, as we have discussed offline, I do want to modify the way that fonts are imbedded in the ROM bank. I want to create a new assembly module that begins with a table that has an index into the fonts followed by the font data itself. I know how I want to do this, but I don't want to take the time to work on it right now.

Thanks, Wayne

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

Successfully merging this pull request may close these issues.

3 participants