add CD image build process

This commit is contained in:
Zack Buhman 2025-01-02 06:27:21 -06:00
parent 7e954e060c
commit c82d5a59d9
12 changed files with 119 additions and 237 deletions

4
.gitignore vendored
View File

@ -7,6 +7,8 @@
*.out *.out
*.elf *.elf
*.bin *.bin
*.cdi
*.iso
main main
print_class print_class
__pycache__ __pycache__

View File

@ -15,6 +15,7 @@ CARCH = -m4-single -ml
include dreamcast/base.mk include dreamcast/base.mk
include dreamcast/common.mk include dreamcast/common.mk
include dreamcast/headers.mk include dreamcast/headers.mk
include dreamcast/ip.mk
include java.mk include java.mk
@ -50,5 +51,37 @@ LIBGCC_OBJ = \
include classpath.mk include classpath.mk
GDROM_JVM_BOOT_OBJ = \
$(LIB)/example/gdrom_jvm_boot.o \
$(LIB)/sh7091/serial.o
boot.elf: LDSCRIPT = $(LIB)/ip.lds
boot.elf: $(IP_OBJ) $(START_OBJ) $(GDROM_JVM_BOOT_OBJ)
zero.bin:
dd if=/dev/zero of=$@ bs=2048 count=1
jvm.iso: boot.bin main.bin
mkisofs \
-C 0,11702 \
-sysid "SEGA SEGAKATANA" \
-volid "SAMPLE_GAME_TITLE" \
-volset "SAMPLE_GAME_TITLE" \
-publisher "SEGA ENTERPRISES, LTD." \
-preparer "CRI CD CRAFT VER.2.27" \
-copyright "COPYRIGH.TXT" \
-abstract "ABSTRACT.TXT" \
-biblio "BIBLIOGR.TXT" \
-G boot.bin \
-o $@ \
-graft-points \
/0JVM.BIN=./main.bin \
/1ST_READ.BIN=zero.bin \
/=$(LIB)/COPYRIGH.TXT \
/=$(LIB)/ABSTRACT.TXT \
/=$(LIB)/BIBLIOGR.TXT
main.elf: LDSCRIPT = $(LIB)/main.lds main.elf: LDSCRIPT = $(LIB)/main.lds
main.elf: $(START_OBJ) $(OBJ) $(MAIN_OBJ) $(MAIN_DREAMCAST_OBJ) $(LIBGCC_OBJ) $(CLASS_PATH) main.elf: $(START_OBJ) $(OBJ) $(MAIN_OBJ) $(MAIN_DREAMCAST_OBJ) $(LIBGCC_OBJ) $(CLASS_PATH)

View File

