diff --git a/BitmapWs.g1a b/BitmapWs.g1a new file mode 100644 index 0000000..8b757a9 Binary files /dev/null and b/BitmapWs.g1a differ diff --git a/LICENSE b/LICENSE deleted file mode 100644 index d84a86a..0000000 --- a/LICENSE +++ /dev/null @@ -1,228 +0,0 @@ -Creative Commons Attribution-NonCommercial 2.0 CREATIVE COMMONS CORPORATION -IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS -LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS -PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES -REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING -FROM ITS USE. - -License - -THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS -PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR -OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS -LICENSE OR COPYRIGHT LAW IS PROHIBITED. - -BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO -BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE RIGHTS -CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. - - 1. Definitions - -a. "Collective Work" means a work, such as a periodical issue, anthology or -encyclopedia, in which the Work in its entirety in unmodified form, along -with a number of other contributions, constituting separate and independent -works in themselves, are assembled into a collective whole. A work that constitutes -a Collective Work will not be considered a Derivative Work (as defined below) -for the purposes of this License. - -b. "Derivative Work" means a work based upon the Work or upon the Work and -other pre-existing works, such as a translation, musical arrangement, dramatization, -fictionalization, motion picture version, sound recording, art reproduction, -abridgment, condensation, or any other form in which the Work may be recast, -transformed, or adapted, except that a work that constitutes a Collective -Work will not be considered a Derivative Work for the purpose of this License. -For the avoidance of doubt, where the Work is a musical composition or sound -recording, the synchronization of the Work in timed-relation with a moving -image ("synching") will be considered a Derivative Work for the purpose of -this License. - -c. "Licensor" means the individual or entity that offers the Work under the -terms of this License. - - d. "Original Author" means the individual or entity who created the Work. - -e. "Work" means the copyrightable work of authorship offered under the terms -of this License. - -f. "You" means an individual or entity exercising rights under this License -who has not previously violated the terms of this License with respect to -the Work, or who has received express permission from the Licensor to exercise -rights under this License despite a previous violation. - -2. Fair Use Rights. Nothing in this license is intended to reduce, limit, -or restrict any rights arising from fair use, first sale or other limitations -on the exclusive rights of the copyright owner under copyright law or other -applicable laws. - -3. License Grant. Subject to the terms and conditions of this License, Licensor -hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for -the duration of the applicable copyright) license to exercise the rights in -the Work as stated below: - -a. to reproduce the Work, to incorporate the Work into one or more Collective -Works, and to reproduce the Work as incorporated in the Collective Works; - - b. to create and reproduce Derivative Works; - -c. to distribute copies or phonorecords of, display publicly, perform publicly, -and perform publicly by means of a digital audio transmission the Work including -as incorporated in Collective Works; - -d. to distribute copies or phonorecords of, display publicly, perform publicly, -and perform publicly by means of a digital audio transmission Derivative Works; - -The above rights may be exercised in all media and formats whether now known -or hereafter devised. The above rights include the right to make such modifications -as are technically necessary to exercise the rights in other media and formats. -All rights not expressly granted by Licensor are hereby reserved, including -but not limited to the rights set forth in Sections 4(d) and 4(e). - -4. Restrictions.The license granted in Section 3 above is expressly made subject -to and limited by the following restrictions: - -a. You may distribute, publicly display, publicly perform, or publicly digitally -perform the Work only under the terms of this License, and You must include -a copy of, or the Uniform Resource Identifier for, this License with every -copy or phonorecord of the Work You distribute, publicly display, publicly -perform, or publicly digitally perform. You may not offer or impose any terms -on the Work that alter or restrict the terms of this License or the recipients' -exercise of the rights granted hereunder. You may not sublicense the Work. -You must keep intact all notices that refer to this License and to the disclaimer -of warranties. You may not distribute, publicly display, publicly perform, -or publicly digitally perform the Work with any technological measures that -control access or use of the Work in a manner inconsistent with the terms -of this License Agreement. The above applies to the Work as incorporated in -a Collective Work, but this does not require the Collective Work apart from -the Work itself to be made subject to the terms of this License. If You create -a Collective Work, upon notice from any Licensor You must, to the extent practicable, -remove from the Collective Work any reference to such Licensor or the Original -Author, as requested. If You create a Derivative Work, upon notice from any -Licensor You must, to the extent practicable, remove from the Derivative Work -any reference to such Licensor or the Original Author, as requested. - -b. You may not exercise any of the rights granted to You in Section 3 above -in any manner that is primarily intended for or directed toward commercial -advantage or private monetary compensation. The exchange of the Work for other -copyrighted works by means of digital file-sharing or otherwise shall not -be considered to be intended for or directed toward commercial advantage or -private monetary compensation, provided there is no payment of any monetary -compensation in connection with the exchange of copyrighted works. - -c. If you distribute, publicly display, publicly perform, or publicly digitally -perform the Work or any Derivative Works or Collective Works, You must keep -intact all copyright notices for the Work and give the Original Author credit -reasonable to the medium or means You are utilizing by conveying the name -(or pseudonym if applicable) of the Original Author if supplied; the title -of the Work if supplied; to the extent reasonably practicable, the Uniform -Resource Identifier, if any, that Licensor specifies to be associated with -the Work, unless such URI does not refer to the copyright notice or licensing -information for the Work; and in the case of a Derivative Work, a credit identifying -the use of the Work in the Derivative Work (e.g., "French translation of the -Work by Original Author," or "Screenplay based on original Work by Original -Author"). Such credit may be implemented in any reasonable manner; provided, -however, that in the case of a Derivative Work or Collective Work, at a minimum -such credit will appear where any other comparable authorship credit appears -and in a manner at least as prominent as such other comparable authorship -credit. - - d. For the avoidance of doubt, where the Work is a musical composition: - -i. Performance Royalties Under Blanket Licenses. Licensor reserves the exclusive -right to collect, whether individually or via a performance rights society -(e.g. ASCAP, BMI, SESAC), royalties for the public performance or public digital -performance (e.g. webcast) of the Work if that performance is primarily intended -for or directed toward commercial advantage or private monetary compensation. - -ii. Mechanical Rights and Statutory Royalties. Licensor reserves the exclusive -right to collect, whether individually or via a music rights agency or designated -agent (e.g. Harry Fox Agency), royalties for any phonorecord You create from -the Work ("cover version") and distribute, subject to the compulsory license -created by 17 USC Section 115 of the US Copyright Act (or the equivalent in -other jurisdictions), if Your distribution of such cover version is primarily -intended for or directed toward commercial advantage or private monetary compensation. -Webcasting Rights and Statutory Royalties. For the avoidance of doubt, where -the Work is a sound recording, Licensor reserves the exclusive right to collect, -whether individually or via a performance-rights society (e.g. SoundExchange), -royalties for the public digital performance (e.g. webcast) of the Work, subject -to the compulsory license created by 17 USC Section 114 of the US Copyright -Act (or the equivalent in other jurisdictions), if Your public digital performance -is primarily intended for or directed toward commercial advantage or private -monetary compensation. - - 5. Representations, Warranties and Disclaimer - -UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS -THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING -THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, -WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, -OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE -OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE -EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. - -6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, -IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, -INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS -LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY -OF SUCH DAMAGES. - - 7. Termination - -a. This License and the rights granted hereunder will terminate automatically -upon any breach by You of the terms of this License. Individuals or entities -who have received Derivative Works or Collective Works from You under this -License, however, will not have their licenses terminated provided such individuals -or entities remain in full compliance with those licenses. Sections 1, 2, -5, 6, 7, and 8 will survive any termination of this License. - -b. Subject to the above terms and conditions, the license granted here is -perpetual (for the duration of the applicable copyright in the Work). Notwithstanding -the above, Licensor reserves the right to release the Work under different -license terms or to stop distributing the Work at any time; provided, however -that any such election will not serve to withdraw this License (or any other -license that has been, or is required to be, granted under the terms of this -License), and this License will continue in full force and effect unless terminated -as stated above. - - 8. Miscellaneous - -a. Each time You distribute or publicly digitally perform the Work or a Collective -Work, the Licensor offers to the recipient a license to the Work on the same -terms and conditions as the license granted to You under this License. - -b. Each time You distribute or publicly digitally perform a Derivative Work, -Licensor offers to the recipient a license to the original Work on the same -terms and conditions as the license granted to You under this License. - -c. If any provision of this License is invalid or unenforceable under applicable -law, it shall not affect the validity or enforceability of the remainder of -the terms of this License, and without further action by the parties to this -agreement, such provision shall be reformed to the minimum extent necessary -to make such provision valid and enforceable. - -d. No term or provision of this License shall be deemed waived and no breach -consented to unless such waiver or consent shall be in writing and signed -by the party to be charged with such waiver or consent. - -e. This License constitutes the entire agreement between the parties with -respect to the Work licensed here. There are no understandings, agreements -or representations with respect to the Work not specified here. Licensor shall -not be bound by any additional provisions that may appear in any communication -from You. This License may not be modified without the mutual written agreement -of the Licensor and You. - -Creative Commons is not a party to this License, and makes no warranty whatsoever -in connection with the Work. Creative Commons will not be liable to You or -any party on any legal theory for any damages whatsoever, including without -limitation any general, special, incidental or consequential damages arising -in connection to this license. Notwithstanding the foregoing two (2) sentences, -if Creative Commons has expressly identified itself as the Licensor hereunder, -it shall have all rights and obligations of Licensor. - -Except for the limited purpose of indicating to the public that the Work is -licensed under the CCPL, neither party will use the trademark "Creative Commons" -or any related trademark or logo of Creative Commons without the prior written -consent of Creative Commons. Any permitted use will be in compliance with -Creative Commons' then-current trademark usage guidelines, as may be published -on its website or otherwise made available upon request from time to time. - -Creative Commons may be contacted at http://creativecommons.org/. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f7e8a72 --- /dev/null +++ b/Makefile @@ -0,0 +1,134 @@ +#! /usr/bin/make -f +# Default Makefile for fxSDK add-ins. This file was probably copied there by +# the [fxsdk] program. +#--- + +# +# Configuration +# + +include project.cfg + +# Compiler flags +cf := -mb -ffreestanding -nostdlib -Wall -Wextra \ + -fstrict-volatile-bitfields $(CFLAGS) +cf-fx := $(cf) -m3 -DFX9860G +cf-cg := $(cf) -m4-nofpu -DFXCG50 + +# Linker flags +lf-fx := $(LDFLAGS) -Tfx9860g.ld -lgint-fx -lgcc -Wl,-Map=build-fx/map +lf-cg := $(LDFLAGS) -Tfxcg50.ld -lgint-cg -lgcc -Wl,-Map=build-cg/map + +dflags = -MMD -MT $@ -MF $(@:.o=.d) -MP +cpflags := -R .bss -R .gint_bss + +g1af := -i "$(ICON_FX)" -n "$(NAME)" --internal="$(INTERNAL)" +g3af := -n basic:"$(NAME)" -i uns:"$(ICON_CG_UNS)" -i sel:"$(ICON_CG_SEL)" + +# +# File listings +# + +null := +filename := $(subst $(null) $(null),-,$(NAME)) + +elf = $(dir $<)$(filename).elf +bin = $(dir $<)$(filename).bin +target-fx := $(filename).g1a +target-cg := $(filename).g3a + +# Source files +src := $(wildcard src/*.c src/*/*.c src/*/*/*.c src/*/*/*/*.c) +assets-fx := $(wildcard assets-fx/*/*) +assets-cg := $(wildcard assets-cg/*/*) + +# Object files +obj-fx := $(src:%.c=build-fx/%.o) $(assets-fx:assets-fx/%=build-fx/assets/%.o) +obj-cg := $(src:%.c=build-cg/%.o) $(assets-cg:assets-cg/%=build-cg/assets/%.o) + +# Additional dependencies +deps-fx := $(ICON_FX) +deps-cg := $(ICON_CG_UNS) $(ICON_CG_SEL) + +# All targets +all := +ifneq "$(wildcard build-fx)" "" +all += all-fx +endif +ifneq "$(wildcard build-cg)" "" +all += all-cg +endif + +# +# Build rules +# + +all: $(all) + +all-fx: $(target-fx) +all-cg: $(target-cg) + +$(target-fx): $(obj-fx) $(deps-fx) + + sh3eb-elf-gcc -o $(elf) $(obj-fx) $(cf-fx) $(lf-fx) + sh3eb-elf-objcopy -O binary $(cpflags) $(elf) $(bin) + fxg1a $(bin) -o $@ $(g1af) + +$(target-cg): $(obj-cg) $(deps-cg) + + sh4eb-elf-gcc -o $(elf) $(obj-cg) $(cf-cg) $(lf-cg) + sh4eb-elf-objcopy -O binary $(cpflags) $(elf) $(bin) + mkg3a $(g3af) $(bin) $@ + +# C sources +build-fx/%.o: %.c + @ mkdir -p $(dir $@) + sh3eb-elf-gcc -c $< -o $@ $(cf-fx) $(dflags) +build-cg/%.o: %.c + @ mkdir -p $(dir $@) + sh4eb-elf-gcc -c $< -o $@ $(cf-cg) $(dflags) + +# Images +build-fx/assets/img/%.o: assets-fx/img/% + @ mkdir -p $(dir $@) + fxconv -i $< -o $@ --fx name:img_$(basename $*) + +build-cg/assets/img/%.o: assets-cg/img/% + @ mkdir -p $(dir $@) + fxconv -i $< -o $@ --cg name:img_$(basename $*) + +# Fonts +build-fx/assets/fonts/%.o: assets-fx/fonts/% + @ mkdir -p $(dir $@) + fxconv -f $< -o $@ name:font_$(basename $*) $(FONT.$*) + +build-cg/assets/fonts/%.o: assets-cg/fonts/% + @ mkdir -p $(dir $@) + fxconv -f $< -o $@ name:font_$(basename $*) $(FONT.$*) + +# +# Cleaning and utilities +# + +# Dependency information +-include $(shell find build* -name *.d 2> /dev/null) +build-fx/%.d: ; +build-cg/%.d: ; +.PRECIOUS: build-fx build-cg build-fx/%.d build-cg/%.d %/ + +clean: + @ rm -rf build* +distclean: clean + @ rm -f $(target-fx) $(target-cg) + +install-fx: $(target-fx) + p7 send -f $< +install-cg: $(target-cg) + @ while [[ ! -h /dev/Prizm1 ]]; do sleep 0.25; done + @ while ! mount /dev/Prizm1; do sleep 0.25; done + @ rm -f /mnt/prizm/$< + @ cp $< /mnt/prizm + @ umount /dev/Prizm1 + @- eject /dev/Prizm1 + +.PHONY: all all-fx all-cg clean distclean install-fx install-cg diff --git a/README.md b/README.md deleted file mode 100644 index cae8eb7..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# BitmapWars - -The bitmap wars source code \ No newline at end of file diff --git a/assets-cg/icon-cg-sel.png b/assets-cg/icon-cg-sel.png new file mode 100644 index 0000000..7137b50 Binary files /dev/null and b/assets-cg/icon-cg-sel.png differ diff --git a/assets-cg/icon-cg-uns.png b/assets-cg/icon-cg-uns.png new file mode 100644 index 0000000..3c99f62 Binary files /dev/null and b/assets-cg/icon-cg-uns.png differ diff --git a/assets-fx/icon-fx.png b/assets-fx/icon-fx.png new file mode 100644 index 0000000..c92f12a Binary files /dev/null and b/assets-fx/icon-fx.png differ diff --git a/build-fx/map b/build-fx/map new file mode 100644 index 0000000..3d9c12f --- /dev/null +++ b/build-fx/map @@ -0,0 +1,436 @@ +Archive member included to satisfy reference by file (symbol) + +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(getkey.c.o) + build-fx/src/main.o (getkey) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(getkey.c.o) (waitevent) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o) + build-fx/src/main.o (dclear) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dtext.c.o) + build-fx/src/main.o (dtext) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dtext.c.o) (topti_asm_text) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dtext.c.o) (topti_render) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) + build-fx/src/main.o (dupdate) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) (charset_size) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) (timer_setup) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) (gint_intlevel) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) (gint) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) + (start) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) (gint_install) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) (t6k11_display) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) (memcpy) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(font5x7.png.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) (gint_font5x7) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(iokbd.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) (iokbd_scan) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) (clock_freq) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) (inth_tmu) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) (exch_entry_7305) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) (gint_setvbr) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) (tlb_mapped_memory) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) (__os_version) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) (inth_entry_7305) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_movmem.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) (__movmemSI24) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) (__udivdi3) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) (__udivsi3) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) (__udiv_qrnnd_16) +/usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) + /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) (__clz_tab) + +Discarded input sections + + .comment 0x0000000000000000 0x12 build-fx/src/main.o + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(getkey.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dtext.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(iokbd.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) + .comment 0x0000000000000000 0x12 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) + +Memory Configuration + +Name Origin Length Attributes +rom 0x0000000000300200 0x0000000000037000 xr +ram 0x0000000008100000 0x0000000000002000 rw +vbr 0x000000008800e000 0x0000000000001400 xrw +rram 0x000000008800f400 0x0000000000000c00 xrw +*default* 0x0000000000000000 0xffffffffffffffff + +Linker script and memory map + +LOAD build-fx/src/main.o +LOAD /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a +LOAD /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a + 0x0000000000300000 _brom = 0x300000 + 0x00000000000020d0 _srom = ((((0x200 + SIZEOF (.text)) + SIZEOF (.rodata)) + SIZEOF (.gint.drivers)) + SIZEOF (.gint.blocks)) + +.pretext 0x0000000000300200 0x8a8 + *(.pretext.entry) + .pretext.entry + 0x0000000000300200 0x1cc /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) + 0x0000000000300200 start + *(.pretext) + .pretext 0x00000000003003cc 0x4c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dtext.c.o) + 0x00000000003003cc dtext + *fill* 0x0000000000300418 0x8 + .pretext 0x0000000000300420 0x130 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o) + 0x0000000000300530 topti_asm_text + .pretext 0x0000000000300550 0x2f0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + 0x00000000003005f2 topti_render + .pretext 0x0000000000300840 0x110 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + 0x0000000000300840 dfont + 0x0000000000300858 charset_size + 0x0000000000300884 charset_decode + 0x00000000003008f2 topti_offset + .pretext 0x0000000000300950 0xd0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) + 0x0000000000300950 hw_detect + .pretext 0x0000000000300a20 0x88 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o) + 0x0000000000300a20 __os_version + 0x0000000000300a2c malloc + 0x0000000000300a38 free + 0x0000000000300a44 calloc + 0x0000000000300a50 realloc + 0x0000000000300a5c BFile_Remove + 0x0000000000300a68 BFile_Create + 0x0000000000300a74 BFile_Open + 0x0000000000300a80 BFile_Close + 0x0000000000300a8c BFile_Write + 0x0000000000300a98 BFile_Read + 0x0000000000300aa8 _btors = . + *(.ctors .ctors.*) + 0x0000000000300aa8 _mtors = . + *(.dtors .dtors.*) + 0x0000000000300aa8 _etors = . + +.text 0x0000000000300aa8 0x17b0 + *(.text .text.*) + .text 0x0000000000300aa8 0x0 build-fx/src/main.o + .text.startup 0x0000000000300aa8 0x44 build-fx/src/main.o + 0x0000000000300aa8 main + .text 0x0000000000300aec 0x1c8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(getkey.c.o) + 0x0000000000300aec getkey_opt + 0x0000000000300c6c getkey + 0x0000000000300c78 getkey_repeat + .text 0x0000000000300cb4 0x2c8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) + 0x0000000000300e58 pollevent + 0x0000000000300f44 waitevent + .text 0x0000000000300f7c 0x4c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o) + 0x0000000000300f7c dclear + .text 0x0000000000300fc8 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dtext.c.o) + .text 0x0000000000300fc8 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o) + .text 0x0000000000300fc8 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + .text 0x0000000000300fc8 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) + 0x0000000000300fc8 dupdate + 0x0000000000300fe0 dupdate_noint + .text 0x0000000000300fec 0x9c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + 0x0000000000300fec dsize + .text 0x0000000000301088 0x56c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + 0x00000000003013a8 timer_setup + 0x0000000000301438 timer_delay + 0x0000000000301498 timer_start + 0x00000000003014cc timer_reload + 0x00000000003014ec timer_pause + 0x0000000000301520 timer_stop + 0x000000000030157c timer_timeout + 0x0000000000301588 timer_address + 0x00000000003015c4 timer_clear + .text 0x00000000003015f4 0x78 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + 0x00000000003015f4 gint_intlevel + 0x0000000000301648 gint_inthandler + .text 0x000000000030166c 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) + .text 0x000000000030166c 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) + .text 0x000000000030166c 0x170 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) + 0x0000000000301720 gint_install + 0x00000000003017c4 gint_unload + .text 0x00000000003017dc 0x1d8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + 0x0000000000301874 t6k11_display + 0x0000000000301948 t6k11_contrast + 0x0000000000301974 t6k11_backlight + .text 0x00000000003019b4 0xdc /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o) + 0x00000000003019b4 memcpy + 0x0000000000301a6e _memmove + 0x0000000000301a72 _memcmp + 0x0000000000301a76 memset + .text 0x0000000000301a90 0x124 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(iokbd.c.o) + 0x0000000000301a9c iokbd_row + 0x0000000000301b84 iokbd_scan + .text 0x0000000000301bb4 0x150 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + 0x0000000000301cf8 clock_freq + .text 0x0000000000301d04 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o) + .text 0x0000000000301d04 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o) + .text 0x0000000000301d04 0x2c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o) + 0x0000000000301d04 gint_setvbr + .text 0x0000000000301d30 0x1f4 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o) + 0x0000000000301d30 tlb_addr + 0x0000000000301d44 tlb_data + 0x0000000000301d58 tlb_mapped_memory + 0x0000000000301e2c utlb_addr + 0x0000000000301e3c utlb_data + 0x0000000000301e4c utlb_mapped_memory + .text 0x0000000000301f24 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o) + .text 0x0000000000301f24 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) + .text 0x0000000000301f24 0x78 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_movmem.o) + 0x0000000000301f24 __movstr + 0x0000000000301f24 __movmem + 0x0000000000301f58 __movmemSI64 + 0x0000000000301f58 __movstrSI64 + 0x0000000000301f5c __movstrSI60 + 0x0000000000301f5c __movmemSI60 + 0x0000000000301f60 __movmemSI56 + 0x0000000000301f60 __movstrSI56 + 0x0000000000301f64 __movstrSI52 + 0x0000000000301f64 __movmemSI52 + 0x0000000000301f68 __movstrSI48 + 0x0000000000301f68 __movmemSI48 + 0x0000000000301f6c __movstrSI44 + 0x0000000000301f6c __movmemSI44 + 0x0000000000301f70 __movstrSI40 + 0x0000000000301f70 __movmemSI40 + 0x0000000000301f74 __movstrSI36 + 0x0000000000301f74 __movmemSI36 + 0x0000000000301f78 __movmemSI32 + 0x0000000000301f78 __movstrSI32 + 0x0000000000301f7c __movmemSI28 + 0x0000000000301f7c __movstrSI28 + 0x0000000000301f80 __movstrSI24 + 0x0000000000301f80 __movmemSI24 + 0x0000000000301f84 __movmemSI20 + 0x0000000000301f84 __movstrSI20 + 0x0000000000301f88 __movstrSI16 + 0x0000000000301f88 __movmemSI16 + 0x0000000000301f8c __movmemSI12 + 0x0000000000301f8c __movstrSI12 + 0x0000000000301f90 __movmemSI8 + 0x0000000000301f90 __movstrSI8 + 0x0000000000301f94 __movmemSI4 + 0x0000000000301f94 __movstrSI4 + .text 0x0000000000301f9c 0x1f0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) + 0x0000000000301f9c __udivdi3 + .text 0x000000000030218c 0x6c /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o) + 0x00000000003021ae __udivsi3 + .text 0x00000000003021f8 0x60 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o) + 0x00000000003021f8 __udiv_qrnnd_16 + .text 0x0000000000302258 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) + *(C P) + +.gint.blocks 0x0000000000302260 0x140 + *(.gint.blocks) + .gint.blocks 0x0000000000302260 0xe0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o) + 0x0000000000302260 inth_tmu + 0x00000000003022e0 inth_etmu2 + 0x0000000000302300 inth_etmu_help + 0x0000000000302320 inth_etmux + .gint.blocks 0x0000000000302340 0x20 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o) + 0x0000000000302340 exch_entry_7705 + 0x0000000000302340 exch_entry_7305 + .gint.blocks 0x0000000000302360 0x40 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) + 0x0000000000302360 inth_entry_7305 + 0x0000000000302380 inth_entry_7705 + +.gint.drivers 0x00000000003023a0 0x90 + 0x00000000003023a0 _bdrv = . + *(.gint.drivers.0) + *(.gint.drivers.1) + .gint.drivers.1 + 0x00000000003023a0 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + 0x00000000003023a0 drv_cpg + *(.gint.drivers.2) + .gint.drivers.2 + 0x00000000003023c4 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + 0x00000000003023c4 drv_tmu + *(.gint.drivers.3) + *(.gint.drivers.4) + .gint.drivers.4 + 0x00000000003023e8 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) + 0x00000000003023e8 drv_keysc + *(.gint.drivers.5) + .gint.drivers.5 + 0x000000000030240c 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + 0x000000000030240c drv_t6k11 + *(.gint.drivers.6) + 0x0000000000302430 _edrv = . + +.rodata 0x0000000000302430 0x550 + *(.rodata .rodata.*) + .rodata.str1.4 + 0x0000000000302430 0x15 build-fx/src/main.o + *fill* 0x0000000000302445 0x3 + .rodata.str1.4 + 0x0000000000302448 0x6 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) + *fill* 0x000000000030244e 0x2 + .rodata 0x0000000000302450 0x18 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + .rodata.str1.4 + 0x0000000000302468 0x4 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + .rodata.str1.4 + 0x000000000030246c 0x6 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + *fill* 0x0000000000302472 0x2 + .rodata 0x0000000000302474 0x408 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(font5x7.png.o) + 0x0000000000302474 gint_font5x7 + 0x000000000030287c gint_font5x7_end + .rodata.str1.4 + 0x000000000030287c 0x4 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + .rodata 0x0000000000302880 0x100 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) + 0x0000000000302880 __clz_tab + +.rela.dyn 0x0000000000302980 0x0 + .rela.text 0x0000000000302980 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + .rela.pretext.entry + 0x0000000000302980 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + 0x0000000008100000 . = ORIGIN (ram) + +.bss 0x0000000008100000 0x430 + 0x0000000008100000 _rbss = . + *(.bss COMMON) + .bss 0x0000000008100000 0x0 build-fx/src/main.o + .bss 0x0000000008100000 0xc /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(getkey.c.o) + .bss 0x000000000810000c 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) + .bss 0x0000000008100030 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o) + .bss 0x0000000008100030 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dtext.c.o) + .bss 0x0000000008100030 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o) + .bss 0x0000000008100030 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + .bss 0x0000000008100030 0x400 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(iokbd.c.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_movmem.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o) + .bss 0x0000000008100430 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) + *(B R) + 0x0000000008100430 . = ALIGN (0x10) + 0x0000000000000430 _sbss = SIZEOF (.bss) + +.data 0x0000000008100430 0x10 load address 0x0000000000302980 + 0x0000000000302980 _ldata = LOADADDR (.data) + 0x0000000008100430 _rdata = . + *(.data .data.*) + .data 0x0000000008100430 0x0 build-fx/src/main.o + .data 0x0000000008100430 0x8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(getkey.c.o) + .data 0x0000000008100438 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) + .data 0x0000000008100438 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dclear.c.o) + .data 0x0000000008100438 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dtext.c.o) + .data 0x0000000008100438 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti-asm.s.o) + .data 0x0000000008100438 0x8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + 0x0000000008100438 topti_font + 0x000000000810043c gint_default_font + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(topti.c.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(start.c.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(memory.c.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(iokbd.c.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.s.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(exch.S.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(vbr.s.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(mmu.c.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(syscalls.S.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_movmem.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivdi3.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udivsi3.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_udiv_qrnnd_16.o) + .data 0x0000000008100440 0x0 /usr/lib/gcc/sh3eb-elf/9.1.0/libgcc.a(_clz.o) + *(D) + 0x0000000008100440 . = ALIGN (0x10) + +.data.4 0x0000000008100440 0x0 load address 0x0000000000302990 + *(.data.4) + 0x0000000008100440 . = ALIGN (0x10) + 0x0000000000000010 _sdata = (SIZEOF (.data) + SIZEOF (.data.4)) + 0x000000008800df00 _gint_vbr = 0x8800df00 + 0x000000008800f400 . = ORIGIN (rram) + +.gint.data 0x000000008800f400 0x130 load address 0x0000000000302990 + 0x0000000000302990 _lgdata = LOADADDR (.gint.data) + 0x000000008800f400 _rgdata = . + *(.gint.data .gint.data.*) + .gint.data 0x000000008800f400 0x18 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) + .gint.data 0x000000008800f418 0x4 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(dupdate.c.o) + 0x000000008800f418 vram + .gint.data 0x000000008800f41c 0x70 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + .gint.data 0x000000008800f48c 0x10 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + 0x000000008800f48c SH7305_INTC + .gint.data.sh3 + 0x000000008800f49c 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(gint.c.o) + 0x000000008800f49c SH7705_INTC + .gint.data 0x000000008800f4c0 0x8 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + *fill* 0x000000008800f4c8 0x8 + .gint.data 0x000000008800f4d0 0x60 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(inth.S.o) + 0x000000008800f530 . = ALIGN (0x10) + 0x0000000000000130 _sgdata = SIZEOF (.gint.data) + +.gint.bss 0x000000008800f530 0x210 load address 0x0000000000302ac0 + *(.gint.bss .gint.bss.*) + .gint.bss 0x000000008800f530 0x100 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(keysc.c.o) + .gint.bss 0x000000008800f630 0x88 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(tmu.c.o) + .gint.bss 0x000000008800f6b8 0x40 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(hardware.c.o) + 0x000000008800f6b8 gint + .gint.bss 0x000000008800f6f8 0x1c /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(setup.c.o) + .gint.bss 0x000000008800f714 0x1 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(t6k11.c.o) + *fill* 0x000000008800f715 0x3 + .gint.bss 0x000000008800f718 0x24 /usr/lib/gcc/sh3eb-elf/9.1.0/libgint-fx.a(cpg.c.o) + 0x000000008800f740 . = ALIGN (0x10) + *fill* 0x000000008800f73c 0x4 + 0x0000000000000210 _sgbss = SIZEOF (.gint.bss) + +/DISCARD/ + *(.debug_info .debug_abbrev .debug_loc .debug_aranges .debug_ranges .debug_line .debug_str) + *(.jcr) + *(.eh_frame_hdr) + *(.eh_frame) + *(.comment) +OUTPUT(build-fx/src/BitmapWs.elf elf32-sh) diff --git a/build-fx/src/BitmapWs.bin b/build-fx/src/BitmapWs.bin new file mode 100755 index 0000000..98e830d Binary files /dev/null and b/build-fx/src/BitmapWs.bin differ diff --git a/build-fx/src/BitmapWs.elf b/build-fx/src/BitmapWs.elf new file mode 100755 index 0000000..a1315f2 Binary files /dev/null and b/build-fx/src/BitmapWs.elf differ diff --git a/build-fx/src/main.d b/build-fx/src/main.d new file mode 100644 index 0000000..1b98fec --- /dev/null +++ b/build-fx/src/main.d @@ -0,0 +1 @@ +build-fx/src/main.o: src/main.c diff --git a/build-fx/src/main.o b/build-fx/src/main.o new file mode 100644 index 0000000..27a32c2 Binary files /dev/null and b/build-fx/src/main.o differ diff --git a/project.cfg b/project.cfg new file mode 100644 index 0000000..2a88153 --- /dev/null +++ b/project.cfg @@ -0,0 +1,19 @@ +#--- +# fxSDK project configuration file for BitmapWs +#--- + +# Project name, should be at most 8 bytes long. +NAME = BitmapWs +# Internal name, should be '@' followed by at most 7 uppercase letters. +INTERNAL = @BMPWARS + +# fx-9860G icon location +ICON_FX = assets-fx/icon-fx.png +# fx-CG 50 icon locations +ICON_CG_UNS = assets-cg/icon-cg-uns.png +ICON_CG_SEL = assets-cg/icon-cg-sel.png + +# Additional compiler flags +CFLAGS = -std=c11 -Os +# Additional linker flags +LDFLAGS = diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..b295f14 --- /dev/null +++ b/src/main.c @@ -0,0 +1,12 @@ +#include +#include + +int main(void) +{ + dclear(C_WHITE); + dtext(1, 1, "Sample fxSDK add-in.", C_BLACK, C_NONE); + dupdate(); + + getkey(); + return 1; +}