Database schema:

CREATE TABLE game (
	id INTEGER NOT NULL -- example: ['45', '44'],
	genre_id INTEGER DEFAULT NULL -- example: ['5', '4'],
	game_name TEXT DEFAULT NULL -- example: ['2 Games in 1: Sonic Advance & ChuChu Rocket!', '2 Games in 1: Sonic Battle & ChuChu Rocket!'],
	PRIMARY KEY (id), 
	CONSTRAINT fk_game_genre FOREIGN KEY(genre_id) REFERENCES genre (id)
)


CREATE TABLE game_platform (
	id INTEGER NOT NULL -- example: ['2', '1'],
	game_publisher_id INTEGER DEFAULT NULL -- example: ['9852', '8564'],
	platform_id INTEGER DEFAULT NULL -- example: ['7', '4'],
	release_year INTEGER DEFAULT NULL -- example: ['2006', '2007'],
	PRIMARY KEY (id), 
	CONSTRAINT fk_game_platform_game_publisher FOREIGN KEY(game_publisher_id) REFERENCES game_publisher (id),
	CONSTRAINT fk_game_platform_platform FOREIGN KEY(platform_id) REFERENCES platform (id)
)


CREATE TABLE game_publisher (
	id INTEGER NOT NULL -- example: ['2', '1'],
	game_id INTEGER DEFAULT NULL -- example: ['9244', '10866'],
	publisher_id INTEGER DEFAULT NULL -- example: ['369', '328'],
	PRIMARY KEY (id), 
	CONSTRAINT fk_game_publisher_game FOREIGN KEY(game_id) REFERENCES game (id),
	CONSTRAINT fk_game_publisher_publisher FOREIGN KEY(publisher_id) REFERENCES publisher (id)
)


CREATE TABLE genre (
	id INTEGER NOT NULL -- example: ['2', '1'],
	genre_name TEXT DEFAULT NULL -- example: ['Adventure', 'Action'],
	PRIMARY KEY (id)
)


CREATE TABLE platform (
	id INTEGER NOT NULL -- example: ['2', '1'],
	platform_name TEXT DEFAULT NULL -- example: ['Wii', 'NES'],
	PRIMARY KEY (id)
)


CREATE TABLE publisher (
	id INTEGER NOT NULL -- example: ['2', '1'],
	publisher_name TEXT DEFAULT NULL -- example: ['1C Company', '10TACLE Studios'],
	PRIMARY KEY (id)
)


CREATE TABLE region (
	id INTEGER NOT NULL -- example: ['2', '1'],
	region_name TEXT DEFAULT NULL -- example: ['Europe', 'North America'],
	PRIMARY KEY (id)
)


CREATE TABLE region_sales (
	region_id INTEGER DEFAULT NULL -- example: ['2', '1'],
	game_platform_id INTEGER DEFAULT NULL -- example: ['50', '51'],
	num_sales REAL DEFAULT NULL -- example: ['3.5', '1.43'],
	CONSTRAINT fk_region_sales_game_platform FOREIGN KEY(game_platform_id) REFERENCES game_platform (id),
	CONSTRAINT fk_region_sales_region FOREIGN KEY(region_id) REFERENCES region (id)
)

Question: Among the games released in 2004, what is the percentage of games on PSP?
Evidence: in 2004 refers to release_year = 2004; on PSP refers to platform_name = 'PSP'; percentage = divide(sum(platform_id where platform_name = 'PSP'), count(platform_id)) * 100% where release_year = 2004

SQL:
SELECT CAST(COUNT(CASE WHEN T1.platform_name = 'PSP' THEN T3.game_id ELSE NULL END) AS REAL) * 100 / COUNT(T3.game_id) FROM platform AS T1 INNER JOIN game_platform AS T2 ON T1.id = T2.platform_id INNER JOIN game_publisher AS T3 ON T2.game_publisher_id = T3.id WHERE T2.release_year = 2004