@ -1,5 +1,3 @@
#include "example/DreamcastVideo2.class.h"
#include "example/DreamcastVideo.class.h"
#include "example/GdromExtentReader.class.h" #include "example/GdromExtentReader.class.h"
#include "example/GdromTest.class.h" #include "example/GdromTest.class.h"
#include "filesystem/iso9660/ByteParser.class.h" #include "filesystem/iso9660/ByteParser.class.h"
@ -12,89 +10,17 @@
#include "java/lang/Byte.class.h" #include "java/lang/Byte.class.h"
#include "java/lang/Character.class.h" #include "java/lang/Character.class.h"
#include "java/lang/DecimalDigits.class.h" #include "java/lang/DecimalDigits.class.h"
#include "java/lang/Double.class.h"
#include "java/lang/Float.class.h"
#include "java/lang/Integer.class.h" #include "java/lang/Integer.class.h"
#include "java/lang/Long.class.h"
#include "java/lang/Math.class.h"
#include "java/lang/Object.class.h" #include "java/lang/Object.class.h"
#include "java/lang/Short.class.h" #include "java/lang/Short.class.h"
#include "java/lang/String.class.h" #include "java/lang/String.class.h"
#include "java/lang/System.class.h" #include "java/lang/System.class.h"
#include "java/misc/Memory.class.h" #include "java/misc/Memory.class.h"
#include "java/misc/Resource.class.h"
#include "java/nio/Buffer.class.h"
#include "java/nio/ByteBuffer.class.h"
#include "java/nio/ByteOrder.class.h"
#include "model/FacePTN.class.h"
#include "model/ModelObject.class.h"
#include "model/UntitledModel.class.h"
#include "model/Vec2.class.h"
#include "model/Vec3.class.h"
#include "sega/dreamcast/g2_if/G2IF.class.h"
#include "sega/dreamcast/gdrom/G1IF.class.h" #include "sega/dreamcast/gdrom/G1IF.class.h"
#include "sega/dreamcast/gdrom/GdromBits.class.h" #include "sega/dreamcast/gdrom/GdromBits.class.h"
#include "sega/dreamcast/gdrom/Gdrom.class.h" #include "sega/dreamcast/gdrom/Gdrom.class.h"
#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_open.class.h"
#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_play.class.h"
#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_read2.class.h"
#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_read.class.h" #include "sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_read.class.h"
#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_scan.class.h"
#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_scd.class.h"
#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_seek.class.h"
#include "sega/dreamcast/gdrom/GdromCommandPacketFormat.class.h" #include "sega/dreamcast/gdrom/GdromCommandPacketFormat.class.h"
#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_get_toc.class.h" #include "sega/dreamcast/gdrom/GdromCommandPacketFormat_get_toc.class.h"
#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_req_error.class.h"
#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_req_mode.class.h"
#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_req_ses.class.h"
#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_req_stat.class.h"
#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_set_mode.class.h"
#include "sega/dreamcast/gdrom/GdromCommandPacketFormat_test_unit.class.h"
#include "sega/dreamcast/gdrom/GdromCommandPacketInterface.class.h" #include "sega/dreamcast/gdrom/GdromCommandPacketInterface.class.h"
#include "sega/dreamcast/gdrom/GdromProtocol.class.h" #include "sega/dreamcast/gdrom/GdromProtocol.class.h"
#include "sega/dreamcast/holly/Background.class.h"
#include "sega/dreamcast/holly/CoreBits.class.h"
#include "sega/dreamcast/holly/Core.class.h"
#include "sega/dreamcast/holly/Holly.class.h"
#include "sega/dreamcast/holly/ISPTSP.class.h"
#include "sega/dreamcast/holly/RegionArray.class.h"
#include "sega/dreamcast/holly/RegionArray_OPBSize.class.h"
#include "sega/dreamcast/holly/TABits.class.h"
#include "sega/dreamcast/holly/TAFIFOPolygonConverter.class.h"
#include "sega/dreamcast/holly/TAGlobalParameter.class.h"
#include "sega/dreamcast/holly/TAGlobalParameter_end_of_list.class.h"
#include "sega/dreamcast/holly/TAGlobalParameter_modifier_volume.class.h"
#include "sega/dreamcast/holly/TAGlobalParameter_object_list_set.class.h"
#include "sega/dreamcast/holly/TAGlobalParameter_polygon_type_0.class.h"
#include "sega/dreamcast/holly/TAGlobalParameter_polygon_type_1.class.h"
#include "sega/dreamcast/holly/TAGlobalParameter_polygon_type_2.class.h"
#include "sega/dreamcast/holly/TAGlobalParameter_polygon_type_3.class.h"
#include "sega/dreamcast/holly/TAGlobalParameter_polygon_type_4.class.h"
#include "sega/dreamcast/holly/TAGlobalParameter_sprite.class.h"
#include "sega/dreamcast/holly/TAGlobalParameter_user_tile_clip.class.h"
#include "sega/dreamcast/holly/TAParameter.class.h"
#include "sega/dreamcast/holly/TAVertexParameter.class.h"
#include "sega/dreamcast/holly/TAVertexParameter_modifier_volume.class.h"
#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_0.class.h"
#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_10.class.h"
#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_11.class.h"
#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_12.class.h"
#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_13.class.h"
#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_14.class.h"
#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_1.class.h"
#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_2.class.h"
#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_3.class.h"
#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_4.class.h"
#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_5.class.h"
#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_6.class.h"
#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_7.class.h"
#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_8.class.h"
#include "sega/dreamcast/holly/TAVertexParameter_polygon_type_9.class.h"
#include "sega/dreamcast/holly/TAVertexParameter_sprite_type_0.class.h"
#include "sega/dreamcast/holly/TAVertexParameter_sprite_type_1.class.h"
#include "sega/dreamcast/holly/TextureMemoryAllocation.class.h"
#include "sega/dreamcast/maple/MapleIF.class.h"
#include "sega/dreamcast/MemoryMap.class.h"
#include "sega/dreamcast/pvr_if/PVRIF.class.h"
#include "sega/dreamcast/systembus/SystembusBits.class.h"
#include "sega/dreamcast/systembus/Systembus.class.h"

View File

@ -1,5 +1,3 @@
(const uint8_t *)&_binary_example_DreamcastVideo2_class_start,
(const uint8_t *)&_binary_example_DreamcastVideo_class_start,
(const uint8_t *)&_binary_example_GdromExtentReader_class_start, (const uint8_t *)&_binary_example_GdromExtentReader_class_start,
(const uint8_t *)&_binary_example_GdromTest_class_start, (const uint8_t *)&_binary_example_GdromTest_class_start,
(const uint8_t *)&_binary_filesystem_iso9660_ByteParser_class_start, (const uint8_t *)&_binary_filesystem_iso9660_ByteParser_class_start,
@ -12,89 +10,17 @@
(const uint8_t *)&_binary_java_lang_Byte_class_start, (const uint8_t *)&_binary_java_lang_Byte_class_start,
(const uint8_t *)&_binary_java_lang_Character_class_start, (const uint8_t *)&_binary_java_lang_Character_class_start,
(const uint8_t *)&_binary_java_lang_DecimalDigits_class_start, (const uint8_t *)&_binary_java_lang_DecimalDigits_class_start,
(const uint8_t *)&_binary_java_lang_Double_class_start,
(const uint8_t *)&_binary_java_lang_Float_class_start,
(const uint8_t *)&_binary_java_lang_Integer_class_start, (const uint8_t *)&_binary_java_lang_Integer_class_start,
(const uint8_t *)&_binary_java_lang_Long_class_start,
(const uint8_t *)&_binary_java_lang_Math_class_start,
(const uint8_t *)&_binary_java_lang_Object_class_start, (const uint8_t *)&_binary_java_lang_Object_class_start,
(const uint8_t *)&_binary_java_lang_Short_class_start, (const uint8_t *)&_binary_java_lang_Short_class_start,
(const uint8_t *)&_binary_java_lang_String_class_start, (const uint8_t *)&_binary_java_lang_String_class_start,
(const uint8_t *)&_binary_java_lang_System_class_start, (const uint8_t *)&_binary_java_lang_System_class_start,
(const uint8_t *)&_binary_java_misc_Memory_class_start, (const uint8_t *)&_binary_java_misc_Memory_class_start,
(const uint8_t *)&_binary_java_misc_Resource_class_start,
(const uint8_t *)&_binary_java_nio_Buffer_class_start,
(const uint8_t *)&_binary_java_nio_ByteBuffer_class_start,
(const uint8_t *)&_binary_java_nio_ByteOrder_class_start,
(const uint8_t *)&_binary_model_FacePTN_class_start,
(const uint8_t *)&_binary_model_ModelObject_class_start,
(const uint8_t *)&_binary_model_UntitledModel_class_start,
(const uint8_t *)&_binary_model_Vec2_class_start,
(const uint8_t *)&_binary_model_Vec3_class_start,
(const uint8_t *)&_binary_sega_dreamcast_g2_if_G2IF_class_start,
(const uint8_t *)&_binary_sega_dreamcast_gdrom_G1IF_class_start, (const uint8_t *)&_binary_sega_dreamcast_gdrom_G1IF_class_start,
(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromBits_class_start, (const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromBits_class_start,
(const uint8_t *)&_binary_sega_dreamcast_gdrom_Gdrom_class_start, (const uint8_t *)&_binary_sega_dreamcast_gdrom_Gdrom_class_start,
(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_cd_open_class_start,
(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_cd_play_class_start,
(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_cd_read2_class_start,
(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_cd_read_class_start, (const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_cd_read_class_start,
(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_cd_scan_class_start,
(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_cd_scd_class_start,
(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_cd_seek_class_start,
(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_class_start, (const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_class_start,
(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_get_toc_class_start, (const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_get_toc_class_start,
(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_req_error_class_start,
(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_req_mode_class_start,
(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_req_ses_class_start,
(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_req_stat_class_start,
(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_set_mode_class_start,
(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketFormat_test_unit_class_start,
(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketInterface_class_start, (const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromCommandPacketInterface_class_start,
(const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromProtocol_class_start, (const uint8_t *)&_binary_sega_dreamcast_gdrom_GdromProtocol_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_Background_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_CoreBits_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_Core_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_Holly_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_ISPTSP_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_RegionArray_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_RegionArray_OPBSize_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TABits_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAFIFOPolygonConverter_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_end_of_list_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_modifier_volume_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_object_list_set_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_0_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_1_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_2_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_3_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_polygon_type_4_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_sprite_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAGlobalParameter_user_tile_clip_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAParameter_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_modifier_volume_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_0_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_10_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_11_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_12_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_13_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_14_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_1_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_2_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_3_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_4_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_5_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_6_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_7_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_8_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_polygon_type_9_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_sprite_type_0_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TAVertexParameter_sprite_type_1_class_start,
(const uint8_t *)&_binary_sega_dreamcast_holly_TextureMemoryAllocation_class_start,
(const uint8_t *)&_binary_sega_dreamcast_maple_MapleIF_class_start,
(const uint8_t *)&_binary_sega_dreamcast_MemoryMap_class_start,
(const uint8_t *)&_binary_sega_dreamcast_pvr_if_PVRIF_class_start,
(const uint8_t *)&_binary_sega_dreamcast_systembus_SystembusBits_class_start,
(const uint8_t *)&_binary_sega_dreamcast_systembus_Systembus_class_start,

View File

@ -13,6 +13,7 @@ struct resource {
}; };
static struct resource resources[] = { static struct resource resources[] = {
/*
{ {
.name = (const uint8_t *)"images/java_text", .name = (const uint8_t *)"images/java_text",
.name_length = 16, .name_length = 16,
@ -25,6 +26,7 @@ static struct resource resources[] = {
.buf = (const int32_t *)&_binary_images_java_cup_data_start, .buf = (const int32_t *)&_binary_images_java_cup_data_start,
.buf_length = (int32_t)&_binary_images_java_cup_data_size .buf_length = (int32_t)&_binary_images_java_cup_data_size
}, },
*/
{ {
.name = (const uint8_t *)"images/java_powered", .name = (const uint8_t *)"images/java_powered",
.name_length = 19, .name_length = 19,

View File

@ -1,6 +1,4 @@
CLASS_PATH = \ CLASS_PATH = \
example/DreamcastVideo2.class.o \
example/DreamcastVideo.class.o \
example/GdromExtentReader.class.o \ example/GdromExtentReader.class.o \
example/GdromTest.class.o \ example/GdromTest.class.o \
filesystem/iso9660/ByteParser.class.o \ filesystem/iso9660/ByteParser.class.o \
@ -13,89 +11,17 @@ CLASS_PATH = \
java/lang/Byte.class.o \ java/lang/Byte.class.o \
java/lang/Character.class.o \ java/lang/Character.class.o \
java/lang/DecimalDigits.class.o \ java/lang/DecimalDigits.class.o \
java/lang/Double.class.o \
java/lang/Float.class.o \
java/lang/Integer.class.o \ java/lang/Integer.class.o \
java/lang/Long.class.o \
java/lang/Math.class.o \
java/lang/Object.class.o \ java/lang/Object.class.o \
java/lang/Short.class.o \ java/lang/Short.class.o \
java/lang/String.class.o \ java/lang/String.class.o \
java/lang/System.class.o \ java/lang/System.class.o \
java/misc/Memory.class.o \ java/misc/Memory.class.o \
java/misc/Resource.class.o \
java/nio/Buffer.class.o \
java/nio/ByteBuffer.class.o \
java/nio/ByteOrder.class.o \
model/FacePTN.class.o \
model/ModelObject.class.o \
model/UntitledModel.class.o \
model/Vec2.class.o \
model/Vec3.class.o \
sega/dreamcast/g2_if/G2IF.class.o \
sega/dreamcast/gdrom/G1IF.class.o \ sega/dreamcast/gdrom/G1IF.class.o \
sega/dreamcast/gdrom/GdromBits.class.o \ sega/dreamcast/gdrom/GdromBits.class.o \
sega/dreamcast/gdrom/Gdrom.class.o \ sega/dreamcast/gdrom/Gdrom.class.o \
sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_open.class.o \
sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_play.class.o \
sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_read2.class.o \
sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_read.class.o \ sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_read.class.o \
sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_scan.class.o \
sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_scd.class.o \
sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_seek.class.o \
sega/dreamcast/gdrom/GdromCommandPacketFormat.class.o \ sega/dreamcast/gdrom/GdromCommandPacketFormat.class.o \
sega/dreamcast/gdrom/GdromCommandPacketFormat_get_toc.class.o \ sega/dreamcast/gdrom/GdromCommandPacketFormat_get_toc.class.o \
sega/dreamcast/gdrom/GdromCommandPacketFormat_req_error.class.o \
sega/dreamcast/gdrom/GdromCommandPacketFormat_req_mode.class.o \
sega/dreamcast/gdrom/GdromCommandPacketFormat_req_ses.class.o \
sega/dreamcast/gdrom/GdromCommandPacketFormat_req_stat.class.o \
sega/dreamcast/gdrom/GdromCommandPacketFormat_set_mode.class.o \
sega/dreamcast/gdrom/GdromCommandPacketFormat_test_unit.class.o \
sega/dreamcast/gdrom/GdromCommandPacketInterface.class.o \ sega/dreamcast/gdrom/GdromCommandPacketInterface.class.o \
sega/dreamcast/gdrom/GdromProtocol.class.o \ sega/dreamcast/gdrom/GdromProtocol.class.o
sega/dreamcast/holly/Background.class.o \
sega/dreamcast/holly/CoreBits.class.o \
sega/dreamcast/holly/Core.class.o \
sega/dreamcast/holly/Holly.class.o \
sega/dreamcast/holly/ISPTSP.class.o \
sega/dreamcast/holly/RegionArray.class.o \
sega/dreamcast/holly/RegionArray_OPBSize.class.o \
sega/dreamcast/holly/TABits.class.o \
sega/dreamcast/holly/TAFIFOPolygonConverter.class.o \
sega/dreamcast/holly/TAGlobalParameter.class.o \
sega/dreamcast/holly/TAGlobalParameter_end_of_list.class.o \
sega/dreamcast/holly/TAGlobalParameter_modifier_volume.class.o \
sega/dreamcast/holly/TAGlobalParameter_object_list_set.class.o \
sega/dreamcast/holly/TAGlobalParameter_polygon_type_0.class.o \
sega/dreamcast/holly/TAGlobalParameter_polygon_type_1.class.o \
sega/dreamcast/holly/TAGlobalParameter_polygon_type_2.class.o \
sega/dreamcast/holly/TAGlobalParameter_polygon_type_3.class.o \
sega/dreamcast/holly/TAGlobalParameter_polygon_type_4.class.o \
sega/dreamcast/holly/TAGlobalParameter_sprite.class.o \
sega/dreamcast/holly/TAGlobalParameter_user_tile_clip.class.o \
sega/dreamcast/holly/TAParameter.class.o \
sega/dreamcast/holly/TAVertexParameter.class.o \
sega/dreamcast/holly/TAVertexParameter_modifier_volume.class.o \
sega/dreamcast/holly/TAVertexParameter_polygon_type_0.class.o \
sega/dreamcast/holly/TAVertexParameter_polygon_type_10.class.o \
sega/dreamcast/holly/TAVertexParameter_polygon_type_11.class.o \
sega/dreamcast/holly/TAVertexParameter_polygon_type_12.class.o \
sega/dreamcast/holly/TAVertexParameter_polygon_type_13.class.o \
sega/dreamcast/holly/TAVertexParameter_polygon_type_14.class.o \
sega/dreamcast/holly/TAVertexParameter_polygon_type_1.class.o \
sega/dreamcast/holly/TAVertexParameter_polygon_type_2.class.o \
sega/dreamcast/holly/TAVertexParameter_polygon_type_3.class.o \
sega/dreamcast/holly/TAVertexParameter_polygon_type_4.class.o \
sega/dreamcast/holly/TAVertexParameter_polygon_type_5.class.o \
sega/dreamcast/holly/TAVertexParameter_polygon_type_6.class.o \
sega/dreamcast/holly/TAVertexParameter_polygon_type_7.class.o \
sega/dreamcast/holly/TAVertexParameter_polygon_type_8.class.o \
sega/dreamcast/holly/TAVertexParameter_polygon_type_9.class.o \
sega/dreamcast/holly/TAVertexParameter_sprite_type_0.class.o \
sega/dreamcast/holly/TAVertexParameter_sprite_type_1.class.o \
sega/dreamcast/holly/TextureMemoryAllocation.class.o \
sega/dreamcast/maple/MapleIF.class.o \
sega/dreamcast/MemoryMap.class.o \
sega/dreamcast/pvr_if/PVRIF.class.o \
sega/dreamcast/systembus/SystembusBits.class.o \
sega/dreamcast/systembus/Systembus.class.o

View File

@ -1,3 +1,7 @@
#!/bin/bash
set -eu pipefail
function java_to_class () { function java_to_class () {
while read line; do while read line; do
echo "${line%.java}.class" echo "${line%.java}.class"
@ -66,7 +70,55 @@ function classpath_h () {
done done
} }
set -e declare -a boot_classes=(
example/GdromExtentReader.class
example/GdromTest.class
filesystem/iso9660/ByteParser.class
filesystem/iso9660/DirectoryRecord.class
filesystem/iso9660/ExtentReader.class
filesystem/iso9660/PrimaryVolumeDescriptor.class
filesystem/iso9660/VolumeParser.class
java/io/PrintStream.class
java/lang/Boolean.class
java/lang/Byte.class
java/lang/Character.class
java/lang/DecimalDigits.class
java/lang/Integer.class
java/lang/Object.class
java/lang/Short.class
java/lang/String.class
java/lang/System.class
java/misc/Memory.class
sega/dreamcast/gdrom/G1IF.class
sega/dreamcast/gdrom/GdromBits.class
sega/dreamcast/gdrom/Gdrom.class
sega/dreamcast/gdrom/GdromCommandPacketFormat_cd_read.class
sega/dreamcast/gdrom/GdromCommandPacketFormat.class
sega/dreamcast/gdrom/GdromCommandPacketFormat_get_toc.class
sega/dreamcast/gdrom/GdromCommandPacketInterface.class
sega/dreamcast/gdrom/GdromProtocol.class
)
function boot_classes () {
local length=${#boot_classes[@]}
for ((i=0;i<length;i++)); do
local class="${boot_classes[i]}"
echo "$class"
done
}
function boot_sources () {
local length=${#boot_classes[@]}
for ((i=0;i<length;i++)); do
local class="${boot_classes[i]}"
local source="${class%.class}.java"
if [ -f "$source" ]; then
echo "$source"
fi
done
}
function find_classes () { function find_classes () {
find model/ example/ sega/ java/ filesystem/ -name '*.class' -not -name 'Test*' | sort find model/ example/ sega/ java/ filesystem/ -name '*.class' -not -name 'Test*' | sort
@ -76,12 +128,18 @@ function find_sources () {
find model/ example/ sega/ java/ filesystem/ -name '*.java' -not -name 'Test*' | sort find model/ example/ sega/ java/ filesystem/ -name '*.java' -not -name 'Test*' | sort
} }
find sega/ java/ filesystem/ -name '*.class' -exec rm -f {} \; find sega/ java/ filesystem/ -name '*.class' -exec rm -f {} \;
make -j$(nproc) -f Makefile.dreamcast.mk $(boot_sources | java_to_class)
boot_classes | rename_class_files
boot_classes | classpath_mk
boot_classes | classpath_inc_c
boot_classes | make_header
boot_classes | classpath_h
make -j$(nproc) -f Makefile.dreamcast.mk $(find_sources | java_to_class) #make -j$(nproc) -f Makefile.dreamcast.mk $(find_sources | java_to_class)
#find_classes | rename_class_files
find_classes | rename_class_files #find_classes | classpath_mk
find_classes | classpath_mk #find_classes | classpath_inc_c
find_classes | classpath_inc_c #find_classes | make_header
find_classes | make_header #find_classes | classpath_h
find_classes | classpath_h

View File

@ -25,8 +25,6 @@ OBJ = \
MAIN_DREAMCAST_OBJ = \ MAIN_DREAMCAST_OBJ = \
c/main_dreamcast.o \ c/main_dreamcast.o \
c/sh7091_scif.o \ c/sh7091_scif.o \
images/java_text.data.o \
images/java_cup.data.o \
images/java_powered.data.o images/java_powered.data.o
MAIN_HOSTED_OBJ = \ MAIN_HOSTED_OBJ = \

View File

@ -3,7 +3,7 @@
#include <stdint.h> #include <stdint.h>
#ifdef __cplusplus #ifdef __cplusplus
extern C { extern "C" {
#endif #endif
extern uint32_t _binary_java_lang_Double_class_start __asm("_binary_java_lang_Double_class_start"); extern uint32_t _binary_java_lang_Double_class_start __asm("_binary_java_lang_Double_class_start");

View File

@ -3,7 +3,7 @@
#include <stdint.h> #include <stdint.h>
#ifdef __cplusplus #ifdef __cplusplus
extern C { extern "C" {
#endif #endif
extern uint32_t _binary_java_lang_Float_class_start __asm("_binary_java_lang_Float_class_start"); extern uint32_t _binary_java_lang_Float_class_start __asm("_binary_java_lang_Float_class_start");

View File

@ -3,7 +3,7 @@
#include <stdint.h> #include <stdint.h>
#ifdef __cplusplus #ifdef __cplusplus
extern C { extern "C" {
#endif #endif
extern uint32_t _binary_java_lang_Long_class_start __asm("_binary_java_lang_Long_class_start"); extern uint32_t _binary_java_lang_Long_class_start __asm("_binary_java_lang_Long_class_start");

11
jvm-build.sh Normal file
View File

@ -0,0 +1,11 @@
set -eux
#(cd ../jvm; sh generate_classpath.sh)
#(cd ../jvm; make -f Makefile.dreamcast.mk main.bin)
#cp ../jvm/main.bin jvm.bin
#make gdrom-jvm-boot-ip-bin
#make ip.iso
rm -f main.bin main.elf jvm.iso
make -f Makefile.dreamcast.mk jvm.iso
../cdi4dc jvm.iso jvm.cdi > /dev/null